Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Вычислить значение функции




 

 

Алгоритм функции znachf

 

 
 
нет
да
да
да

 

 


да
да

 

 


Таблица переменных

 

Имя Тип Назначение Параметр
y вещественный имя функции -
n целый размерность формальный
a[1..n,1..n] вещественный матрица
x[1..n] вектор
i,j,k целый параметр цикла локальный
s,c вещественный вспомогательный
y1,y2 скаляр

 

function znachf(n:integer;a:matr;x:vect):real;

var i,j,k: integer; s,y1,y2,c: real;

begin

y1:=exp(30);

for i:=1 to n do

if odd(i) then

begin s:=0;

for k:=1 to n do

if odd(k)=false then

if abs(a[i,k])>1е-6 then

s:=s+ln(abs(a[i,k]))/ln(10);

if s<y1 then y1:=s;

end;

y2:=0;

for k:=1 to n do

if odd(k)=false then

begin

c:=1;

for j:=1 to k do c:=c*j;

y2:=y2+x[k]*exp(1/k*ln(с));

end;

writeln('y1=',y1:1:3,' y2=',y2:1:3);

y:=y1+y2;

znachf:=y;

end{znachf};

 

4.2.3.6. Вывод информации.

Алгоритм процедуры вывода матрицы writematr

       
   
 
 


name, n, a[1..n,1..n]

 
 
‘матрица’,


 

 

 
 

 


Таблица переменных

 

Имя Тип Назначение Параметр
n Целый Размерность Формальный  
a[1..n,1..n] Вещественный Матрица
i,j Целый Параметр цикла Локальный
name Строчный Имя матрицы Формальный

 

procedure writematr(name:string;n:integer;a:matr);

var i,j:integer;

begin

writeln(' ':15,'матрица ',name);

for i:=1 to n do

begin

for j:=1 to n do write(a[i,j]:7:2,' ');

writeln;

end;

end{writematr};

 

 

Алгоритм процедуры вывода вектора writevect

       
 
   


name, n, x[1..n]

 

 
 


 

 
 

 


 
 

 


 

 

Таблица переменных

 

Имя Тип Назначение Параметр  
n целый размерность вектора формальный  
i параметр цикла локальный    
 
x[1..n] вещественный вектор формальный  
name строчный имя вектора  

 

 

procedure writevect(name:string;n:integer;x:vect);

var i:integer;

begin

