Паскаль (Pascal) разрабатывался, как учебный язык выского уровня, структурного программирования. Относится к 3-му поколению языков программирования. На основе ALGOL.
Составные типы данных – типы данных базирующиеся на простых. Важна однотипность элементов и способ доступа, позволяющие выделить главные представители сложных типов.
Массив - набор однотип переменных, каждому эл-ту которого присвоен некот поряд номер, что обеспечивает простоту доступа к каждому эл-ту.
Массивы могут быть одномерными и многомерными
Описание при помощи слова array в разделе описания типов
Одномерный:имя_типа = array [диапазон] of тип;
Диапазон - диапазон поряд эл-тов(любой тип, кроме longInt);
Type atype = array [1..10] of real;
mass = array [byte] of char;
Var a,b:atype; c:mass; // 1 вариант
Var а,b : array [0..100] of byte; // 2 вариант
Для доступа к эл-ту массива необходимо указать имя массива и номер эл-та в []: a[4], b[3].
Для однотипных массивов можно испол операцию присваивания: a:=b;
Генерация случ массива
type mass=array [1..10] of integer;
var a:mass;
i:integer;
begin
randomize;
for i:=1 to 10 do a[i]:=random(10);
for i:=1 to 10 do write(a[i],' ');
readln; end.
Многомерный: Type matrix = array [1..5] of array [1..3] of real; //1 вариант
Type matrix = array [1..5,1..3] of real; // 2 вариант
Var m:matrix;
Доступ к элементу m[2][3] или m[2,3]
Аналогично для массивов большей размерности
Генерация случ матрицы
type matrix=array [1..5,1..3] of integer;
var a:matrix; i,j:integer;
begin
randomize;
for i:=1 to 5 do
for j:=1 to 3 do
a[i,j]:=random(10);
for i:=1 to m do begin
for j:=1 to n do write(a[i,j],' ');
writeln; end;
readln; end.
Сумма и среднее ариф эл-тов массива
type mass=array [1..10] of integer;
var a:mass; nn,i,s:integer; sa:real;
Begin
{см пример генерация массива}
nn:=10; s:=0;
for i:=1 to nn do s:=s+m[i];
sa:=sumarray(m,nn)/nn;
writeln('Summa elementov=',s);
writeln('Srednee=',sa:1:3); readln; end.
Нахождение макс и мин эл-тов
type mass=array [1..10] of integer;
var a:mass;
i,nn,s,min,max:integer;
sa:real;
//подпрограммы из предыдущих примеров
function maxarray(m:mass; nn:integer):integer;
var i,x:integer;
begin
x:=m[1];
for i:=2 to nn do
if m[i]>x then x:=m[i];
maxarray:=x;
end;
function minarray(m:mass; nn:integer):integer;
var i,x:integer;
begin
x:=m[1];
for i:=2 to nn do
if m[i]<x then x:=m[i];
minarray:=x;
end;
begin
nn:=10; a:=setarr(nn,-10,10);
max:=maxarray(a,nn); min:=minarray(a,nn);
writeln('Min=',min); writeln('Max=',max);
readln;end.
9.