Читайте также:
|
|
3.1. Розглянемо першу задачу. Побудуємо блок-схему та запишемо процедуру реалізації даної задачі. Слід відмітити, що задача реалізується за допомогою вкладених циклів. Змінна циклу і є змінноюзовнішнього циклу, а змінна циклу j – внутрішнього циклу.
3.1.1. Блок-схема для створення матриці , елементи якої визначаються за формулою
3.1.2. Процедура реалізації підпрограми знаходження матриці , елементи якої визначаються за формулою
procedure mas (var a: arr);
var i,j: integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=(3+i)/(i+j)*sqrt(exp(3*ln(i))+sqr(j))+exp((i-j)*ln(2));
write('a[',i,',',j,']=',a[i,j]:6:4,' ');
end;
writeln
end;
end;
Дана процедура формує матрицю та виводить на екран елементи матриці по стрічках. Тіло процедури реалізовано за допомогою операторів циклу з параметром, оскільки крок змінних циклу дорівнює 1.
3.2. Складемо блок-схему та процедуру реалізації другої задачі, посилаючись на дані першої задачі. Використовуючи елементи матриці обчислити елементи вектора
(і =1, 2,...5), як суму елементів головної діагоналі та п’ятого стовпця матриці.
3.2.1. Блок-схема формування вектора
3.2.2. Процедура реалізації підпрограми формування вектора
Procedure vector (a: arr; var x: array of real);
var i,j: integer;
begin
for i:=1 to 5 do
begin
x[i]:=a[i,i]+a[i,5];
write ('x[',i,']= ',x[i]:3:3,' ');
end;
end;
Дана процедура формує вектор та виводить на екран вектор у вигляді стрічки.
3.3. Складемо блок-схему та процедуру реалізації третьої задачі посилаючись на дані першої та другої задачі. Обчислити значення функції
3.3.1. Блок-схема обчислення функції
3.3.2. Процедура обчислення функції
procedure func(x:array of real;var g:real);
var k: integer; p: real;
begin
g:=0; p:=1;
for i:=1 to 5 do
begin
for k:=1 to i do p:=p*x[k]/(k+exp(k*ln(2)));
g:=g+sqr(x[i])+p;
end;
writeln('G= ',g:6:4);
readln
end;
3.5. Запишемо програму розв’язку задач першої частини, опираючись на раніше створені процедури
PROGRAM kurs6;
uses crt;
type arr=array [1..5,1..5] of real;
type xrr=array [1..5] of real;
var a: arr;
x: xrr;
si, g: real; i,j: integer;
procedure mas (var a: arr);
var i,j: integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin a[i,j]:= (3+i)/(i+j)*sqrt(exp(3*ln(i))+sqr(j))+exp((i-j)*ln(2));
write('a[',i,',',j,']=',a[i,j]:6:4,' ');
end;
writeln
end; end;
Procedure vector (a: arr; var x: xrr);
var i,j: integer;
begin
for i:=1 to 5 do
begin
x[i]:=a[i,i]+a[i,5];
write ('x[',i,']= ',x[i]:3:3,' ');
end; end;
procedure func(x: xrr;var g:real);
var k: integer; p: real;
begin
g:=0;p:=1;
for i:=1 to 5 do
begin
for k:=1 to i do p:=p*x[k]/(k+exp(k*ln(2)));
g:=g+sqr(x[i])+p;
end;
writeln('G= ',g:6:4);
end;
procedure simpson(x: xrr; var si: real);
var i,k:integer; h,z,a,b,f,f1:real;
begin
writeln('a,b'); readln(a,b);
h:=(b-a)/100; z:=b;
f1:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);
k:=1; z:=a;
f:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);
si:=f+f1;
for i:=1 to 99 do
begin
z:=z+h;
f:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);
si:=si+(3+k)*f;
k:=-k;
end;
si:=si*h/3;
writeln('integral=',si);
readln
end.
Дата добавления: 2015-01-29; просмотров: 193 | Поможем написать вашу работу | Нарушение авторских прав |