Лабораторные работы 1 Вариант (Text_programmy1)

Посмотреть архив целиком

Текст программы

unit Unit1;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;


type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;

x:array[1..11] of real;

y:array[1..11] of real;

mas:array[1..4,1..5] of real;

mas2:array[1..2,1..3] of real;

mas3:array[1..3,1..4] of real;

a:array [1..4] of real;

nev:real;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);

var j,i,k,l,n,imax,t,v,n_i,w:integer;

sx,sy:string;

str:string;

d,max,r,sum:real;

begin


//Задание Xi yi

d:=0.0;

sx:='x: ';

sy:='y: ';

for i:=1 to 11 do

begin

x[i]:=d;

if x[i]<>0 then

y[i]:=exp(x[i])+sin(x[i]*x[i]*x[i])

else

y[i]:=1;

d:=d+(2/10);

str:=floattostrf(x[i],fffixed,5,4);

sx:=sx+' '+str;

str:=floattostrf(y[i],fffixed,5,4);

sy:=sy+' '+str;

end;

memo1.Clear;

memo1.Lines.Add(sx);

memo1.Lines.Add(sy);

// Конец


//Задание Bik

for i:=0 to 3 do

begin

for k:=0 to 3 do

begin

d:=0.0;

for l:=1 to 11 do

begin

if (x[l])=0 then

begin

if (i+k)=0 then

d:=d+1

end

else

d:=d+exp((i+k)*ln(x[l]));

end;

mas[i+1,k+1]:=d;

end;

end;

// конец


// Задание Cp

for i:=0 to 3 do

begin

d:=0.0;

for l:=1 to 11 do

begin

if x[l]=0 then

begin

if (i)=0 then

d:=d+y[l]

else

d:=d+0;

end

else

d:=d+exp((i)*ln(x[l]))*y[l];

end;

mas[i+1,5]:=d;

end;

//конец

//Вывод B и С

for i:=1 to 4 do

begin

str:='';

for j:=1 to 5 do

begin

str:=str+floattostrf(mas[i,j],fffixed,5,4)+' ';

end;

memo1.Lines.Add(str);


end;

// Формирование массивов для Гаусса

//Линейная функция

for i:=1 to 2 do

begin

for j:=1 to 2 do

mas2[i,j]:=mas[i,j] ;

mas2[i,3]:=mas[i,5];

end;

//Квадратная функция

for i:=1 to 3 do

begin

for j:=1 to 3 do

mas3[i,j]:=mas[i,j] ;

mas3[i,4]:=mas[i,5];

end;



memo1.Lines.add('МАТРИЦА ДЛЯ ЛИНЕЙНОЙ ФУНКЦИИ');

for i:=1 to 2 do

begin

str:='';

for j:=1 to 3 do

begin

str:=str+floattostrf(mas2[i,j],fffixed,5,4)+' ';

end;

memo1.Lines.Add(str);


end;


//Нахождение Линенйной функции Функций

n:=2;

for i:=1 to n do

begin

max:=mas2[i,i];

imax:=i;

for l:=i+1 to n do

if abs(mas2[l,i])>abs(max) then

begin

max:=mas2[l,i];

imax:=l;

end;

for j:=i to n+1 do

begin

r:=mas2[i,j];

mas2[i,j]:=mas2[imax,j];

mas2[imax,j]:=r;

end;

r:=mas2[i,i];

for j:=i to n+1 do

mas2[i,j]:=mas2[i,j]/r;


for l:=i+1 to n do

begin

r:=mas2[l,i];

for j:=i to n+1 do

mas2[l,j]:=mas2[l,j]-mas2[i,j]*r;

end;

str:='';


memo1.Lines.Add('НОМЕР ШАГА '+inttostr(i));

for t:= 1 to n do

begin

for v:=1 to 3 do

begin

str:=str+floattostr(mas2[t,v])+' ';

end;

memo1.Lines.Add(str);

str:='';

end;

end;

//обратный ход

a[n]:=mas2[n,n+1];

for i:=1 to n-1 do

begin

n_i:=n-i;

sum:=0.0;

for j:=n_i+1 to n do

sum:=sum+a[j]*mas2[n_i,j];

a[n_i]:=mas2[n_i,n+1]-sum;

end;

str:=' FI=' +floattostrf(a[1],fffixed,5,4)+' + '+ floattostrf(a[2],fffixed,5,4)+'*x' ;

memo1.Lines.Add('ЛИНЕЙНАЯ ФУНКЦИЯ');

memo1.lines.add(str);

nev:=0.0;

for l:=1 to 11 do

begin

nev:=nev+sqr(a[1]+a[2]*x[l]-y[l]);

end;

memo1.lines.Add('НЕВЯЗКА ЛИНЕЙНОЙ ФУНКЦИИ='+floattostrf(nev,fffixed,5,4)) ;




//Квадратная функция

memo1.Lines.add('МАТРИЦА ДЛЯ КВАДРАТИЧНОЙ ФУНКЦИИ');

