Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8 var.docx
Скачиваний:
2
Добавлен:
07.09.2019
Размер:
89.88 Кб
Скачать

Постановка задачи 2.

Разработать алгоритм и программу для нахождения максимального и минимального элементов матрицы Zij и их индексов (i,j). Экстремальные значения Zij искать среди элементов, для которых выполняются условия:

Матрица Zij формируется исходя из условий:

Где n-номер варианта, fn, fn+1 – функции, взятые из таблицы 5.1, в соответствии с вариантом n=i: размерность матрицы 30 на 30 (i=30, j=30). Функция fn зависит от x,Z,b,c,d (таблица 5.1), которые определяются как x=n(i+j), Z=ni, b=n(i+1), c=nj, d=n(j+1), где n-номер варианта. Если fn(x) неопределима при заданных x,Z,b,c,d, то Zij=0.

В программе организовать вывод максимального и минимального элементов, а также индексов j и i в файл Z.LST.

8

9

Алгоритм (блок-схема) программы 2.

начало

Открытие файла f,’a.lst

n:=6

i:=1

j:=1

x:=n*(i+j); a:=n*i;

b:=n*(i+1); c:=n*j;

d:=n*(j+1);

i>j

да нет

x<=0

x<=0

нет да

нет да

z[i,j]:=sin(a*sin(x)/cos(x)+b*ln(sin(x))+c*ln(sin(x)/cos(x))+d*d*d*cos(x));

z[i,j]:=0

z[i,j]:=cos(exp(1/3*ln(a/cos(x)))+exp(b*x)+sin(c*x*x)/cos(c*x*x)*sin(cx)*sin(c*x)-d*exp(3/4*ln(x)));

z[i,j]:=0

j<=30

i<=30

Z1

Вывод данных на экран

Конец

Вывод данных в файл

min:=z[1,1];

max:=z[1,1];

-0.3< z[i,j] <0.3

10<i+j<50

z[i,j]> max

max:=z[i,j] k:=i l:=j

min:=z[i,j] m:=i n:=j

Z1

i:=1

j:=1

да нет

да нет

z[i,j]<min

да нет нет

J<=30

I<=30

Программа 2.

progrZm kursZch;

uses crt;

vZr z:ZrrZy[1..30,1..30] of reZl;

mZx, min:reZl;

f:text;

i,j,x,Z,b,c,d,n:integer;

k,l,m,p:integer;

BEGIN

clrscr;

Zssign(f,'Z.LST');

rewrite(f);

min:=z[1,1];

mZx:=z[1,1];n:=6;

for i:=1 to 30 do begin

for j:=1 to 30 do begin

x:=n*(i+j);

Z:=n*i;

b:=n*(i+1);

c:=n*j;

d:=n*(j+1);

if i>j then begin

if (x<=0) then

z[i,j]:=0

else

z[i,j]:=sin(Z*sin(x)/cos(x)+b*ln(sin(x))+c*ln(sin(x)/cos(x))+d*d*d*cos(x));

end

else begin

if (x<=0) then

z[i,j]:=0

else

z[i,j]:=cos(exp(1/3*ln(Z/cos(x)))+exp(b*x)+sin(c*x*x)/cos(c*x*x)*sin(cx)*sin(c*x)-d*exp(3/4*ln(x)));

end; end; end;

for i:=1 to 30 do begin

for j:=1 to 30 do begin

if (z[i,j]>-0.3) Znd (z[i,j]<0.3) Znd ((i+j)>10) Znd ((i+j)<50)

then begin

if z[i,j]>mZx then begin

mZx:=z[i,j];

k:=i; l:=j;

end;

if z[i,j]<min then begin

min:=z[i,j];

p:=i; m:=j;

end;

end; end; end;

writeln(f,'vivodit mZx i min mZtrici i ih indeksi');

writeln(f,' i=',k:2,' j=',l:2,' mZx=',mZx:6:3);

writeln(f,' i=',p:2,' j=',m:2,' min=',min:6:3);

close(f);

writeln(' i=',k:2,' j=',l:2,' mZx=',mZx:6:3);

writeln(' i=',p:2,' j=',m:2,' min=',min:6:3);

reZdln;

END.

vivodit mZx i min mZtrici i ih indeksi

i=22 j=16 mZx= 0.298

i=11 j=23 min=-0.297