4705

Циклические структуры

Лекция

Информатика, кибернетика и программирование

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

Русский

2012-11-24

2.34 MB

29 чел.

Циклические структуры

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

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

         итерационные циклы или циклы с условием.

Циклы с параметром используют тогда, когда количество повторов тела цикла заранее известно. В языке Pascal циклы с параметром реализуются с помощью оператора For.

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

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

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

В языке Pascal итерационные циклы с предусловием реализуются с помощью оператора While, а итерационные циклы с постусловием - с помощью оператора RepeatUntil.

Оператор FOR 

Цикл с параметром (счетчик)

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

Синтаксис оператора For:

Формат оператора:

for (параметр):=(начальное значение) to/ downto (конечное значение) do(оператор);

Значения параметра могут быть только порядкового типа, и шаг изменения параметра может быть только +1 (to) или -1 (downto). Цикл выполняется до тех пор, пока параметр цикла меньше или равен конечному значению.

Примеры:

  1.  Протабулировать функцию (найти значения функции) y=sin x на отрезке [a, b] с шагом h.

Программа, реализующая данный алгоритм имеет вид:

  1.  Вычислить сумму конечного ряда, т.е. сумму первых n членов последовательности   (k=1,2,3..,n).

Программа, реализующая данный алгоритм будет иметь вид:

Цикл с предусловием While

Цикл с предусловием выполняется до тех пор, пока условие истинно. С предусловием, потому, что условие стоит перед телом цикла.

Формат оператора:

while (условие) do (оператор);

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

Пример. Подсчитать количество цифр в заданном целом числе.

Цикл с постусловием

Бывает такая ситуация, что надо получить результаты первой итерации цикла, а только потом проверять выполнение условия. В этом случае можно воспользоваться оператором repeatuntil.

Обеспечивается работа оператора repeat, пока не выполнится условие. Формат оператора:

repeat

(операторы)

until (условие);

Пример. Вычислить сумму бесконечного ряда с заданной точностью Eps, (т.е. вычислить сумму всех членов последовательности, не меньших заданного числа Eps).

Компонент Memo (многострочное окно редактирования). Используется для ввода, отображения и редактирования многострочных текстов. Относится к группе Standard.

Alignment

Задает режим выравнивания текста внутри Memo.

AutoSize

Задает необходимость изменения размера компонента при изменении размера шрифта.

BorderStyle

Задается стиль обрамления Memo.

Color

Задает цвет, которым изображается элемент Memo на экране.

Lines

Определяет текст, который будет выведен построчно в окне Memo при запуске программы. Текст задается в окне String List Editor 

MaxLength

Позволяет ограничивать число вводимых пользователем символов.

ScrollBars

Задает наличие полос прокрутки.

Text 

Используется, чтобы получить текст компонента Memo как одну строку. Значение этого свойства не отображается в окне Object Inspector, к нему можно обратиться только во время выполнения программы.

 Пример использования в программе

1.   Заполнение Memo с использованием свойства Text на примере табулирования функции.

2.      Тот же пример, но Memo заполняется с использованием свойства Lines. Метод Add, примененный к Lines позволяет добавить строку в Memo. Оператор memo1.Lines[0]:=’  x  |  y  ’; задает первую строку в Memo .

Работа с кнопкой

 Delphi предоставляет большой выбор кнопок (Button, BitBtn, SpeedButton, MainMenu), но работа со всеми эти компонентами имеет много общего: кнопки служат для ввода некоторой информации и перехода к дальнейшим действиям программы. У кнопок есть заголовок (свойство Caption) и метод «нажать на кнопку» -  onClick. BitBtn отличается от Button тем, что у первого имеется свойство Glyph, в которое можно загрузить картинку (конечный путь всегда одинаков: Program Files\Common Files\Borland Shared\Images\Buttons). Также у компонента BitBtn имеется свойство Kind, которое может принимать следующие значения, представленные на рисунке. При этом на кнопке появится соответствующая картинка. Если для кнопки установлено значение свойства Kind в bkClose, то при нажатии на данную кнопку будет закрываться текущее окно. Более подробное объяснение применению данного свойства будет рассмотрено ниже (работа с формой).

Значения свойства Kind

При выборе пользователем компонента мышью, ее курсор может принимать различные виды (песочные часы, рука и т.д.), если программист настроил свойство Cursor. Также можно настроить подсказку (высвечивается текст в прямоугольнике рядом с компонентом при наведении на него мышью). Для этого выбираем свойство Hint, в который печатаем необходимый текст, свойство ShowHint типа Boolean устанавливаем в значение True.

