Содержание
-
Программирование циклических алгоритмов на языке Паскаль
Лекция 4
-
План
Понятие цикла Оператор цикла For Цикл While Цикл Repeat Литература
-
Литература
Касторнов А.Ф., Евстратова Г.А. Язык программирования Паскаль : учебное пособие для вузов. - Череповец : ГОУ ВПО ЧГУ, 2010. - 117 c. - Библиогр.: С.114. Электронный учебник по языку программирования Паскаль /http://pascal.guti.ru План
-
Понятие цикла
Алгоритмы решения многих задач являются циклическими, в которых для достижения результата определенная последовательность действий выполняется несколько раз. Например, программа контроля знаний выводит вопрос, принимает ответ, добавляет отметку за ответ к сумме баллов, затем повторяет эти действия до тех пор, пока испытуемый не ответит на все вопросы. Или, например, для поиска нужной фамилии в списке следует проверить первую фамилию списка на совпадение с искомой, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная фамилия или не будет достигнут конец списка.
-
Алгоритм, в котором есть группа операторов, выполняемая несколько раз, называется циклическим. Группа повторяемых операторов называется телом цикла. В Паскале циклы могут быть реализованы при помощи операторов циклов For, While и Repeat. План
-
Оператор цикла For
Оператор цикла For используется в том случае, если тело цикла надо выполнить несколько раз, причем число повторов заранее известно.
-
1-я форма записи оператора цикла For
1-я форма записи оператора For в общем виде выглядит следующим образом: ForСчетчик:=Начальное_значениеtoКонечное_значениеdoОператор; Где For, to, do – служебные слова. Счетчик – это переменная порядкового типа (обычно типа Integer), которая определяет число повторов цикла. Число повторов считается по формуле: Конечное_значение–Начальное_значение+1. Конечное_значение должно быть больше или равно Начальному_значению.
-
Если тело цикла состоит из нескольких операторов, то 1-я форма записи оператора For выглядит так: ForСчетчик:=Начальное_значениеtoКонечное_значениеdo Begin {Тело цикла} End;
-
Рассмотрим алгоритм работы цикла For в первой форме записи. Счетчику присваивается Начальное_ значение. Проверяется условие: Значение счетчика больше Конечного_значения? Если условие истинно (Да), выполнение цикла заканчивается. Если условие ложно (Нет), то выполняется тело цикла, затем значение счетчика увеличивается на единицу и снова выполняется проверка условия, т.е. п.2.
-
2-я форма записи оператора цикла For
2-я форма записи оператора For в общем виде выглядит следующим образом: For Счетчик:=Начальное_значениеdowntoКонечное_значениеdoОператор; Где: For, downto, do – служебные слова. Счетчик– это переменная порядкового типа (обычно типа Integer), которая определяет число повторов цикла. Число повторов считается по формуле: Начальное_значение–Конечное_значение+1. Начальное_значениедолжно быть больше или равноКонечному_значению.
-
Если тело цикла состоит из нескольких операторов, то 2-я форма записи оператора For выглядит так: ForСчетчик:=Начальное_значениеdowntoКонечное_значениеdo Begin //Тело цикла End;
-
Рассмотрим алгоритм работы цикла For во второй форме записи: Счетчику присваивается Начальное_ значение. Проверяется условие: Значение счетчика меньше Конечного_значения? Если условие истинно (Да), выполнение цикла заканчивается. Если условие ложно (Нет), то выполняется тело цикла, затем значение счетчика уменьшается на единицу и снова выполняется проверка условия, т.е. п.2.
-
Оператор цикла For
programEx1; var i, n:integer; {i – счетчик, n – необходимое количество звездочек} s:string;{s – формируемая строка звездочек} begin Writeln('Введите количество звездочек'); {запрашивается количество звездочек} Readln(n); {пользователь вводит количество звездочек n} s:=''; {формирование строки звездочек начинается с пустой строки} {Строка формируется по циклу For. Начальное_значениесчетчика – 1, Конечное_значение– необходимое количество звездочек n.} fori := 1 to n do s:=s+'*'; {на каждом шаге цикла к строке приклеивается одна звездочка} Writeln(s);{выводится строка} Readln; end. План Пример:Программа формирует строку звездочек. Количество звездочек в строке определяется пользователем.
-
Цикл While
Цикл While используется в том случае, если число повторений тела цикла во время разработки программы неизвестно и может быть определено только во время ее работы. В общем виде оператор While записывается следующим образом: While Условие doОператор; Где While, do – служебные слова. Условие – выражение логического типа, определяющее продолжение цикла.
-
Если тело цикла состоит из нескольких операторов, то цикл While записывается следующим образом: WhileУсловие do Begin //Тело цикла End;
-
Рассмотрим алгоритм работы цикла While: Проверяется условие. Если условие истинно, то выполняется тело цикла. После чего снова проверяется условие. Если условие ложно, то цикл завершается.
-
Таким образом, While – цикл с предусловием или цикл «Пока» (тело цикла выполняется пока истинно условие). Если при первом проходе цикла условие окажется ложным, то тело цикла не будет выполнено ни разу. Если условие никогда не станет ложным, то цикл будет повторяться бесконечно, т.е. произойдет зацикливание.
-
Program Ex2; varAccount: Real; {размер счета} Month: Integer; {количество месяцев, прошедших с момента открытия счета} begin Account:=1000; {на счет положили 1000 рублей} Month:=0; {счет только что открыт} whileAccount
-
Цикл Repeat
Цикл Repeat, как и цикл While, используется в программе в том случае, если необходимо выполнить тело цикла несколько раз, но число повторений заранее неизвестно. В общем виде цикл Repeat записывается следующим образом: Repeat //Тело цикла Until Условие; Где Repeat, Until – служебные слова. Условие – выражение логического типа, определяющее окончание цикла.
-
Рассмотрим алгоритм работы цикла Repeat: Выполняется находящееся между зарезервированными словами Repeat и Until тело цикла. Проверяется условие. Если условие истинно, цикл завершается. Если условие ложно, снова выполняется тело цикла.
-
Таким образом, Repet – цикл с постусловием или цикл «До» (тело цикла выполняется до истинности условия). Следовательно, тело цикла выполняется хотя бы один раз. Если условие никогда не станет истинным, то цикл станет бесконечным.
-
Program Ex3; var Time:integer; {время деления} Cells: integer;{количество клеток} begin Time:=0;{клетка еще не начала деление} Cells:=1;{клетка одна} Repeat Time:=Time+3;{через следующие три часа} Cells:=Cells*2;{количество клеток увеличилось в 2 раза} Until Cells>24; {до истинности условия «количество клеток больше 24»} Writeln(Time);{вывод результата} Readln; end. План Пример: Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определите, через какое количество часов число клеток превысит 24.
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.