Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №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();
}
}
}
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ
/
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!