Оператор for to do — цикл со счётчиком
В сегодняшней статье разберем самый популярный вид цикла в языках программирования. Это цикл с параметром. У него есть и другие названия: цикл-для, цикл со счетчиком (оператор for to do, оператор цикла с параметром).
Особенность данного цикла заключается в том, что использовать его нужно когда заранее известно количество повторений команд.
Посмотрите на рисунок ниже. Там представлена блок схема for (блок-схема цикла с параметром) и его запись на языке программирования Паскаль.
Параметр это целая величина, которая обозначается любой латинской буквой. Чаще всего используют символ — i. Начальные и конечные значения параметра тоже целые числа. Счетчик цикла может работать в двух направлениях: увеличение или уменьшение значения параметра.
Как работает цикл с параметром ?
Разберемся, как работает for в паскале. Выполнение начинается с получения переменной i начального значения а. Затем проверяется это значение с конечным значением n. Выполнение операторов цикла происходит в случае, когда i меньше или равно n (при положительном шаге счетчика) или i больше или равно n (при отрицательном шаге счетчика).
Задачи на циклы For в паскале с решением
Задание 1. Напишите программу, которая выводит на экран 10 строк следующего содержания: «**++==++**»
Решение:
program for1; { название программы } var i:integer; { описание переменных } begin { начало программы } for i:=1 to 10 do { цикл выполняется 10 раз } writeln('**++==++**'); {вывод строки символов экран } end. { конец программы }
Задание 2. Напишите программу, которая выводит значения функции y=kx+b на интервале [2,8] с шагом 1.
Решение:
program for2; { название программы } var x,a,n:integer; { x- параметр цикла, a,n - интервал} k,b:real; { коэффициенты функции} begin { начало программы } write('Введите значение k = ');readln(k); write('Введите значение b = ');readln(b); write('Введите значение начала интервала = ');readln(a); write('Введите значение конца интервала = ');readln(n); for x:=a to n do { цикл с параметром } writeln('x=',x,' y=',k*x+b); {вывод значений аргумента и функции } end. { конец программы }
В результате выполнения программы получим следующий вывод на экране
Задание 3. Найти сумму n первых элементов ряда чисел с точностью (е:=10**-6).
- 1 ряд: 1/1*2 + 1/2*4 +1/3*6…
- 2 ряд: 1/1*2*3 + 1/2*3*4 + 1/3*4*5….
- 3 ряд: 1/1*3 + 1/2*4 +1/3*5…
Решение:
var s:real; i, n:integer; begin writeln('Введите количество элементов в ряду ');read(n); for i:=1 to n do s:=s+1/(i*i*2); write('Сумма ряда = ',s:1:6); end.
Для второго ряда формула будет s:=s+1/(i*(i+1)*(i+2)); для третьего — s:=s+1/(i*(i+2));
Задание for12 (электронный задачник). Дано целое число N (>0). Найти произведение 1.1 · 1.2 · 1.3 · . . .(N сомножителей).
Решение:
uses PT4; var i,n:integer; p:real; begin Task('For12'); read(n); p:=1; {первоначальное произведение не должно быть нулевым} for i:=1 to n do p:=p*(1+i*0.1); { вычисление сомножителей} write(p); end.
Задание for13 (электронный задачник). Дано целое число N (>0). Найти значение выражения 1.1 + 1.2 — 1.3 + . . .(N слагаемых, знаки чередуются). Условный оператор не использовать.
Решение:
uses PT4; var i,n,k:integer; s:real; begin Task('For13'); read(n); k:=1; {k - переменная, определяющая знак слагаемого} for i:=1 to n do begin s:=s+(1+i*0.1)*k; {вычисление суммы} k:=k*(-1); {чередование знака слагаемого} end; write(s); end.
Вот так используется оператор цикла с параметром при решении задач.
Дополнительные задания:
iffor1 Составьте программу для проверки знаний таблицы умножения. Программа должна задать 5 вопросов на операцию умножения. Числа задаются случайным образом. Программа ведет подсчёт правильных ответов и в конце ставит оценку в соответствии с набранным количеством баллов.
iffor2 Составьте программу, которая выводит на экран все двузначные числа сумма цифр в которых равна заданному числу N. (N<19)
iffor3 Напишите программу определения количества трехзначных натуральных чисел, сумма цифр которых равна заданному числу N. Выведите эти числа на экран. Если таких чисел нет, то выведите сообщение об этом.
Если у вас возникли трудности с пониманием решения, приведенных здесь задач, спрашивайте в комментариях.
Рекомендуем ознакомиться с темой Текстовые файлы в Pascal