Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_6W.DOC
Скачиваний:
12
Добавлен:
07.06.2015
Размер:
318.98 Кб
Скачать

8.3. Цикл For

Цикл Forсуществует во многих языках программирования. В Паскале тоже. Однако, вариант этого цикла в Паскале как эффективен, так и ограничен.

Обычно, набор операторов выполняется фиксированное число раз, пока переменная (индексная) принимает значение в указанном диапазоне. Модифицируем знакомую программу HELLOследующим образом:

Program Hello;

Var

Count: Integer;

Begin

For Count := 1 to 10 Do

WriteLn(‘Здравствуй и прощай!’);

WriteLn(‘Это конец’);

End.

При выполнении этой программы видно, что цикл Forвыполняется так же, как и циклыWhileиRepeat. Фактически эквивалентно циклуWhile. Формат циклаFor:

Forиндекс:= выражение 1toвыражение 2doоператор

Где индекс – скалярная переменная (целого типа, символьного, булевского и любого перечисленного типа);

Выражение 1 и выражение 2 – выражения типа, совместимого с типом индекса; оператор – одиночный или составной оператор. Индекс увеличивается на 1 после каждого выполнения цикла Индекс можно уменьшить на 1. Для этого ключевое слово toзаменяется наdownto.

Цикл forэквивалентен следующей программе с цикломwhile:

Index :=expr1;

While index <= expr2 do

Begin

Оператор;

Inc (index)

End;

Главный недостаток цикла for– это возможность уменьшить или увеличить индекс только на 1.

Основные преимущества – краткость, возможность использования символьного и перечислимого типа в диапазоне значений.

9. Процедуры и функции.

Вы изучили условное и итеративное выполнение операторов программы. Теперь посмотрим, как можно выполнить один и тот же набор команд в разных местах программы и с разными данными. Можно объединить эту группу операторов в подпрограмму, которую можно вызвать по необходимости.

В Паскале есть два вида подпрограмм: процедуры и функции.

Главное различие между ними – это то, что функция возвращает значение и может быть использована в выражении:

X := sin(A);

В то время, как процедура может быть вызвана:

WriteLn(“это проверка”);

Однако перед знакомством с процедурами и функциями, необходимо рассмотреть структуру программ.

10. Структура программ.

В стандартном Паскале программы имеют жесткий формат:

Programимя программы

Label

Метки;

Const

Объявление констант;

Type

Объявление типов данных;

Var

Объявление переменных;

Procedure и function;

Begin

Тело программы

End.

Наличие всех пяти секций объявлений – Label,Const,Type,Var,Procedureиfunction– в Вашей программе необязательно. Однако для стандартного Паскаля, если они присутствуют, порядок их следования строго регламентирован, и в программе они должны присутствовать только один раз. За секцией объявлений, следуют процедуры и функции, и только затем тело программы.

TurboPascalобеспечивает более гибкую структуру программы. Главное – это операторprogramдолжен быть первым, а тело программы последним. Порядок описания остальных секций жестко не регламентирован, но идентификаторы должны быть объявлены до их использования во избежание ошибок компиляции.

11. Структура процедуры и функции.

Процедуры и функции, известные под общим именем как подпрограммы могут быть описаны в любом месте программы, но до тела главной программы. Формат процедур:

Procedureимя процедуры (параметры);

Label

Метки;

Const

Объявление констант;

Type

Объявление типов данных;

Var

Объявление переменных;

Procedure, function;

Begin

Тело главной процедуры;

End.

Функции имеют такой же формат, как и процедуры, только они начинаются с заголовка functionи заканчиваются типом данных возвращаемого значения:

Functionимя функции (параметры): тип данных;

Имеются только два различия между программами, процедурами и функциями:

  • процедуры и функции имеют заголовок procedureилиfunction, соответственно, а неprogram;

  • процедуры и функции заканчиваются точкой с запятой (;), а не точкой (.).

Процедуры и функции могут иметь описание своих констант, типов данных, переменных и свои процедуры и функции. Но все эти элементы могут быть использованы только в тех процедурах и функциях, где они объявлены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]