Значение свойства Cursor

Значение свойства Hint и ShowHint

Компонент Image (графический образ). Позволяет отображать рисунок, загруженный из графического файла. Относится к группе Additional.

Align

Задает режим выравнивания расположения объекта Image внутри формы.

Picture 

Задает имя файла графического файла с рисунком с помощью окна Picture Editor.

Streth 

Задает разрешение на автоматическое масштабирование рисунка относительно Image.

Рекуррентная формула

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

Как правило, в этом случае рекуррентная формула имеет вид:      , откуда, зная общий член последовательности, можно будет найти коэффициент С, на который нужно умножать каждый предыдущий член последовательности, чтобы найти следующий: 

Пример. Вычислить сумму бесконечного ряда:

Найдем коэффициент C, разделив (k+1)-ое слагаемое на k–ое:

Таким образом, очередной член ряда можно вычислить по рекуррентной формуле:

Подпрограммы

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

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

Работа с любой подпрограммой включает в себя два этапа: описание подпрограммы и ее вызов.

Подпрограммы делятся на два вида: функции и процедуры, которые отличаются тем, что функция может под своим именем возвращать значение в качестве результата.

Процедуры

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

Структура процедуры

Procedure <имя процедуры> (список формальных параметров);
 
<Раздел описаний программного кода процедуры>
 
Begin
  <Операторы тела процедуры>
 
End;

Список формальных параметров может включать:

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

-     параметры-переменные или выходные параметры, получающие свое конкретное значение в результате работы процедуры (определяют выходные данные процедуры). Перед перечислением параметров-переменных в списке формальных параметров должно стоять ключевое слово var.

-     Каждый параметр имеет имя и тип, указанный через «:». Параметры отделяются друг от друга «;»

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

Функции

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

Блок функции аналогичен блоку процедур. В теле функции необходим хотя бы один оператор присваивания, в левой части которого стоит имя функции (лучше использовать вместо имени функции переменную  Result).

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

Параметры и аргументы

Параметры являются элементами  подпрограммы и используются при описании ее алгоритма. Аргументы указываются при вызове подпрограммы и замещают параметры при выполнении подпрограммы. Параметры могут быть любого типа, включая структурированный. Существуют следующие виды параметров:

  1.  Значение
  2.  Константа
  3.  Переменная
  4.  Нетипизированная константа и переменная

Группа параметров, перед которыми в заголовке подпрограммы отсутствуют слова var или const и за которыми следует указание их типа, называются параметрами-значениями. В подпрограмме значения таких параметров можно изменять, но эти изменения не влияют на значение соответствующих им аргументов, которые были подставлены вместо фактических параметров-значений.

.

Рекурсия

Слово «рекурсия» происходит от латинского слова «recursio» - возвращение.

Если процедура (или функция) обращается сама к себе как к процедуре (или функции) непосредственно или через цепочку подпрограмм, то это называется рекурсией.

Для того, чтобы подобного типа программы не зацикливались (что очень реально), в первую очередь, необходимо обеспечить выход из рекурсии.


 

А также другие работы, которые могут Вас заинтересовать

21369. Аппаратура передающего тракта : усилитель мощности АСП Р325У 121.71 KB
  Устройство и принцип работы АСП Р 325У и Р378АБ Занятие №11Аппаратура передающего тракта : усилитель мощности АСП Р325У ВНИМАНИЕ: В зависимости от времени изготовления изделия названия блоков и некоторые обозначения в функциопальных и принципиальных схемах технической документации могут отличаться от приведённых в пособии; имеют место некоторые разночтения в эксплуатационной документации по причине недостаточно тщательной её проработки изготовителем Пользуйтесь конкретной...
21370. Антенно- фидерные системы АСП Р325У и Р378А,Б 736.89 KB
  ПЕРЕДАЮЩАЯ АФС СТАНЦИИ Р325У Передающая АФС состоит из одной широкодиапазонной антенны ГУ107 которая обеспечивает секторное излучение земных волн во всём диапазоне частот. У опорных стоек и у основания мачты к проводам антенны подключаются нагрузочные сопротивления кабельного типа длиной по 100м. Для согласования двухпроводного фидера антенны с несимметричным выходом передатчика служит согласующесимметрирующий трансформатор блок ГУ462. У опорных стоек и у основания мачты к проводам антенны...
