Циклические программы могут иметь более сложную структуру, чем приведенные выше. В программах возможны случаи, когда один цикл вычислительного процесса включает в себя в качестве составной части другой циклический процесс. Второй циклический процесс считается внутренним по отношению к первому, а первый — внешним по отношению ко второму. [2]
Циклические программы занимают меньший объем памяти, экономят труд программиста. Затраченное машинное время будет большим, чем в аналогичной программе без цикла, так как возникает необходимость в дополнительной группе команд, обеспечивающих циклический процесс. Действия с адресами, рас смотренные выше, особенно широко используются в циклических программах. [3]
Циклические программы применяются не только в области решения экономических задач, но и при обработке иной информации. Алгоритм Эвклида также содержит циклы вычислений, прекращаемые в случае установления равенства двух сравниваемых чисел. [4]
Циклическую программу в известном смысле можно рассмотреть как частный случай разветвляющейся, считая одной ветвью цикл, а другой — участок программы, расположенной за циклом. [5]
Циклические ссылки в EXCEL (как создать, найти, отключить, где применить, итеративные вычисления)
Писать циклические программы наиболее удобно, начиная с рабочей части. Затем пишется проверка окончания цикла. [6]
Построение циклических программ с помощью операций 25 и 24 может осуществляться как без переадресации, так и с переадресацией. [7]
Построение циклической программы заканчивается введением в программу команд, обеспечивающих передачу управления начальной команде и дальнейшим вычислениям ( необходимое число раз) или передачу управления на команду останова. [8]
Преимущество циклических программ перед прямыми состоит в том, что циклические программы занимают меньше ячеек памяти, более компактны. Однако машинное время для исполнения циклических программ больще, чем для прямых программ, так как часть времени теряется на исполнение некоторого количества команд, участвующих, в обеспечении циклов. [10]
Построение циклических программ с помощью операций 25 и 24 может осуществляться как без переадресации, так и с переадресацией. [11]
Запись циклической программы показывает широкие возможности использования команд переадресации ( модификации) и констант. [12]
Для сложной циклической программы вычисления , предусмотренные во внутреннем цикле, повторяются p rl-rz. С увеличением k и г количество действий, предписываемых алгоритмом, и время решения задачи быстро растут. В случаях, когда удается в процессе составления сложного циклического алгоритма выделить независимые циклы, за счет усложнения алгоритма, сокращается время вычислений. [14]
При циклической программе различают шаговый ( перемещение производится только при подаче управляющего сигнала), старт-стопный ( асинхронное переключение, начиная от запускающего сигнала до конца цикла) и непрерывный ( обычно у вращающихся ламельных коммутаторов) режимы работы коммутатора. [15]
Источник: www.ngpedia.ru
Циклические программы в Паскале 8 класс
Мир науки
Рефераты и конспекты лекций по географии, физике, химии, истории, биологии. Универсальная подготовка к ЕГЭ, ГИА, ЗНО и ДПА!
Циклическими программами называют программы, в которых реализованы команды цикла.
В Паскале предусмотрены три разновидности операторов цикла: цикл с предусловием, цикл с писляумовою, цикл со счетчиком (с пошаговой изменением аргумента).
Также реализована работа с вложенными циклами. Вложенные циклы — циклические процессы, допускающие укладенисть одних циклов в другие.
Цикл с предусловием (или цикл-«пока») — это цикл, в котором тело цикла выполняется только при выполнении условия, заданной перед телом цикла. Если условие становится неверной, то работа цикла прекращается и управление передается оператору, следующему за оператором цикла.
На языке Паскаль оператор цикла с предусловием еще называется «циклом While-Do».
WHILE DO ;
Пример: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
m: = 1; S: = 0;
WHILE m begin
S: = S + m;
m: = m +1;
end;
Цикл с писляумовою (или цикл-«до») — это цикл, в котором тело цикла выполняется до тех пор, пока условие, заданное после тела цикла, не станет правильной. Если условие становится правильной, то работа цикла прекращается и управление передается оператору, следующему за оператором цикла.
На языке Паскаль оператор цикла с писляумовою еще называется «цикл Repeat-Until».
REPEAT UNTIL ;
Пример: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
m: = 0; S: = 0;
REPEAT
m: = m +1;
S: = S + m;
UNTIL m> = 100;
Цикл со счетчиком (с пошаговой изменением аргумента) — это цикл, в котором тело цикла выполняется заранее известное количество раз. В разных алгоритмических языках реализация этого цикла может предусматривать использование аргументов различных типов, изменение аргумента в разное шаг, диапазон изменения аргумента и т. д.
Цикл со счетчиком аргумента реализуется следующим образом:
1) аргумента предоставляется начальное значение;
2) если значение входит в заданный диапазон, то выполняется тело цикла;
3) аргумент меняется на заданный шаг; выполняется 2);
4) если значение не входит в заданный диапазон, то выполнение цикла прекращается и управление передается оператору, следующему за оператором цикла.
В языке Паскаль реализованы два оператора цикла с пошаговой изменением аргумента: «цикл For-То» и «цикл For-DownТо».
FOR : = TO DO ; (цикл с шагом 1),
FOR : = DOWNTO DO ; (цикл с шагом -1),
где — переменная порядкового типа,
и — выражения того же типа, что и (диапазон изменения счетчика цикла),
— простой или составной оператор.
Примеры: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
а) S: = 0;
for m: = 1 to 100 do
S: = S + m;
б) S: = 0;
for m: = 100 downto 1 do
S: = S + m;
При реализации цикла с пошаговой изменением аргумента в Паскале необходимо заранее знать о количестве повторений тела цикла и помнить о возможности изменения счетчика цикла только на 1 или -1.
Реферати і шпаргалки на українській мові.
Учебные материалы
- Экономическая и социальная география Белоруссии;
- Экономическая и социальная география Украины;
- Экономическая и социальная география Молдавии;
- Экономическая и социальная география Грузии;
- Экономическая и социальная география Армении;
- Экономическая и социальная география Азербайджана;
- Экономическая и социальная география Казахстана;
- Экономическая и социальная география Узбекистана;
- Экономическая и социальная география Киргизии;
- Экономическая и социальная география Туркменистана;
- Природоведение;
- Экономическая и социальная география Таджикистана;
- Экономическая и социальная география Эстонии;
- Экономическая и социальная география Латвии;
- Экономическая и социальная география России;
- Дальний Восток России;
- География Литвы;
- Социально-экономическая география.
Методические материалы
- Теоретическая механика;
- Электротехника;
- Общая экономика;
- Физическая химия;
- Микробиология;
- Растительность мира;
- Зоология;
- Религиоведение;
Вас приветствует сайт «Мир науки». На нашем образовательном сайте Вы сможете найти огромное количество шпаргалок, рефератов, конспектов, семинаров, лекций и прочих учебных материалов практически по всем учебным предметам! Все учебные материалы собирались такими же учащимися, как и Вы, уважаемые посетители.
Именно поэтому, каждый конспект, каждая лекция и семинар несет в себе огромную информационную нагрузку и полностью раскрывает свою тему! Если Вам необходимы другие рефераты или конспекты, воспользуйтесь формой поиска на нашем образовательном сайте! Все материалы, которые предоставлены на нашем сайте носят исключительно научный характер и не заинтересованы или принятия какой-либо стороны, ведь наука ставит перед собой цель в повышение комфортности жизни человека и достижении новых, неизведанных ранее целей. Мы искренне рады каждому нашему посетителю и мы будем удовлетворять Вашу жажду к знаниям и дальше!
Источник: worldofscience.ru
Циклические программы
УТВЕРЖДАЮ Заведующий кафедрой КИПР ______________В.Н. ТАТАРИНОВ “___” ___________2012 г. Лабораторная работа по дисциплинам « Информатика » для студентов специальностей 211000.62 «Конструирование и технология электронных средств» (бакалавриат) и 162107.65 «Информатика и информационные технологии» (специалитет) Разработчик: Доцент кафедры КИПР ____________ Ю.П. Кобрин Томск 2012
2
1 | ЦЕЛИ РАБОТЫ. | 3 |
2 | ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ . | 3 |
3 | КОНТРОЛЬНЫЕ ВОПРОСЫ . | 3 |
4 | ЗАЩИТА ОТЧЕТА . | 4 |
5 | МЕТОДИКА РАЗРАБОТКИ ЦИКЛИЧЕСКИХ ПРОГРАММ НА ЯЗЫКЕ PASCAL . | 4 |
5.1 Общие понятия . | 4 |
5.2 Оператор цикла с заданным числом повторений (со счетчиком)
For . | 7 | |
5.3 | Оператор цикла с предусловием While . | 12 |
5.4 | Оператор цикла с послеусловием Repeat . | 15 |
5.5 | Досрочное завершение циклов While , Repeat и For . | 17 |
5.6 | Сравнение работы операторов While , Repeat и For . | 18 |
6 СПИСОК ЛИТЕРАТУРЫ. | 19 |
3 1 Цели работы Изучение работы операторов цикла. Освоение приемов программирования и отладки простейших циклических алго- ритмов. Закрепление навыков практической работы в интегрированной среде Borland Pas- cal. 2 Порядок выполнения работы 1) Изучить операторы организации циклов, используя материал раздела «Методика разработки циклических программ на языке Pascal» а также, при необходимости, дополни- тельной литературы [1] [2] [3] [4] [5] [6].
2) Ответить письменно на контрольные вопросы. 3) Используя условия задания предыдущей лабораторной работы [4] составить три варианта циклической программы 1 (с циклами типа for, while и repeat .. until ), позволяющей рассчитать таблицу изменения напряжения на сопротивлении нагрузке U Rн (t), если время меняется в диапазоне 0 < t < T и с шагом Δt . Для всех вариантов T и = 6 * A . Сделать выводы о целесообразности использования разных вариантов цикла для решения поставленной задачи.
4) Войти в свой личный каталог, загрузить и настроить систему Borland Pascal 7.0 . 5) Ввести разветвленную программу, сделанную на прошлом лабораторном заня- тии. 6) Сделать копию программы, записав ее под новым именем (варианта циклической программы) с помощью команды Save as . 7) Ввести разработанный Вами вариант циклической программы, корректируя и дополняя его. 8) Добиться с помощью отладки, чтобы программа дала правильные результаты [9]. 9) Повторить пункты 6 — 8 для остальных вариантов цикла. 10) Оформить отчет и защитить его у преподавателя. 3 Контрольные вопросы Ответьте на следующие контрольные вопросы: 1) Какие управляющие конструкции повторения поддерживаются в языке Borland Pascal ? 2) Как записывается и как работает оператор for ? 3) Какие ограничения накладываются на использование оператора for ? 4) Как работает оператор цикла while ? 5) В чем отличие оператора while от оператора repeat ? 6) Какие существуют отличия и особенности при работе с операторами while, repeat и for ?
1 Каждый новый вариант программы легко создать на основе коррекции предыдущего текста программы, копию которой следует сохранить в своем каталоге под новым именем.
4 7) Как программируются циклические алгоритмы с явно заданным числом повторений цикла? 8) Как программируются циклические алгоритмы с незаданным числом повторений цикла?
4 Защита отчета Отчет должен состоять из следующих разделов: Тема и цель работы. Индивидуальное задание. Ответы на контрольные вопросы. Текст программы и вводимые тестовые исходные данные. Результаты выполнения программы. Выводы. При защите отчета по работе для получения зачета студент должен: уметь отвечать на контрольные вопросы; обосновать структуру выбранного алгоритма и показать его работоспособность; уметь пояснять работу программы; продемонстрировать навыки работы в среде Borland Pascal . 5 Методика разработки циклических программ на языке Pascal 5.1 Общие понятия Алгоритмы решения многих задач являются циклическими, т.е. для достижения результата определенная последовательность действий должна быть повторена несколько раз.
Использование циклов позволяет существенно сократить схему алгоритма и длину соответствующей ему программы. Например, программа контроля знаний выводит вопрос, принимает ответ, добавляет оценку за ответ к сумме баллов, затем повторяет это действие еще и еще раз, и так до тех пор, пока испытуемый не ответит на все вопросы. Другой пример.
Для того чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная фамилия или не будет достигнут конец списка. Алгоритм, в котором есть последовательность операций (группа инструкций), которая должна быть выполнена несколько раз, называется циклическим , а сама последовательность операций именуется циклом . Для организации цикла используется переменная, называемая параметром ( управляющей переменной ) цикла . По значению этой переменной определяется момент выхода из цикла на продолжение программы. Любой циклический алгоритм начинается с блока установки параметра цикла (блок 1 ) в исходное состояние ( рис. 5.1 ). В циклической программе, следующей за этим блоком можно выделить три части:
5
1 | |
X := 0 | Установка параметра цикла X в ис- |
ходное состояние |
Y := 3e -x cos(0.5x) | 2 |
X, Y | Тело цикла (группа повторяемых |
операторов). | |
Здесь вычисление функции и вывод | |
результата вычисления |
3 X := X + 0.1 Подготовка параметра цикла X к очередному повторению
Да | 4 |
X ≤ 1 | |
Нет | Проверка необходимости нового |
повторения цикла |
Рисунок 5.1 — Блок-схема циклической программы вычисления значений функции y = f(X) в диапазоне 0 .. 1 с шагом 0.1 тело цикла (блок 2 ) – группу операторов, которую нужно повторять; подготовка очередного значения параметра цикла (блок 3 ); проверка необходимости нового повторения цикла (блок 4 ). Порядок следования участков 2, 3, 4 в принципе может быть любым . Составляя циклические программы необходимо помнить, что результаты вычислений, присваиваемые переменной в левой части формулы оператора присвоения на каждом цикле, записываются вместо предыдущих значений . Поэтому их нужно своевременно выводить на экран или принтер, запоминать (например, в качестве элемента массива) или использо-
6 вать как-то иначе. Так, например, в алгоритме на рис. 5.1 выполняется циклическое вычисление функции y = 3*e -x *Cos(0.5*x) при 0 ≤ х ≤ 1. Результаты вычислений выводятся на документ в каждом цикле в виде строки табли- цы. Фрагмент программы, реализующий этот циклический алгоритм на языке Pascal (без использования специальных операторов цикла), может выглядеть так:
… |
Label |
Zikl ; |
Var x , y : real; … x := 0 ;
Zikl : | ||
y := 3 * exp(-x) * cos(0.5 * x) ; | ||
Writeln(‘x = | ‘, x:3:1 , ‘ y = ‘, y:10:3 ); | |
x := x + 1 ; | ||
if x |
then Goto Zikl ; … Бесспорно, подобный вариант циклической программы не очень нагляден. Кроме того, в программе используются метки , что противоречит технологии структурного программирования . Вместе с тем, в языке Borland Pascal существуют более эффективные операторы организации циклов ( рис. 5.2 ), чем использование примитивных операторов с метками.
Оператор цикла | оператор For |
оператор While оператор Repeat
Рисунок 5.2 – Операторы повторения в Borland Pascal
7 Различают циклы с заданным и с неизвестным числом повторений: если число повторений цикла известно заранее или может быть вычислено , то целесообразно использовать один из вариантов цикла со счетчиком For ; если же момент завершения цикла зависит от выполнения некоторого условия (например, в итерационных циклах, характеризующихся последовательным приближением к искомому результату), то применяются операторы цикла с предусловием While или с постусловием Repeat . Хорошее понимание и владение операторами повторения, а также рассмотренными ранее другими управляющими конструкциями, в огромной степени определяет профессиональный уровень программиста. 5.2 Оператор цикла с заданным числом повторений (со счетчиком) For Оператор цикла со счетчиком подходит для программирования только таких циклических программ, в которых до выполнения цикла известны начальное и конечное значения счетчика повторений цикла. Для реализации циклов с заданным числом повторений в Паскале имеется оператор
Оператор | Управляющая | := | Исходное |
For | переменная | значение | |
For |
to | ||
Конечное | do | Оператор |
значение | ||
downto | ||
Управляющая переменная | Идентификатор переменной | |
Исходное значение | Выражение | |
Конечное значение | Выражение |
Рисунок 5.3 — Синтаксическая диаграмма оператора цикла For For , синтаксическая диаграмма которого приведена на рис. 5.3. Варианты записи оператора For можно представить одним из двух способов.
1. Если счетчик при выполнении цикла наращивает свое значение на +1 : For < Управляющая переменная >:= < Исх. значение >to < Кон. значение >do < Оператор >; 2. Если счетчик при выполнении цикла уменьшает свое значение на -1 :
8 For < Управляющая переменная >:= < Исх. значение >downto < Кон. значение >do < Оператор >; В обоих вариантах записи оператора For : < Управляющая переменная >::= переменная порядкового типа 2 ; < Исходное значение >и < Конечное значение >– выражения, типы которых должны быть совместимы по присваиванию с типом управляющей переменной цикла. Значения этих выражений определяют, соответственно, начальное и конечное значение управляющей переменной цикла. Они рассчитываются только один раз при входе в оператор For , и сохраняются неизменными на протяжении всего процесса его выполнения. < Оператор >– единственный повторяемый оператор 3 . Для снятия ограничения по количеству операторов следует употреблять составные операторы begin .. end . В блок-схемах алгоритмов программ цикл с заданным числом повторений изображается так, как показано на рис. 5.4 . i = i нач , i кон
to: i := i + 1 | Оператор | |
downto: i := i — 1 |
Рисунок 5.4 — Цикл с заданным числом повторений Рассмотрим работу первого варианта цикла For , Пусть значения выражений < Исход- ное значение >и < Конечное значение >равны, соответственно, i нач и i кон (см. рис.5.4 ) и пе- ременой цикла присвоено начальное значение i нач . После этого производится проверка, не превосходит ли содержимое переменной цикла конечное значение i нач . Если не превосхо- дит, выполняется оператор (тело цикла). Далее значение переменной увеличивается на единицу (шаг приращения переменной цикла 4 задан неявно) . Процесс, включающий проверку и выполнение тела цикла, повторяется до тех пор, пока проверка не даст положитель- 2 Вспомним, что к порядковому типу относятся данные типа shortint, integer, word, byte и Char . К любому из них можно применить функцию Ord(X) , возвращающую порядковый номер значения выражения X . 3 Чтобы обойти это ограничение, как и в случае разветвленного алгоритма, следует применить составной оператор (операторные скобки). 4 К сожалению, никакой другой шаг кроме 1 в цикле For не предусмотрен!
9 ный результат. В этом случае оператор For завершается, переменная цикла объявляется неопределенной и осуществляется переход на оператор, следующий за оператором For. Второй вариант цикла For противоположен по действию рассмотренному выше.
В нем проверка определяет: не меньше ли значение переменной цикла конечного значения, и лишь в случае отрицательного ответа выполняется тело цикла. Если конечное значение больше начального, тело цикла не выполняется ни разу. При каждом повторении перемен- ная цикла здесь уменьшается на единицу . Пример 5.1 . Ввести с клавиатуры число N и вычислить с помощью цикла For сумму всех целых чисел от 1 до N . Решение. … Var i , N , Summa : integer ; … Write(‘ N = ’); Readln( N ); Summa := 0 ; For i := 1 to N do Summa := Summa + i ; Writeln(‘Сумма чисел = ’ , Summa ); … Пример 5.2 (с ошибкой). После окончания тела цикла наращивание/уменьшение значения цикла происходит автоматически. Следовательно, специального оператора для увеличения значения счетчика типа i := i + 1 не требуется, Более того, подобный оператор приведет к непредсказуемой работе цикла и считается плохим стилем программирования Например, ошибочный фрагмент решения предыдущего примера 5.1, может выглядеть так: … Summa := 0 ; For i := 1 to N do
10 begin Summa := Summa + i ; i := i + 1 Ошибка! end; … Пример 5.3 . Вычислить и вывести на экран таблицу значений функции z=a 3 ( a 2 +x 2 ) , если x из- меняется от –2 до 5 с шагом 0,2 . Решение. Возможная схема алгоритма приведена на рис. 5.5 .
a, x нач , | Ввод | |
x кон , h |
x := x нач | |||
Начальное значение | |||
переменной цикла | |||
z := a 3 /(a 2 +x 2 ) | Тело цикла | ||
x, z | |||
Подготовка к | |||
x := x + h | |||
очередному | |||
повторению | |||
Да | Условие окончания | ||
x ≤ x кон | |||
цикла | |||
Нет |
Источник: studfile.net