- •Программирование в Delphi с использованием операторов цикла
- •Цель и содержание работы
- •Общие сведения
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Структура данных массив
- •Описание массива
- •Компоненты Delphi, используемые для ввода/вывода массивов
- •Пример программирования с использованием одномерного массива
- •Разработка алгоритма
- •Разработка интерфейса пользователя
- •Текст модуля
- •Задания к лабораторной работе
Программирование в Delphi с использованием операторов цикла
-
Цель и содержание работы
В данной лабораторной работе изучаются операторы цикла языка Delphi на примере решения задач обработки данных, представленных одномерными массивами.
Целью лабораторной работы является получение студентами навыков программирования циклических алгоритмов обработки одномерных массивов.
-
Общие сведения
Оператор цикла обеспечивает повторение некоторой последовательности операторов.
В языке Delphi имеется три вида операторов цикла. Если число повторений цикла известно заранее, то можно использовать оператор цикла с параметром (оператор FOR). В противном случае используются оператор цикла с предусловием (оператор WHILE) или оператор цикла с постусловием (оператор REPEAT).
-
Оператор цикла с предусловием
О ператор цикла с предусловием реализует базовую алгоритмическую структуру «Цикл с предусловием» (рис. 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;
-
Оператор цикла с постусловием
Оператор цикла с постусловием реализует базовую алгоритмическую структуру «Цикл с постусловием» (рис. 2.).
Синтаксическая структура оператора цикла с постусловием имеет следующий вид:
Repeat
опратор;
[оператор;…
оператор;]
Until <выражение>
<выражение> должно иметь значение логического типа.
Рис. 2. Структура «Цикл с постусловием».
Семантика оператора:
Сначала выполняется последовательность операторов, затем вычисляется значение <выражения>. Выполнения оператора цикла с постусловием продолжается, если значение <выражения> равно False, и завершается, если значение <выражения> равно True.
Т. е. оператор цикла с постусловием выполняется, по крайней мере, один раз.
Пример: I:=1; S:=0; N:=10; {инициализация}
Repeat
S:=S+I; {тело цикла}
I:=I+1; {коррекция}
Until I>N; {условие выхода из цикла}
-
Оператор цикла с параметром
Оператор цикла с параметром используется в тех случаях, когда известно число повторений цикла, а также при обработке данных, представленных массивами.
Синтаксическая структура оператора цикла с параметром:
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];