МІНІСТЕРСТВО ОСВІТИ І НАУКИ,
МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
З В І Т
до лабораторної роботи № 3
з курсу: «Алгоритмічні мови та програмування»
на тему: «Програми з використанням масивів та індексаторів.»
Варіант № 16
ЗАВДАННЯ
Скласти блок-схеми алгоритмів та програму мовою С# для роботи з одномірним масивом цілих чисел (вектором). Забезпечити наступні можливості: завдання довільних цілих границь індексів при створенні об'єкта; звертання до окремого елемента масиву з контролем виходу за межі масиву; розрахунок за алгоритмом, згідно з завданням, отриманим від викладача за табл. 2; вивід на екран елемента масиву по заданому індексі й усього масиву. Програма повинна демонструвати всі розроблені елементи класу.
16
В одномірному масиві, що складається з п дійсних елементів, обчислити: кількість від’ємних елементів масиву; суму модулів елементів масиву, розташованих після мінімального по модулю елемента.
Замінити всі від’ємні елементи масиву їхніми квадратами й упорядкувати елементи масиву за зростанням.
БЛОК-СХЕМА АЛГОРИТМУ
Блок-схема методу Main ()
Блок-схема методу Vvid ()
Блок-схема методу meji ()
Блок-схема методу Vuvid ()
Блок-схема методу kikist ()
Блок-схема методу summamod ()
Блок-схема індексатора this [x]
Метод-аксесор set
Метод-аксесор get
Блок-схема методу getelevent ()
СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
с, b – числа дійсного типу які є межами масиву;
х – змінна дійсного типу, якій присвоюється значення елемента масиву;
k – змінна дійсного типу, якій присвоюється значення кількості від’ємних елементів масиву;
n – змінна дійсного типу, яка встановлює розмірність масиву;
i, j, num, aindex – змінні дійсного типу, які встановлюють номер елемента масиву;
u – змінна, яка використовується при сортуванні елементів масиву;
min – змінна дійсного типу, якій надається значення найменшого елемента масиву;
Main() – головний метод;
vvid() – метод, в якому вводяться дані;
meji() – метод, в якому задаються межі масиву;
vuvid() – метод, в якому виводиться значення виразу на екран;
kikist() – метод, в якому визначається кількість від’ємних елементів масиву;
summamod() – метод для обчислення суми елементів масиву;
sort() – метод для сортування елементів масиву;
this[x] – індексатор, для роботи з елементами масиву;
getelevent() – метод, призначений для виведення на екран певного елемента масиву;
Console.WriteLine () – метод виводу даних, який належить класу Console;
Console.ReadLine() – метод вводу даних який належить класу Console;
Convert.ToDouble() – метод перетворення типу змінної в тип double;
Math.Pow(x,y) – математичний метод для піднесення елементу до певного степіня;
new – оператор, який створює об’єкт;
class Program – клас Program, який містить метод Main().
class C1 – клас C1, який містить методи vvid(), meji(), vuvid();
class C2 – клас C2, який наслідує клас C1 і містить методи kikist(), summamod(), sort(), getelevent(), індексатор this[x]. ТЕКСТ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
C2 l = new C2();
l.meji();
l.vvid();
l.getelevent();
l.sumamod();
l.kikist();
l.sort();
l.vuvid();
Console.ReadLine();
}
}
class C1
{
public double s, min, x;
public int k, n, i, u, j,num, c, b, aindex;
public double[] a = new double[1000];
public bool error;
public void meji()
{
Console.WriteLine("Введіть c");
c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть b");
b = Convert.ToInt32(Console.ReadLine());
n = b - c + 1;
}
public void vvid()
{
for (i = 0; i < n; i++)
{
Console.WriteLine("a" + "[" + (i+c) + "]=");
a[i] = Convert.ToDouble(Console.ReadLine());
}
}
public void vuvid()
{
for (i = 0; i < n; i++)
{
Console.WriteLine("a[" + (i+c) + "]=" +a[i]);
}
}
}
class C2 : C1
{
public void kikist()
{
for (i = 0; i < n ; i++)
{
if (a[i]<0)
{
k++;
a[i] = Math.Pow(Math.Abs(a[i]), 2);
}
}
Console.WriteLine("kikist=" + k);
}
public void sumamod()
{
min = Math.Abs(a[0]);
for (i = 0; i < n; i++)
if (Math.Abs(a[i]) < min)
{
min = Math.Abs(a[i]);
num = i;
}
for (i = num; i < n; i++)
{
s += Math.Abs(a[i]);
}
Console.WriteLine("suma=" + s);
}
public void sort()
{
for (i = 0; i < n; i++)
{
u = i;
x = a[i];
for (j = i + 1; j < n+1; j++)
{
if (a[j] < x)
{
u = j;
x = a[j];
a[u] = a[i];
a[i] = x;
}
}
}
}
public double this[int index]
{
set
{
if(index>=c && index>=b)
{
error=false;
a[index]=value;
}
else error = true;
}
get
{
if (index >= c && index <= b)
{
error = false;
return a[index - c];
}
else
{
error = true;
return 0;
}
}
}
public void getelevent()
{
Console.WriteLine("aindex=");
aindex = Convert.ToInt32(Console.ReadLine());
x = this[aindex];
if (error==true)
Console.WriteLine("елемент не існує");
else Console.WriteLine("a[" +aindex +"]=" +x);
}
}
}
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