Арифметические средства языка
ЧАСТЬ 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; |