Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритмическая структура «Цикл».Содержание книги
Поиск на нашем сайте Операторы повторений. В алгоритмическую структуру «цикл» входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла. Циклические алгоритмические структуры бывают двух типов: - циклы со счетчиком, в которых тело цикла выполняется определенное количество раз; - циклы с условием, в которых тело цикла выполняется, пока условие истинно. В языке Delphi имеются три оператора, с помощью которых можно реализовать алгоритмическую структуру «цикл».
1. Счетный оператор цикла For имеет следующую структуру: For <параметр цикла>:= <нач.знач> to <кон.знач> do <оператор>; Здесь For, to, do – зарезервированные слова (для, до, выполнить); <параметр цикла> - переменная любого порядкового типа; <нач.знач> - начальное значение – выражение того же типа; <кон.знач> - конечное значение – выражение того же типа; <оператор> - произвольный оператор Delphi. Блок схема цикла со счетчиком имеет вид рис. 109.
Рис. 109 Блок-схема выполнения цикла со счетчиком
Оператор For работает следующим образом. Сначала вычисляется выражение <нач.знач> и осуществляется присваивание параметру цикла начального значения. После этого циклически повторяется: - проверка условия <параметр_цикла>:=<кон_знач>; если условие выполнено, оператор For завершает свою работу; - выполнение оператора <оператор>; - наращивание переменной <параметр цикла> на единицу. Можно использовать изображение блок-схемы с блоком модификации.
Рис. 110 Блок-схема цикла со счетчиком с блоком модификации.
Оператор For выполняет циклически только один оператор. Если нужно выполнить в цикле последовательность операторов, их необходимо заключить в операторные скобки begin.. end.
Создадим графический интерфейс проекта по образцу рис. 111.
Рис. 111 Окно подсчета суммы
Алгоритм вычисления суммы представим в виде блок-схемы (рис. 112):
Рис. 112 Блок-схема подсчета суммы чисел от 1 до n.
Текст обработчика события OnClick для кнопки будет следующим:
Цикл for выполняется от 0 до числа, введённого в компонент Edit1.
Рис. 113 Работающее приложение
Следует отметить еще два обстоятельства. Во-первых, условие, управляющее работой оператора For, проверяется перед выполнением оператора. Если условие не выполняется в самом начале работы оператора, то он не выполнится ни разу. Другое обстоятельство – шаг наращивания параметра строго постоянен и равен (+1). Существует другая форма оператора: For <параметр цикла>:= <нач.знач> downto <кон.знач> do <оператор>; Замена зарезервированного слова to на downto означает, что шаг наращивания параметра цикла равен (-1), а управляющее условие приобретает вид <параметр цикла>:= <кон.знач>. Отличие оператора For..to..do от For..downto..do заключается в том, что первый оператор организует прямой цикл (начальное значение всегда должно быть меньше конечного), а второй – обратный (начальное значение должно быть больше конечного).
2. Оператор цикла While с предпроверкой условия: While <условие> do <оператор>; Здесь while, do – зарезервированные слова (пока [выполняется условие], делать); <условие> - выражение логического типа; <оператор> - произвольный оператор Delphi. Блок-схема цикла с предусловием имеет вид рис. 114.
Рис. 114 Блок-схема цикла с предусловием
Оператор начинает свою работу с вычисления и проверки условия. Если условие выполняется, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> не выполняется, то оператор цикла while прекращает работу. При использовании оператора цикла While следует иметь в виду, что он выполняет циклически только один оператор. Если нужно выполнить в цикле последовательность операторов, их необходимо заключить в операторные скобки begin.. end. В теле цикла While должен быть хотя бы один оператор, влияющий на изменение значения параметра условия. В противном случае произойдет зацикливание программы. Предыдущий пример с использованием цикла while будет выглядеть следующим образом:
3. Оператор цикла Repeat с постпроверкой условия: Repeat <тело цикла> until <условие> Здесь repeat, until – зарезервированные слова (повторять [до тех пор], пока [не будет выполнено условие]); <тело цикла> - произвольная последовательность операторов Delphi; <условие> - выражение логического типа. Оператор цикла с постпроверкой условия целесообразно использовать в тех случаях, когда тело цикла нужно выполнить не менее одного раза и заранее не известно общее количество повторений цикла. Блок-схема цикла с постусловием представлена на рис. 114.
Рис. 115 Блок-схема цикла с постусловием
Операторы, заключенные между словами repeat и until, составляют тело цикла и выполняются до тех пор, пока не выполнится условие. Так как условие проверяется в конце цикла, то операторы цикла проверяются минимум один раз. В теле цикла может находиться произвольное число операторов без операторных скобок. Необходимо учитывать, что, по крайней мере, один из операторов тела цикла должен влиять на изменения значения параметра условия. В противном случае произойдет зацикливание программы. C использованием цикла Repeat пример будет выглядеть так:
Задания
а) 2n; б) n!; в) г) n корней
а) а(а + 1)(а + 2)…(а + n - 1); б) в) sin(a) +sin2(a) + sin3(a) + … + sinn(a)
Рис. 116 Окно работающего приложения
Рис. 117 Окно работающего приложения
Рис. 118 Графический интерфейс проекта «Вклад»
Компонент TTimer Кроме рассмотренных циклических операторов в среде программирования Delphi для реализации повторения действий часто используется компонент TTimer (Таймер) У таймера главным событием является OnTimer, которое возникает после заданного интервала времени.
Основные свойства TTimer
Рассмотрим работу таймера на примере задачи №13 из заданий к параграфу 5.13
Для создания графического интерфейса проекта поместим на форму кнопку и таймер. У компонента таймер установим свойство Interval равным 250 (¼ секунды).
Рис. 119 Графический интерфейс проекта
Дважды щелкнем по таймеру, при этом откроется обработчик события OnTimer, в который запишем оператор, заставляющий кнопку двигаться слева направо с интервалом в 50 точек.
С помощью таймера можно также вывести на форму текущее время.
Разместим на форме компоненты надпись и таймер, зададим интервал у таймера равным 1 секунде (значение 1000). Надпись будет нужна для вывода текущего времени.
Рис. 120 Графический интерфейс проекта
Введем дополнительную переменную а типа TDateTime (дата/время). В эту переменную запишем текущее время, используя стандартную функцию Time. Затем преобразуем его в текстовое представление с помощью функции TimeToStr. Обработчик события OnTimer запишется следующим образом:
Рис. 121 Окно проекта «Электронные часы»
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 530; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.007 с.) |