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» - возвращение.

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

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


 

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

27493. Общая характеристика основных правовых школ (теологическая, естественно-правовая, реалистическая) 36 KB
  Основной смысл данной теории состоит в том чтобы утвердить верховенство церковной власти над светской государством и доказать что нет государства и права вне Бога. Поэтому данная позиция сохраняя тезис о божественном происхождении государства и права вполне позволяет приспособить феодальную теологическую концепцию к политической реальности нашего времени Естественноправовая теория Т. Согласно данной теории происхождение права связано с самой природой человека с его неотчуждаемыми правами и свободами. Гроций учил что законы...
27494. Общая характеристика Романо-германской правовой системы 26 KB
  Эта правовая семья возникла на основе рецепции римского права. Основной источник права Закон нормативный акт. Ей присуще четкое деление норм права на отрасли а все отрасли подразделяются на две подсистемы: частное право и публичное право. К сфере публичного права относятся административное уголовное конституционное международное публичное.
27495. Общая характеристика судебной власти и в России 27 KB
  Общая характеристика судебной власти и в России В соответствии с принципом разделения властей одной из трёх наряду с законодательной и исполнительной властью ветвей власти является судебная. Органы судебной власти разрешают правовые споры тяжбы между конкретными лицами а также рассматривают дела об оспаривании правовых предписаний на предмет соответствия правилам более высокой силы законов Конституции подзаконных нормативных актов законам так называемый нормоконтроль в отдельных случаях дают толкование правовым нормам в основном...
27496. Общая характеристика типов (моделей) соотношения права и государства 31.5 KB
  Общая характеристика типов моделей соотношения права и государства. Проблема соотношения государства и права достаточно сложна. Согласно первой государство выше и важнее права оно творит право и использует его в качестве инструмента своей политики. Тоталитарная модель соотношения государства и права была широко распространена в советской научной и учебной литературе так как она уходит корнями в учение К.
27497. Общая характеристика феодального государства и права 30 KB
  Общая характеристика феодального государства и права. Типология государства традиционно рассматривают как теория учение о типах государств когдалибо существовавших в истории человеческого общества или существующих в настоящее время. Типология государства это процесс систематизации государств с учетом их сущностных свойств для повышения эффективности в теоретической и практической деятельности по изучению государства и правоприменения. Под типом государства понимаются взятые в единстве общие черты различных государств система их...
27498. Общенаучные и частнонаучные методы теории права и государства 30.5 KB
  Признаками методов теории государства и права являются: способствование углублению знаний о государстве и праве соответствование понятиям права осуществление юридического познания окружающей действительности. Все методы теории государства и права можно расположить в следующей последовательности: всеобщие методы; общенаучные методы; частнонаучные методы. В теории государства и права используется весьма широко.
27499. Определите гипотезу и диспозицию ст. 211 ГК РФ 32 KB
  Нормы права устанавливающие определенный шаблон поведения в той или иной ситуации т. 1 Гипотеза юридической нормы часть юридической нормы указывающая на жизненные обстоятельства при наличии или отсутствии которых реализуется норма. Если в гипотезе указано одно обстоятельство с наличием или отсутствием которого связывается действие юридической нормы то такая гипотеза называется простой. Если гипотеза действие нормы ставит в зависимость от наличия или отсутствия одновременно двух или более обстоятельств то она называется сложной.
27500. Определите структуру пенсионного правоотношения 25 KB
  В структуру правоотношения входят: 1 Субъекты участники. 3 Содержание: Субъективное право право принадлежащее субъекту права т.е управомоченному лицу мера возможного поведения.
27501. Определите структуру страхового правоотношения 30.5 KB
  Определите структуру страхового правоотношения. Страховое правоотношение это отношение урегулированное нормами страхового права и представляющее организационное единство правовой формы и его содержания возникающее действующее изменяющееся и прекращающееся на основе норм страхового права и определяемых ими субъективных прав юридических обязанностей и ответственности страхователя и страховщика. Структура страхового правоотношения состоит из следующих элементов: 1 субъект; 2 объект; 3 содержание. Так например к числу основных прав...