Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
З В І Т
до лабораторної роботи №3
з курсу: «Алгоритмічні мови та програмування»
на тему: «Програми з використанням масивів та індексаторів»
Варіант № 5
Львів – 2016
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
Завдання
Скласти блок-схеми алгоритмів та програму мовою С# для роботи з одномірним масивом цілих чисел (вектором). Забезпечити наступні можливості: задання довільних цілих границь індексів при створенні об'єкта; звертання до окремого елемента масиву з контролем виходу за межі масиву; розрахунок за алгоритмом, згідно з завданням, отриманим від викладача за табл. 1; вивід на екран елемента масиву по заданому індексі й усього масиву. Програма повинна демонструвати всі розроблені елементи класу.
/
Блок-схема алгоритму програми
/
/
/ /
3. Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі,
та їх пояснення
Console.ReadLine() – зчитування стрічки з консолі;
Console.ToDouble() –конвертування текстової змінної в число типу Double;
Convert.ToInt32() - конвертування текстової змінної в число типу Int32;
Console.WriteLine – метод виведення на екран;
public void Readm() – метод, в якому знаходять межі масиву і його довжина
public void ReadArray() – метод, в якому відбувається зчитування масиву з клавіатури та виведення його на екран;
size1, size2 – межі масиву;
Length – довжина масиву;
a – масив з даними цілого типу;
public double this[int index] – індексація;
public void ElementOutput() – метод, який зчитує індекс і виводить елемент масиву на екран;
public void Summ() – метод, в якому знаходиться сума елементів масиву, розташованих до останнього додатного;
public void MaxElement() – метод, який обчислює максимальний елемент масиву;
public void SortArray() – метод, в якому елементи, що перебувають в інтервалі [q, w], видаляються.
Текст програми
using System;
using System.Collections.Generic;
using System.Text;
namespace Lab3
{
class Array
{
int Length;
int size1;
int size2;
double[] a;
bool ErrFlag;
int aIndex;
public void Readm()
{
Console.WriteLine("Введiть межi масиву: ");
Console.Write("Перша межа:");
size1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Друга межа:");
size2 = Convert.ToInt32(Console.ReadLine());
Length = size2 - size1 + 1;
}
public void ReadArray()
{
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 MaxElement()
{
double max = a[0];
for (int i = 0; i < Length; i++)
{
if (max <= a[i])
{
max = a[i];
}
}
Console.WriteLine("Максимальний елемент масиву:" + max);
}
public void Summ()
{
double sum = 0;
for (int i = a.Length - 1; i > 0; i--)
if (a[i] > 0)
{
for (int j = 0; j < i; j++)
sum += a[j];
Console.WriteLine("Cума елементiв:" + sum);
break;
}
}
public double q, w;
public void SortArray()
{
Console.Write("Введiть q: ");
q = Convert.ToDouble(Console.ReadLine());
Console.Write("Введiть w: ");
w = Convert.ToDouble(Console.ReadLine());
int end = a.Length - 1;
for (int i = 0; i <= end; i++)
if ((Math.Abs(a[i]) >= q) && (Math.Abs(a[i]) <= w))
{
for (int j = i; j < end; j++)
a[j] = a[j + 1];
a[end] = 0;
end--;
i--;
}
foreach (double element in a)
Console.Write("{0} ", element);
Console.Write("\n");
}
public void ElementOutput()
{
double x;
Console.Write("Введiть номер елемента: ");
aIndex = Convert.ToInt32(Console.ReadLine());
x = this[aIndex];
if (this.ErrFlag)
Console.WriteLine("Вихiд за межi масиву: ");
else
Console.WriteLine("a[" + aIndex + "]=" + x);
}
}
class Program
{
static void Main(string[] args)
{
Array a = new Array();
a.Readm();
a.ReadArray();
a.MaxElement();
a.Summ();
a.ElementOutput();
a.SortArray();
Console.ReadLine();
}
}
}
5. Результати роботи програми
/
/
/