Ознакомительная версия.
WRITE – писать
WRITELN – писать с переходом на новую строку
Например: WRITELN (‘X=’, X);
Вывод значений вещественной переменной с фиксированной точкой:
WRITE (X:8:3);
Где 8 – число позиций, а 3 – число позиций после точки.
+ – сложение
— – вычитание
* – умножение
/ – деление
DIV – деление нацело
MOD – остаток от деления нацело
Стандартные математические функции
ABS (X) – абсолютная величина X.
ARCTAN (X) – вычисление угла в радианах, тангенс которого равен X.
COS (X) – вычисление косинуса угла в радианах.
EXP (X) – Вычисление ex.
LN (X) – вычисление натурального логарифма от X.
PI – вычисление числа Пи.
RANDOM – вычисление случайного числа в диапазоне от 0 (включительно) до 1.
RANDOM (N) – вычисление случайного целого числа в диапазоне от 0 (включительно) до N.
ROUND (X) – округление X до ближайшего целого.
SIN (X) – вычисление синуса угла, заданного в радианах.
SQR (X) – вычисление квадрата числа X.
SQRT (X) – вычисление корня квадратного из X.
TRUNC (X) – отбрасывает дробную часть числа X.
Оператор присваивания – :=. Для удобства понимания записи алгоритмов его можно читать, например, так:
X := … – пусть X будет ….
2. Программные конструкции
2.1.1. Альтернатива (условный оператор)
Пример 1.1: Вычисление значений функции Y=1/X.
Если X ≠ 0
то писать (1/X)
иначе писать (‘0 не входит в область определения функции Y=1/X’);
IF X <> 0
THEN WRITE (1/X)
ELSE WRITE (‘0 не входит в область определения функции Y=1/X’);
IF – если.
THEN – то.
ELSE – иначе.
Блок-схема алгоритма вычисления значений этой функции:
Условный оператор
2.1.2. Неполный условный оператор
Пример 1.2: Если X <3, то вывести на печать значение X.
IF X <3 THEN WRITE (X);
Неполный условный оператор
> – больше
< – меньше
> = – не меньше
<= – не больше
= – равно
<> – не равно
AND – и.
OR – или.
NOT – не.
Пример сложного (составного) условия:
IF (Z> X) OR (X> Y) THEN…
2.1.3. Оператор варианта (переключатель)
Переключатель
Пример 1.3.1
Выбрать N из
1: писать (‘N равно единице’);
2: писать (‘N равно двум’);
3, 4: писать (‘N равно трём или четырём’)
Конец;
CASE N OF
1: WRITE (‘N равно единице’);
2: WRITE (‘N равно двум’);
3, 4: WRITE (‘N равно трём или четырём’)
END;
CASE – случай, вариант
OF – из
END – конец
Пример 1.3.2
CASE A> B OF
TRUE: M:=A;
FALSE: M:=B
END;
Такой вариант использования этого оператора соответствует условному оператору.
TRUE – истина
FALSE – ложь
FALSE <TRUE
2.2. Повторение (операторы цикла)
Циклом называется группа операторов, которая выполняется повторно. После каждого повторения проверяется условие, называемое условием окончания цикла, по которому принимается решение продолжать повторение или закончить цикл.
2.2.1. Цикл типа “пока” (цикл с предусловием)
Пример 1.4: Нахождение наибольшего общего делителя двух целых положительных чисел с помощью известного алгоритма Евклида.
Пока X ≠ Y делать
если X> Y
то X:=X-Y
иначе Y:=Y-X;
Писать (‘НОД=’, X);
WHILE X <> Y DO
IF X> Y
THEN X:=X-Y
ELSE Y:=Y-X;
WRITE (‘НОД=’, X);
WHILE – пока
DO – делать
Цикл с предусловием
2.2.2. Цикл типа “до” (цикл с постусловием)
Этот цикл выполняется не менее одного раза
Пример 1.5: Решение предыдущей задачи.
Цикл с постусловием
Повторять
если X> Y
то X:=X-Y
иначе Y:=Y-X
до X=Y;
Писать (‘НОД=’, X);
REPEAT
IF X> Y
THEN X:=X-Y
ELSE Y:=Y-X
UNTIL X=Y;
WRITE (‘НОД=’, X);
REPEAT – повторять
UNTIL – до
2.2.3. Цикл с параметром (со счётчиком)
Пример 1.6: Вычислить факториал числа (n!=1×2×3×…×n).
F:=1;
Для K:=1 до N делать
F:=F*K;
Писать (‘n!=’, F);
F :=1;
FOR K:=1 TO N DO
F:=F*K;
WRITELN (‘n!=’, F);
FOR – для
TO – до
DO – делать
Цикл с параметром
Если в этом операторе вместо TO использовать DOWNTO, то при каждой итерации значение параметра K будет уменьшаться на единицу.
3. Процедуры и функции (подпрограммы)
Подпрограммы позволяют разбить одну сложную программу на несколько более простых и решать эти отдельные задачи самостоятельно, возможно даже, что делать это будут разные программисты и в разное время. Готовую подпрограмму, в дальнейшем, можно использовать в других программах.
Функции и процедуры описываются после описания переменных.
Главное отличие процедуры от функции заключается в том, что процедура может возвращать в программу более одного значения или не возвращать совсем, а функция – всегда должна возвращать одно значение.
Вызов функции отличается от вызова процедуры, тем, что, при вызове имя функции указывается в качестве одного из операндов выражения, например, в правой части оператора присваивания.
Среди входящих в тело функции операторов должен быть хотя бы один оператор присваивания, в левой части которого стоит имя функции.
Процедуры или функции могут не иметь параметров или иметь параметры-переменные или параметры-значения. При помощи параметров производится передача данных в процедуру или функцию. Параметры, в которые записываются результаты работы процедуры и которые будут использоваться в программе должны описываться как параметры-переменные (перед ними должно стоять слово VAR), а параметры, которые будут передавать в процедуру или функцию исходные данные должны описываться как параметры-значения. Параметры при объявлении процедуры (формальные параметры) и при вызове процедуры (фактические параметры) должны соответствовать друг другу по типу данных.
Структура процедуры или функции имеет только два различия от структуры обычной программы: процедуры и функции начинаются с заголовка PROCEDURE или FUNCTION, а не с заголовка PROGRAM, и заканчиваются не точкой, а точкой с запятой.
Процедуры и функции могут иметь свои собственные константы, типы данных, переменные и даже собственные процедуры и функции. Но все эти элементы, которые называются локальными, могут использоваться только в тех процедурах и функциях, в которых они определены. Константы, типы и переменные объявленные в программе имеющей процедуру или функцию называются глобальными. Они могут быть доступны, то есть предоставлять или изменять свои значения внутри тел процедур или функций, объявленных в этой программе. Локальные элементы позволяют работать над подпрограммами разным программистам, не боясь, что, например, они могут дать имена переменным аналогичные именам переменных в других подпрограммах или в основной программе – это не повлияет на работу других подпрограмм, или основной программы.
На этом, в том числе, базируется структурное программирование. По данной методологии любая программа строится без использования оператора безусловного перехода (goto) из трёх базовых управляющих структур: последовательность, ветвление и цикл. Кроме того, используются подпрограммы. Притом, разработка программы ведётся пошагово, методом “сверху вниз”. Методология структурного программирования появилась, как следствие возрастания сложности решаемых на компьютерах задач и усложнения программ.
Пример 1.7: Функция вычисляющая факториал.
VAR A, Y : INTEGER;
FUNCTION FAKTORIAL (N : INTEGER) : INTEGER;
VAR F, K : INTEGER;
BEGIN
F := 1;
FOR K := 1 TO N DO
F := F * K;
FAKTORIAL := F
END;
BEGIN
WRITELN (‘ВВЕДИТЕ ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ ЧИСЛО’);
READLN (A);
Y := FAKTORIAL (A);
WRITELN (‘N!=’, Y);
Ознакомительная версия.