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

Программирование в Delphi с использованием операторов цикла

  1. Цель и содержание работы

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

Целью лабораторной работы является получение студентами навыков программирования циклических алгоритмов обработки одномерных массивов.

  1. Общие сведения

Оператор цикла обеспечивает повторение некоторой последовательности операторов.

В языке Delphi имеется три вида операторов цикла. Если число повторений цикла известно заранее, то можно использовать оператор цикла с параметром (оператор FOR). В противном случае используются оператор цикла с предусловием (оператор WHILE) или оператор цикла с постусловием (оператор REPEAT).

    1. Оператор цикла с предусловием

О ператор цикла с предусловием реализует базовую алгоритмическую структуру «Цикл с предусловием» (рис. 1.).

Рис. 1. Базовая алгоритмическая структура «Цикл с предусловием».

Синтаксическая структура оператора цикла с предусловием имеет следующий вид»

While <выражение> Do < оператор>

<выражение> должно иметь значение логического типа.

Т.е. <выражение> задает условие повторения цикла, а < оператор> реализует тело цикла и коррекцию – изменение значения хотя бы одной переменной, входящей в <выражение>.

После служебного слова Do может быть записан только один оператор и обычно это составной оператор.

Пример 1: I:=1; S:=0; N:=10; { инициализация}

While I <=N Do {условие повторения}

Begin

S:=S+I; {тело цикла}

I:=I+1; {коррекция}

End;

Пример 2: Max := A[1]; I: =2; ; N:=10; { инициализация}

While I <=N Do {условие повторения}

Begin

IF A[I] >Max Then {тело цикла}

Max := A[I];

I:=I+1; {коррекция}

End;

    1. Оператор цикла с постусловием

Оператор цикла с постусловием реализует базовую алгоритмическую структуру «Цикл с постусловием» (рис. 2.).

Синтаксическая структура оператора цикла с постусловием имеет следующий вид:

Repeat

опратор;

[оператор;…

оператор;]

Until <выражение>

<выражение> должно иметь значение логического типа.

Рис. 2. Структура «Цикл с постусловием».

Семантика оператора:

Сначала выполняется последовательность операторов, затем вычисляется значение <выражения>. Выполнения оператора цикла с постусловием продолжается, если значение <выражения> равно False, и завершается, если значение <выражения> равно True.

Т. е. оператор цикла с постусловием выполняется, по крайней мере, один раз.

Пример: I:=1; S:=0; N:=10; {инициализация}

Repeat

S:=S+I; {тело цикла}

I:=I+1; {коррекция}

Until I>N; {условие выхода из цикла}

    1. Оператор цикла с параметром

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

Синтаксическая структура оператора цикла с параметром:

For <идентификатор переменной> := <выражение 1> То

<выражение 2> Do <оператор>.

или

For <идентификатор переменной> := <выражение 1> Downto

<выражение 2> Do <оператор>;

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

Значение переменной – параметра цикла, значение выражения 1, выражения 2 должны быть одного и того же простого порядкового типа.

Т.е. значение переменной – параметра цикла, выражения 1 и выражения 2 не могут быть типа Real.

Значение переменной – параметра цикла нельзя изменять в операторе, записанном после служебного слова Do.

Оператор цикла For обеспечивает выполнение оператора, называемого телом цикла, до тех пор пока не будут автоматически перебраны все значения переменной – параметра цикла.

Если параметр цикла имеет тип Integer, то значение параметра цикла последовательно увеличиваются (при For…To) или уменьшается (при For…DownTo ) на единицу при каждом повторе.Т.е. оператор цикла For в этом случае не допускает изменения параметра цикла на величину, отличную от единицы.

Пример 1: S:=0; N :=10;

For I :=1 To N Do

S:=S+I; {тело цикла}

Пример 2: Max := A[1]; I: =2; ; N :=10;

For I :=1 To N Do

IF A[I] >Max Then

Max := A[I];