Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №7
«МАСИВИ. РОБОТА З МАСИВАМИ»
З КУРСУ ТЕХНОГОЛІЇ ПРОГРАМУВАННЯ
ВАРІАНТ №26
ЛЬВІВ 2016
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
Завдання
26
В одномірному масиві, що складається з п дійсних елементів, обчислити: номер мінімального по модулю елемента масиву; суму елементів масиву, розташованих після першого додатного елемента.
Стиснути масив, видаливши з нього всі елементи, величина яких перебуває в інтервалі [а, b]. Елементи, що звільнилися в кінці масиву, заповнити нулями.
Блок-схема алгоритму програми
/ /
//
/
/
/
/
/
/
Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab3
{
class Program
{
static void Main(string[] args)
{
Index sk = new Index();
sk.OOL();
}
}
class First
{
protected int start, finish, size;
protected double[] A = new double[1];
void ReadScope()
{
Console.WriteLine("Granu massivu");
Console.Write("Enter start array = ");
start = int.Parse(Console.ReadLine());
Console.Write("Enter finish array = ");
finish = int.Parse(Console.ReadLine());
}
int Size()
{
return size = finish - start + 1;
}
protected void ReadArray()
{
ReadScope();
Size();
Array.Resize(ref A, size);
}
}
class Sekond : First
{
static Random rnd = new Random();
public void Ini()
{
Console.WriteLine("Wuberit sposib zapownenya");
Console.WriteLine("1-Random\t2-ne random");
byte w = byte.Parse(Console.ReadLine());
if (w == 1)
Auto();
else if (w == 2)
Ne_Auto();
else
{
Console.WriteLine("ERROR");
Console.WriteLine("Masiv bude zapovneno znathennyamu 0");
}
}
void Auto()
{
for (int i = 0; i < A.Length; i++)
{
double t = rnd.Next(-100, 100);
A[i] = t;
Console.WriteLine("A[{0}]={1}", (i + start), A[i]);
}
Console.WriteLine("Random masiv");
foreach (double z in A)
{
Console.Write(z + "\t");
}
Console.WriteLine();
}
void Ne_Auto()
{
for (int i = 0; i < A.Length; i++)
{
Console.Write("A[{0}]=", i + start);
A[i] = Double.Parse(Console.ReadLine());
}
foreach (double i in A)
Console.Write(i + "\t");
Console.WriteLine();
}
}
class Third : Sekond
{
void Min()
{
double min = Math.Abs(A[0]);
for (int i = 1; i < A.Length; i++)
{
if (min > Math.Abs(A[i]))
{
min = Math.Abs(A[i]);
}
}
Console.WriteLine("min =" + min);
}
void Sum()
{
double sum = 0;
int k = 0;
for (int i = 0; i < A.Length; i++)
{
if (A[i] > 0)
{
k = i;
break;
}
}
for (int i = k; i < A.Length; i++)
{
sum += A[i];
}
Console.WriteLine("Suma " + sum);
}
void Stusk()
{
Console.Write("a= ");
Double a = double.Parse(Console.ReadLine());
Console.Write("b= ");
Double b = double.Parse(Console.ReadLine());
int t = 0;
for (int i = 0; i < A.Length; i++)
{
if (a <= A[i] && A[i] <= b)
{
t++;
}
else
{
Console.Write(A[i] + "\t");
}
}
for (int i = t; i < A.Length; i++)
{
A[i] = 0;
Console.Write(A[i] + "\t");
}
Console.WriteLine();
}
protected void Obrah()
{
Min();
Sum();
Stusk();
}
}
class Index : Third
{
int indexPrint;
bool error;
void Read()
{
Console.Write("\n\nEnter index element, which want print: ");
indexPrint = Int32.Parse(Console.ReadLine());
}
double this[int index]
{
get
{
if (index >= start && index <= finish)
{
error = false;
return A[index - start];
}
else
{
error = true;
return 0;
}
}
}
void ElementOut()
{
double x;
Read();
x = this[indexPrint];
if (this.error)
{
Console.WriteLine("Output for scope array");
}
else
{
Console.WriteLine("\narray [{0}] = {1}\n", indexPrint, x);
}
}
public void OOL()
{
ReadArray();
Ini();
ElementOut();
Obrah();
}
}
}
Результат роботи програми
/
Висновок
Я вивчила синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитилася складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.