Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 3 курс Pascal.doc
Скачиваний:
17
Добавлен:
18.11.2019
Размер:
826 Кб
Скачать
☆

Двумерные массивы

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

a11

a12

a13

…

a1n

a21

a22

a23

…

a2n

…

…

…

…

…

am1

am2

am3

…

amn

Первый индекс указывает на номер строки, второй – на номер столбца. В Pascal 2-мерные массивы могут быть описаны так:

Var

A: array [1..3, 1..4] of integer;

Например, так может быть описан массив:

7

10

-2

0

4

-1

3

5

9

11

-5

8

A[1,1]=7;

A[2,1]=4;

A[2,3]=3

A[3,4]=8

В Pascal 2-мерные массивы можно рассматривать как массив массивов. Допускается следующее описание:

Var

A: array[1..3] of array [1..4] of integer;

В памяти компьютера 2-мерный массив хранится построчно: сначала элементы первой строки, затем второй и т.д.

Для формирования и обработки 2-мерных массивов необходимо использовать вложенные циклы.

Пример. Сформировать и вывести на экран в идее таблицы массив a[1..3, 1..4], заполнив его целыми случайными числами.

A[I,j] – очередной элемент массива, I – номер строки, j – номер столбца.

Program primer;

Var

A: array[1..3, 1..4] of integer;

I,j: integer;

Begin

For I:=1 to 3

Begin

For j:=1 to 4 do

Begin

A[I,j]:=random(100);

Write(a[I,j]:4);

End;

Writeln;

End;

Readln;

End.

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

Пример 6. Сформировать двумерный массив вида:

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

Program primer;

Var

a: array [1..5, 1..5] of integer;

i, j: integer;

Begin

For i:=1 to 5 do

begin

For j:=1 to 5 do

begin

if i=j then a[i, j]:= 1 else a[i, j]:=0;

Write(a[ i, j]:3);

end;

Writeln;

end;

Readln;

End.

Пример 7. Вывести на экран матрицу размером M*N, элементами которой являются целые случайные числа из интервала [-9,9]. Определить минимальный элемент в каждой строке.

Program primer;

Const m=5, n=4;

Var a: array[1..m,1..n] of integer;

min, k, j, i : integer;

begin

randomize;

for i:=1 to m do begin

for j:=1 to n do begin

a[i,j]:=random(18+1)-9; write(a[i,j]);

end;

writeln;

end;

for i:=1 to m do begin

min:=a[i,1]; for j:=2 to n do

if min>a[i,j] then min:=a[i,j] ;

writeln(min);

end;

end.

Обработка строк и символов

Для обработки текстовой информации в Pascal используются переменные символьного и строкового типов. Переменные символьного типа описывабтся с помощью служебного слова char.

Var

C: char;

Значением такой переменной может быть один любой символ. Например, c:=’A’, c:=’1’, c:=’*’.

В памяти компьютера хранится не сам символ, а его ASCII-код – число, поставленное в соответствие данному символу. Для кодировки используется таблица ASCII-кодов (0…255).

Символ

ASCII-код

0

48

1

49

…

…

9

57

А

65

B

66

…

…

Z

90

a

97

b

98

…

…

z

122

Для определения ASCII кода символа используется функция ORD. Например, Ord(‘A’)=65; Ord(‘ ‘)=32;

Для преобразования кода символа в соответствующий ему символ используется функция CHR. Например, Chr(65)=’A’; Chr(48)=’0’;

Пример. Вывести символы латинского алфавита и соответствующие им ASCII-коды.

Program primer;

Var

C:char;

Begin

For c:=’A’ to ‘Z’ do

Writeln(c, ord(c):5);

Readln;

End.

Program primer;

Var

n:integer;

Begin

For n:=65 to 90 do

Writeln(chr(n), n:5);

Readln;

End.

Переменные строкового типа в Pascal объявляются с помощью служебного слова string.

Var

St:string;

Максимальная длина строки 255 строки. Однако, можно ограничить длину строки, указав максимальное количество символов:

Var

St:string [10];

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

St:=’мир’;

St[1]=’м’;

St[2]=’и’;

St[3]=’р’;

Над строками допускается выполнение операций объединения (присоединение, конкатенация), сравнения. Операция объединения обозначается «+» (не путать со сравнением чисел). Объединенные строки присоединяются одна к другой.

St1:=’пар’;

St2:=’ход’;

St:=st1+’о’+st2;

St=’пароход’;

Сравнение строк осуществляется по их первым символам. Если они равны, то по вторым и т.д. Сравнение происходит по ASCII-кодам. Большим будет символ, который расположен в алфавите дальше. ‘Мама’<’Папа’; ‘рыба’>’рак’.