Dastur matni . birlik fayli 1.pas _
birlik 1;
interfeys
foydalanadi
Windows, Xabarlar, SysUtils, Variantlar, Sinflar, Grafika, Boshqaruv elementlari, Shakllar,
Dialoglar, Menyular, XPMan, StdCtrls, Grids, birlik2;
turi
TForm1 = sinf (TForm)
Koeffitsient: TStringGrid;
Gauss: TStringGrid;
Jgauss: TStringGrid;
1-tugma: TB tugmasi;
2-tugma: TB tugmasi;
XPManifest1: TXPManifest;
SaveDialog1: TSaveDialog;
MainMenu1: TMainMenu;
1-fayl: TMenuItem;
Yangi 1: TMenuItem;
Saqlash1: TMenuItem;
Chiqish1: TMenuItem;
Matritsa: TStringGrid;
protsedurasi New1Click(Sender: TObject);
protsedura Button1Click(Sender: TObject);
protsedura Button2Click(Sender: TObject);
protsedura Save1Click(Sender: TObject);
Exit1Click protsedurasi(Sender: TObject);
xususiy
{ Shaxsiy deklaratsiyalar }
ommaviy
{ Ommaviy deklaratsiyalar }
oxiri;
var
Form1: TForm1;
s:integer;
amalga oshirish
{$R *.dfm}
protsedurasi TForm1.Exit1Click(Sender: TObject);
boshlash
yaqin;
oxiri;
protsedurasi TForm1.New1Click(Sender: TObject);
var i,dl:integer;
prover:string;
boshlash
form1.Enabled:=false;
takrorlang
prover:=inputbox(' Enter hajmi tizim ',' ma'nosi 2 va 20', '2' oralig'ida );
dl:=length(prover);
agar dl=0 bo'lsa, xabarni ko'rsatish(' Enter hajmi tizimlari ') boshqa
boshlash
agar (dl=1) va (prover<'9') va (prover>'0') keyin s:=trunc(strtofloat(prover))
boshqa
boshlash
for i:=1 to dl do
boshlash
agar prover[i]>'9' keyin
boshlash
showmessage(' Enter raqam ');
sindirish;
oxiri
agar i=dl bo‘lsa, s:=trunc(strtofloat(inputbox(' Enter ) hajmi tizim ',' ma'nosi 2 va 20' , '2'))) orasida;
oxiri;
oxiri;
oxiri;
qadar (s>=2) va (s<=maxr);
form1.Enabled:=true;
matrix.RowCount:=s+1;
matrix.ColCount:=s+1;
gauss.colCount:=s+1;
coef.rowCount:=s+1;
jgauss.colCount:=s+1;
koef.Cells[1,0]:='B';
gauss.Cells[0,1]:='Gauss';
jgauss.Cells[0,1]:='J-Gauss';
for i:=1 to s do
boshlash
matrix.Cells[0,i]:=floattostr(i);
matrix.Cells[i,0]:='A'+floattostr(i);
koef.Cells[0,i]:=floattostr(i);
gauss.Cells[i,0]:='X'+floattostr(i);
jgauss.Cells[i,0]:='X'+floattostr(i);
oxiri;
oxiri;
protsedurasi TForm1.Button1Click(Sender: TObject);
var a:ary2s;
x,y:arys;
xato: mantiqiy;
i,j,l,K:integer;
prover:string;
boshlash
{Dastlabki ma'lumotlar bilan massivlarni o'qish va '.' yoki ','}
{**************************************************** ********
for i:=1 to s do
j:=1 uchun s qilish
boshlash
prover:=matritsa.Cells[j,i];
k:=uzunlik(nasl);
agar k=0 bo'lsa
boshlash
showmessage('Siz bir yoki bir nechta tizim elementini kiritmadingiz.');
Chiqish;
oxiri;
for l:=1 to length(prover) do
agar prover[l]='.' keyin prover[l]:=','
else if prover[l]>'9' keyin
boshlash
showmessage('Harf bir yoki bir nechta tizim elementi sifatida kiritilgan. Oʻzgartiring ular ustida raqamlar !');
Chiqish;
oxiri;
matritsa.Hujayralar[j,i]:=prover;
a[i,j]:=strtofloat(matritsa.hujayralar[j,i]);
oxiri;
for i:=1 to s do
boshlash
prover:=coef.cells[1,i];
for l:=1 to length(prover) do
agar prover[l]='.' keyin prover[l]:=','
else if prover[l]>'9' keyin
boshlash
showmessage('Harf bir yoki bir nechta tizim elementi sifatida kiritilgan. Oʻzgartiring ular ustida raqamlar !');
Chiqish;
oxiri;
coef.cells[1,i]:=prover;
y[i]:=strtofloat(coef.cells[1,i]);
oxiri;
{**************************************************** ********
{Qaror va natijalarni chiqarish}
{**************************************************** ********
gauss1(a,y,x,s,xato);
agar xato bo'lmasa
for i:=1 to s do
gauss.cells[i,1]:=floattostr(x[i])
boshqa
boshlash
showmessage('Yechim tizimida yo'q');
new1.Click;
oxiri;
{**************************************************** ********
oxiri;
protsedurasi TForm1.Button2Click(Sender: TObject);
var a:ary2s;
x,y:arys;
xato: mantiqiy;
i,j,l,k:integer;
prover:string;
boshlash
{Dastlabki ma'lumotlar bilan massivlarni o'qish}
{**************************************************** ********
{Dastlabki ma'lumotlar bilan massivlarni o'qish va '.' yoki ','}
{**************************************************** ********
for i:=1 to s do
j:=1 uchun s qilish
boshlash
prover:=matritsa.Cells[j,i];
k:=uzunlik(nasl);
agar k=0 bo'lsa
boshlash
showmessage('Siz bir yoki bir nechta tizim elementini kiritmadingiz.');
Chiqish;
oxiri;
for l:=1 to length(prover) do
agar prover[l]='.' keyin prover[l]:=','
else if prover[l]>'9' keyin
boshlash
showmessage('Harf bir yoki bir nechta tizim elementi sifatida kiritilgan. Oʻzgartiring ular ustida raqamlar !');
Chiqish;
oxiri;
matritsa.Hujayralar[j,i]:=prover;
a[i,j]:=strtofloat(matritsa.hujayralar[j,i]);
oxiri;
for i:=1 to s do
boshlash
prover:=coef.cells[1,i];
for l:=1 to length(prover) do
agar prover[l]='.' keyin prover[l]:=','
else if prover[l]>'9' keyin
boshlash
showmessage('Harf bir yoki bir nechta tizim elementi sifatida kiritilgan. Oʻzgartiring ular ustida raqamlar !');
Chiqish;
oxiri;
coef.cells[1,i]:=prover;
y[i]:=strtofloat(coef.cells[1,i]);
oxiri;
{**************************************************** ********
{**************************************************** ********
{Qaror va natijalarni chiqarish}
{**************************************************** ********
gaussj(a,y,x,s,xato);
agar xato bo'lmasa
for i:=1 to s do
jgauss.cells[i,1]:=floattostr(x[i])
boshqa
boshlash
showmessage('Sistema resheniya ne imeet');
new1.Click;
oxiri;
{****************************************************}
oxiri;
protsedurasi TForm1.Save1Click(Sender: TObject);
var f:matn fayli;
i,j:integer;
boshlash
savedialog1.Filter:='Matnli fayllar (*.txt)|*.txt|';
agar savedialog1.Execute keyin
boshlash
assignfile(f,savedialog1.filename+'.txt');
qayta yozish (f);
for i:=1 to s do
boshlash
writeln(f);
j:=1 uchun s qilish
write(f,matritsa.hujayralar[i,j]:4,' ');
write(f,'|',coef.cells[1,i]);
oxiri;
writeln(f);
writeln(f);
writeln(f,'Gauss');
for i:=1 to s do
writeln(f,'X'+floattostr(i)+'='+gauss.cells[i,1],' ');
writeln(f);
writeln(f,'J-Gauss');
for i:=1 to s do
writeln(f,'X'+floattostr(i)+'='+jgauss.cells[i,1],' ');
yopiq fayl(f);
oxiri;
oxiri;
oxiri.
Do'stlaringiz bilan baham: |