Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
З В І Т
до лабораторної роботи №3
з курсу: «Алгоритмічні мови та програмування, Ч.2»
на тему: «Масиви. Робота з масивами»
Варіант № 15
Львів-2016
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
1.Завдання
Скласти блок-схеми алгоритмів та програму мовою С# для роботи з одномірним масивом цілих чисел (вектором). Забезпечити наступні можливості: задання довільних цілих границь індексів при створенні об'єкта; звертання до окремого елемента масиву з контролем виходу за межі масиву; розрахунок за алгоритмом, згідно з завданням, отриманим від викладача за табл. 2; вивід на екран елемента масиву по заданому індексі й усього масиву. Програма повинна демонструвати всі розроблені елементи класу.
/
2. Блок-схема алгоритму програми
Метод «Main ()»
3.Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення.
int startIndex - стартовий iндекс;
int endIndex - кiнцевий індекс;
class Array – клас надає методи для створення, зміни, пошуку і сортування масивів, тобто виступає в ролі базового класу для всіх масивів в середовищі CLR;
Console.WriteLine – метод, що записує поточну ознаку кінця рядка в стандартний вихідний потік;
Console.Write – метод, що записує текстове представлення заданого значення або значень в стандартний вихідний потік;
for (…) – цикл з передумовою;
get - ключове слово get визначає метод доступу в властивості або індексатора, який витягує значення властивості або елемент індексатора;
set - Ключове слово set визначає метод доступу в властивості або індексатора, який призначає значення властивості елемента індексатора;
return - перериває виконання методу, в якому воно присутнє і повертає управління викликає методу;
Console.ReadKey() - метод, що затримує вікно консолю;
if-else – інструкція, що визначає яка інструкція буде виконана
4.Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Laba3
{
class Array
{
public int length;
public int startIndex;
public int endIndex;
public int[] a;
public void Create(int _startIndex, int _endIndex)
{
startIndex = _startIndex;
endIndex = _endIndex;
length = endIndex - startIndex + 1;
a = new int[length];
Console.WriteLine("Введiть масив: ");
for (int i = 0; i < length; i++)
{
Console.Write("a[" + (i + startIndex) + "] = ");
a[i] = Convert.ToInt32(Console.ReadLine());
}
}
public int this[int i]
{
get
{
if (CorrectIndex(i))
return a[i - startIndex];
else
return -9999;
}
set
{
if (CorrectIndex(i))
a[i - startIndex] = value;
}
}
private bool CorrectIndex(int index)
{
if (index >= startIndex && index <= endIndex)
return true;
else
return false;
}
public void PrintByIndex(int index)
{
if (CorrectIndex(index))
Console.WriteLine("[" + index + "] element: " + a[index - startIndex]);
else
Console.WriteLine("Некоректний iндекс");
}
public void Print()
{
Console.WriteLine("Array is: ");
for (int i = 0; i < length; i++)
Console.Write(a[i] + " ");
}
}
class Program
{
static void Main(string[] args)
{
Array a = new Array();
Console.WriteLine("Введiть межi масиву: ");
Console.Write("Перша межа:");
int start = Convert.ToInt32(Console.ReadLine());
Console.Write("Друга межа:");
int end = Convert.ToInt32(Console.ReadLine());
a.Create(start, end);
Console.Write("Коефіцієнт C = ");
int C = Convert.ToInt32(Console.ReadLine());
int greaterC_Count = 0;
int max = int.MinValue;
int maxIndex = -1;
for (int i = a.startIndex; i < a.length + a.startIndex; i++)
{
if (a[i] > C)
{
greaterC_Count++;
}
if (max < Math.Abs(a[i]))
{
max = Math.Abs(a[i]);
maxIndex = i;
}
}
int suma = 1;
for (int i = maxIndex + 1; i < a.length + a.startIndex; i++)
{
suma *= a[i];
}
Console.WriteLine("Більші за C : {0}", greaterC_Count);
Console.WriteLine("Suma result : {0}", suma);
a.Print();
for (int i = a.startIndex; i < a.length + a.startIndex; i++)
{
int min = int.MaxValue;
int minIndex = 0;
for (int j = i; j < a.length + a.startIndex; j++)
{
if (a[j] < min)
{
min = a[j];
minIndex = j;
}
}
a[minIndex] = a[i];
a[i] = min;
}
a.Print();
Console.Write("\nВведiть номер елемента для виведення: ");
int index = Convert.ToInt32(Console.ReadLine());
a.PrintByIndex(index);
Console.WriteLine("");
a.Print();
Console.ReadKey();
}
}
}
5.Результат роботи програми
/
Висновок
Виконуючи цю лабораторну роботу я вчив синтаксис опису і використання у програмах змінних типу масивів та властивостей. Вчився складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.