Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
З В І Т
до лабораторної роботи №3
з курсу: «Алгоритмічні мови та програмування, ч. 2»
на тему: «Масиви. Робота з масивами»
Варіант № 21
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
1.Завдання
Скласти блок-схеми алгоритмів та програму мовою С# для роботи з одномірним масивом цілих чисел (вектором). Забезпечити наступні можливості: задання довільних цілих границь індексів при створенні об'єкта; звертання до окремого елемента масиву з контролем виходу за межі масиву; розрахунок за алгоритмом, згідно з завданням, отриманим від викладача за табл. 2; вивід на екран елемента масиву по заданому індексі й усього масиву. Програма повинна демонструвати всі розроблені елементи класу.
2.Блок-схеми алгоритму програми
Метод «GetMaxlndex ()»
/
Метод « Mult ()»
/
Метод «Change ()»/
3.Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення.
int startIndex - стартовий iндекс;
int endIndex - кiнцевий індекс;
class Array – клас надає методи для створення, зміни, пошуку і сортування масивів, тобто виступає в ролі базового класу для всіх масивів в середовищі CLR;
Console.WriteLine – метод, що записує поточну ознаку кінця рядка в стандартний вихідний потік;
Console.Write – метод, що записує текстове представлення заданого значення або значень в стандартний вихідний потік;
for (…) – цикл з передумовою;
get - ключове слово get визначає метод доступу в властивості або індексатора, який витягує значення властивості або елемент індексатора;
set - Ключове слово set визначає метод доступу в властивості або індексатора, який призначає значення властивості елемента індексатора;
return - перериває виконання методу, в якому воно присутнє і повертає управління викликає методу;
start1 - стартовий iндекс для чисел з непарним iндексом;
start2 - стартовий iндекс для чисел з парним індексом;
while - оператор виконує оператор або блок операторів, поки певний вираз не прийме значення false;
Convert.ToInt32 - метод перетворює задане значення в 32-бітове ціле число зі знаком;
Console.ReadKey() - метод, що затримує вікно консолю;
if-else – інструкція, що визначає яка інструкція буде виконана.
4.Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab_3
{
class Array
{
int length;
int startIndex; // стартовий iндекс
int endIndex; // кiнцевий iндекс
int[] a;
// створення масиву, за заданими межами iндексiв..наприклад 2..8
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());
}
}
// для iндексацiї масиву
public int this[int i]
{
get
{
if (CorrectIndex(i))
return a[i - startIndex];
else
return -9999;
}
set
{
if (CorrectIndex(i))
a[i] = value;
}
}
// перевiрка чи коректний iндекс
private bool CorrectIndex(int index)
{
if (index >= startIndex && index <= endIndex)
return true;
else
return false;
}
// вивiд по заданому iндексi
public void PrintByIndex(int index)
{
if (CorrectIndex(index))
Console.WriteLine("[" + index + "] element: " + a[index - startIndex]);
else
Console.WriteLine("Некоректний iндекс");
}
// вивiд всього масиву
public void Print()
{
Console.WriteLine("Array is: ");
for (int i = 0; i < length; i++)
Console.Write(a[i] + " ");
}
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());
double sum = summ(a);
Console.WriteLine("\nСума відємних - " + sum);
int minInd = minIndex(a);
int maxInd = maxIndex(a);
Console.Write("Min - " + a[minInd] + " index = " + minInd);
Console.Write("\nMax - " + a[maxInd] + " index = " + maxInd);
double multiSum = 1;
if (maxInd < minInd)
{
int tmp = minInd;
minInd = maxInd;
maxInd = tmp;
}
for (int i = minInd; i <= maxInd; i++)// 1 3 5
{
multiSum *= a[i];
}
Console.WriteLine("\nДобуток між макс і мін - " + multiSum);
for (int i = 0; i < a.Length - 1; i++)
for (int j = i + 1; j < a.Length; j++)
{
if (a[i] < a[j])
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
for (int i = 0; i < a.Length; i++)
Console.WriteLine(a[i].ToString() + ' ');
Console.ReadKey();
}
public static void sort(int[] ar)// 8 1 -3 9 -5
{
}
public static double summ(int[] a)
{
double summ = 0;
for (int i = 0; i < a.Length; i++)
if (a[i] < 0) summ += a[i];
return summ;
}
public static int maxIndex(int[] a)
{
int max = a[0];
int indexMax = 0;
for (int i = 1; i < a.Length; i++) if (Math.Abs(a[i]) > Math.Abs(max)) { max = a[i]; indexMax = i; }
return indexMax;
}
public static int minIndex(int[] a)
{
int min = a[0];
int indexMin = 0;
for (int i = 1; i < a.Length; i++) if (Math.Abs(a[i]) < Math.Abs(min)) { min = a[i]; indexMin = i; }
return indexMin;
}
a.Create(start, end);
a.Print();
Console.Write("\nВведiть номер елемента для виведення: ");
int index = Convert.ToInt32(Console.ReadLine());
a.PrintByIndex(index);
a.Print();
Console.ReadKey();
}
}
}
5.Результати роботи програми
6.Висновок
Виконуючи цю лабораторну роботу я вчила синтаксис опису і використання у програмах змінних типу масивів та властивостей. Вчилася складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!