Протокол № 6
дата: 6.11.2009

Структурирани типове данни масиви
Същност - масивът е статичен, структуриран тип данни. Той представлява подредена структура от еднотипни данни, наречени елементи на масива. Размерът на масива е предварително фиксиран.
Деклариране на данните тип масив - декларацията се използва от системата за да отдели място в оперативната памет, необходимо за записването на масива. Декларацията се състои в описание на типа масива, което включва размерност(едномерен, двумерен, многомерен), типа на индексите и типа на елементите на масива.
Синтаксис
var
<име>:array[<тип на индексите>] of <базов тип>;
където:
- <име> - име на променливата от тип масив;
- : - разделител, раделящ името от описанието на типа;
- array - служебна дума, обозначаваща принадлежността на променливата към тип масив;
- [<тип на индексите>] - индексна област, в която се определя броят на индексите и областта от стойности, които всеки индекс може да приема. Индексната област съдържа имена или декларации на скаларни изброими типове. По този начин се определя, че индексът, представен чрез декларацията или името на определен скаларен изброим тип, може да приема всички допустими стойности на този тип;
- <базов тип> - име на тип определящо типа на елементите на масива
- of - служеба дума означаваща че стойностите на елементите на масива са “от” типа <базов тип>.


Задача 1

Да се състави програма, която да въвежда стойностите на елементите на едномерен масив, като стойностите да са в интервала от 0 до 99. Програмата да извършва следните действия: да намира най-малкия и най-големия елемент, сумата и средноаритметичното на елементите на масива, да индетифицира случаи, в които всички елементи са равни; да извежда резултатите на екрана в края на програмата.


program zadacha1;
const
m = 20;
var
nomin : byte;
nomax : byte;
flag1 : boolean;
flag2 : boolean;
sr_ar : real;
i : integer;
min,max,sum : integer;
a : array[1..m] of integer;
begin
nomin := 1;
nomax := 1;
flag1 := true;
flag2 := true;
for i := 1 to m do
repeat
write('Vavedete chislo mejdu 0 do 99 - A[',i,'] = ');
readln(a[i]);
until ((a[i] >= 0) and (a[i] < 99));
writeln;
writeln('Vavedenite stoinosti na masiva A sa: ');
writeln;
for i := 1 to m do
write(a[i]:3);
writeln;
sum := a[1];
min := a[1];
max := a[1];
for i := 2 to m do
begin
sum := sum + a[i];
if a[i] > max then
begin
flag2 := false;
max := a[i];
nomin := i;
end;
end;
writeln;
if (flag1 and flag2) then
writeln('Vsichki stoinosti na masiva sa ravni ')
else
begin
write(nomax:3,' element e nai-golqm e raven na ');
writeln(max);
write(nomin:3,' element e nai-malak e raven na ');
writeln(min);
end;
writeln('Sumata e ravna na ',sum);
if sum <> 0 then
begin
sr_ar := sum/m;
writeln(' Srednoaritmetichnoto e ravno na ',sr_ar:4:2);
end;
readln;
end.





Задача 2





Да се състави програма, която въвежда стойностите на елементите на едномерен масив с размер 20, като стойностите са в интервала от 0.0 до 99.00. Програмата да извършва следните действия: да извее на екарана въведения масив; да сортира елементите на масива по нарастване; да изведе на екрана сортирания масив.



program zadacha2;
const
m = 20;
var
flag : boolean;
i : integer;
rez : real;
a : array[1..m] of real;
begin
for i := 1 to m do
repeat
write('Vavedete chisloto ot 0 do 99 - A[',i,'] = ');
readln(a[i]);
until ((a[i] >= 0) and (a[i] < 99));
writeln;
writeln('Vavedenite stoinosti na masiva A sa: ');
writeln;
for i := 1 to m do
write(a[i]:6:1);
writeln;
repeat
flag := true;
for i := 1 to m - 1 do
if a[i] > a[i+1] then
begin
flag := false;
rez := a[i];
a[i] := a[i+1];
a[i+1] := rez;
end;
until flag;
writeln(' Sortiraniqt masiv A e: ');
writeln;
for i := 1 to m do
write(a[i]:6:1);
readln;
end.






Задача 3

Да се състави програма, която да въвежда от клавиатурата стойностите на елементите на едномерния масив R и на матрицата  A. При въвеждане на входни данни да се използват стойностите на масивите във вида , посочени на съответните фигури.


program zadacha_3;
const
m = 4; n = 6;
type
typemas1 = array[1..n] of real;
typemas2 = array[1..m,1..n] of integer;
var
I,J : integer;
r : typemas1;
a : typemas2;
begin
writeln('vavedete stoinost za ednomerniq masiv');
for I := 1 to n do
begin
write('r[',I,'] = ');
readln(r[i]);
end;
writeln;
writeln('vavedete stoinost za dvumerniq masiv');
for I := 1 to m do
for j := 1 to n do
begin
write('a[',i,',',j,'] = ');
readln(a[i,j]);
end;
writeln;
writeln('vavedenite stoinosti za ednomerniq masiv sa: ');
for I := 1 to n do
write(r[i]:6:2);
writeln;
writeln('vavedenite stoinosti za dvumerniq masiv sa: ');
for I := 1 to m do
write(a[i,j]:4);
writeln;
readln
end.

 





0 коментара:

Публикуване на коментар