Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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 (Таймер) с панели System. Компонент TTimer можно рассматривать как циклический оператор, в котором цикл повторяется через задаваемый интервал времени. Компонент Timer является невизуальным, т.е. во время работы программы он не отображается на форме. Поэтому его значок можно поместить в любое место формы. У таймера главным событием является OnTimer, которое возникает после заданного интервала времени.
Основные свойства TTimer
Рассмотрим работу таймера на примере задачи №13 из заданий к параграфу 5.13
Для создания графического интерфейса проекта поместим на форму кнопку и таймер. У компонента таймер установим свойство Interval равным 250 (¼ секунды).
Рис. 119 Графический интерфейс проекта
Дважды щелкнем по таймеру, при этом откроется обработчик события OnTimer, в который запишем оператор, заставляющий кнопку двигаться слева направо с интервалом в 50 точек.
С помощью таймера можно также вывести на форму текущее время.
Разместим на форме компоненты надпись и таймер, зададим интервал у таймера равным 1 секунде (значение 1000). Надпись будет нужна для вывода текущего времени.
Рис. 120 Графический интерфейс проекта
Введем дополнительную переменную а типа TDateTime (дата/время). В эту переменную запишем текущее время, используя стандартную функцию Time. Затем преобразуем его в текстовое представление с помощью функции TimeToStr. Обработчик события OnTimer запишется следующим образом:
Рис. 121 Окно проекта «Электронные часы»
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 448; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.126.33 (0.007 с.) |