Thí Nghiệm

You might also like

You are on page 1of 72

I.

NỘI SUY
Program NOISUY1;
Uses Crt;
const nmax = 50;
Type
mx = array [ 1..nmax] of real;
Var
X,Y,t,xa,cpa,xh,dh,tr,ra,rb,p,roh,r,il,ih,tt,ron,la,mu : mx;
xs,ys,x2,y2,p2,t2,tt2,roh2,r2,il2,ih2,f,af,aw,ap,m1,m2,ron2,la2,mu2 : real;
i,j,k,n,ncb : integer;
kt,kt2,kt3,kt4,kt5,kt6,kt7:char;
{--------------------------------------------------------------------------}
{Sinh vien tu viet chuong trinh noi suy}
Procedure NOISUY(xs:real;Var ys:real;Y,X:mx);
Begin
k:=0;
Repeat
K:=k+1;
Until (xs<X[k]);
ys:=y[k-1] + (Y[k] - Y[k-1])*(xs - X[k-1])/(X[k] - X[k-1]);
End;
{----------------------------------------------------------------------}
Procedure SOLIEU2;
{ Can bang pha cua he Benzen - Toluen }
Begin

X[1] :=0.0;X[2] :=0.050;X[3] :=0.10;X[4] :=0.20;X[5] :=0.30;


X[6] :=0.40;X[7] :=0.50;X[8] :=0.60;X[9] :=0.70;X[10] :=0.80;
X[11] :=0.90;X[12] :=0.95;X[13] :=1.0;

Y[1] :=0.0;Y[2] :=0.10838;Y[3] :=0.20570;Y[4] :=0.37230;Y[5] :=0.50844;


Y[6]:=0.62061;Y[7]:=0.71374;Y[8]:=0.79160;Y[9] :=0.85710;Y[10] :=0.91254;
Y[11]:=0.95970;Y[12] :=0.98063;Y[13] :=1.00;

T[1] :=110.61; T[2] :=108.36; T[3] :=106.22; T[4] :=102.24;T[5] :=98.61;


T[6] :=95.30; T[7] :=92.25; T[8] :=89.44; T[9] :=86.84;T[10] :=84.43;
T[11] :=82.19; T[12] :=81.12; T[13] :=80.10;
End;
{---------------------------------------------------------------------------}

{--------------------------------------------------------------------------}
Procedure SOLIEU10;
Begin
{ Cac thong so cua hoi va nuoc bao hoa }
{ Ap suat hoi nuoc bao hoa, Atm, tuyet doi }

P[1] := 0.03; P[2] := 0.04; P[3] := 0.05; P[4] := 0.06; P[5] :=0.08;
P[6] := 0.1; P[7] := 0.12; P[8] := 0.15; P[9] := 0.2; P[10] := 0.3;
P[11] := 0.4; P[12] := 0.5;P[13] := 0.6; P[14] := 0.7; P[15]:= 0.8;
p[16]:= 0.9; P[17] :=1.0; P[18] := 1.2; P[19] :=1.4; P[20] :=1.6;
p[21]:= 1.8; p[22] :=2.0; p[23] := 3.0; p[24] :=4.0; p[25] :=5.0;
p[26]:= 6.0; p[27] :=7.0; p[28] := 8.0; p[29] :=9.0; p[30] :=10.0;
p[31]:= 11.; p[32] :=12.; p[33] := 13.; p[34] :=14.; p[35]:=15.;
p[36]:= 16.; p[37] :=17.; p[38] := 18.; p[39] :=19.; p[40]:=20.;
p[41]:= 30.; p[42] :=40.; p[43] := 50.; p[44] :=60.; p[45]:=70.;
{ Nhiet do hoi nuoc bao hoa , t 0C }
t[1]:=23.7; t[2]:=28.6; t[3]:=32.5; t[4]:=35.8; t[5]:=41.1;
t[6]:=45.4; t[7]:=49.0; t[8]:=53.6; t[9]:=59.7; t[10]:=68.7;
t[11]:=75.4; t[12]:=80.9; t[13]:=85.5; t[14]:=89.3; t[15]:=93.0;
t[16]:=96.2; t[17]:=99.1; t[18]:=104.2; t[19]:=108.7; t[20]:=112.7;
t[21]:=116.3; t[22]:=119.6; t[23]:=132.9; t[24]:=142.9; t[25]:=151.1;
t[26]:=158.1; t[27]:=164.2; t[28]:=169.6; t[29]:=174.5; t[30]:=179.0;
t[31]:=183.2; t[32]:=187.1; t[33]:=190.7; t[34]:=194.1; t[35]:=197.4;
t[36]:=200.4; t[37]:=203.4; t[38]:=206.2; t[39]:=208.8; t[40]:=211.4;
t[41]:=232.8; t[42]:=249.2; t[43]:=262.7; t[44]:=274.3; t[45]:=284.5;
{ Khoi luong rieng cua hoi nuoc bao hoa Ro hoi * 1E3 }
roh[1]:=21.49; roh[2]:=28.20; roh[3]:=34.81; roh[4]:=41.33; roh[5]:=54.20;
roh[6]:=66.86; roh[7]:=79.37; roh[8]:=97.89; roh[9]:=128.3; roh[10]:=187.6;
roh[11]:=245.6; roh[12]:=302.7; roh[13]:=359.0;roh[14]:=414.7;roh[15]:=469.9;
roh[16]:=524.6; roh[17]:=579.0; roh[18]:=686.5;roh[19]:=793.1;roh[20]:=898.;
roh[21]:=1003.; roh[22]:=1107.; roh[23]:=1618.;roh[24]:=2120.;roh[25]:=2614.;
roh[26]:=3104.; roh[27]:=3591.; roh[28]:=4075.;roh[29]:=4536.;roh[30]:=5037.;
roh[31]:=5516.; roh[32]:=5996.; roh[33]:=6474.;roh[34]:=6952.;roh[35]:=7431.;
roh[36]:=7909.; roh[37]:=8389.; roh[38]:=8868.;roh[39]:=9349.;roh[40]:=9830.;
roh[41]:=14700.; roh[42]:=19730.; roh[43]:=24960.; roh[44]:=30410;
roh[45]:=36120.;

{ An nhiet hoa hoi R, Kj/Kg }


r[1]:=2440.; r[2]:=2429.; r[3]:=2420.; r[4]:=2413.; r[5]:=2400.;
r[6]:=2390.; r[7]:=2382.; r[8]:=2372.; r[9]:=2358.; r[10]:=2336.;
r[11]:=2320.; r[12]:=2307.; r[13]:=2296.; r[14]:=2286.; r[15]:=2278.;
r[16]:=2270.; r[17]:=2264.; r[18]:=2249.; r[19]:=2237.; r[20]:=2227.;
r[21]:=2217.; r[22]:=2208.; r[23]:=2171.; r[24]:=2141.; r[25]:=2117.;
r[26]:=2095.; r[27]:=2075.; r[28]:=2057.; r[29]:=2040.; r[30]:=2024.;
r[31]:=2009.; r[32]:=1995.; r[33]:=1984.; r[34]:=1968.; r[35]:=1956.;
r[36]:=1943.; r[37]:=1931.; r[38]:=1920.; r[39]:=1909.; r[40]:=1898.;
r[41]:=1800.; r[42]:=1715.; r[43]:=1637.; r[44]:=1565.; r[45]:=1497.;
{ Enthalpy cua pha long IL, Kj/Kg }
il[1]:=99.3; il[2]:=119.8; il[3]:=136.2; il[4]:=150.0; il[5]:=172.2;
il[6]:=190.2; il[7]:=205.3; il[8]:=224.6; il[9]:=250.1; il[10]:=287.9;
il[11]:=315.9; il[12]:=339.0; il[13]:=358.2; il[14]:=375.0; il[15]:=389.7;
il[16]:=403.1; il[17]:=415.2; il[18]:=437.0; il[19]:=456.3; il[20]:=473.1;
il[21]:=483.6; il[22]:=502.4; il[23]:=558.9; il[24]:=601.1; il[25]:=637.7;
il[26]:=667.9; il[27]:=694.3; il[28]:=718.4; il[29]:=740.0; il[30]:=759.6;
il[31]:=778.1; il[32]:=795.3; il[33]:=811.2; il[34]:=826.7; il[35]:=840.9;
il[36]:=854.8; il[37]:=867.7; il[38]:=880.3; il[39]:=892.5; il[40]:=904.2;
il[41]:=1002.; il[42]:=1079.; il[43]:=1143.; il[44]:=1199.; il[45]:=1249.;
{ Enthalpy cua pha hoi Ih, Kj/kg }
ih[1]:=2539.; ih[2]:=2548.; ih[3]:=2556.; ih[4]:=2562.; ih[5]:=2573.;
ih[6]:=2581.; ih[7]:=2588.; ih[8]:=2596.; ih[9]:=2607.; ih[10]:=2620.;
ih[11]:=2632.; ih[12]:=2642.; ih[13]:=2650.; ih[14]:=2657.; ih[15]:=2663.;
ih[16]:=2668.; ih[17]:=2677.; ih[18]:=2686.; ih[19]:=2693.; ih[20]:=2703.;
ih[21]:=2709.; ih[22]:=2710.; ih[23]:=2730.; ih[24]:=2744.; ih[25]:=2754.;
ih[26]:=2768.; ih[27]:=2769.; ih[28]:=2776.; ih[29]:=2780.; ih[30]:=2784.;
ih[31]:=2787.; ih[32]:=2790.; ih[33]:=2793.; ih[34]:=2795.; ih[35]:=2796.;
ih[36]:=2798.; ih[37]:=2799.; ih[38]:=2800.; ih[39]:=2801.; ih[40]:=2802.;
ih[41]:=2801.; ih[42]:=2793.; ih[43]:=2780.; ih[44]:=2763.; ih[45]:=2746.;
{ Nhiet do hoi nuoc bao hoa , t 0C }
tt[1]:=0.00; tt[2]:=10.0; tt[3]:=20.0; tt[4]:=30.0; tt[5]:=40.0;
tt[6]:=50.0; tt[7]:=60.0; tt[8]:=70.0; tt[9]:=80.0; tt[10]:=90.0;
tt[11]:=100.; tt[12]:=110.; tt[13]:=120.; tt[14]:=130.; tt[15]:=140.;
tt[16]:=150.; tt[17]:=160.; tt[18]:=170.; tt[19]:=180.; tt[20]:=190.;
{Khoi luong rieng cua nuoc ngung tu RoN }

