Конец холивара. Pascal vs C - [3]

Шрифт
Интервал


Условный оператор

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

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) из трёх базовых управляющих структур: последовательность, ветвление и цикл. Кроме того, используются подпрограммы. Притом, разработка программы ведётся пошагово, методом “сверху вниз”. Методология структурного программирования появилась, как следствие возрастания сложности решаемых на компьютерах задач и усложнения программ.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.