Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестрп / Lab_4

.doc
Скачиваний:
13
Добавлен:
15.02.2015
Размер:
99.33 Кб
Скачать

Группа 2

Лабораторна робота 4

Тема: Розробка та реалізація програми з масивами

Ціль роботи: оволодіння навичками складання програми з масивами та виконання її у середовищі системи програ­мування Тurbo Раscal 6.0, придбання уміння використовувати алгоритми послідовного пошуку в масивах.

Короткі теоретичні відомості

Масив - це упорядкована послідовність однойменних елементів, кожен з яких має один і той самий тип. Елементи масиву можуть мати любий стандартний тип (окрім файлового) або тип, введений користувачем. Тип елементів масиву називається базовим. Елемен­ти масиву розміщені впорядковано, кожен має свій номер, який називається індексом. Доступ до елементів масиву відбувається шляхом вказування імені масиву та порядкового номера елемента (індексації). Індексом може бути будь-який вираз порядкового типу. Тип індексу визначає межі зміни значень індексу.

Опис масиву складається з ключового слова array, за яким в квадратних дужках записано тип індексу, ключового слова оf і описа типу елементів. Загальний вигляд опису масива:

type ім'я типу аггау [тип индсксу] оf тип елементів;

var ім'я масиву: ім'я типу;

або

var ім'я масиву: аггау [тип индексу] оf тип елементів;

Наприклад, tуре RGB = (red, green, blue) ;

NM= 1 . . МахІпt;

Аі = array 1..20] of integer ; ( 20 елементів)

var М, L0 : Аі;

А, В: аггау [1..10] of integer;

Соlor: аггау [RGB] of byte;

МаtrC: аггау [1..3,1..4] оf геаl;{3 рядки, 4 стовпця}

А2: аггау [Nm] of Ai;

Якщо базовим типом є масив, то утворюється багатовимірний масив. У наведеному прикладі змінні А2 і МаtrC є двовимірні масиви. Опис змінної МаtrC еквівалентний такому опису

Завдання 4.1

Представити математичний запис фрагмента програми і обчислити значення змінної X після його виконання, якщо елементи масиву визначаються за формулою

Фрагмент програми: T:=3; N:=3; X:=a[n+1]

for J:=1 to n do

X:=X+A[J]*exp((n-j-1)*ln(t));

Розв’язок

Цей фрагмент програми находить значення Х за формулою X:=X+A[J]*exp((n-j-1)*ln(t))

Х=49. Після виконання фрагменту Х=91,33333.

Завдання 4.2

Скласти програму обчислення наступних величин та виконати її у середовищі системи програмування Тurbо Раscal 6.0, якщо елементи масиву визначаються за формулою . Значення змінюється від 1 до 19.

Умова: знайти середнє арифметичне додатних елементів масиву а.

Розв’язок

program lr4;

const n=19;

var a:array[1..n] of integer;

i,k,summa:integer;

srednee:real;

begin

writeln('Вводимо масив a[1..',n:2,']');

a[1]:=4;

summa:=0;

k:=0;

for i:=1 to n-1 do a[i+1]:=(37*a[i]+3) mod 64;

for i:=1 to n do write(a[i]:3);

writeln;

for i:=1 to n do

begin

if a[i]>0 then

begin

summa:=summa+A[i];

inc(k);

end;

end;

srednee:=summa/k;

writeln('Среднє арифметичне додатних елементів масива=', srednee);

end.

Результати роботи програми:

Вводимо масив a[1..19]

4 23 22 49 24 59 10 53 44 31 62 57 0 3 50 61 20 39 38

'Среднє арифметичне додатних елементів масива=36.0555555555556

Завдання 4.3

Оцінити ефективність алгоритму послідовного пошуку для чого:

1.Створити одновимірний масив з 20 елементів за формулою . Значення

=N=1; i змінюється від 1 до 18; =190*1157=219830.

2.Скласти програму послідовного пошуку ключа k в масиві , якщо k=N+1=2.

3.Обчислити avg за формулою

Розв’язок

program lr4_3;

const n=20;

var a:array[1..n] of integer;

i,m,k:integer;

begin

write('Ввести ключ k=');readln(k);

write('Vvesti masiv a[1..',n:2,']');

a[1]:=4;

a[18]:=30;

for i:=1 to n-2 do a[i+1]:=(37*a[i]+3) mod 64;

for i:=1 to n do write(a[i]:3);

writeln;

m:=0;

for i:=1 to n do

if a[i]=k then

begin

writeln('a[',i:2,']=',a[i]:3);

m:=1;

end;

if m=0 then

writeln('Kluch',k,'v masivi ne zustrichaetsa');

end.

Результати роботи програми:

Ввести ключ k=4

Vvesti masiv a[1..20] 4 23 22 49 24 59 10 53 44 31 62 57 0 3 50 61 20 39 38 0

a[ 1]= 4

Висновок: масиви відносяться до структурованих типів даних, але завдяки індексуванню, з масиву можна виділити будь-який його елемент і використати його у програмі як окреме значення раніше визначеного типу. Тобто над елементами масиву можна виконувати такі ж операції як і над змінними та константами.

Захист

program lr4z;

const n=50;

label l5;

var a:array[1..n] of integer;

i,nn,s:integer;

begin

s:=0;

writeln('Vvedit rozmirnist mat');

readln(nn);

writeln('Вводимо масив');

for i:=1 to nn do

read(a[i]);

begin

if(i>1)then

if a[i]*a[i-1]>0 then

S:=1;

end;

if(s>0) then

for i:=1 to nn do

a[i]:=-abs(a[i]);

l5:writeln('Rezultat');

for i:=1 to nn do writeln(a[i]);

end.

ЛР04- 6.050103.1157-04

Соседние файлы в папке 2 семестрп