ron[1]:=1000.; ron[2]:=1000.; ron[3]:=998.0; ron[4]:=996.0; ron[5]:=992.0;


ron[6]:=988.0; ron[7]:=983.0; ron[8]:=978.0; ron[9]:=972.0; ron[10]:=965.0;
ron[11]:=958.0; ron[12]:=951.0; ron[13]:=943.0; ron[14]:=935.0; ron[15]:=926.;
ron[16]:=917.0; ron[17]:=907.0; ron[18]:=897.0; ron[19]:=887.; ron[20]:=877.;
{ He so dan nhiet cua nuoc ngung tu Lambda * 1E2,( W/M doK)}

la[1]:=55.1; la[2]:=57.5; la[3]:=59.9; la[4]:=61.8; la[5]:=63.4;


la[6]:=64.8; la[7]:=65.9; la[8]:=66.8; la[9]:=67.5; la[10]:=68.0;
la[11]:=68.3; la[12]:=68.5; la[13]:=68.6; la[14]:=68.6; la[15]:=68.5;
la[16]:=68.4; la[17]:=68.3; la[18]:=67.9; la[19]:=67.5; la[20]:=67.1;
{ Do nhot cua long Mu* 1E6, Pa*S }
Mu[1]:=1790.; Mu[2]:=1310.;Mu[3]:=1000.; Mu[4]:=804.0;Mu[5]:=657.0;
Mu[6]:=549.0; Mu[7]:=470.0;Mu[8]:=406.0; Mu[9]:=355.0;Mu[10]:=315.0;
Mu[11]:=282.0; Mu[12]:=256.0;Mu[13]:=231.0; Mu[14]:=212.0;Mu[15]:=196.0;
Mu[16]:=185.0; Mu[17]:=174.0;Mu[18]:=163.0; Mu[19]:=153.0;Mu[20]:=143.;
End;
{--------------------------------------------------------------------------}

{ Ch/Tr Chinh- Sinh vien tu viet}


Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln; Readln;
Writeln(' Chuong trinh noi suy');
Readln;
Solieu2;
Solieu10;
Repeat
Writeln('Tra thanh phan long - hoi cua Benzen - Toluen. Bam "b" de tiep tuc.');
Write('Tra cac thong so cua hoi nuoc. Bam "n" de tiep tuc. ');
Readln(kt6);
Writeln;
If kt6='b' then
Repeat
Writeln('Xin moi chon phuong phap tra so lieu:');
Writeln('Tra thanh phan hoi. Bam "h" de tiep tuc.');
Write('Tra thanh phan long. Bam "l" de tiep tuc. ');
Readln(kt4); Writeln;
If kt4='h' then
Repeat
Begin
Write('Thanh phan pha long: '); Readln(x2);
Noisuy(x2,y2,Y,X);
Writeln('Thanh phan pha hoi: ',y2:6:5);
End;
Readln; Writeln;
Write('Ban co muon tiep tuc tra thanh phan hoi? (c/k): ');
Readln(kt4);
Writeln;
Until kt4='k';
If kt4='l' then
Repeat
Begin
Write('Thanh phan pha hoi: '); Readln(y2);
Noisuy(y2,x2,X,Y);
Writeln('Thanh phan pha long: ',x2:6:5);
End;
Readln; Writeln;
Write('Ban co muon tiep tuc tra thanh phan long? (c/k): ');
Readln(kt4);
Writeln;
Until kt4='k';
Write('Ban co muon tiep tuc tra thanh phan long - hoi cua Benzen - Tuoluen? (c/k): ');
Readln(kt5);
Writeln;
Until kt5='k';

If kt6='n' then
Repeat
Writeln('Xin moi chon phuong phap tra so lieu:');
Writeln('Tra cac thong so theo nhiet do. Bam "t" de tiep tuc.');
Write('Tra cac thong so theo ap suat. Bam "a" de tiep tuc. ');
Readln(kt);
Writeln;
If kt='t' then
Repeat
Begin
Write('Nhap vao nhiet do cua hoi nuoc bao hoa(t0C): ');
Readln(t2);
Writeln; Writeln;
Noisuy(t2,p2,p,t);
Writeln('Ap suat cua hoi nuoc bao hoa: ',p2:4:2,' atm');
Noisuy(t2,roh2,roh,t);
Writeln('Khoi luong rieng cua hoi nuoc: ',roh2:4:2,' 10^-3 kg/m3');
Noisuy(t2,r2,r,t);
Writeln('An nhiet hoa hoi cua hoi nuoc bao hoa: ',r2:4:2,' kJ/Kg');
Noisuy(t2,il2,il,t);
Writeln('Ethalpy cua pha long: ',il2:4:2,' kJ/kG');
Noisuy(t2,ih2,ih,t);
Writeln('Ethalpy cua pha hoi: ',ih2:4:2,' kJ/kG');
tt2:=t2;
Noisuy(tt2,ron2,ron,tt);
Writeln('Khoi luong rieng cua nuoc ngung: ',ron2:4:2,' kg/m3');
Noisuy(tt2,la2,la,tt);
Writeln('He so dan nhiet cua nuoc ngung: ',la2:4:2,' w/mK');
Noisuy(tt2,mu2,mu,tt);
Writeln('Do nhot cua nuoc ngung: ',mu2:4:2,' 10^-6 PaS');
End;
Readln; Writeln;
Write('Ban co muon tiep tuc tra theo nhiet do? (c/k): ');
Readln(kt2);
Writeln;
Until kt2='k';
If kt='a' then
Repeat
Begin
Write('Nhap vao ap suat cua hoi nuoc bao hoa(atm): ');
Readln(p2);
Writeln; Writeln;
Noisuy(p2,t2,t,p);
Writeln('Nhiet do cua hoi nuoc bao hoa: ',t2:4:2,' 0C');
Noisuy(t2,roh2,roh,t);
Writeln('Khoi luong rieng cua hoi nuoc: ',roh2:4:2,' 10^-3 kg/m3');
Noisuy(t2,r2,r,t);
Writeln('An nhiet hoa hoi cua hoi nuoc bao hoa: ',r2:4:2,' kJ/Kg');
Noisuy(t2,il2,il,t);
Writeln('Ethalpy cua pha long: ',il2:4:2,' kJ/kG');
Noisuy(t2,ih2,ih,t);
Writeln('Ethalpy cua pha hoi: ',ih2:4:2,' kJ/kG');
tt2:=t2;
Noisuy(tt2,ron2,ron,tt);
Writeln('Khoi luong rieng cua nuoc ngung: ',ron2:4:2,' kg/m3');
Noisuy(tt2,la2,la,tt);
Writeln('He so dan nhiet cua nuoc ngung: ',la2:4:2,' w/mK');
Noisuy(tt2,mu2,mu,tt);
Writeln('Do nhot cua nuoc ngung: ',mu2:4:2,' 10^-6 PaS');
End;
Readln; Writeln;
Write('Ban co muon tiep tuc tra theo ap suat? (c/k): ');
Readln(kt2);
Writeln;
Until kt2='k';
Write('Ban co muon tiep tuc tra cac thong so cua hoi nuoc? (c/k): ');
Readln(kt3);
Writeln;
Until kt3='k';
Writeln;
Write('Ban muon ket thuc tra cuu? (c/k): ');
Readln(kt7);
Writeln;
Until kt7='c';
Readln;
End.

II. NHÂN MA TRẬN VUÔNG VỚI MA TRẬN CỘT