21371. Устройство управления станцией Р325У и Р378А,Б 44.95 KB
  Назначение ТД состав УУС. УУС предназначено для автоматизированного управления приёмоанализирующей и передающей аппаратурой в соответствии с выбранным способом управления и режимом работы станции. УУС формирует команды с помощью которых устройства входящие в состав станции обмениваются информацией по заданному алгоритму. УУС выполняет следующие основные операции: формирование команд ПУСК панорамного обнаружителя; приём команд снятия пеленга и точной настройки; считывание информации с панорамного...
21372. Аппаратура передачи данных и связи 103.36 KB
  Устройство и принцип работы АСП Р 325У и Р378АБ Занятие №14Аппаратура передачи данных и связи Состав и назначение РРС Р 415В предназначена для обмена телекодовой информацией с АПУ Р330К и организации служебной связи при централизованном режиме управления. В режиме КОНТРОЛЬ предусмотрена возможность ручного контроля узлов. В режиме РАБОТА обеспечивается индикация уровня входных сигналов ПРМ по прибору БКУ которая осуществляется схемой формирования уровней...
21373. Система электропитания станций. Дополнительное оборудование 191.77 KB
  НАЗНАЧЕНИЕ ТЕХНИЧЕСКИЕ ДАННЫЕ И СОСТАВ системы электропитания станций Р378А Система электропитания предназначена для питания аппаратуры станции от первичных источников переменного тока напряжением 380 В От промышленной сети переменного трёхфазного тока 380В аппаратура питается через стабилизатор напряжения. При напряжении сети равном 380 19 В предусматривается электропитание непосредственно от сети минуя стабилизатор. УСТРОЙСТВО И ПРИНЦИП РАБОТЫ Напряжение на ввод силовой поступает от промышленной сети через щит...
21374. Назначение, технические характеристики, состав АСП Р330Б 24.08 KB
  АСП Р330Б предназначена для обнаружения пеленгования технического анализа радиоизлучений и радиоподавления прицельными помехами линий радиосвязи в тактическом звене управления противника в диапазоне частот 30100 МГц. АСП обеспечивает: автоматический поиск и обнаружение источников радиоизлучений ИРИ в пределах частотного диапазона или в заданном участке диапазона; автоматическое пеленгование обнаруженных ИРИ; отображение значений частоты и пеленга обнаруженных ИРИ на табло УУС устройство управления станцией; определение...
21375. Общее устройство и принцип работы станции Р330Б 234.16 KB
  При необходимости если есть исходные данные разведки в соответствующие ЗУ заносятся запрещённые для подавления частоты и частоты подлежащие подавлению с параметрами помехи. В УУС производится сравнение значения частоты обнаруженного ИРИ со значениями ранее записанными в ДЗУ ОЗУ и если они совпадают то РПУ продолжает перестройку. Если обнаруженный ИРИ не является объектом РЭП то значение частоты целесообразно записать в ОЗУ чтобы исключить его из анализа при повторном обнаружении. Если на частоте ИРИ планируется создание помех то...
21376. Назначение составных частей станции. Аппаратура поста оператора: устройство поисково-пеленгаторное Р – 381Т2 – 1 601.3 KB
  Вопрос№1 Назначение состав ТТХ режимы работы УПП Устройство поисковопеленгаторное Р381Т21 Т210 совместно с пеленгаторной антенной предназначено для: автоматического обнаружения и настройки на средние значения частот сигналов в диапазоне от 30 до 100 мГц; автоматического пеленгования обнаруженных сигналов; слухового приёма телефонных и телеграфных радиопередач с частотной модуляцией манипуляцией; Состав УПП Т201 радиочастотный блок; Т202 блок первого гетеродина; Т203 блок синтезатора;...
21377. Назначение составных частей АСП Р330Б. Аппаратура поста оператора: устройство управления станцией УУС-3 172.13 KB
  УУС предназначено для: управления аппаратурой обнаружения Т210 при поиске ИРИ; осуществления частотной и секторной дискриминации по 3м различным признакам ДЗУ ОЗУ ЗУС; хранения информации об обнаруженных источника излучений; формирования команд по которым устройства входящие в состав станции обмениваются информацией по заданным алгоритмам в различных режимах работы станции; УУС выполняет следующие основные операции: занесение и хранение в ДЗУ ОЗУ ПЗУ до 7000 значений частот в пределах рабочего диапазона станции; ...