Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_пас_3.doc
Скачиваний:
111
Добавлен:
04.11.2018
Размер:
13.31 Mб
Скачать

2.5.4. Многомерные массивы

В математике часто используются многомерные массивы. Для реализации их в Паскале достаточно задать массив, компонентами которого также являются массивы. Т.е. в этом случае при задании массива базовый тип тоже массив. Так можно задать массив любой размерности.

Например: array [ 1..10 ] of array [ 1..20 ] of real - задает матрицу

( двумерный массив ) из 200 вещественных чисел. Это же более компактно можно записать так:

array [1..10, 1..20] of real.

Для обращения к элементу такого двумерного массива надо написать имя массива и за ним в квадратных скобках два индекса через запятую.

Рассмотрим пример программы, которая по исходной матрице A размером 10 на 5 строит массив B, содержащий суммы элементов строк матрицы. Для этого придется организовать два цикла: один для перебора строк матрицы (внешний цикл) и в теле этого цикла - второй, считающий сумму элементов строки.

Program Summat;

Type mat = array [1..10,1..5] of real;

vect = array [1..10 ] of real;

Var a: mat;

b: vect;

i, j : integer;

Begin

Writeln(‘ Введите матрицу ‘)

For i := 1 to 10 DO

For j := 1 to 5 DO

Readln( a[ i, j ] );

{ цикл для перебору строк }

For i := 1 to 10 Do

Begin

b[ i ]:= 0;

{ цикл для суммирования i-ой строки}

For j := 1 tj 5 Do

b[i] := b[i] + a [ i,j ];

End;

{ вывод массива b }

For j := 1 to 5 do

Write ( b[ j ] )

End.

2.5.5.Комбинированные типы (записи)

Значение переменной типа записи состоит из многих компонентов. В этом смысле запись похожа на массив, но массив это совокупность однотипных компонентов, а запись состоит из полей, каждому из которых задается свой тип.

Комбинированный тип задается следующим образом:

record

список полей

end

В этом выражении список полей зто перечисленные через точку с запятой имена полей с указанием их типов. Например, если необходимо хранить фамилию и год рождения студента, то для этого можно ввести переменную stud типа записи:

VAR stud : record

fio: string;

gr: integer;

end;

Чтобы обратиться к полю записи, необходимо написать имя переменной комбинированного типа и за ним через точку – имя поля. Например, для обращения к имени студента надо написать:

stud.fio

2.6. Подпрограммы

В Паскале имеется две разновидности подпрограмм: процедуры и функции. Подпрограмма является составной частью программы, ее текст помещается в разделе описаний программы. Структура подпрограммы аналогична структуре всей программы. В процессе выполнения программы подпрограмма может выполняться многократно для различных значений входных параметров.

При проектировании алгоритмов “сверху - вниз” целесообразно укрупненные блоки оформлять в виде подпрограмм.