Циклический вычислительный процесс − этопроцесс, при котором действия выполняются многократно по одному и тому же алгоритму при изменяющихся исходных данных.
Параметр цикла – это переменная, которая при каждом новом входе в цикл принимает новое значение, то есть управляет работой цикла.
Шаг – величина, на которую изменяется начальный параметр при выполнении цикла.
Условие задачи:
Вычислите значение функции:
Y=x2+sin(x+a),
если а=5,
1≤ х≤10 с шагом ∆х=2
х – параметр цикла
Для решения задачи использовать разные способы организации цикла:
1) Операторы условного (IF) и безусловного переходов (GOTO);
2) Цикл с предусловием (WHILE);
3) Цикл с постусловием(REPEAT…UNTIL);
4) Цикл с параметром (FOR)с вычислением количества повторений.
1 способ: Цикл с использованием операторов условного (IF) и безусловного переходов (GOTO)
Если в программе после выполнения очередного оператора необходимо выполнить не следующий по порядку, а другой, помеченный для этого меткой, используется оператор безусловного перехода GOTO («переход на»). Переход возможен только в пределах блока.
Форма записи оператора безусловного перехода:
GOTO «Имя метки»;
«Имя метки» − может быть идентификатор или целые числа от 0 до 9999. Объявление меток проводится перед объявлением констант после заголовка программы. Объявление начинается с ключевого слова LABEL, затем указывается имя метки.
Пояснение:50 – имя метки.
Program Name1;
Label 50; {раздел описания меток}
Var
X, А: integer; Y: real;
Begin
A:=5;
X:=1;
50: Y:=X*X+sin(X+A);
Writeln ('X=',X, '; Y=',Y:4:1);
X:=X+2;
if x<=10 then goto 50;
readln;
end.
2 способ: Организация цикла с предусловием (WHILE)
Общий вид алгоритма цикла с предусловием
Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова While.
Общий вид записи:
While «Условие» do
«Тело цикла»;
«Условие» – выражение логического типа;
«Тело цикла» – простой или составной оператор.
В том случае, если в теле цикла имеется более одного оператора, в качестве оператора может выступать составной оператор с операторными скобками begin…end.
Перед каждым выполнением тела цикла вычисляется значение выражения условия, если результат истина, то тело цикла выполняется. Если результат ложь, то происходит выход из цикла и переход к первому оператору после While оператора.
While, do – зарезервированные слова («Пока [выполняется условие]», «делать»).
Program Name2;
Var
X,А: integer; Y: real;
Begin
A:=5;
X:=1;
While X<=10 do begin
Y:=X*X+sin(X+A);
Writeln ('X=',X,'; Y=',Y:4:1);
X:=X+2;
end;
readln;
end.
3 способ: Организация цикла с постусловием (REPEAT…UNTIL)
Общий вид алгоритма цикла с постусловием
Выполняется до тех пор, пока логическое выражение ложно. Условие нужно задать так, чтобы выйти из цикла.
Процесс завершается тогда, когда после очередного выполнения заданной последовательности операторов тела цикла условие примет (впервые) значение истина. Проверка условия производится после выполнения тела цикла.
Repeat…until − зарезервированные слова («Повторять», «пока не [выполнится условие]»).
Program Name3;
Var
X, А: integer; Y: real;
Begin
A:=5;
X:=1;
repeat
Y:=X*X+sin(X+A);
Writeln ('X=',X,'; Y=',Y:4:1);
X:=X+2;
until X>10;
readln;
end.
4 способ: Организация цикла с параметром (FOR)
Общий вид алгоритмацикла с параметром
Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне между начальным и конечным значениями. Используется в том случае, если параметр цикла имеет целочисленный тип и значение параметра увеличивается (уменьшается) на1.
i –параметр цикла
i1– начальное значение,
i2 –конечное значение
Общий вид записи:
for «Параметр цикла»:=«Начальное значение» to (downto) «Конечное значение» do
«Тело цикла»;
В качестве параметра цикла можно использовать имя простой переменной целого типа, в качестве начального, конечного значений можно использовать константы, переменные, а также арифметические выражения только целого или перечислимого типа.
for, to, downto, do – зарезервированные слова («для», «до», «уменьшить до», «выполнить»).
Порядок выполнения действий:
До разработки алгоритма решения задачи необходимо вычислить количество повторений цикла К.
К – в данной программе будет означать конечное значение цикла.
1) Присвоение значения переменной А.
2) Присвоение переменной К значения, полученного до разработки алгоритма решения задачи.
3) Присвоение значения 1 переменной Х (начальное значение).
4) Организация цикла с параметром по переменной i (целое число).
5) Вычисление значения функции Y.
6) Вывод значения функции Y.
7) Добавление шага к переменной Х.
Program Name4;
Var
X, А, К i: integer; Y: real;
Begin
A:=5; K:=5;
X:=1;
for i:=1 to K do begin
Y:=X*X+sin(X+A);
Writeln ('X=',X, ';Y=',Y:4:1);
X:=X+2;
end;
readln;
end.
Задание 4. Циклические вычислительные процессы. Решение задач, содержащих вычисление конечных сумм и произведений
Условие задачи:
Вычислите конечное значение суммы функции
Для решения задачи использовать разные способы организации цикла:
1) Цикл с предусловием (WHILE);
2) Цикл с постусловием(REPEAT…UNTIL);
3) Цикл с параметром (FOR) со счётчиком (с шагом 1).
Пояснение:
1 способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется слагаемое;
S – переменная, в которой происходит накапливание значений сумм.
Первое значение переменной S=0.
Program Summa1;
Var
X: integer; S, A: real;
Begin
X:=1;
S:=0;
While X<=20 do begin
A:=1/(X*X);
S:=S+A;
X:=X+1;
end;
Writeln ('S=', S:4:2);
readln;
End.
2 способ: Цикл с постусловием (REPEAT…UNTIL)
Program Summa2;
Var
X: integer; S, A: real;
Begin
X:=1;
S:=0;
repeat
A:=1/(X*X);
S:=S+A;
X:=X+1;
until Х>20;
Writeln ('S=', S:4:2);
readln;
End.
3 способ: Цикл с параметром (FOR) со счётчиком (с шагом 1)
Program Summa3;
Var
X: integer; S, A: real;
Begin
S:=0;
for X:=1 to 20 do begin
A:=1/(X*X);
S:=S+A;
end;
Writeln ('S=', S:4:2);
readln;
End.
Условие задачи:
Вычислите конечное значение произведения функции
Пояснение:
1способ: Цикл с предусловием (WHILE)
Обозначения:
А – вспомогательная переменная, в которой вычисляется множитель;
P – переменная, в которой происходит накапливание значений произведения.
Первое значение переменной P=1.
Program Summa1;
Var
N: integer; P, A: real;
Begin
N:=1;
P:=1;
While N<=10 do begin
A:=N*N/(3+N);
P:=P*A;
N:=N+1;
end;
Writeln ('P=', P:4:2);
readln;
End.
Остальные способы аналогично вычислению конечной суммы.