Program NHAN_HAI_MA_TRAN;
{Sinh vien tu viet chuong trinh}
Uses crt;
Type MT = array[1..100] of real;
Var A:array[1..100] of MT;
B,X:MT;
i,j,N: integer;
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh nhan ma tran vuong voi ma tran cot');
Readln;
Writeln('1. Nhap vao ma tran vuong A:');
Repeat
Write('- Kich thuoc ma tran (n x n):'); Readln(N);
If N<=1 then Writeln('Kich thuoc ma tran la so tu nhien trong khoang (1,100]. Xin moi
nhap lai.')
Else
If N>100 then Writeln('Kich thuoc vuot qua gioi han. Xin moi nhap lai so tu nhien
trong khoang (1,100].');
Until (N>1) and (N<=100);
Writeln('- Nhap vao cac phan tu cua ma tran:');
For i:=1 to N do
For j:=1 to N do
Begin
Write(' A[',i,j,']= '); Read(A[i][j]);
End;
Writeln;
Writeln('2. Nhap vao cac phan tu cua ma tran cot B:');
Writeln('* Chu y: Ma tran vuong (n x n) chi nhan duoc voi ma tran cot (n x 1)');
For j:=1 to N do
Begin
Write(' B[',j,'1]= '); Readln(B[j]);
End;
For i:=1 to N do X[i]:=0;
For i:=1 to N do
For j:= 1 to N do
X[i]:=A[i][j]*B[j] + X[i];
Writeln;
Writeln('--> Ket qua nhan hai ma tran la:');
For i:=1 to N do Writeln(' X[',i,'1]= ',x[i]:4:2);
Readln;
End.

III. TÍNH TỔNG

Program Tong_PTmin;
{sinh vien tu viet}
Uses crt;
Var x: array[1..5] of real;
Tong, Min: real;
i: integer;
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln; Readln;
Writeln(' Chuong trinh tinh tong cua 5 so hang va tim ra so hang nho nhat');
Readln;
Writeln('* Nhap vao 5 gia tri x:');
For i:=1 to 5 do
Begin
Write(' X',i,'='); Readln(x[i]);
End;
Tong:=x[1];
Min:=x[1];
For i:=2 to 5 do
Begin
Tong:=Tong+x[i];
If x[i]<Min then Min:=x[i];
End;
Writeln;
Writeln(' --> Tong cac so hang la: ',Tong:4:2);
Writeln;
Writeln(' --> So hang nho nhat la: ',Min:2:1);
Readln;
End.

IV. CÂN BẰNG VẬT LIỆU 1

{OK}
Program CAN_BANG_VAT_LIEU_1;
{********************************************************************}
{ Giai cac bai toan ve can bang vat lieu }
{ He phuong trinh tuyen tinh }
{********************************************************************}

{********************************************************************}
{ Giai he phuong trinh tuyen tinh bang phuong phap GAUSS }
{ A[i,j] - ma tran he so ve trai }
{ B [j] - ma tran he so cua ve phai }
{ N - so nghiem cua phuong trinh }
{********************************************************************}
{********************************************************************}
{ Vi du : }
{ Chuan bi hon hop Nitro hoa tu : - Axit thai }
{ - Axit Nitric }
{ - Oleum }

{********************************************************************}
uses Crt;
const
Maxsize = 50;
MSO3=80;
MH2SO4=98;
Type
m1 = array[ 1..maxsize, 1..maxsize+1]of real;
m2 = array[1..maxsize ] of real;
Var
i,j,k,n : integer;
t, t1 : boolean;
OK,kt,kt1,kt2,kt3 : char;
c,m : real;
A : m1; X, Q : m2;
{}
{--------------------------------------------------------------------------}
Procedure GAUSS(var A:m1;var N: integer; var X:m2);
{ Giai he pt tuyen tinh bang PP khu dan nghiem cua Gauss }
{ A[i,j] - ma tran he so mo rong }
{ X[i] - ma tran he so ve phai va chua nghiem can tim}
{ N - so nghiem }

const
maxSize = 50;
var
i,j,k : integer;
t,t1 : boolean;
OK: char;
c : real;

Begin
i := 1;
t1 := true;
while t1 and (i<n) do
begin
if a[i,i]= 0 then
begin
t := true;
k := i+1;
while t and (k<=n) do
if a[k,i]<>0
then
begin
for j := i to n+1 do
begin
c := a[i,j];
a[i,j] := a[k,j];
a[k,j] := c;
end;
t := false;
end
else k := k+1;
if k=n+1 then
begin
if a[i,k]= 0
then writeln(' HE VO DINH ')
else writeln(' HE VO NGHIEM ');
t1 := false;
end;
end;
if a[i,i]<>0
then
begin
c := a[i,i];
for j := i+1 to n+1 do
a[i,j] := a[i,j]/c;
for k := i+1 to n do
begin
c := a[k,i];
for j:=i+1 to n+1 do
a[k,j] := a[k,j]-a[i,j]*c;
end;
end;
i := i+1;
end;
if t1 then
begin
x[n] := a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do
begin
x[i] := a[i,n+1];
for j:=n downto i+1 do
x[i] := x[i]-a[i,j]*x[j];
end;
writeln;
writeln;
end;
End;
{}
{------------------------------------------------------------------------}
{ THAN CHUONG TRINH CHINH }
{------------------------------------------------------------------------}
{Sinh vien tu viet}
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh tinh luong nguyen lieu dau vao de san xuat hon hop Nitro
hoa');
Readln;
Repeat
Repeat
Write('Nhap vao khoi luong hon hop Nitro hoa can san xuat (kg): ');
Readln(Q[9]); Writeln;
Writeln('Nhap vao thanh phan cua hon hop Nitro hoa:');
Write(' + Nong do H2SO4 (%): ');Readln(Q[3]);
Write(' + Nong do HNO3 (%): '); Readln(Q[4]);
Write(' + Nong do H2O (%): '); Readln(Q[5]);
Writeln;
Writeln('Nhap vao thanh phan nguyen lieu dau vao:');
Write(' + Nong do HNO3 (%): '); Readln(Q[1]);
Write(' + Nong do Oleum (%): '); Readln(Q[2]);
Q[6]:=55; Q[7]:= 22; Q[8]:= 23;
Writeln(' + Axit thai co thanh phan: 55% H2SO4, 22% HNO3, 23%H2O. ');
Write(' Ban co muon thay doi thanh phan axit thai khong? (c/k): ');
Readln(kt);
If kt='c' then
Begin
Writeln('Nhap vao thanh phan cua axit thai:');
Write('Nong do H2SO4 (%): ');Readln(Q[6]);
Write('Nong do HNO3 (%): '); Readln(Q[7]);
Write('Nong do H2O (%): '); Readln(Q[8]);
End;
Writeln;
Write('Ban co muon nhap lai so lieu khong? (c/k): ');
Readln(kt1);Writeln;
Until kt1='k';
m:=MSO3/MH2SO4;
X[1]:=Q[7]/100;
X[2]:=0;
X[3]:=Q[1]/100;
X[4]:=Q[4]/100;
X[5]:=Q[6]*m/100;
X[6]:=Q[2]/100 + (1-Q[2]/100)*m;
X[7]:=0;
X[8]:=Q[3]*m/100;
A[1][1]:=1;
A[1][2]:=1;
A[1][3]:=1;
A[1][4]:=Q[9];
A[2][1]:=X[1];
A[2][2]:=X[2];
A[2][3]:=X[3];
A[2][4]:=X[4]*Q[9];
A[3][1]:=X[5];
A[3][2]:=X[6];
A[3][3]:=X[7];
A[3][4]:=X[8]*Q[9];
n:=3;
Write('Ban co muon xem cac ma tran he so? (c/k): ');
Readln(kt3);
If kt3='c' then
Begin
Write(' A B ');
Writeln; Writeln;
For i:=1 to 3 do
Begin
Write(' ! ');
For j:=1 to 3 do write(A[i][j]:6:2,' ');
Write(' ! ');
j:=j+1;
Write(A[i][j]:8:2);
Write(' !');
Writeln;
End;
End;
Readln;
Gauss(A,n,X);
Writeln('Ket qua: ');
Writeln('+ Luong axit thai can dung la: ',X[1]:4:2,' kg.');
Writeln('+ Luong Oleum can dung la: ',X[2]:4:2,' kg.');
Writeln('+ Luong Axit Nitric can dung la: ',X[3]:4:2,' kg.');
Readln;
Writeln;
Write('Ban co muon tinh lai khong? (c/k): ');
Readln(kt2); Writeln;
Until kt2='k';
End.

V. CÂN BẰNG VẬT LIỆU 2

Program CAN_BANG_VAT_LIEU_2;
{********************************************************************}
{ Giai cac bai toan ve can bang vat lieu }
{ He phuong trinh tuyen tinh }
{********************************************************************}
{*****************************************************************}
{ TINH CAN BANG VAT LIEU CUA HE THONG THIET BI CONG NGHE HOA }
{ CO DAC - KET TINH - SAY }
{ }
{*****************************************************************}
{ Giai he phuong trinh tuyen tinh bang phuong phap GAUSS }
{ A[i,j] - ma tran he so ve trai }
{ B [j] - ma tran he so cua ve phai }
{ N - so nghiem cua phuong trinh }

{ Thong so dau ra cua he :


X1 = K : luong tinh the kho, kg/s
X2 = V : luong nuoc bay hoi, kg/s
X3 = U : luong am bay hoi trong may say , kg/s
X4 = G1 : luong dung dich sau co dac, kg/s
X5 = G2 : luong nuoc cai tuan hoan, kg/s
X6 = G" : luong dung dich vao th_bi co dac , kg/s
X7 = c3 : nong do dung dich dau, phan khoi luong
X8 = K" : luong tinh the am vao may say , kg/s }

{********************************************************************}
uses Crt;
const
Maxsize = 50;
Type
m1 = array[ 1..maxsize, 1..maxsize+1]of real;
m2 = array[1..maxsize ] of real;
Var
i,j,k,n : integer;
t, t1 : boolean;
OK,kt,kt1,kt2 : char;
c : real;
A : m1; X, Q : m2;
{}
{--------------------------------------------------------------------------}
Procedure GAUSS(var A:m1;var N: integer; var X:m2);

{ Giai he pt tuyen tinh bang PP khu dan nghiem cua Gauss }


{ A[i,j] - ma tran he so mo rong }
{ X[i] - ma tran he so ve trai va nghiem }
{ N - so nghiem }

const
maxSize = 50;
var
i,j,k : integer;
t,t1 : boolean;
OK: char;
c : real;

Begin
i := 1;
t1 := true;
while t1 and (i<n) do
begin
if a[i,i]= 0 then
begin
t := true;
k := i+1;
while t and (k<=n) do
if a[k,i]<>0
then
begin
for j := i to n+1 do
begin
c := a[i,j];
a[i,j] := a[k,j];
a[k,j] := c;
end;
t := false;
end
else k := k+1;
if k=n+1 then
begin
if a[i,k]= 0
then writeln(' HE VO DINH ')
else writeln(' HE VO NGHIEM ');
t1 := false;
end;
end;
if a[i,i]<>0
then
begin
c := a[i,i];
for j := i+1 to n+1 do
a[i,j] := a[i,j]/c;
for k := i+1 to n do
begin
c := a[k,i];
for j:=i+1 to n+1 do
a[k,j] := a[k,j]-a[i,j]*c;
end;
end;
i := i+1;
end;
if t1 then
begin
x[n] := a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do
begin
x[i] := a[i,n+1];
for j:=n downto i+1 do
x[i] := x[i]-a[i,j]*x[j];
end;
writeln;
{ writeln(' MA TRAN MO RONG ');
writeln;
for i:=1 to n do
begin
for j:=1 to n+1 do
write(a[i,j]:1:6,' ');
writeln;
end; }
writeln;
end;
End;
{------------------------------------------------------------------------}
{ THAN CHUONG TRINH CHINH }
{------------------------------------------------------------------------}
{Sinh vien tu viet chuong trinh chinh}
Begin
Clrscr;

Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln('Chuong trinh tinh toan qua trinh san xuat K2Cr2O7 tu dung dich Kali
Bicromat');
Readln;Writeln;
Repeat
Repeat
Write('Nhap vao luu luong cua he thong (kg/s): ');
Readln(X[9]);
Write('Nhap vao nong do dung dich sau thiet bi co dac (%): ');
Readln(X[10]);
Write('Nhap vao nong do nuoc cai sau khi ket tinh (%): ');
Readln(X[11]);
Write('Nhap vao nong do dung dich di vao thiet bi co dac (%klg): ');
Readln(X[12]);
Write('Nhap vao luong nuoc cai trong tinh the am (%): ');
Readln(X[13]); Writeln;
Write('Ban co muon nhap lai so lieu khong? (c/k): ');
Readln(kt);
Until kt='k';
X[10]:=X[10]/100;
X[11]:=X[11]/100;
X[12]:=X[12]/100;
X[13]:=X[13]/100;
A[1][1]:=1;
A[1][2]:=1;
A[1][3]:=1;
A[1][4]:=0;
A[1][5]:=0;
A[1][6]:=0;
A[1][7]:=0;
A[1][8]:=0;
A[1][9]:=X[9];
A[2][1]:=1;
A[2][2]:=0;
A[2][3]:=0;
A[2][4]:=0;
A[2][5]:=0;
A[2][6]:=0;
A[2][7]:=-X[9];
A[2][8]:=0;
A[2][9]:=0;
A[3][1]:=-1;
A[3][2]:=0;
A[3][3]:=-1;
A[3][4]:=0;
A[3][5]:=0;
A[3][6]:=0;
A[3][7]:=0;
A[3][8]:=1;
A[3][9]:=0;
A[4][1]:=-1;
A[4][2]:=0;
A[4][3]:=0;
A[4][4]:=0;
A[4][5]:=0;
A[4][6]:=0;
A[4][7]:=0;
A[4][8]:=(1-X[13])+X[11]*X[13];
A[4][9]:=0;
A[5][1]:=0;
A[5][2]:=0;
A[5][3]:=0;
A[5][4]:=1;
A[5][5]:=-1;
A[5][6]:=0;
A[5][7]:=0;
A[5][8]:=-1;
A[5][9]:=0;
A[6][1]:=0;
A[6][2]:=0;
A[6][3]:=0;
A[6][4]:=X[10];
A[6][5]:=-X[11];
A[6][6]:=0;
A[6][7]:=0;
A[6][8]:=-X[13]*X[11]-(-X[13]+1);
A[6][9]:=0;
A[7][1]:=0;
A[7][2]:=0;
A[7][3]:=0;
A[7][4]:=0;
A[7][5]:=-1;
A[7][6]:=1;
A[7][7]:=0;
A[7][8]:=0;
A[7][9]:=X[9];
A[8][1]:=0;
A[8][2]:=0;
A[8][3]:=0;
A[8][4]:=0;
A[8][5]:=-X[11];
A[8][6]:=X[12];
A[8][7]:=-X[9];
A[8][8]:=0;
A[8][9]:=0;
n:=8;
Writeln;
Write('Ban co muon xem cac ma tran he so? (c/k): ');
Readln(kt1);
If kt1='c' then
Begin
Write(' A B ');
Writeln; Writeln;
For i:=1 to 8 do
Begin
Write('! ');
For j:=1 to 8 do write(A[i][j]:6:2,' ');
Write(' ! ');
j:=j+1;
Write(A[i][j]:6:2);
Write(' !');
Writeln;
End;
End;
Readln;
Gauss(A,n,X);
Writeln('Ket qua: ');
Write('Luong tinh the kho nhan duoc la: ',X[1]:4:2,' kg/s');
Writeln;
Write('Luong nuoc bay hoi tu thiet bi co dac: ',X[2]:4:2,' kg/s');
Writeln;
Write('Luong am bay hoi tu thiet bi say: ',X[3]:4:2,' kg/s');
Writeln;
Write('Luong dung dich sau khi co dac: ',X[4]:4:2,' kg/s');
Writeln;
Write('Luong nuoc cai tuan hoan: ',X[5]:4:2,' kg/s');
Writeln;
Write('Luong dung dich vao thiet bi co dac: ',X[6]:4:2,' kg/s');
Writeln;
Write('Luong tinh the am vao thiet bi say: ',X[8]:4:2,' kg/s');
Writeln;
Write('Nong do dung dich dau: ',X[7]*100:4:2,' %klg');
Readln;Writeln;
Write('Ban co muon tinh lai khong? (c/k): ');
Readln(kt2);
Until kt2='k';
Readln;
End.

VI. ĐẢO MA TRẬN

Program HE_TUYEN_TINH;
{ OK}
{ Giai he tuyen tinh bang phuong phap nghich dao ma tran }
Uses Crt;
Type
m1 = array[1..100] of real;
m3 = array[1..10,1..10] of real;
Var
Y,Z,F,W,X ,B: m1;
P,A,G,Grad1 : m3;
h,cvgtol, dvgtol, dif,test,dela, d : real;
n,m,Itmax, Icount,i,j,l : integer;
kt:char;
{-------------------------------------------------------------------------}
Procedure DaoMT (var A : m3; B : m1;N: integer; var D : real);
{ Nghich dao ma tran bang phuong phap Jordan }
{ A[n,n] - ma tran he so va ma tran nghich dao A[-1]
B[j] - ma tran he so Bj
N - bac cua ma tran A[n,n]
D - dinh thuc cua ma tran }

Label 20, 25, 30, 35, 55, 200, 250, 300;


Type mIpv = array[1..10,1..3] of integer;
Var
Ipv : mIpv;
j, k, irow, icolum,jrow, jcolum, l, l1, Nswap : integer;
tol, amax, swap, pivot, t : real;

Begin
D := 1.0;
tol := 1.0E-35;
for j := 1 to n do
Ipv[j,3] := 0;
{ Vong chinh : khu dan tung dong cua ma tran }
for i := 1 to n do
begin
{ Tim phan tu lon nhat cua ma tran- Thu su suy bien cua ma tran A }
Amax := 0.0;
for j := 1 to n do
begin
if( Ipv[j,3] = 1) then goto 25;
for k := 1 to n do
begin
if( Ipv[k,3] = 1 ) then goto 20;
if( Amax >= abs( A[j,k] )) then goto 20;
Irow := j;
icolum := k;
Amax := abs( A[j,k]);
20:
end; { 20}
25:
end; { 25}
if( Amax <= tol) then goto 300;
Ipv[icolum,3] := 1;
Ipv[ i,1] := Irow;
Ipv[i,2] := Icolum;
{ Dao cac cot sao cho phan tu lon nhat nam tren duong cheo }
if ( irow = icolum) then goto 35;
for L := 1 to n do
begin
swap := A[irow, L];
A[irow, L] := A[ icolum,L] ;
A[icolum,L] := swap;
30:
end; { 30}
{ Hieu chinh Dinh thuc D va chuan hoa dong chinh }
35:
Pivot := A[icolum,icolum];
D := D*Pivot;
A[icolum,icolum] := 1.0;
for L := 1 to n do
A[icolum,L] := A[icolum,L]/ Pivot;
{ Khu cotva giu nguyen cac phan tu da dao }
for L1 := 1 to N do
Begin
if( L1 = icolum ) then goto 55;
T := A[L1,icolum];
A[ L1,icolum] := 0.0;
for L := 1 to n do
A[L1,L] := A[L1,L] - A[icolum,L] * T;
55:
End; { 55}
end; { 100}
{ Hoan vi cac cot va thay doi Dinh thuc }
Nswap := 0;
for i := 1 to n do
Begin
L := N - I + 1;
If( Ipv[L,1] = Ipv[L,2]) then goto 250;
Jrow := Ipv[L,1];
Jcolum := Ipv[L,2];
Nswap := Nswap + 1;
for K := 1 to n do
Begin
Swap := A[K,Jrow];
A[K,Jrow] := A[K,Jcolum];
A[K,Jcolum] := Swap;
200:
End; { 200}
250:
End; { 250}
if( odd(Nswap)) then D := -D;
Writeln;
writeln('Dinh thuc D =',d:4:2);
Writeln;
Exit;
300:
D := 0.0;
writeln('He suy bien, Dinh thuc D = 0.0');
end;

{--------------------------------------------------------------------------}
{ Chuong trinh chinh }
{Sinh vien tu viet chuong trinh chinh}
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln('Chuong trinh giai he phuong trinh tuyen tinh bang phuong phap nghich dao
ma tran');
Readln;
Repeat
Begin
Write('Nhap so bac cua he phuong trinh: ');
Repeat
Readln(n);
Writeln;
if n<=0 then Write('Bac cua he phuong trinh la so tu nhien trong doan [1,10]. Xin moi
nhap lai: ')
Else if
n>10 then
begin
Writeln('Bac vuot qua gioi han cho phep.');
Write('Xin moi nhap lai bac cua he phuong trinh trong doan [1,10]: ');
end;
Until (n>0) and (n<=10);
Writeln(' Nhap cac he so ben trai:');
For i:=1 to n do
For j:=1 to n do
Begin
Write(' A[',i,j,']= '); Readln(A[i][j]);
End;
Writeln;
Writeln(' Nhap cac he so ben phai:');
For j:=1 to n do
Begin
Write(' B[',j,']= '); Readln(B[j]);
End;
DaoMT(A,B,n,D);
For i:=1 to N do X[i]:=0;
For i:=1 to N do
For j:= 1 to N do
X[i]:=A[i][j]*B[j] + X[i];
Writeln(' --> Nghiem cua phuong trinh la:');
For j:=1 to n do
Writeln(' X[',j,']= ',X[j]:4:2);
End;
Readln; Writeln;
Write('Ban co muon tiep tuc khong? (c/k): ');
Readln(kt); Writeln;
Until kt='k';
Readln;
End.

VII. GAUSS

{OK}
Program GAUS;
uses crt;

{********************************************************************}
{ Giai he phuong trinh tuyen tinh }
{********************************************************************}

const
Maxsize = 50;
Type
m1 = array[ 1..maxsize, 1..maxsize+1]of real;
m2 = array[1..maxsize ] of real;
Var
i,j,k,n : integer;
t, t1 : boolean;
OK : char;
c : real;
A : m1; X, B : m2;
kt:char;
{}
{--------------------------------------------------------------------------}
Procedure GAUSS(var A:m1;var N: integer; var X:m2);

{ Giai he pt tuyen tinh bang PP khu dan nghiem cua Gauss }


{ A[i,j] - ma tran he so mo rong }
{ X[i] - ma tran he so ve trai va nghiem }
{ N - so nghiem }

const
maxSize = 50;
var
i,j,k : integer;
t,t1 : boolean;
OK: char;
c : real;

Begin
i := 1;
t1 := true;
while t1 and (i<n) do
begin
if a[i,i]= 0 then
begin
t := true;
k := i+1;
while t and (k<=n) do
if a[k,i]<>0
then
begin
for j := i to n+1 do
begin
c := a[i,j];
a[i,j] := a[k,j];
a[k,j] := c;
end;
t := false;
end
else k := k+1;
if k=n+1 then
begin
if a[i,k]= 0
then writeln(' HE VO DINH ')
else writeln(' HE VO NGHIEM ');
t1 := false;
end;
end;
if a[i,i]<>0
then
begin
c := a[i,i];
for j := i+1 to n+1 do
a[i,j] := a[i,j]/c;
for k := i+1 to n do
begin
c := a[k,i];
for j:=i+1 to n+1 do
a[k,j] := a[k,j]-a[i,j]*c;
end;
end;
i := i+1;
end;
if t1 then
begin
x[n] := a[n,n+1]/a[n,n];
for i:=n-1 downto 1 do
begin
x[i] := a[i,n+1];
for j:=n downto i+1 do
x[i] := x[i]-a[i,j]*x[j];
end;
writeln;
{ writeln(' MA TRAN MO RONG ');
writeln;
for i:=1 to n do
begin
for j:=1 to n+1 do
write(a[i,j]:1:6,' ');
writeln;
end; }
writeln;
end;
End;
{}
{------------------------------------------------------------------------}
{ THAN CHUONG TRINH CHINH }
{------------------------------------------------------------------------}
{Sinh vien tu viet chuong trinh chinh}
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh giai he phuong trinh tuyen tinh bang phuong phap Gauss -
Jordan');
Readln;
Repeat
Begin
Write('Nhap so bac cua he phuong trinh: ');
Repeat
Readln(n);
Writeln;
if n<=0 then Write('Bac cua he phuong trinh la so tu nhien trong doan [1,50]. Xin moi
nhap lai: ')
Else if
n>50 then
begin
Writeln('Bac vuot qua gioi han cho phep.');
Write('Xin moi nhap lai bac cua he phuong trinh trong doan [1,50]: ');
end;
Until (n>0) and (n<=50);
Writeln;
Writeln(' Nhap cac he so ben trai:');
For i:=1 to n do
For j:=1 to n do
Begin
Write(' A[',i,j,']= '); Readln(A[i][j]);
End;
Writeln;
Writeln(' Nhap cac he so ben phai:');
For j:=1 to n do
Begin
Write(' B[',j,']= '); Readln(B[j]);
End;
For i:=1 to n do
A[i][n+1]:=B[i];
Gauss(A,N,X);
Writeln(' --> Nghiem cua he phuong trinh la:');
For i:=1 to n do
Writeln(' X[',i,']= ',X[i]:4:2);
End;
Readln;
Write('Ban co muon tiep tuc khong? (c/k): ');
Readln(kt); Writeln;
Until kt='k';
Readln;
End.

VIII. NEWTON RAPHSON

Program NEWTON_RAPHSON;
{ OK }
{ Tim nghiem ham phi tuyen bang phuong phap NEWTON-RAPHSON}
{ Ham so va dao ham viet o dang Function }
{ Itmax: so lan lap toi da ,
Tol : Tieu chuan hoi tu ,
X : Gia tri dau cua nghiem X }
Uses Crt;
Var
X , tol, eps,x0,ss, fx, dfx{,a2,a22,a3,a33,a333,a4,a44,a444,a5,a55,
a6} : real;
itmax,i : integer;
kt,kt1,kt2,kt3,kt4:char;
{---------------------------------------------------------------------------}
Function F1( x: real) : real;
begin
{ Sinh vien tu viet}
F1:=Sqr(Sqr(x))*Sqr(x)-Sqr(Sqr(x))-Sqr(x)*x-1;
end;
{--------------------------------------------------------------------------}
Function dF1( X:real) : real;
begin
{ Sinh vien tu viet}
dF1:=6*Sqr(Sqr(x))*x-4*Sqr(x)*x-3*Sqr(x);
end;

Function F2(x:real):real;
begin
F2:=(ln(x)/ln(10))-cos(x);
end;
Function dF2(x:real):real;
begin
dF2:=(1/(x*ln(10)))+sin(x);
end;
{-------------------------------------------------------------------------}
Procedure NEWTON1;
{ Tim nghiem ham phi tuyen bang phuong phap NEWTON-RAPHSON}
{ Ham so va dao ham viet o dang Function }
{ Itmax: so lan lap toi da ,
Tol : Tieu chuan hoi tu ,
X : Gia tri dau cua nghiem X }
{ Var
X , tol, xold, fx, dfx : real;
itmax,i : integer;}

Begin
{} X:=X0;
i:=0;
{Bat dau lap}
{ Repeat}
{ for i:=1 to itmax do}
Writeln;
Write('Ban co muon xem qua trinh giai phuong trinh khong? (c/k): ');
Readln(kt1);
If kt1<>'c' then
Repeat
fx:=f1(X);
dfx:=df1(X);
X:= X-fx/dFx;
ss := abs( x - x0);
x0:= x;
Until( ss <= eps)
else
Repeat
fx:=f1(X);
dfx:=df1(X);
X:= X-fx/dFx;
ss := abs( x - x0);
x0:= x;
i:=i+1;Writeln;
Writeln(' Lan lap thu ',i,':');
Writeln(' X= ',x:6:4);
Writeln(' Fx= ',fx:6:4);
Writeln(' dFx= ',dfx:6:4);
Readln;
Until( ss <= eps);

End;
Procedure NEWTON2;
{ Tim nghiem ham phi tuyen bang phuong phap NEWTON-RAPHSON}
{ Ham so va dao ham viet o dang Function }
{ Itmax: so lan lap toi da ,
Tol : Tieu chuan hoi tu ,
X : Gia tri dau cua nghiem X }
{ Var
X , tol, xold, fx, dfx : real;
itmax,i : integer;}

Begin
{} X:=X0;
i:=0;
{Bat dau lap}
{ Repeat}
{ for i:=1 to itmax do}
Writeln;
Write('Ban co muon xem qua trinh giai phuong trinh khong? (c/k): ');
Readln(kt2);
If kt2<>'c' then
Repeat
fx:=f2(X);
dfx:=df2(X);
X:= X-fx/dFx;
ss := abs( (x - x0)/x);
x0:= x;
Until( ss <= eps)
else
Repeat
fx:=f2(X);
dfx:=df2(X);
X:= X-fx/dFx;
ss := abs( (x - x0)/x);
x0:= x;
i:=i+1;Writeln;
Writeln(' Lan lap thu ',i,':');
Writeln(' X= ',x:6:4);
Writeln(' Fx= ',fx:6:4);
Writeln(' dFx= ',dfx:6:4);
Readln;
Until( ss <= eps);

End;
{----------------------------- Chuong trinh chinh--------------------------- }
{Sinh vien tu viet}
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh tim nghiem cua phuong trinh');
Readln;
Repeat
Writeln('Tim nghiem phuong trinh X^6 - X^4 - X^3 - 1 = 0. Bam 1 de tiep tuc.');
Write('Tim nghiem phuong trinh Log(x) - Cos(x) = 0. Bam 2 de tiep tuc: ');
Readln(kt3);
If kt3='1' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;
Writeln(' Chuong trinh tim nghiem cua phuong trinh');
Writeln;
Writeln('Tim nghiem phuong trinh X^6 - X^4 - X^3 - 1 = 0'); Writeln;Readln;
Write('Nhap vao gia tri ban dau: ');
Readln(X0);
Write('Nhap vao sai so: ');
Readln(eps);
NEWTON1;
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;
Writeln(' Chuong trinh tim nghiem cua phuong trinh');
Writeln;
Writeln('Tim nghiem phuong trinh X^6 - X^4 - X^3 - 1 = 0'); Writeln;
Writeln('Nghiem cua phuong trinh la: ',(x+x0)/2:6:4);
Readln;Writeln;
Write('Ban co muon tim lai nghiem cua phuong trinh khong? (c/k): ');
Readln(kt);Writeln;
Until kt<>'c';

If kt3='2' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;
Writeln(' Chuong trinh tim nghiem cua phuong trinh');
Writeln;
Writeln('Tim nghiem phuong trinh Log(x) - Cos(x) = 0'); Writeln; Readln;
Write('Nhap vao gia tri ban dau: ');
Readln(X0);
Write('Nhap vao sai so: ');
Readln(eps);
NEWTON2;
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;
Writeln(' Chuong trinh tim nghiem cua phuong trinh');
Writeln;
Writeln('Tim nghiem phuong trinh Log(x) - Cos(x) = 0'); Writeln;
Writeln('Nghiem cua phuong trinh la: ',(x+x0)/2:6:4);
Readln;Writeln;
Write('Ban co muon tim lai nghiem cua phuong trinh khong? (c/k): ');
Readln(kt3);Writeln;
Until kt3<>'c'; Writeln;
Write('Ban co muon tinh lai khong? (c/k): ');
Readln(kt4);Writeln;
Until kt4<>'c';
End.

IX. HỆ PHI TUYẾN

{OK}
Program HE_PHI_TUYEN;

{*****************************************************************}
{ Giai he phuong trinh phi tuyen bang phuong phap NEWTON-RAPHSON }
{*****************************************************************}
{ }
{ Huong dan su dung: }
{ N : so phuong trinh cua he, N<= 20 }
{ X : mang chua n gia tri gan dung ban dau va }
{ chua ket qua tim nghiem }
{ F( X, Y, N ) : ch/trinh con tinh gia tri cua ham F theo gia tri}
{ cua X . }
{ Gia tri tim duoc cua F chua trong mang Y }
{ G( N, X, A ) : ch/trinh con tinh gia tri cua cac dao ham rieng }
{ cua ham F }
{ A : mang chua cac gia tri cua cac dao ham rieng }
{ cua ham F }
{ Eps : do chinh xac khi tim nghiem }
{ K : so buoc lap khi tim nghiem }
{ }
{*****************************************************************}
Uses Crt;
Const Nmax = 20; ITmax = 50;
Type
mX = array[ 1..Nmax] of real;
mA = array[1..Nmax*Nmax] of real;
mL = array[1..Nmax] of integer;
Var
X, X1, Y : mX;
A : mA;
L, M : mL;
i,j,k,n,nk : integer;
s, eps, dt : real;
kt,kt1,kt2,kt3,kt4,kt5:char;
{---------------------------------------------------------------------------}
Procedure F1( N: integer; Var X : mX; Var Y : mX);
Begin
{Sinh vien tu viet}
y[1]:=x[1]-exp(-x[2]);
y[2]:=x[2]-exp(x[1]);
End;
{---------------------------------------------------------------------------}
Procedure G1( N :integer; Var X : mX; var A : mA);
{ Dao ham rieng viet tuan tu theo bien thu 1, 2, ...n :
df1/dx1, df2/dx1, df3/dx1,...,df1/dx2, df2/dx2,...}
{ Chu y : mang A la mang mot chieu dung de luu giu cac dao ham rieng}
Begin
{Sinh vien tu viet}
A[1]:= 1;
A[3]:= exp(-x[2]);
A[2]:= -exp(x[1]);
A[4]:= 1;
End;

Procedure F2( N: integer; Var X : mX; Var Y : mX);


Begin
{Sinh vien tu viet}
y[1]:=x[1]*x[1]+x[1]-x[2]*x[2]-0.15;
y[2]:=x[1]*x[1]-x[2]+x[2]*x[2]+0.17;
End;
{---------------------------------------------------------------------------}
Procedure G2( N :integer; Var X : mX; var A : mA);
{ Dao ham rieng viet tuan tu theo bien thu 1, 2, ...n :
df1/dx1, df2/dx1, df3/dx1,...,df1/dx2, df2/dx2,...}
{ Chu y : mang A la mang mot chieu dung de luu giu cac dao ham rieng}
Begin
{Sinh vien tu viet}
A[1]:= 2*x[1]+1;
A[3]:= -2*x[2];
A[2]:= 2*x[1];
A[4]:= -1+2*x[2];
End;

Procedure F3( N: integer; Var X : mX; Var Y : mX);


Begin

{Sinh vien tu viet}


y[1]:=x[1]-0.1*x[2]*x[2]+0.05*X[3]*x[3]-0.7;
y[2]:=x[2]+0.3*x[1]*x[1]-0.1*x[1]*x[3]-0.5;
y[3]:=x[3]+0.4*x[2]*x[2]-0.1*x[1]*x[3]-1.2;
End;
{---------------------------------------------------------------------------}
Procedure G3( N :integer; Var X : mX; var A : mA);
{ Dao ham rieng viet tuan tu theo bien thu 1, 2, ...n :
df1/dx1, df2/dx1, df3/dx1,...,df1/dx2, df2/dx2,...}
{ Chu y : mang A la mang mot chieu dung de luu giu cac dao ham rieng}
Begin
{Sinh vien tu viet}
A[1]:= 1;
A[4]:= -0.2*x[2];
A[7]:= 0.1*x[3];
A[2]:= 0.6*x[1]-0.1*x[3];
A[5]:=1;
A[8]:=-0.1*x[1];
A[3]:=-0.1*x[2];
A[6]:=0.8*x[2]-0.1*x[1];
A[9]:=1;
End;

{---------------------------------------------------------------------------}
Procedure NDMT2( n : integer; var A :mA; var dt : real);

{ Ch/trinh nghich dao ma tran dung 1 mang A[n*n] duy nhat }


{ Mang A[i] chua ma tran nghich dao A[i]-1 }
{ dt : dinh thuc cua ma tran }

label l1,l2;
var
l,m : ml;
i,j,k,nk,iz,ji,kk,ij,jp,ki,kj,jk,jq,jr,ik : integer;
hl, bg,r : real;

BEGIN
dt := 1.0;
nk := - n;
{ Writeln(' Vong lap dau tien theo k ');}
for k := 1 to n do
begin
{ writeln(' Chi so k =',k);}
nk := nk + n;
l[k] := k;
m[k] := k;
kk := nk + k;
bg := A[kk];
iz := nk - n;
for j := k to n do
begin
iz := iz + n;
for i := k to n do
begin
ij := iz + i;
r := abs( bg) - abs( A[ij]);
if( r< 0.0) then
begin
bg := A[ij] ;
L[k] := i;
M[k] := j;
jp := iz;
end;
end;
end;
if( bg = 0.0) then
begin
dt := 0.0;

Goto l2;
end;
j := L[k];
if( j <> k ) then
begin
ki := k -n;
for i := 1 to n do
begin
ki := ki + n;
hl := - A[ki];
ji := ki - k + j;
A[ki] := A[ji];
A[ji] := hl;
end;
end;
i := M[k];
if( i <> k) then
begin
for j := 1 to n do
begin
jk := nk + j;
ji := jp + j;
hl := - A[ jk];
A[jk] := A[ji];
A[ji] := hl;
end;
end;
for i := 1 to n do
if( i<> k) then
begin
ik := nk + i;
A[ik] := - A[ik]/ bg;
end;
for i := 1 to n do
begin
if( i<> k) then
begin
ik := nk + i;
hl := A[ik];
ij := i -n;
for j := 1 to n do
begin
ij := ij + n;
if( j <> k) then
begin
kj := ij -i+k;
A[ij] := A[ij] + hl* A[kj];
end;
end;
end;
end;
kj := k - n;
for j := 1 to n do
begin
kj := kj + n;
if( j <> k) then
A[kj] := A[kj]/bg;
end;
A[kk] := 1.0/bg;
dt := dt *bg;
end; { Ket thuc vong lap thu 1 theo k }
{ Writeln(' Vong lap thu 2 theo k');}
k := n;
While( true) do
begin
l1: k := k- 1;
{ Writeln(' Chi so k =',k);}
if( k= 0) then goto L2;
i := L[k];
if( i<> k) then
begin
jq := n*( k-1);
jr := n *( i-1);
for j := 1 to n do
begin
jk := jq +j;
hl := A[jk];
ji := jr + j;
A[jk] := - A[ji];
A[ji] := hl;
end;
end;
j := M[k];
if( j =k) then goto L1;
ki := k - n;
for i := 1 to n do
begin
ki := ki + n;
hl := A[ki];
ji := ki - k + j;
A[ki] := - A[ji];
A[ji] := hl;
end;
end; { Ket thuc vong lap thu 2 theo k }
L2:;
End; { Ket thuc ch/ trinh nghich dao ma tran }
{---------------------------------------------------------------------------}
Procedure NEWTS1( var k: integer);
Begin
k := 0;
Repeat
for j := 1 to n do
X1[j] := X[j];
F1( n, X1,Y);
G1( N, X1, A);
NDMT2( n, a, dt);

for j := 1 to n do
begin
X[j] := X1[j];
for i := 1 to n do
begin
nk := j + n*( i -1);
X[j] := X[j] - A[nk] * Y[i];
end;
end;
s := 0.0;
for j := 1 to n do
s := s + ( X[j] - X1[j])*( X[j] - X1[j]);
S := sqrt( s);
if( k > Itmax) then Exit;
K := k + 1;
until( S <= eps);
End;

Procedure NEWTS2( var k: integer);


Begin
k := 0;
Repeat
for j := 1 to n do
X1[j] := X[j];
F2( n, X1,Y);
G2( N, X1, A);
NDMT2( n, a, dt);
for j := 1 to n do
begin
X[j] := X1[j];
for i := 1 to n do
begin
nk := j + n*( i -1);
X[j] := X[j] - A[nk] * Y[i];
end;
end;
s := 0.0;
for j := 1 to n do
s := s + ( X[j] - X1[j])*( X[j] - X1[j]);
S := sqrt( s);
if( k > Itmax) then Exit;
K := k + 1;
until( S <= eps);
End;

Procedure NEWTS3( var k: integer);


Begin
k := 0;
Repeat
for j := 1 to n do
X1[j] := X[j];
F3( n, X1,Y);
G3( N, X1, A);
NDMT2( n, a, dt);

for j := 1 to n do
begin
X[j] := X1[j];
for i := 1 to n do
begin
nk := j + n*( i -1);
X[j] := X[j] - A[nk] * Y[i];
end;
end;
s := 0.0;
for j := 1 to n do
s := s + ( X[j] - X1[j])*( X[j] - X1[j]);
S := sqrt( s);
if( k > Itmax) then Exit;
K := k + 1;
until( S <= eps);
End;
{---------------------------------------------------------------------------}
{ THAN CHUONG TRINH CHINH }
{---------------------------------------------------------------------------}
{Sinh vien tu viet chuong trinh chinh}
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh giai he phuong trinh phi tuyen bang phuong phap NEWTON -
RAPHSON');
Readln;Writeln;
Repeat
Writeln('Giai he | X - e^(-Y) = 0. Bam 1 de tiep tuc.');
Writeln(' | Y - e^X =0 ');
Writeln;
Writeln('Giai he | X^2 + X - Y^2 - 0.15 = 0. Bam 2 de tiep tuc.');
Writeln(' | X^2 - Y + Y^2 + 0.17 = 0 ');
Writeln;
Writeln('Giai he | X - 0.1Y^2 + 0.05Z^2 = 0.7. Bam 3 de tiep tuc.');
Writeln(' | Y + 0.3X^2 - 0.1XZ = 0.5 ');
Writeln(' | Z + 0.4Y^2 - 0.1XY = 1.2 ');
Writeln;
Write('Xin moi lua chon: ');
Readln(kt);

If kt='1' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh giai he phuong trinh phi tuyen bang phuong phap NEWTON -
RAPHSON');
Writeln;

Writeln(' Giai he | X - e^(-Y) = 0.');


Writeln(' | Y - e^X =0 ');
Writeln;Readln;
n:=2 ;
Writeln('Nhap vao nghiem gan dung ban dau:');
Write(' X= '); Readln(x[1]);
Write(' Y= '); Readln(x[2]);
Write('Do chinh xac cua qua trinh tim nghiem: ');
Readln(eps);
NEWTS1(k); Writeln;
Write('So lan lap: k= ',k);
Writeln;
Write('Gia tri dinh thuc: DetA= ',dt:6:4);
Readln; Writeln;
Writeln('Nghiem cua he phuong trinh la:');
Writeln(' X= ',x[1]:6:4);
Writeln(' Y= ',x[2]:6:4);
Readln;
Writeln;
Write('Ban co muon giai lai phuong trinh nay khong? (c/k): ');
Readln(kt3);
Until kt3<>'c';

If kt='2' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh giai he phuong trinh phi tuyen bang phuong phap NEWTON -
RAPHSON');
Writeln;
Writeln(' Giai he | X^2 + X - Y^2 - 0.15 = 0.');
Writeln(' | X^2 - Y + Y^2 + 0.17 = 0 ');
Writeln;Readln;
n:=2;
Writeln('Nhap vao nghiem gan dung ban dau:');
Write(' X= '); Readln(x[1]);
Write(' Y= '); Readln(x[2]);
Write('Do chinh xac cua qua trinh tim nghiem: ');
Readln(eps);
NEWTS2(k); Writeln;
Write('So lan lap: k= ',k);
Writeln;
Write('Gia tri dinh thuc: DetA= ',dt:6:4);
Readln; Writeln;
Writeln('Nghiem cua he phuong trinh la:');
Writeln(' X= ',x[1]:6:4);
Writeln(' Y= ',x[2]:6:4);
Readln;
Writeln;
Write('Ban co muon giai lai phuong trinh nay khong? (c/k): ');
Readln(kt4);
Until kt4<>'c';

If kt='3' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh giai he phuong trinh phi tuyen bang phuong phap NEWTON -
RAPHSON');
Writeln;
Writeln(' Giai he | X - 0.1Y^2 + 0.05Z^2 = 0.7.');
Writeln(' | Y + 0.3X^2 - 0.1XZ = 0.5 ');
Writeln(' | Z + 0.4Y^2 - 0.1XY = 1.2 ');
Writeln;Readln;
n:=3;
Writeln('Nhap vao nghiem gan dung ban dau:');
Write(' X= '); Readln(x[1]);
Write(' Y= '); Readln(x[2]);
Write(' Z= '); Readln(x[3]);
Write('Do chinh xac cua qua trinh tim nghiem: ');
Readln(eps);
NEWTS3(k); Writeln;
Write('So lan lap: k= ',k);
Writeln;
Write('Gia tri dinh thuc: DetA= ',dt:6:4);
Readln; Writeln;
Writeln('Nghiem cua he phuong trinh la:');
Writeln(' X= ',x[1]:6:4);
Writeln(' Y= ',x[2]:6:4);
Writeln(' Z= ',x[3]:6:4);
Readln;
Writeln;
Write('Ban co muon giai lai phuong trinh nay khong? (c/k): ');
Readln(kt5);
Until kt5<>'c';
Writeln;
Write('Ban co muon chay lai tat ca chuong trinh khong? (c/k): ');
Readln(kt1);
Until kt1<>'c';
End.

X. TÍCH PHÂN

Program Tich_phan;
Uses crt;
Const itmax=10;
Pi=3.141592654;
Var x,h,a,b,S0,S1,S2,eps,I1,I2:real;
k,N,dem,j:integer;
kt,kt1,kt2,kt3,kt4,kt5,kt6:char;
Function F1(x:real): Real;
Begin
F1:=X*Ln(X+1);
End;
Function F2(x:real):real;
Begin
F2:=exp(X)*Cos(X);
End;
Procedure TP1(var I:real;N:integer);
Begin
h:=(b-a)/N;
S0:=(F1(a)+F1(b))/2;
S1:=0;
For k:=1 to N-1 do
Begin
X:=a+k*h;
S1:= S1+F1(x);
End;
I:=(S0+S1)*h;
End;

Procedure TP2(var I:real;N:integer);


Begin
h:=(b-a)/N;
S0:=(F2(a)+F2(b))/2;
S1:=0;
For k:=1 to N-1 do
Begin
X:=a+k*h;
S1:= S1+F2(x);
End;
I:=(S0+S1)*h;
End;
Procedure TP3(var I:real;N:integer);
Begin
h:=(b-a)/(2*n);
k:=-1;
S1:=0;
For j:=1 to n-1 do
Begin
k:=k+2;
X:=a+k*h ;
S1:=S1+F1(x);
End;
K:=0;
S2:=0;
For j:=1 to n-1 do
Begin
k:=k+2;
X:=a+K*h;
S2:=S2+F1(x);
End;
S0:=F1(a)+F1(b);
I:=h*(S0+4*S1+2*S2)/3;
End;

Procedure TP4(var I:real;N:integer);


Begin
h:=(b-a)/(2*n);
k:=-1;
S1:=0;
For j:=1 to n-1 do
Begin
k:=k+2;
X:=a+k*h ;
S1:=S1+F2(x);
End;
K:=0;
S2:=0;
For j:=1 to n-1 do
Begin
k:=k+2;
X:=a+K*h;
S2:=S2+F2(x);
End;
S0:=F2(a)+F2(b);
I:=h*(S0+4*S1+2*S2)/3;
End;

Begin
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;Readln;
Writeln(' Chuong trinh tinh tich phan theo hai phuong phap.');
Readln;
Writeln('Phuong phap hinh thang. Bam T de tiep tuc.');
Writeln('Phuong phap SIMSON. Bam S de tiep tuc.');
Write('Xin moi lua chon: ');
Readln(kt5);
If kt5='t' then
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap hinh thang.');
Readln;
Repeat
Writeln('Tinh tich phan X*Ln(X+1) dX. Bam 1 de tiep tuc.');
Writeln('Tich tich phan e^X*Cos(X) dX. Bam 2 de tiep tuc.');
Write('Xin moi lua chon: '); Readln(kt3);Writeln;
If kt3='1' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap hinh thang.');
Writeln(' Tinh tich phan X*Ln(X+1) dX.');
Readln;
Writeln('Nhap vao gia tri can tren va can duoi cua tich phan:');
Readln;
Write('Can duoi: A= '); Readln(a);
Write('Can tren: B= '); Readln(b);
Write('Nhap vao sai so cho phep: '); Readln(eps);
N:=1; dem:=0;
Repeat
TP1(I1,N);
N:=2*N;
TP1(I2,N);
N:=N+1; Dem:=dem+1;
If dem>itmax then
Begin
Writeln;
Writeln('Ban muon ket qua co do chinh xac cao?');
Writeln('Sai so qua nho se khien chuong trinh chay mat nhieu thoi gian.');
Write('Ban muon tiep tuc? (c/k): ');
Readln(kt);Writeln;
If kt<>'c' then break
Else
Repeat
TP1(I1,N);
N:=2*N;
TP1(I2,N);
N:=N+1; Dem:=dem+1;
Until abs((I1-I2)/I1)<=eps;
If kt<>'c' then break;
End;
Until abs((I1-I2)/I1)<=eps;
Writeln;
If dem<= itmax then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
If (dem> itmax) and (kt='c') then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
Writeln;Readln;
Write('Ban co muon tinh lai tich phan nay khong? (c/k): ');
Readln(kt1);Writeln;
Until kt1<>'c';

If kt3='2' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap hinh thang.');
Writeln(' Tinh tich phan e^X*Cos(X) dX.');
Readln;
Writeln('Nhap vao gia tri can tren va can duoi cua tich phan:');
Readln;
Write('Can duoi: A= '); Readln(a);
Write('Can tren: B= Pi/'); Readln(b);
Write('Nhap vao sai so cho phep: '); Readln(eps);
N:=1; B:=Pi/B; dem:=0;
Repeat
TP2(I1,N);
N:=2*N;
TP2(I2,N);
N:=N+1; Dem:=dem+1;
If dem>itmax then
Begin
Writeln;
Writeln('Ban muon ket qua co do chinh xac cao?');
Writeln('Sai so qua nho se khien chuong trinh chay mat nhieu thoi gian.');
Write('Ban muon tiep tuc? (c/k): ');
Readln(kt);Writeln;
If kt<>'c' then break
Else
Repeat
TP2(I1,N);
N:=2*N;
TP2(I2,N);
N:=N+1; Dem:=dem+1;
Until abs((I1-I2)/I1)<=eps;
If kt<>'c' then break;
End;
Until abs((I1-I2)/I1)<=eps;
Writeln;
If dem<= itmax then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
If (dem> itmax) and (kt='c') then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
Writeln;Readln;
Write('Ban co muon tinh lai tich phan nay khong? (c/k): ');
Readln(kt1);Writeln;
Until kt1<>'c';
Write('Ban co muon tinh lai tat ca tich phan khong? (c/k): ');
Readln(kt4);Writeln;
Until kt4<>'c';
End;

If kt5='s' then
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;Readln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap SIMSON.');
Readln;
Repeat
Writeln('Tinh tich phan X*Ln(X+1) dX. Bam 1 de tiep tuc.');
Writeln('Tich tich phan e^X*Cos(X) dX. Bam 2 de tiep tuc.');
Write('Xin moi lua chon: '); Readln(kt3);Writeln;
If kt3='1' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap SIMSON.');
Writeln(' Tinh tich phan X*Ln(X+1) dX.');
Readln;
Writeln('Nhap vao gia tri can tren va can duoi cua tich phan:');
Readln;
Write('Can duoi: A= '); Readln(a);
Write('Can tren: B= '); Readln(b);
Write('Nhap vao sai so cho phep: '); Readln(eps);
N:=1; dem:=0;
Repeat
TP3(I1,N);
N:=2*N;
TP3(I2,N);
N:=N+1; Dem:=dem+1;
If dem>itmax then
Begin
Writeln;
Writeln('Ban muon ket qua co do chinh xac cao?');
Writeln('Sai so qua nho se khien chuong trinh chay mat nhieu thoi gian.');
Write('Ban muon tiep tuc? (c/k): ');
Readln(kt);Writeln;
If kt<>'c' then break
Else
Repeat
TP3(I1,N);
N:=2*N;
TP3(I2,N);
N:=N+1; Dem:=dem+1;
Until abs((I1-I2)/I1)<=eps;
If kt<>'c' then break;
End;
Until abs((I1-I2)/I1)<=eps;
Writeln;
If dem<= itmax then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
If (dem> itmax) and (kt='c') then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
Writeln;Readln;
Write('Ban co muon tinh lai tich phan nay khong? (c/k): ');
Readln(kt1);Writeln;
Until kt1<>'c';

If kt3='2' then
Repeat
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln; Writeln;
Writeln(' Chuong trinh tinh tich phan theo phuong phap SIMSON.');
Writeln(' Tinh tich phan e^X*Cos(X) dX.');
Readln;
Writeln('Nhap vao gia tri can tren va can duoi cua tich phan:');
Readln;
Write('Can duoi: A= '); Readln(a);
Write('Can tren: B= Pi/'); Readln(b);
Write('Nhap vao sai so cho phep: '); Readln(eps);
N:=1; B:=Pi/B; dem:=0;
Repeat
TP4(I1,N);
N:=2*N;
TP4(I2,N);
N:=N+1; Dem:=dem+1;
If dem>itmax then
Begin
Writeln;
Writeln('Ban muon ket qua co do chinh xac cao?');
Writeln('Sai so qua nho se khien chuong trinh chay mat nhieu thoi gian.');
Write('Ban muon tiep tuc? (c/k): ');
Readln(kt);Writeln;
If kt<>'c' then break
Else
Repeat
TP4(I1,N);
N:=2*N;
TP4(I2,N);
N:=N+1; Dem:=dem+1;
Until abs((I1-I2)/I1)<=eps;
If kt<>'c' then break;
End;
Until abs((I1-I2)/I1)<=eps;
Writeln;
If dem<= itmax then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
If (dem> itmax) and (kt='c') then Write('Ket qua tinh tich phan: ',(I1+I2)/2:6:4);
Writeln;Readln;
Write('Ban co muon tinh lai tich phan nay khong? (c/k): ');
Readln(kt1);Writeln;
Until kt1<>'c';
Write('Ban co muon tinh lai tat ca tich phan khong? (c/k): ');
Readln(kt4);Writeln;
Until kt4<>'c';
End;
Write('Ban muon chay lai chuong trinh khong? (c/k): ');
Readln(kt6);
Until kt6<>'c';
End.

XI. CHƯNG ĐƠN GIẢN

Program Chung_don_gian;
Uses Crt;
Const itmax=10;
Const nmax = 50;
mr=46;
mn=18;
Type
mx = array[0..nmax] of real;
Var
x2,xf,xw,xp,y2,af,ap,aw,f,w,p,m1,m2,hx,s,s0,s1,Tp,xfkl,xwkl :real;
i,j,k,n,ncb,dem :integer;
x,y,t,xa,cpa,xh,dh,tr,rb,ra,ff : mx;
kt,kt1,kt2,kt3:char;
{----------------------------------------------------------------------}
Procedure Noisuy ( x2: real; Var y2 : real; Y,X : mx; n : integer);
Begin
k := 0;y2:=0;
Repeat
k := k + 1;
Until( x2<= X[k]);
y2 := ((x2-x[k-1])*(y[k]-y[k-1]))/(x[k]-x[k-1]) + y[k-1];
end;
{---------------------------------------------------------------------------}
Procedure SOLIEU;
{ Can bang pha cua he Ethylic - Nuoc }
Begin

M1 := 46.0; M2 := 18.0;

X[1] :=0.0;X[2] :=0.0028;X[3] :=0.0118;X[4] :=0.0137;X[5] :=0.0144;


X[6] :=0.0176;X[7] :=0.0222;X[8] :=0.0246;X[9] :=0.0302;X[10] :=0.0331;
X[11] :=0.0519;X[12] :=0.053;X[13] :=0.0625;X[14] :=0.0673;X[15] :=0.0715;
X[16] :=0.0871; X[17] :=0.126;X[18] :=0.143;X[19] :=0.172;X[20] :=0.206;
X[21] :=0.21; X[22] :=0.255;X[23] :=0.284;X[24] :=0.321;X[25] :=0.324;
X[26] :=0.345; X[27] :=0.405;X[28] :=0.430;X[29] :=0.449;X[30] :=0.506;
X[31] :=0.545; X[32] :=0.663;X[33] :=0.735;X[34] :=0.804;X[35] :=0.917;
X[36] :=1.0;
Y[1] :=0.0;Y[2] :=0.032;Y[3] :=0.113;Y[4] :=0.127;Y[5] :=0.135;
Y[6]:=0.156;Y[7]:=0.186;Y[8]:=0.212;Y[9] :=0.231;Y[10] :=0.248;
Y[11]:=0.318;Y[12] :=0.324;Y[13] :=0.339; Y[14]:=0.360;Y[15] :=0.362;
Y[16] :=0.406; Y[17] :=0.468;Y[18] :=0.487; Y[19]:=0.505;Y[20] :=0.530;
Y[21] :=0.537; Y[22] :=0.552;Y[23] :=0.567; Y[24]:=0.585;Y[25] :=0.586;
Y[26] :=0.591; Y[27] :=0.614;Y[28] :=0.626; Y[29]:=0.633;Y[30] :=0.661;
Y[31] :=0.673; Y[32] :=0.733;Y[33] :=0.776; Y[34]:=0.815;Y[35] :=0.906;
Y[36] :=1.0;
T[1] :=100.0; T[2] :=99.3; T[3] :=96.9; T[4] :=96.0;T[5] :=96.;
T[6] :=95.6; T[7] :=94.8; T[8] :=93.8; T[9] :=93.5;T[10] :=92.9;
T[11] :=90.5; T[12] :=90.5; T[13] :=89.4; T[14] :=88.4; T[15] :=88.6;
T[16] :=87.2; T[17] :=85.4;T[18] :=84.5; T[19] :=84.0; T[20] :=83.4;
T[21] :=83.0; T[22] :=82.3;T[23] :=82.0; T[24] :=81.4; T[25] :=81.5;
T[26] :=81.2; T[27] :=80.9;T[28] :=80.5; T[29] :=80.2; T[30] :=80.0;
T[31] :=79.5; T[32] :=78.8;T[33] :=78.5; T[34] :=78.4; T[35] :=78.3;
T[36] :=78.3;
End;
{---------------------------------------------------------------------------}
Procedure Fx(var ff:mX;n:integer);
Begin
SoLieu;
hx:=(xf-xw)/n;
x2:=0;
Writeln;
Write('Ban co muon xem cac gia tri ham so duoi dau tich phan? (c/k): ');
Readln(kt);
If kt='c' then
Begin
Writeln;
Writeln('Cac gia tri ham so duoi dau tich phan:');
Writeln;
For i:=0 to n do
Begin
x2:=xw+i*hx;
Write(' X[',i,'] = ',x2:6:4); Writeln;
NOISUY(x2,y2,y,x,n);
Write(' Y*[',i,'] = ',y2:6:4); Writeln;
Write(' Y*[',i,'] - X[',i,']= ',y2-x2:6:4); Writeln;
ff[i]:=1/(y2-x2);
Write(' FF[',i,'] = ',ff[i]:6:4);
Readln;Writeln;
End;
End
Else
For i:=0 to n do
Begin
x2:=xw+i*hx;
NOISUY(x2,y2,y,x,n);
ff[i]:=1/(y2-x2);
End;
End;
Procedure TPHT(Var TP:real;n:integer);
Begin
Fx(ff,n);
S0:=(FF[0]+FF[n])/2;
S1:=0;
For i:=1 to n-1 do S1:=S1+FF[i];
TP:=(S0+S1)*hx;
End;
Begin
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;Readln;
Writeln(' Chuong trinh tinh toan qua trinh chung don gian.');
Readln;
Repeat
Write('Nhap vao so khoang chia cua khoang nong do: ');
Readln(n);
Write('Nong do ruou trong hon hop dau (%klg) : xF= ');
Readln(xf);
Write('Nong do ruou trong san pham day (%klg): xW= ');
Readln(xw);
Write('Luong hon hop dau (kg): F= ');
Readln(f);
xf:=xf/100;
xfkl:=xf;
xf:=(xf/46)/(xf/46 + (1-xf)/18);
xw:=xw/100;
xwkl:=xw;
xw:=(xw/46)/(xw/46 + (1-xw)/18);
F:=xfkl*F/46 + (1-xfkl)*F/18;
Solieu;
TPHT(TP,n);
W:=F/exp(tp);
P:=F-W;
xp:=(F*xf-W*xw)/p;
Clrscr;
Writeln(' Nguoi viet chuong trinh: Tran Van Bay');
Writeln(' Lop : KTHH 7 K56 ');
Writeln(' MSSV : 20112782');
Writeln; Writeln;
Writeln(' Chuong trinh tinh toan qua trinh chung don gian.');
Writeln; Writeln;
Writeln('Tich phan I=Ln(F/W)= ',tp:6:4);
Readln;Writeln;
Writeln('Ket qua tinh toan:'); Writeln;
Writeln('Luong san pham day : W= ',w:6:4,' kmol');
Writeln('Luong san pham dinh : P= ',p:6:4,' kmol');
Writeln('Thanh phan san pham dinh: xP= ', xp:6:4,' phan mol') ;
Readln;
Write('Ban co muon tinh lai khong? (c/k): ');
Readln(kt2); Writeln;
Until kt2<>'c';
End.

You might also like