Программирование вложенных циклов для вычисления сложных сумм и произведений рядов

Программирование вложенных циклов для вычисления таблицы значений функции двух переменных

Вложенным циклом называется цикл, в теле которого находится другой цикл. Обобщенная схема вложенного цикла с предусловием показана на рисунке 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 на основе цикла
с параметром