Циклы Счетный оператор FOR
В языке программирования имеются три различных оператора с помощью которых можно запрограммировать повторяющиеся действия. Многократные повторения одних тех действий можно выполнить с помощью конструкции, которые в программировании называются циклами. Повторяемые действия называют телом цикла.
В Паскале существует несколько операторов цикла. FOR – счетный оператор (арифметический цикл). WHILE – оператор с предусловием (цикл-пока). REPEAT – оператор с постусловием (цикл-до).
Первый оператор цикла с которым мы познакомится это оператор FOR, который повторяет тело цикла заданнное число раз. Оператор FOR имеет две формы: 1. Первая форма - с изменением значений параметра цикла по возрастанию. 2. Вторая форма – с изменением значений параметра цикла по убыванию.
for переменная:=начальнное значение to конечнное значение do оператор Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Естественным языком запись цикла можно перефразировать так: Для переменной начиная с «начального значения» до «конечного значения» выполнять «оператор». В ходе цикла данной формы значение переменной увеличивается строго на единицу.
Выведем на экран в столбик числа от 0 до 10. var i:integer; {задаем целочисленную переменную i} begin for i:=0 to 10 do {открываем цикл в котором переменная i изменяет своё значение от 0 до 10} writeln(i) {выводим на экран значение переменной i} end.
Сравним две программы с циклом и без цикла: var i:integer; begin for i:=0 to 10 writeln(i) end. begin writeln(0); writeln(1); writeln(2); writeln(3); writeln(4); writeln(5); writeln(6); writeln(7); writeln(8); writeln(9); writeln(10) end. Обе программы выводят один и тот же результат, но количество строк и символов в программе с циклом гораздо меньше.
for переменная:=начальнное значение downto конечнное значение do оператор Отличие второй формы в том, что переменная уменьшает свное значение на единицу. Значение начального и конечного значений переменно необходимо выбирать осмысленно. Так как в случае с первой формой записи оператора FOR начальнное значение переменной должно быть меньше либо равно конечного значения переменной, иначе тело цикла не выполнится ни разу. А в случае со второй формой записи оператора FOR начальнное значение переменной должно быть больше либо равно конечного значения.
Выведем на экран в столбик числа от 10 до 0. var i:integer; {задаем целочисленную переменную i} begin for i:=10 downto 0 do {открываем цикл в котором переменная i изменяет своё значение c 10 до 0} writeln(i) {выводим на экран значение переменной i} end.
Написать программу возведения числа A в целую степень N (N>0). var a,n,i,s:integer; {переменные: а-число, n-степень числа, i- счетчик, s-конечнное значение} begin readln(a,n); {введем число и степень числа} s:=1; {начальнное значение переменной s равно 1} for i:=1 to n do {цикл от 1 до значения переменной n} s:=s*a; {значение переменной s увеличивается за каждый проход цикла в а раз} writeln(s) {выводим результат} end.
Алгоритм решения задачи 1: Для решения данной задачи необходимо, чтобы переменная s (начальнное значения которой равно 1) умножалась на величину переменной а n-ное количество раз, и каждый раз принимало значение промежуточного результата. Рассмотрим следующую таблицу для значений переменных а=2 и n=4: Шаг цикла (значение переменной i) Значение переменной s (выполнение s:=s*a) Фрагмент программы 1S:=1*2=2 for i:=1 to n do s:=s*a; 2S:=2*2=4 3S:=4*2=8 4S:=8*2=16 Когда переменная i присвоила значение равнное 4 работа цикла закончилась (т.к. конечнное значение переменной цикла равно 4). В итоге после четырех выполнений оператора (s:=s*a) значение переменной s стало равно значению а n (2 4 =16).
Написать программу вычисления факториала заданного целого числа. Факториал числа N вычисляется по следующей формуле: N!=1*2*3*….*N var n,i,s:integer; {переменные:n-число, i-счетчик, s-конечнное значение} begin readln(n); {введем число} s:=1; {начальнное значение переменной s равно 1} for i:=1 to n do {цикл от 1 до значения переменной n} s:=s*i; {значение переменной s увеличивается за каждый проход цикла в i раз, значение переменной i также увеличивается на единицу} writeln(s) {выводим результат} end.
Алгоритм решения задачи 2: Для решения данной задачи необходимо, чтобы переменная s (начальнное значения которой равно 1) умножалась на величину переменной i n-ное количество раз, и каждый раз принимало значение промежуточного результата. Рассмотрим следующую таблицу для значения переменной n=4: Шаг цикла (значение переменной i) Значение переменной s (выполнение s:=s*i) Фрагмент программы 1S:=1*1=1 for i:=1 to n do s:=s*i; 2S:=1*2=2 3S:=2*3=6 4S:=6*4=24 Когда переменная i присвоила значение равнное 4 работа цикла закончилась (т.к. конечнное значение переменной цикла равно 4). В итоге после четырех выполнений оператора (s:=s*i) значение переменной s стало равно значению n! (4!=24).
При выполнении оператора FOR сначала вычисляется выражение начальнное значение и осуществляется присваивание параметру цикла. После чего циклически повторяется: Проверка условия параметр цикла
Что такное цикл. Какие операторы цикла бывают в Pascal. Оператор счетного цикла FOR. Две формы оператора FOR. Как использовать оператор FOR. Решили несколько задач.