for i:=1 to 3 do

begin

str:='';

for j:=1 to 4 do

begin

str:=str+floattostrf(mas3[i,j],fffixed,5,4)+' ';

end;

memo1.Lines.Add(str);


end;


//Нахождение Квадратичной функции Функций

n:=3;

for i:=1 to n do

begin

max:=mas3[i,i];

imax:=i;

for l:=i+1 to n do

if abs(mas3[l,i])>abs(max) then

begin

max:=mas3[l,i];

imax:=l;

end;

for j:=i to n+1 do

begin

r:=mas3[i,j];

mas3[i,j]:=mas3[imax,j];

mas3[imax,j]:=r;

end;

r:=mas3[i,i];

for j:=i to n+1 do

mas3[i,j]:=mas3[i,j]/r;


for l:=i+1 to n do

begin

r:=mas3[l,i];

for j:=i to n+1 do

mas3[l,j]:=mas3[l,j]-mas3[i,j]*r;

end;

str:='';


memo1.Lines.Add('НОМЕР ШАГА '+inttostr(i));

for t:= 1 to n do

begin

for v:=1 to 4 do

begin

str:=str+floattostr(mas3[t,v])+' ';

end;

memo1.Lines.Add(str);

str:='';

end;

end;

//обратный ход

a[n]:=mas3[n,n+1];

for i:=1 to n-1 do

begin

n_i:=n-i;

sum:=0.0;

for j:=n_i+1 to n do

sum:=sum+a[j]*mas3[n_i,j];

a[n_i]:=mas3[n_i,n+1]-sum;

end;

str:=' FI=' +floattostrf(a[1],fffixed,5,4)+' + '+ floattostrf(a[2],fffixed,5,4)+'*x+'+floattostrf(a[3],fffixed,5,4)+'*x^2' ;

memo1.Lines.Add('КВАДРАТИЧНАЯ ФУНКЦИЯ');

memo1.lines.add(str);

nev:=0.0;

for l:=1 to 11 do

begin

nev:=nev+sqr(a[1]+a[2]*x[l]+a[3]*x[l]*x[l]-y[l]);

end;

memo1.lines.Add('НЕВЯЗКА КВАДРАТИЧНОЙ ФУНКЦИИ='+floattostrf(nev,fffixed,5,4)) ;








//Кубическая функция

memo1.Lines.add('МАТРИЦА ДЛЯ КУБИЧЕСКОЙ ФУНКЦИИ');

for i:=1 to 4 do

begin

str:='';

for j:=1 to 5 do

begin

str:=str+floattostrf(mas[i,j],fffixed,5,4)+' ';

end;

memo1.Lines.Add(str);


end;


//Нахождение Кубической Функций

n:=4;

for i:=1 to n do

begin

max:=mas[i,i];

imax:=i;

for l:=i+1 to n do

if abs(mas[l,i])>abs(max) then

begin

max:=mas[l,i];

imax:=l;

end;

for j:=i to n+1 do

begin

r:=mas[i,j];

mas[i,j]:=mas[imax,j];

mas[imax,j]:=r;

end;

r:=mas[i,i];

for j:=i to n+1 do

mas[i,j]:=mas[i,j]/r;


for l:=i+1 to n do

begin

r:=mas[l,i];

for j:=i to n+1 do

mas[l,j]:=mas[l,j]-mas[i,j]*r;

end;

str:='';


memo1.Lines.Add('НОМЕР ШАГА '+inttostr(i));

for t:= 1 to n do

begin

for v:=1 to 5 do

begin

str:=str+floattostr(mas[t,v])+' ';

end;

memo1.Lines.Add(str);

str:='';

end;

end;

//обратный ход

a[n]:=mas[n,n+1];

for i:=1 to n-1 do

begin

n_i:=n-i;

sum:=0.0;

for j:=n_i+1 to n do

sum:=sum+a[j]*mas[n_i,j];

a[n_i]:=mas[n_i,n+1]-sum;

end;

str:=' FI=' +floattostrf(a[1],fffixed,5,4)+' + '+ floattostrf(a[2],fffixed,5,4)+'*x+'+floattostrf(a[3],fffixed,5,4)+'*x^2+'+floattostrf(a[4],fffixed,5,4)+'*x^3' ;

memo1.Lines.Add('КУБИЧЕСКАЯ ФУНКЦИЯ');

memo1.lines.add(str);

nev:=0.0;

for l:=1 to 11 do

begin

nev:=nev+sqr(a[1]+a[2]*x[l]+a[3]*x[l]*x[l]+a[4]*x[l]*x[l]*x[l]-y[l]);

end;

memo1.lines.Add('НЕВЯЗКА КУБИЧЕСКОЙ ФУНКЦИИ='+floattostrf(nev,fffixed,5,4)) ;


end;


end.


Случайные файлы

Файл
referat.doc
29086-1.rtf
26241.rtf
27610-1.rtf
49269.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.