- •Содержание
- •Линейные алгоритмы
- •Язык программирования Turbo Passcal
- •Типы переменных в Паскале:
- •Стандартные операции и функции от скалярных данных.
- •Структура программы на Pascal
- •Команда присваивания
- •Команды ввода и вывода
- •Справка по работе с системой Turbo Pascal
- •Условный оператор, оператор множественного выбора Алгоритмы с ветвлением
- •Ветвление в Pascal Логические выражения
- •Логические операции
- •Команды ветвления
- •1. Условный оператор if
- •2. Оператор Case.
- •3. Команда безусловного перехода goto
- •Циклы Алгоритмы с циклами
- •1. Цикл с предусловием
- •2. Цикл с постусловием.
- •Циклы в Pascal
- •1. Цикл с параметром
- •2. Цикл с предусловием.
- •3. Цикл с постусловием
- •Вложенные циклы
- •Подпрограммы
- •Функции пользователя
- •Процедуры
- •Массивы Одномерные массивы
- •Стандартные задачи обработки массивов:
- •Двумерные массивы
- •Обработка строк и символов
- •Процедуры и функции обработки строк.
- •Основные алгоритмы обработки строк
- •Графика в Pascal
- •Основные графические процедуры и функции
- •Работа с файлами
- •Процедуры и функции для работы с файлами.
Двумерные массивы
Массивы, в которых положение каждого элемента определяется двумя индексами, называется двумерным. Двумерный массив можно рассматривать как таблицу, состоящую из заданного числа строк и столбцов. Ее можно представить как
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-кодам. Большим будет символ, который расположен в алфавите дальше. ‘Мама’<’Папа’; ‘рыба’>’рак’.
