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