ЧАСТЬ I.
Основные правила грамматики
1. Текст программы состоит из трех составных частей. Это заголовок, описания, операторы. Заголовок программы содержит имя программы. Для версии ETH необходимо дополнительно указать источник и приемник данных для работы программы - файлы для ввода и вывода информации. По умолчанию файл input связан с клавиатурой компьютера, а файл output - с экраном монитора. В Turbo Pascal заголовок имеет декоративное значение и использовать его не обязательно.
2. Описания - это символьные конструкции для описания свойств объектов программы. Все объекты программы надо обязательно указать в этой части программы. Операторы - это символьные конструкции для описания действий над объектами программы. Операторы должны находиться между словами begin и end. Эти слова считаются скобками.
3. В одной строке текста можно размещать несколько операторов или описаний. Поэтому между операторами надо обязательно ставить символ-разделитель. Для разделения операторов используется символ точка с запятой ( ; ). После последнего оператора разделитель ставить не обязательно.
4. Малые и большие буквы считаются эквивалентными (равнозначными). Имя любого объекта в записи программы может содержать только буквы латинского алфавита, цифры и символ подчеркивания ( _ ). Имя не может начинаться с цифры. Никакие другие типы символов в записи имен не разрешаются.
Общее строение программы
ETH Pascal | Пример |
program имя(ввод,вывод); | program echo(input,output); |
описания; | var n: integer; |
BEGIN | BEGIN |
оператор; | write('число?'); |
оператор; | read(n); |
оператор | write(n) |
END. | END. |
Turbo Pascal-Delphi | Пример |
program имя; | program echo; |
модули; | uses crt; |
описания; | var n: integer; |
BEGIN | BEGIN |
оператор; | clrscr; read(n); |
оператор; | write(n); |
оператор | readkey |
END. | END. |
Основные типы переменных
Тип | Описатель типа (имя) | Значение типа (пример) |
Действительный | real | 16.32 |
| | -1.6320000000E+01 |
Тип | Описатель типа (имя) | Значение типа (пример) |
Целый | integer | |
Длинный целый | longint | |
Тип | Описатель типа (имя) | Значение типа (пример) |
Символьный (литерный) | char | 'a' |
| | #13 |
Строковый | string | 'задача' |
Логический (булевский) | boolean | false |
| | true |
Интервальный | M1..M2 | |
Конструкции для описания величин
Описание переменных величин | Пример |
var | var |
имя-переменной: имя-типа; | a: real; |
имя1, имя2, имя3: имя-типа; | x, y, z: integer; |
| i, j, k: char; |
| p, q, r: 0..100; |
| s, t, u: 'a'..'z'; |
Описание постоянных величин | Пример |
const | const |
имя1 = значение1; | X = 40000; |
имя2 = значение2; | Y = 16.32; |
имя3 = значение3; | Z = -1.632E+10; |
имяN = значениеN; | A = 'a'; |
| R = #13; |
| T = 'тема'#13#10'урока:'; |
Оператор присваивания
Форма оператора | Пример |
имя := выражение | a := 0; |
| x := x + 1; |
Ввод и вывод
Процедура | Пример 1 | Пример 2 |
read(список ввода) | program echo1(input,output); | program echo2(input,output); |
readln(список ввода) | var m, n: integer; | var m, n: integer; |
write(список вывода) | BEGIN | BEGIN |
writeln(список вывода) | read(m,n); | readln(m,n); |
| write('m=',m); | writeln('m=',m); |
| write('n=',n) | writeln('n=',n) |
| END. | END. |
Число (n) | Тип | Формат вывода | Результат вывода |
| integer | write(n) | |
| integer | write(n:2) | |
| integer | write(n:5) | |
16.32 | real | write(n); | 1.6320000000E+01 |
16.32 | real | write(n:12) | 1.63200E+01 |
16.32 | real | write(n:5:2) | 16.32 |
16.32 | real | write(n:10:4) | 16.3200 |
Модуль crt (cathode ray tube)
Процедуры и функции | Операция | Пример |
clrscr | Очистить экран | clrscr |
textcolor(цвет) | Установить цвет текста | textcolor(1) |
| | textcolor(blue) |
textbackground(цвет) | Установить цвет фона | textbackground(1) |
| | textbackground(blue) |
delay(время в миллисекундах) | Остановить выполнение на заданное время | delay(1000) |
gotoxy(колонка,строка) | Установить курсор на заданную позицию | gotoxy(40,20) |
keypressed | Если была нажата клавиша, то true (функция) | repeat write('o') until keypressed |
readkey | Остановить выполнение до нажатия клавиши, прочитать код нажатой клавиши (функция) | readkey |
| | c:=readkey |
Номер и имя цвета | Номер и имя цвета |
0 black | 8 darkgray |
1 blue | 9 lightblue |
2 green | 10 lightgreen |
3 cyan | 11 lightcyan |
4 red | 12 lightred |
5 magenta | 13 lightmagenta |
6 brown | 14 yellow |
7 lightgray | 15 white |
Арифметические средства языка
Арифметическая операция | Описание операции | Пример |
+ | Сложение | |
- | Вычитание | |
* | Умножение | |
/ | Деление | 5.0/2.0 = 2.5 |
div | Целочисленное деление (деление без остатка) | 5 div 2 = 2 |
mod | Остаток от деления | 5 mod 2 = 1 |
shl | Двоичный сдвиг влево | 5 shl 1 = 10 |
shr | Двоичный сдвиг вправо | 5 shr 1 = 2 |
Функция | Результат функции | Пример |
abs(x) | Модуль числа (абсолютное значение) | abs(-2) = 2 |
sqr(x) | Квадрат числа | sqr(2) = 4 |
sqrt(x) | Квадратный корень числа | sqrt(4) = 2.0 |
pi | Число пи ~ 3.14... | |
Функция | Результат функции | Пример |
sin(x) | Синус числа | sin(pi) = 0 |
cos(x) | Косинус числа | cos(0) ~ 1.0 |
ln(x) | Логарифм натуральный | ln(1) = 0 |
exp(x) | Экспонента (число e в степени x) | exp(1) ~ 2.72 |
Функция | Результат функции | Пример |
int(x) | Целая часть числа | int(3.6) = 3.0 |
trunc(x) | Целое число без округления | trunc(3.6) = 3 |
round(x) | Целое число с округлением | round(3.6) = 4 |
ЧАСТЬ II.
Логические средства языка
Оператор условия - полная форма | Пример |
if условие then | if (x>0) and (y>0) then |
оператор 1 | begin x:=x+y; y:=0 end |
else | else |
оператор 2 | begin x:=x-y; y:=-y end |
Оператор условия - неполная форма | Пример |
if условие then | if x>y then |
оператор | x:=x mod y |
Логическая операция | Описание операции | Приоритет (порядок выполнения операции) |
not | Отрицание (НЕ) | |
and | Конъюнкция (И) | |
or | Дизъюнкция (ИЛИ) | |
xor | Сильная дизъюнкция (ИЛИ-ИЛИ) | |
Логическое отношение (предикат) | Описание отношения | Приоритет (порядок выполнения операции) |
= | Равно | |
> | Больше | |
< | Меньше | |
<> | Не равно | |
<= | Не больше (меньше или равно) | |
>= | Не меньше (больше или равно) | |
Оператор варианта | Пример |
case выражение of | case c of |
вариант-1: оператор; | 0: x:=x+1; |
вариант-2: оператор; | 1,2: x:=x-1; |
вариант-N: оператор | 3..100: x:=-x |
else | else |
оператор | x:=0 |
end | end |
Операторы цикла
Оператор цикла с управляющей переменной - форма "to" | Пример |
for имя:=значение1 to значение2 do | for i:=1 to n do |
оператор | begin read(a); s:=s+a end |
Оператор цикла с управляющей переменной - форма "downto" | Пример |
for имя:=значение1 downto значение2 do | for i:=n downto 0 do |
оператор | write(i) |
Оператор цикла с логическим пред-условием | Пример |
while условие-повторения do | while i<=n do |
оператор | begin read(a); s:=s+a; i:=i+1 end |
Оператор цикла с логическим пост-условием | Пример |
repeat | repeat |
операторы | write(i); i:=i-1 |
until условие-выхода | until i=0 |
Массивы
Тип массива | Описание массива | Пример |
Одномерный массив (вектор) | array [ тип-индекса ] of тип-элемента | var a: array [ 1..100 ] of integer; |
Тип массива | Описание массива | Пример |
2-мерный массив (матрица) | array [ тип-индекса-1, тип-индекса-2 ] of тип-элемента; | var a: array [ 1..M, 1..M ] of real; |
3-мерный массив | array [ тип-индекса-1, тип-индекса-2, тип-индекса-3 ] of тип-элемента; | var a: array [ 0..1, 0..M, 0..N ] of char; |
4-мерный массив | array [ тип-индекса-1, тип-индекса-2, тип-индекса-3, тип-индекса-4 ] of тип-элемента; | var a: array [ 0..1, 0..1, 0..1, 'a'..'z' ] of boolean; |