Очень часто в теле цикла используют значение счетчика цикла.
Пример 1. Найдем сумму первых 20 натуральных чисел.
Алгоритм решения. 1. Начальное значение суммы равно нулю. Сумму будем хранить в переменной s. 2. Используем цикл от 1 до 20. На каждом шаге цикла к сумме будем прибавлять значения счетчика цикла. В результате получим S:=0+1+2+3+4+...+19+20 3. Выводим значение суммы.
Var i, s : integer; Begin s:=0; for i:=1 to 20 do s:=s+i; writeln(s); end.
Пример 2. Найдем сумму двухзначных натуральных чисел. Для решения этой задачи используем решение из первого примера, только заменим цикл от 10 до 99.
Var i, s : integer; Begin s:=0; for i:=10 to 99 do s:=s+i; writeln(s); end. Пример 3. С клавиатуры вводятся n целых чисел. Вычислим среднее арифметическое четных. Чтобы определить среднее арифметическое среди введенных нужно вычислять сумму и количество четных. 1. Введем количество чисел. 2. Зададим начальные значения суммы и количества четных - нулевые значения. 3. Используем цикл n-раз На каждом шаге: - вводим число; - выполняем проверку, если оно четное, то увеличивем количество на 1 и прибавляем число к сумме 4. Выводим среднее арифметическое с точность три знака после запятой. Var i,n,s,k,a : integer; Begin read(n); s:=0; k:=0; for i:=1 to n do begin read(a); if a mod 2=0 then begin s:=s+a; k:=k+1; end; end; if k>0 then writeln(s/k:10:3) else writeln('Четных чисел среди введенных нет'); End. Пример 4. Дано число a. Вычислим его значение в степени n. Для решения использую алгоритм не эффективный, но простой и наглядный для использования цикла for. Var p, a, n, i : longint; Begin read(a,n); p:=1; for i:=1 to n do p:=p*a; writeln(p); End.
Пример 5. Выведем для первых десяти натуральных чисел таблицу: числа, их квадраты, их кубы в виде 1 1 1 2 4 8 3 9 27 ... Var i : integer; Begin for i:=1 to 10 do writeln(i:4,i*i:6,i*i*i:6); End.
Пример 6. Выведем для первых девяти натуральных чисел таблицу: числа и степени (основание и показатель тоже число) 1 1 2 4 3 27 4 256 ... Var i, j, p : longint; Begin for i:=1 to 9 do begin p:=1; for j:=1 to i do p:=p*i; writeln(i:4,p:12); end; End.
|