Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системный анализ и управление.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
613.89 Кб
Скачать

Вложенные условия. Операторы if могут быть вложены друг в друга произвольное число раз:

if X > 10 then

if X < 20 then

Label1.Caption := 'Значение X заключено между 10 и 20';

Имейте в виду, что это упрощенный пример. В сложной последовательности вложений легко запутаться, особенно когда много begin – end операторов выделяют блоки кода:

if X > 100 then begin

Y := 20;

if X > 200 then begin

Y := 40;

if X > 400 then begin

Y := 60;

DoSomething(Y);

end;

end;

end else if X < -100 then begin

Y := -20;

if X < -200 then begin

Y := -40;

if X < -400 then begin

Y := -60;

DoSomething(Y);

end;

end;

end;

ПРИМЕЧАНИЕ. Если фрагмент кода содержит две и более последовательностей условий, проверяющих значения одной и той же переменной, то вместо условного оператора лучше применить оператор case (см. ниже).

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

if (X = 20) and (Y = 50) then DoSomething;

Циклы

Элементы структуры цикла

Циклы и их использование – важный аспект программирования. Выполнение повторяющихся действий с различными исходными данными – типичная работа любого компьютера.

В этом разделе мы рассмотрим общие понятия и типы циклов Object Pascal: for, while и repeat.

Цикл – это программная структура, повторяющая выполнение группы операторов определенное число раз.

В любом цикле присутствуют:

  • Точка начала цикла.

  • Тело цикла. Обычно это блок begin – end, содержащий многократно выполняемые операторы.

  • Точка окончания.

  • Условие окончания цикла.

  • Средства принудительного окончания цикла .

Точкой начала цикла является одно из ключевых слов for, while, или repeat.

Тело цикла состоит из операторов, которые выполняются на каждой итерации цикла. В теле цикла могут присутствовать любые допустимые операторы Object Pascal и в количестве от одного до нескольких. Если тело цикла образовано несколькими операторами, их необходимо ограничить словами begin и end (за исключением цикла repeat). Если тело цикла – один оператор, begin – end не нужны.

Точкой окончания цикла является либо ключевое слово end (for- или while- циклы) или ключевое слово until (цикл repeat). Если тело цикла состоит из единственного оператора, то точка окончания цикла есть (;).

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

Исключением из этого правила является цикл repeat, который проверяет условие в точке окончания цикла, а не в начале.

Условие цикла необходимо для определения момента выхода из него, например: «Это надо повторять до тех пор (until) когда X станет равным 10», или «Продолжать чтение файла пока (while) есть непрочитанные записи».

ПРЕДУПРЕЖДЕНИЕ. Очень легко создать «бесконечный» цикл. При входе в бесконечный цикл программа перестает реагировать на внешние воздействия – «зависает». Если это случилось, нажмите Ctrl+Alt+Del. Появится диалоговое окно Close Program ( в Windows NT – Task Manager) с сообщением «Программа не отвечает». Выберите имя программы и нажмите кнопку End Task («Снять задачу»).

Если вы запустили программу из среды Delphi кнопкой Run (F9) и программа зависла, попробуйте в главном меню Delphi выбрать Run | Program Reset или нажмите Ctrl+F2. Учтите, что Windows 95 реагирует на команду Program Reset не совсем адекватно и может зависнуть сама. В этом смысле Windows NT более надежна. По возможности дайте своей программе доработать до конца, особенно в среде Windows 95.

Теперь рассмотрим каждую разновидность цикла более подробно.