Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №7
з курсу: «Алгоритмічні мови та програмування»
на тему: «Програми з використанням масивів та індексаторів»
Варіант №2
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
ЗАВДАННЯ
Скласти блок-схеми алгоритмів та програму мовою С# для роботи з одномірним масивом цілих чисел (вектором). Забезпечити наступні можливості: задання довільних цілих границь індексів при створенні об'єкта; звертання до окремого елемента масиву з контролем виходу за межі масиву; розрахунок за алгоритмом, згідно з завданням, отриманим від викладача за табл. 1; вивід на екран елемента масиву по заданому індексі й усього масиву. Програма повинна демонструвати всі розроблені елементи класу.
Табл. 1
Завдання
В одномірному масиві, що складається з п дійсних елементів, обчислити: суму додатних елементів масиву; добуток елементів масиву, розташованих між максимальним по модулю й мінімальним по модулю елементами.
Упорядкувати елементи масиву за спаданням.
БЛОК-СХЕМА АЛГОРИТМУ
СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
Console.ReadLine() – зчитування стрічки з консолі;
Console.ToDouble() –конвертування текстової змінної в число типу Double;
Convert.ToInt32() - конвертування текстової змінної в число типу Int32;
Console.WriteLine – метод виведення на екран;
public void Field() – метод, в якому знаходять межі масиву і його довжина
public void ScanArray() – метод, в якому відбувається зчитування масиву з клавіатури та виведення його на екран;
size1, size2 – межі масиву;
Length – довжина масиву;
a – масив з даними цілого типу;
public double this[int index] – індексація;
public void ElementOutput() – метод, який зчитує індексу і виводить елемент масиву на екран;
public void LargeArrayNumber() – метод, в якому знаходяться посилання на методи, що обчислюють кількість елементів та виводять її;
public void Suma() – метод в якому знаходиться суму додатних елементів масиву;
public void Dob() – метод, в якому знаходиться добуток елементів масиву, розташованих між максимальним й мінімальним елементами.
public void Sort() – метод, в якому елементи масиву впорядковуються за спаданням.
ТЕКСТ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lab3
{
class Array
{
int Length;
int size1;
int size2;
double[] a;
bool ErrFlag;
int aIndex;
public void Field()
{
Console.WriteLine("Введiть межi масиву: ");
Console.Write("Перша межа:");
size1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Друга межа:");
size2 = Convert.ToInt32(Console.ReadLine());
Length = size2 - size1 + 1;
}
public void ScanArray()
{
a = new double[Length];
int x = size1;
Console.WriteLine("Введiть массив: ");
for (int i = 0; i < Length; i++)
{
Console.Write("a[" + x + "]=");
a[i] = Convert.ToDouble(Console.ReadLine());
x++;
}
foreach (double z in a)
Console.Write("\t" + z);
Console.Write("\n");
}
public double this[int index]
{
get
{
if (ok(index))
{
ErrFlag = false;
return a[index - size1];
}
else
{
ErrFlag = true;
return 0;
}
}
set
{
if (ok(index))
{
a[index] = value;
ErrFlag = false;
}
else ErrFlag = true;
}
}
private bool ok(int index)
{
if (index >= size1 & index <= size2) return true;
else
return false;
}
public void Suma()
{
double s = 0.0;
for (int i = 0; i < Length; i++)
if (a[i] >= 0.0)
s = s + a[i];
Console.WriteLine("Сума додатних елементiв:" + s);
}
public void Dob()
{
double max = a[0];
double min = a[0];
double d = 1.0;
for (int i = 0; i < Length; i++)
{
if (max <= a[i])
{
max = a[i];
}
if (min >= a[i])
{
min = a[i];
}
if (a[i] > min && a[i] < max)
d = d * a[i];
}
Console.WriteLine("Мiнiмальний елемент масиву:" + min);
Console.WriteLine("Максимальний елемент масиву:" + max);
Console.WriteLine("Добуток елементiв мiж максимальним i мiнiмальним елементом:" + d);
}
public void Sort()
{
double k, c, p;
int x = size1;
for (int i = 0; i < Length; i++)
{
for (k = Length - 1; k >= 0; k--)
{
for (i = 0; i < k; i++)
if (a[i] > a[i + 1])
{
c = a[i];
a[i] = a[i + 1];
a[i + 1] = c;
}
}
for (i = 0; i < Length; i++)
{
p = a[i];
x++;
}
Console.WriteLine();
Console.WriteLine("Вiдсортований масив:");
foreach (double z in a)
Console.Write("\t" + z);
Console.WriteLine();
}
}
public void ScanIndex()
{
Console.Write("\nВведiть номер елемента для виведення: ");
aIndex = Convert.ToInt32(Console.ReadLine());
}
public void ElementOutput()
{
double x;
Console.Write("\nВведiть номер елемента для виведення: ");
aIndex = Convert.ToInt32(Console.ReadLine());
x = this[aIndex];
if (this.ErrFlag)
Console.WriteLine("Ви вказали неправильний номер елемента");
else
Console.WriteLine("a[" + aIndex + "]=" + x);
}
static void Main(string[] args)
{
Array a = new Array();
a.Field();
a.ScanArray();
a.Suma();
a.Dob();
a.Sort();
a.ElementOutput();
Console.ReadKey();
}
}
}
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ
/