writeln('':15,’вектор ',name);

for i:=1 to n do write(x[i]:7:2,' ');

writeln;

end{writevect};

 

 

4.3. Паскаль-программа.

program kursrab;{Хасанов А.А. ст.гр. АГ 98-02 вар. 111}

uses printer,crt;

type vect=array[1..30] of real;

matr=array[1..30,1..30] of real;

var i,j,n: integer;

x: vect; b,a,z: matr; y: real;

simvol: char;

{-----------Часть 1--------------}

procedure matrica(n:integer;var a:matr);

var i,j:integer; f1,f2,f3:real;

begin

for i:=1 to n do for j:=1 to n do

begin

f1:=cos(pi*(8.25+(i+j)/2))/sin(pi*(8.25+(i+j)/2));

f2:=pi*i*(1+i/j);

f3:=ln(sqr(n)-i/j+1)/ln(2);

a[i,j]:=f1/f2*f3;

end;

end{matrica};

procedure writematr(name:string;n:integer;a:matr);

var i,j:integer;

begin

writeln('':15,'матрица',name);

for i:=1 to n do

begin

for j:=1 to n do

write(a[i,j]:7:2,' ');

writeln;

end;

end{writematr};

{-----------Часть 2--------------}

procedure vector(n:integer; a:matr; var x:vect);

var i,j:integer; m:real;

begin

for i:=1 to n do

begin

m:=-exp(30);

for j:=1 to n do

if abs(a[j, i])<=10 then if a[j, i]>m then m:=a[j, i];

x[i]:=m;

end;

end{writematr};

 

procedure writevect(name:string;n:integer;x:vect);

var i,j:integer;

begin

writeln('':15,'вектор ',name);

for i:=1 to n do write(x[i]:7:2,' ');

writeln;

end{writevect};

{-----------Часть 3-------------}

procedure matoper(n:integer;a:matr;x:vect;var z:matr);

var i,k,j:integer; s,y: real; b,u,v,c:matr;

begin

for i:=1 to n do

for j:=1 to n do

begin

b[i,j]:=a [j, i];u[i,j]:=b[i, j];v[i, j]:=a[i, j];

if i=j then

begin

u[i,j]:=b[i,j]-1;v[i,j]:=a[i,j]-1;

end;

end;

for i:=1 to n do

for j:=1 to n do

begin

s:=0;

for k:=1 to n do s:=s+u[i,k]*v[k,j];

c[i,j]:=s;

end;

y:=0;

for i:=1 to n do

y:=y+x[i]*(-x[i]);

for i:=1 to n do

for j:=1 to n do

z[i,j]:=c[i,j]*y;

writematr('B=At',n,b);readln;

writematr('U=B-E',n,u);readln;

writematr('V=A-E',n,v);readln;

writematr('C=U*V ',n,c);readln;

write('скаляр y=X*X ');

writeln('y=',y:1:3);

end{matoper};

 

 

{-----------Часть 4----------------}

procedure porjadok(n:integer; a:matr; var b:matr);

var j,i,k:integer; c:real;

begin

for i:=1 to n do

for j:=1 to n do

b[i,j]:=a[i,j];

for i:=1 to n-1 do

if b[i,n] > 0 then

begin

k:=i;

for j:=i+1 to n do

if b[j,n]>0 then

if b[j,n]>b[k,n] then k:=j;

end;

if k<>i then

begin

c:=b[i,n];

b[i,n]:=b[k,n];

b[k,n]:=c;

end;

end{porjadok};

{-----------Часть 5----------------}

function znachf(n:integer;a:matr;x:vect):real;

var i,j,k: integer; s,y1,y2,c: real;

begin

y1:=exp(30);

for i:=1 to n do

if odd(i) then

begin s:=0;

for k:=1 to n do if odd(k)=false then

if abs(a[i,k])>1e-6 then

s:=s+ln(abs(a[i,k]))/ln(10);

if s<y1 then y1:=s;

end;

y2:=0;

for k:=1 to n do if odd(k)=false then

begin

c:=1;

for j:=1 to k do c:=c*j; y2:=y2+x[k]*exp(1/k*ln(c));

end;

writeln('y1=',y1:1:3,' y2=',y2:1:3);

y:=y1+y2;

znachf:=y;

end{znachf};

{----------Основная программа---------}

begin

clrscr;

write(' Введите размерность матрица n ');readln(n);

writeln(' ':25,' Исходные данные');

writeln('размерность матрицы n=',n);

writeln(' ':20,' результаты расчетов');

writeln('------------------- часть 1--------------------');

writeln('Вычислить элементы матрицы А по формуле');

matrica(n,a);

writematr('A',n,a);

writeln('------------------- часть 2---------------------');

writeln('Из матрицы А получить вектор Х,');

writeln('элемент которого х[i] определяется как наибольший ');

writeln(' среди принадлежащих отрезку [-10,10]');

writeln('элементов i-го столбца матрицы.');

vector(n,a,x);

writevect('X',n,x);

writeln('------------------- часть 3---------- ----------');

writeln(' ':7,'Вычислить Z=(At-E)(A-E)(X-Xи)');

matoper(n,a,x,z);

writeln('Результат: ');

writematr('Z',n,z);

writeln('------------------- часть 4---------------------');

writeln('Упорядочить по убыванию положительные элементы ');

writeln('последнего столбца мартицы А');

porjadok(n,a,b);

writematr('B',n,b);

writeln('------------------- часть 5----------------------- ');

writeln('значение функции y=y1+y2');

y:=znachf(n,a,x);

writeln('y=',y:1:3);

writeln('----------------конец задачи----------------------');

end{kursrab}.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных