Организация ввода-вывода данных

Циклы

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

Многократно выполняемые последовательности операторов называют циклами, а изменяющиеся в цикле переменные – переменными цикла.

Алгоритм циклической структуры должен содержать:

P Подготовку цикла – задание начальных значений переменных цикла перед первым его выполнением;

P Тело цикла – операторы, которые выполняются при различных значениях переменных цикла;

P Изменение значений переменных цикла перед его новым повторением;

P Управление циклом – проверку условия окончания цикла или перехода на начало тела цикла.

В Delphi для этой цели существуют два вида элементарных циклических структур:

- циклы с параметром;

- циклы с условием.

Циклы с параметром. Если количество повторов тела цикла заранее известно, то обычно используют так называемые циклы с параметром.

Схематично такой цикл может быть изображен следующим образом: Циклы с параметром реализуются с помощью оператора For. Он может быть представлен в двух форматах: For Счетчик:=S1 To S2 Do Тело цикла; For Счетчик:=S1 DownTo S2 Do Тело цикла; где Счетчик – параметр цикла порядкового типа (целого, символьного, логического, и т.п.); S1 и S2 – выражения, определяющие начальное и конечное значение параметра цикла; Тело цикла – простой или составной оператор. Цикл повторяется пока значение параметра цикла лежит в интервале [S1,S2], причем эти выражения S1 и S2 вычисляются только один раз в начале цикла. Необходимо, чтобы параметр цикла, начальное и конечное значения были одного типа. Этот тип не может быть вещественным. В первом варианте при каждом повторении цикла значение параметра цикла увеличивается на 1, во втором – уменьшается на 1. Если начальное значение параметра цикла превышает конечное значение, при шаге цикла равным 1, то тело цикла ни разу не будет выполнено.

Циклы с условием используются тогда, когда число повторений тела цикла заранее неизвестно, но задано условие окончания цикла. Причем, если условие окончания цикла проверяется перед выполнением тела цикла, то такие циклические структуры называют циклами с предусловием («Выполнять пока»), а если проверка условия происходит после выполнения тела цикла – циклами с постусловием («Выполнять до тех пор, пока»).

На практике циклы с условием чаще всего используют в двух случаях:

- Число повторений заранее неизвестно (например, цикл до достижения требуемой точности результата).

- Число повторений заранее известно, но шаг параметра цикла не равен 1
(или –1).

Циклы с предусловием
Схематично изображаются следующим образом: Реализуются с помощью оператора While Формат оператора цикла с предусловием While: While Условие Do Тело цикла; Тело цикла может быть простым или составным оператором. Значение логического выражения в условии вычисляется перед каждым выполнением тела цикла. Если значение истинно, то тело цикла выполняется и снова вычисляется выражение условия. Если результат имеет ложное значение, происходит выход из цикла.
Циклы с постусловием
Схематично изображаются следующим образом: Реализуются с помощью оператора Repeat … Until. Формат оператора цикла с постусловием Repeat … Until: Repeat … Тело цикла Until Условие; Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если значение логического выражения ложно, тело цикла выполняется еще раз, если истинно – происходит выход из цикла. Тело цикла с постусловием выполняется всегда хотя бы один раз.

Замечание 1. Чтобы циклы с предусловием и постусловием успешно завершился необходимо, чтобы в теле цикла был хотя бы один оператор, изменяющий значения, входящих в логическое выражение переменных.

Замечание 2.При использовании цикла с постусловием нет необходимости в операторных скобках.

Ввод значений переменных можно осуществить:

- С помощью функции InputBox, которая при выполнении программы выводит на экран свое собственное диалоговое окно.

- С помощью текстового окна Edit. В этом случае в событийной процедуре должен быть записан программный код, в котором используется свойство Тext этого объекта:

Поскольку возвращаемое функцией InputBox значение, также как и свойство Text имеют тип String, то, при вводе числовых данных необходимо использовать следующие функции или процедуры преобразования типов:

Обращение к функции Описание
StrToInt(S) Преобразование строки S в целое число
StrToFloat(S) Преобразование строки S в вещественное число. В качестве разделителя используется запятая.
Обращение к процедуре Описание
Val(S,F,Code) Преобразование строки S в переменную F, согласно объявленному типу. Code – тип Integer. В качестве разделителя используется точка. Значение параметра Code равно нулю, если преобразование прошло успешно

Замечание. Строка S не должна содержать недопустимые для типа символы. В противном случае возникает сообщение об ошибке.

Вывод результатов можно оформить:

- В текстовое окно Edit, изменяя его свойство Text;

- На метку Label, изменяя ее свойство Caption;

- С помощью процедуры ShowMessage(), которая при выполнении активизирует свое собственное окно сообщений на экране.

Поскольку свойство Text, Caption и параметр
ShowMessage имеют тип String, то, при выводе числовых данных необходимо использовать следующие функции или процедуры преобразования типов для безформатного вывода:

Обращение к функции Описание
FloatToStr(x) Преобразование вещественного числа x в строку
IntToStr(x) Преобразование целого числа x в строку

Пример программного кода ввода/вывода числовых данных:

Procedure TForm1.Button1Click(Sender: TObject);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: