Конец холивара. Pascal vs C
Шрифт:
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!=1x2x3x…xn).
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), а параметры, которые будут передавать в процедуру или функцию исходные данные должны описываться как параметры-значения. Параметры при объявлении процедуры (формальные параметры) и при вызове процедуры (фактические параметры) должны соответствовать друг другу по типу данных.