Программирование вложенных циклов для вычисления сложных сумм и произведений рядов
Программирование вложенных циклов для вычисления таблицы значений функции двух переменных
Вложенным циклом называется цикл, в теле которого находится другой цикл. Обобщенная схема вложенного цикла с предусловием показана на рисунке 7.1. Следует отметить, что модификация параметров внутреннего цикла осуществляется внутри тела внутреннего цикла.
Рисунок 7.1 – Обобщенная схема вложенного цикла с предусловием
Обобщенная схема вложенного цикла с постусловием показана на рисунке 7.2.
Рисунок 7.2 – Обобщенная схема вложенного цикла с постусловием
Задача 5. Вычислить таблицу значений функции в диапазоне значений аргумента
,
с шагом h. Построить блок-схемы алгоритмов и написать программы на основе цикла с предусловием и цикла с постусловием.
. а=1; h=1.
Решение на основе цикла с предусловием. Блок-схема алгоритма показана на рисунке 7.3.
Рисунок 7.3 – Блок-схема алгоритма решения задачи № 5 на основе цикла
с предусловием
Текст программы на основе цикла с предусловием:
program lab6preduslovie;
uses crt;
var x,y,f,a,h:real;
begin
clrscr;
writeln('Vvedite a,h');
readln(a,h);
x:=-a;
while (x<=a) do
begin { Начало тела внешнего цикла }
y:=-a;
while (y<=a) do
begin { Начало тела внутреннего цикла }
f:=5*sin(8*x)+3*x*x*x*x*cos(3*y);
writeln('x=',x:5:4,'y=',y:5:4,'f=',f:5:4);
y:=y+h;
end; { Конец тела внутреннего цикла }
x:=x+h;
end; { Конец тела внешнего цикла }
end.
Результаты работы программы на основе цикла с предусловием показаны на рисунке 7.4.
Рисунок 7.4 – Результаты работы программы на основе цикла с предусловием
Решение на основе цикла с постусловием. Блок-схема алгоритма показана на рисунке 7.5.
Рисунок 7.5 – Блок-схема алгоритма решения задачи № 5 на основе цикла
с постусловием
Текст программы на основе цикла с постусловием:
program lab6postuslovie;
uses crt;
var x,y,f,a,h:real;
clrscr;
writeln('Vvedite a,h');
readln(a,h);
x:=-a;
repeat
y:=-a;
repeat
f:=5*sin(8*x)+3*x*x*x*x*cos(3*y);
writeln('x=', x:5:4, 'y=', y:5:4, 'f=', f:5:4);
y:=y+h;
until(y>a);
x:=x+h;
until(x>a);
end.
Задача 6. Вычислить выражение на Паскале. Построить блок-схемы алгоритмов и написать программы на основе вложенных циклов с предусловием, постусловием и параметром.
Решение на основе цикла с предусловием. Блок-схема алгоритма показана на рисунке 8.1. На ней имеют место следующие обозначения:
Q – результирующее произведение;
;
i – параметр внешнего цикла;
x – параметр внутреннего цикла;
n – верхняя граница внешнего цикла;
k – верхняя граница внутреннего цикла.
Рисунок 8.1 – Блок-схема алгоритма решения задачи № 6 на основе цикла
с предусловием
Текст программы на основе цикла с предусловием:
uses crt;
var C,P:real;
i,n,k,x:integer;
begin
clrscr;
writeln('Vvedite k,n');
readln(k,n);
P:=1;
i:=1;
while (i<=n) do
begin
C:=0;
x:=1;
while (x<=k) do
begin
C:=C+cos(2*sqr(x)+1);
x:=x+1;
end;
i:=i+1;
P:=P*C;
end;
writeln('P=',P:5:4);
end.
Результаты работы программы на основе цикла с предусловием показаны на рисунке 8.2.
Рисунок 8.2 – Результаты работы программы на основе цикла с предусловием
Решение на основе цикла с постусловием. Блок-схема алгоритма показана на рисунке 8.3.
Рисунок 8.3 – Блок-схема алгоритма решения задачи № 6 на основе цикла
с постусловием
Текст программы на основе цикла с постусловием:
uses crt;
var C,P:real;
i,n,k,x:integer;
begin
clrscr;
writeln('Vvedite k,n');
readln(k,n);
P:=1;
i:=1;
repeat
C:=0;
x:=1;
repeat
C:=C+cos(2*sqr(x)+1);
x:=x+1;
until(x>k);
i:=i+1;
P:=P*C;
until(i>n);
writeln('P=',P:5:4);
end.
Решение на основе цикла с параметром. Блок-схема алгоритма показана на рисунке 8.4.
Текст программы:
uses crt;
var C,P:real;
i,n,k,x:integer;
begin
clrscr;
writeln('Vvedite k,n');
readln(k,n);
P:=1;
for i:=1 to n do
begin
C:=0;
for x:=1 to k do
C:=C+cos(2*sqr(x)+1);
P:=P*C;
end;
writeln('P=',P:5:4);
end.
Рисунок 8.4 – Блок-схема алгоритма решения задачи № 6 на основе цикла
с параметром