В цикле типа for число повторений известно
заранее, поэтому применяется при выполнении расчетов, повторяющихся
определенное количество раз. Оператор имеет вид:
For <параметр>:=<нач. знач.> To
<кон. знач.> Do <оператор>;
Например:
For i:=
N1 To N2 Do "оператор";
i - параметр цикла,
N1, N2 - начальное и конечное значения
параметра цикла
Если требуется выполнить в цикле несколько
операторов, они заключаются в операторные скобки begin ... end, образуя
составной оператор:
For i:=
N1 To N2 Do
Begin
"оператор1";
"оператор2";
…
End;
С помощью цикла типа for удобно находить
суммы, произведения, искать максимальные и минимальные значения и т.п. При
нахождении суммы некоторой переменной, например, S присваивается значение 0,
затем в цикле к этой переменной прибавляется соответствующий член заданной
последовательности. При нахождении произведения переменной присваивается
значение 1, затем в цикле эта переменная умножается на общий член
последовательности.
Пример цикла типа for
Вычисление n чисел Фибоначчи:
F1=1; F2=1;…;
Fn=Fn-1+Fn-2 ,
например F3=F2+F1=1 + 1 = 2; F4 = 2 + 1 = 3 и
т.д.
program fib; {Нахождение чисел Фибоначчи}
var x, y, z, i, n : integer;
begin
writeln (‘Введите n’);
readln (n);
x:=1; y:=0;
for i:=1
to n do
begin
z:=x ; x:=x+y ; y:=z ;
writeln (' ', x ) ;
end;
readln;
end.
Тема: Операторы цикла For. Вложенные циклы.
Цель:
1)
Освоить простейшую структуру программы с
использованием оператора цикла FOR.
2)
Получить практические навыки работы над ошибками.
ХОД РАБОТЫ:
Задание №1: Ввести с клавиатуры произвольное целое
число N и вычислить сумму всех целых чисел от 1 до N. Записать программу в
тетрадь.
Var i, n, s: integer;
begin
writeln (‘N=’);
Readln (n); {ввести N}
s:=0; {начальное значение суммы}
for i:=1
to n do s:=s+i; {цикл подсчета суммы}
writeln (‘сумма=’,s);
Readln
end.
Задание №2: Разработать программу расчета суммы 12
объемов.
. Записать программу в тетрадь
Program pr25;
Uses
CRT;
Const
Pi=3.14; h=0.05;
Var i: integer;
R, V: real;
begin
CLRSCR;
V:=0; R:=9.95;
for i:=1
to 12 do
begin
V:=V+(4*Pi*R*R*R)/3;
R:=R+h;
end;
writeln (‘объем = ’, V);
readln;
end.
Задание №3: Разработать программу расчета функции.
Записать программу в тетрадь.
Исходные данные: n – количество слагаемых;
Входные данные: y – значение функции.
Program example;
Uses
CRT;
Var n, i, y, SL: integer;
begin
CLRSCR;
Write (‘введите n=>’);
Readln (n);
y:=0;
for i:=1
to n do
begin
SL:=sqr(i);
y:=y+SL;
end;
write (‘y:=’,y);
readln;
end.
Задание №4: Найти сумму чисел обратных квадратам 100
первых нат-х чисел. Записать программу в тетрадь.
program jj;
var i:integer;
s,x:real;
begin
s:=0;
for i:=1 to 100 do
begin
x:=1/(i*i);
s:=s+x;
end;
writeln('s=',s:5:10);
readln;
end.
Оператор цикла часто применяется для
суммирования значений некоторой последовательности чисел или значений функции
при известном числе операций суммирования. Напомним некоторые определения, связанные
с расчетом суммы последовательности.
Сумма членов последовательности величин a1,
a2, a3, . . . , aN называется конечной
суммой SN= a1 + a2 + a3+ . . . + aN.
Для некоторых последовательностей известны формулы расчета конечных сумм, например:
при aN= aN-1 + d; SN=
(a1 + aN)*N/2; - арифметическая прогрессия,
при aN= aN-1 * q; SN=
(a1 - aN*q)/(1-q); - геометрическая прогрессия,
где d и q - постоянные числа.
Здесь N-ый член последовательности выражается
через (N-1)-ый член. Такие зависимости называются реккурентными.
Конечная сумма последовательности может быть
неизвестна, тогда для ее расчета применяется алгоритм суммирования членов
последовательности в цикле от 1 до N.
Приведем пример расчета конечной суммы
последовательности:
12 + 32 + 52
+. . . + (2*N-1)2; SN = N*(4*N2-1)/3;
Задание №5: Составим программу для расчета конечной
суммы последовательности
12 + 32 + 52 +. . . + (2*N-1)2;
SN = N*(4*N2-1)/3;
Записать программу в тетрадь
PROGRAM SUM_K; { расчет конечной суммы }
var
a, S, Sn, i, N: word;
Begin
writeln('Введите число членов суммы N=');
readln(N);
S:= 0;
For i:= 1 to N do
begin { цикл суммирования }
a:= Sqr(2*i-1);
S:= S+a
end;
Sn:= N*(4*N*N-1) div 3;
writeln('Конечная сумма S=', S:10);
writeln('Расчет конечной суммы
по формуле Sn=', Sn:10);
writeln('Нажми Enter');
Readln;
End.
Задание №6: В некоторых случаях "N"-ый член
последовательности определяется через сумму предыдущих членов, например, aN=
p*SN-1, тогда SN= SN-1 + aN = SN-1*(1+р),
и конечную сумму можно рассчитать по формуле: SN= S0*(1+p)N,
где "S0" - начальная сумма.
Рассмотрим программу вычисления конечной суммы
денежного вклада в банк через N месяцев при ежемесячной процентной ставке
"pr" (5% cоответствует pr=5). Записать программу в тетрадь.
PROGRAM VKLAD; { расчет конечной суммы вклада в банк
}
var S,
Sn, pr: real;
i, N: integer;
Begin
writeln('Введите начальную
сумму вклада
S=');
readln(S);
writeln('Введите процент по вкладу pr=');
readln(pr);
writeln('Введите количество
месяцев вклада N=');
readln(N);
For i:= 1 to N do
S:= S*(1+pr/100); { цикл произведений }
writeln('Конечная сумма вклада S=', S:10:2);
{Оператор для расчета "Sn"
напишите самостоятельно }
writeln('Расчет конечной суммы вклада по формуле
Sn=', Sn:10:2);
writeln('Нажмите Enter');
readln
End.
Самостоятельное задание
1) Рассчитать конечную сумму последовательности:
13 + 23 + 33 +. . . + N3;
SN = N2*(N+1)2/4;
2) Рассчитать конечную сумму
последовательности:
13
+ 33 + 53 +. . . + (2*N-1)3; SN
= N2*(2*N2-1);
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.