Bài giảng Tin học ứng dụng trong hóa học - Mai Xuân Trường
Tóm tắt Bài giảng Tin học ứng dụng trong hóa học - Mai Xuân Trường: ... C V A L O A I T R U N G B I N 3 C M L T B 4 C K H O I D A U G I A T R I T O N G V A C A I D E M 5 D E M X = 0 6 T O N G X = 0 7 C D O C B I A T H A M S O 8 R E A D ( 5 , 1 0 0 ) X N , M L T B 9 C D O C X 10 R E A D ( 5 , 1 0 0 ) X 11 C T A N G C A I D E M V A T I C H L U Y T O N G...i ma trận trực giao nếu ma trận nghịch đảo của nó trùng với ma trận chuyển vị MT = M-1 . Ví dụ: ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ θθ− θθ cossin0 sincos0 001 là ma trận trực giao, bởi vì: MT M = E ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ θθ− θθì ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ θθ θ−θ 1...ạm - Đại học Thái Nguyên 71 Ch−ơng 6 : thực hμnh 6.1. vận hμnh máy Khởi động mỏy tớnh, copy, cài đặt và khởi động chương trỡnh PASCAL, thoỏt ra khỏi chương trỡnh PASCAL, tắt mỏy tớnh. 6.2. Nhập ch−ơng trình vμo máy tính Nhập cỏc chương trỡnh ở cỏc vớ dụ cú trong tài liệu và chạy thử. L...
=k*2; h:=h0/k;
RK2(xa,ya,h0,k,y);
if yold=0 then yold:=1;
temp:=abs((y-yold)/yold);
if temp<eps then goto 10;
yold:=y;
end; {4}
write('Nghiem khong on dinh');readln;
10: ya:=y; xa:=xa+h0;
end; {3}
writeln(ipont:3,xa:10:4,ya:20:10);
end; {2}
END;
2.3. Giải hệ ph−ơng trình vi phân th−ờng
Procedure RKSYS (xa,h0:real; YA: m1; k,ndim :integer; VAR Y1: m1);
(* ndim là số ph−ơng trình của hệ ph−ơng trình vi phân FUNC là hàm liên hệ *)
VAR h,h2,x : real;
i,jj : integer;
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
91
YY,RK,Y : m1;
BEGIN
h:=h0/k;
h2:=h/2;
x:=xa;
for i:=1 to ndim do Y[i]:=YA[i];
for jj:=1 to k do
Begin {1}
FUNC(x,Y, DERY);
For i:=1 to ndim do
Begin {2}
YY[i]:=Y[i]+h2*DERY[i]; (*yo+h0 func/2*)
RK[i]:=DERY[i];
End; {2} (*k1/h=func*)
x:=x+h2;
FUNC(x,YY,DERY);
For i:=1 to ndim do
Begin {3}
YY[i]:=Y[i]+h2*DERY[i];
RK[i]:=RK[i]+ 2*DERY[i];
end; {3} (*2k2/h=2func*)
FUNC(x,YY,DERY);
For i:=1 to ndim do
Begin {4}
YY[i]:=Y[i]+h*DERY[i];
RK[i]:=RK[i]+ 2*DERY[i];
end; {4} (*2k3/h=2func*)
x:=x+h2; FUNC(x,YY,Dery);
For i:=1 to ndim do
Begin {5}
RK[i]:=RK[i]+ DERY[i]; (*k4/h = func*)
Y[i]:=Y[i]+h*RK[i]/6.0;
end; {5}
End; {1}
for i:=1 to ndim do Y1[i]:=Y[i];
END; (*End of RKSYS*)
3. Xấp xỉ nghiệm và hàm
3.1. Ph−ơng pháp chia khoảng giải gần đúng ph−ơng trình một ẩn.
Procedure PPCK(a,b,eps: real; VAR x:real);
VAR
fa,fb : real;
BEGIN
fa:= FF(a);
fb:= FF(b);
while abs (a-b) > eps do
begin {1}
c:=(a+b)/2;
x:= c;
fc:= FF(x);
d:= fa * fc;
if d > 0 then
begin {2}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
92
fa:= fc; a:= c;
end {2}
else
begin {3}
fb:= fc; b:= c;
end; {3}
end; {1}
END;
trong đó có sử dụng FUNCTION FF(x). Khi dùng PPCK bạn cần soạn riêng một
function FF(x) cho hàm số trong ph−ơng trình f(x) = 0.
3.2. Hồi quy đa thức
Procedure HQDT(npont,m: integer; Y,X:m1; VAR A:m1);
(* npont là số điểm thực nghiệm xác định Y và X *)
(* m là bậc của đa thức, A là các hệ số của đa thức hồi quy*)
VAR
bm,tampon,i,npont,j,k :integer;
ab: real;
xx: array [ 1.. 10] of real;
sum,sum2 : array [ 0..20] of real;
a,aa : array [1..20,1..20] of real;
function ymux(y,x:real): real;
VAR kqtg : real;
BEGIN
kqtg:=x*ln(y);
ymux:=exp(kqtg);
END;
procedure GHPTTT(n:integer; A:m2; VAR X:m1);
BEGIN
.
END;
BEGIN
bm:= 2 * m;
for k := 1 to bm do
begin {1}
sum[k]:= 0;
for i:=1 to npont do sum[k] := sum[k] + ymux(x[i],k);
end; {1}
sum[0]:= npont;
for k := 0 to m do
begin {2}
sum2[k]:= 0;
for i:=1 to npont do sum2[k] := sum2[k] + y[i]*ymux(x[i],k);
end; {2}
for i:=1 to m+1 do (*cac he so cua he ptrinh tuyen tinh*)
begin {3}
for j:=1 to m+1 do
Begin {4}
tampon:=bm-i-j+2;
a[i,j]:= sum[tampon]; aa[i,j]:=a[i,j];
end; {4}
end; {3}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
93
for j:= 1 to m+1 do
begin {5}
tampon:=m-j+1;
a[j,M+2]:= sum2 [tampon];
aa[j,M+2]:=a[j,M+2];
end; {5}
GHPTTT(m+1,AA,X); (* giai he pt tuyen tinh *);
END;
4. Các ch−ơng trình nguồn
4.1. Tính cân bằng ion Fe3+ SCN-
PROGRAM CBION_FE_SCN; (* He Fe3+- SCN- *)
LABEL 10;
VAR
FX,FFX,C1,C2,epsilon,GAM,W,NDOH,NDH : real;
delta,Y,CC1,CC2,sum1,sum2,sum2,sum4,PK : real;
PKK : array[1..6] of real;
K,x: array[1..10] of real;
i,m,j : integer;
PROCEDURE FUNC(X: real; VAR FX,FFX: real);
VAR
tamp1,tamp2,tamp2,tamp4 : real;
i : integer;
BEGIN
sum1 := 0 ; sum2 := 0; sum2 := 0; sum4 := 0;
FOR i:= 1 TO 6 DO
begin {1}
tamp1:= exp( i * ln ( x ) )* PKK[ i ];
tamp2:= tamp1 / i ;
tamp2:=tamp2* i * i/ x;
tamp4:=tamp2/i;
sum1:=sum1 + tamp1;
sum2:=sum2 + tamp2;
sum2:=sum2 + tamp2;
sum4:=sum4 + tamp4;
end; {1}
W:= 1 + sum2 + NDOH/K[7];
FX := X - C2 + X * NDH/K[8] + C1 * sum1/W;
FFX:= 1 + NDH/K[8] + C1 * (sum2 * W - sum4*sum1)/W/W;
END;
BEGIN
Write('Do chinh xac cua loi giai :=?'); Readln (epsilon);
Writeln (' nhap hscb:');
for i:=1 to 8 do
begin {2}
write('InK[',i,']='); readln( K[i]);
K[i]:=exp(K[i]);
end; {2}
(*Tap so lieu dung de tinh thu K[1]:=1; K[2]:=5; K[2]:=2; K[4]:=1.5; K[5]:=2;
K[6]:=4; K[7]:=10;K[8]:=12; *)
Write (' nhap Nong Do Fe3+'); READLN (C1);
write(' nhap pH cua dung dich'); readln ( NDH);
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
94
NDH:=exp(-NDH); NDOH:=1.e-14/NDH;
Write (' nhap Nong Do SCN- va the tich GIOT ');
Readln (C2, GAM);
Writeln ('nhap x10 dau'); Readln (x[10]);
(* Vi du x[10] 1.e-5 *)
Writeln ('GIA TRI ND CAC ION CAN BANG');
Writeln('FeSCN':12,'FeSCN2':12,'FeSCN2':12,'FeSCN4':12,'FeSCN5':12,'FeSC
N6':12);
Writeln('FeOH':20,'HCNS':12,'Fe':12,'SCN':12);
{sau lan tinh dau, cac x dau duoc chon la x cua phep tinh truoc }
(*tinh PKi*)
for i:=1 to 6 do
begin {3}
PK:= 1;
For M:= 1 to i do PK:= PK * K[M];
PKK[i]:= 1.0/PK;
end; {3}
i:=0;
10: FUNC (x[10],FX,FFX);
j:=j+1;
delta := FX/FFX;
X[10] := X[10]- delta;
IF abs(delta)> epsilon THEN GOTO 10;
x[9]:=C1/W; x[8]:=x[10]*NDH/K[8];
x[7]:=x[9]*NDOH/K[7]; x[1]:=x[9]*x[10]/K[1];
for i:=2 to 6 do x[i]:=x[i-1]*x[10]/K[i];
for i:=1 to 6 do write(x[i]:12);
writeln; write('':12);
for i:=7 to 10 do write(x[i]:12); writeln;
if (j mod 10) = 0 then readln;
C2 := C2 + GAM;
IF (C2/2) <= C1 THEN GOTO 10;
Readln;
END.
4.2. Ch−ơng trình mô hình thực nghiệm bậc 2 tâm trực giao đầy đủ
Program MO_HINH_HOA_THUC_NGHIEM_ BAC_HAI_TAM_TRUC_GIAO_DAY_DU;
Uses Crt;
LABEL nn2,nn3,nn4;
TYPE
M1= array [1..60] Of real;
im1= Array[1..10] of integer;
M2 = Array [1..30,1..38] Of Real;
VAR
f1,f2,f3,ii,i,n,m,j,o,q,qs,l : integer;
s1,r,sfh,ss,so,skq,ssum,ysum,sl,ts,ms,d,v : Real;
tb,y,s,mg,bt,kqtn,tts,tms,b : m1;
xt,a,kq : m2;
c : im1;
z : Boolean;
ch : char;
finput, fout : text;
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
95
(*================chuong trinh con nhap so lieu==============*)
Procedure Input;
BEGIN
Write('Ban nhap so lieu truc tiep (t) hay tu file (f)');
readln(ch);
if (ch='f') or (ch='F') then
begin {1}
assign(finput,'d:\nhap.dat'); reset(finput);
read(finput,n);
For J:=2 to N+1 do Read(finput,MG[J]);
For J:=2 to N+1 do Read(finput,BT[J]);
end {1}
else
begin {2}
write('xin moi nhap so yeu to (n<=5) anh huong toi phan ung : '); Readln(N);
Writeln('Nhap muc goc va khoang bien thien cua cac yeu to anh huong');
For J:=2 to N+1 do
Begin {3}
Write('Yeu to anh huong thu ',J-1,' co muc goc: '); Readln(MG[J]);
Write(' Khoang bien thien: '); Readln(BT[J]);
End; {3}
end; {2}
END;
(****************Chuong trinh con ghi ket qua ra file***********)
Procedure ghiketqua;
VAR ch, filename:string;
BEGIN
Write('Ban co ghi ket qua ra file khong (C/K)?');readln(ch);
If (Ch ='C') or (Ch='c') then
begin {4}
Write('Ban nhap ten file ghi ket qua (*.txt)');
Readln(filename);
Assign(fout,filename);
Rewrite(fout);
Writeln(fout,' KET QUA');
Writeln(fout,'');
Writeln(fout,'Hang so d la ', D:5:4, ' Hang so phi la ',V:5:4);
Writeln(fout,'');
Writeln(fout,'LAM THI NGHIEM NHU SAU');
Writeln(fout,'');
For I:= 1 to M do
For J:= 2 to N+1 do
Begin {5}
XT[I,J]:=(MG[J] + A[I,J]*BT[J]);
end; {5}
For I:=1 to M do
Begin {6}
Write(fout,'Thi nghiem thu ',I:2) ;
For J:=2 to N+1 do Write(fout, XT[I,J]:6:3);
Writeln(fout,'');
End; {6}
Writeln(fout,'DANH GIA DO LAP LAI CUA THI NGHIEM');
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
96
Writeln(fout,'');
If Z THEN
Begin {7}
Writeln (fout,'Sai so thi nghiem nho hon sai so toan bo thi nghiem');
Writeln(fout,' Thi nghiem co tinh lap lai');
End; {7}
Writeln(fout,'');
Writeln(fout,'*** MA TRAN THUC NGHIEM ***');Writeln(fout,'');
For i:=1 to M do
Begin {8}
For J:=1 to O do
Write(fout,A[I,J]:6:2); Write(fout,KQTN[I]:6:2);
Writeln(fout);
End; {8}
Writeln(fout,'TIM CAC HE SO B PHUONG TRINH HOI
QUY');Writeln(fout,'');
For J:=1 to O do
Begin {9}
TS:=0; MS:=0;
For I:=1 TO M DO
Begin {10}
TS:=TS+(A[I,J]*KQTN[I]);
MS:=MS+(A[I,J]*A[I,J]);
End; {10}
TTS[J]:=TS; TMS[J]:=MS;
B[J]:=TTS[J]/(TMS[J]);
End; {9}
For j:=1 to O do
Begin {11}
Write(fout,'He so B[',J,']= ', B[J]:6:3) ;
Writeln(fout,'');
End; {11}
SO:=SQRT(SSUM/SQR(M));
TB[1]:=12.706; TB[2]:=4.303; TB[3]:=3.182;
TB[4]:=2.776; TB[5]:=2.571; TB[10]:=2.228; TB[27]:=2.050;
TB[15]:=2.131; TB[9]:=2.262; TB[18]:=2.101; TB[30]:=1.960;
TB[25]:=2.060;
If F2>30 then TB[F2]:=1.960;
SS:=SO*TB[F2];
For J:=1 to O do
If (ABS(B[J])< ABS(SS)) then Writeln(fout,' Phai loai he so B[',J,']');
L:=0;
For J:=1 to O do
If (ABS(B[J])> ABS(SS)) then
Begin {12}
Writeln(fout,'He so hoi quy con lai la: B[',J,']= ',B[J]:7:3);
L:=L+1;
End; {12}
Writeln(fout,'');
Writeln(fout,'So he so co y nghia la ',l);
Close(fout);
end; {4}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
97
END;
(*======ham x mu y==============================*)
Function mu(x,y:integer):integer;
VAR tg,q:integer;
BEGIN
tg:=1;
For q:=1 to y do tg:=tg*x;
mu:=tg;
END;
(*======Ham tinh giai thua=========================*)
Function Gthua(w:integer):integer;
VAR gt,i:integer;
BEGIN
If w=0 then gt:=1 else
Begin {13}
gt:=1;
For i:=1 to w do gt:= gt*i;
End; {13}
Gthua:=gt;
END;
Function t(i,k:integer):integer;
VAR tt,t1,t2,q:integer;
BEGIN
t1:=i Div k;
t2:=I Mod k;
If t2=0 then tt:=t1 else tt:=t1+1;
t:=tt;
END;
Procedure XDMTTN(Var a:m2);
Label 11;
VAR
KT,U:integer;
BEGIN
O:=1+N;
For I:=1 to N do
Begin {14}
C[I]:=(Gthua(N) DIV (Gthua(I)* Gthua(N-I)));
O:=O+C[i];
End; {14}
Writeln('So he so B can tim la: ',O);
For I:=1 to M do A[I,1]:= 1;
For J:=2 to N+1 do
Begin {15}
KT:=MU(2,J-2);
For I:=1 to Q do
Begin {16}
U:= T(I,KT);
A[I,J]:= MU(-1,U);
End; {16}
End; {15}
Case n of
1:goto 11;
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
98
2:Begin {17}
For I:= Q+1 to M do
Begin {18}
For J:=2 to N+1 do
Begin {19}
if J=2 then
Begin {20}
A[Q+1,J]:=D; A[Q+2,J]:=-D;
End; {20}
if J=3 then
Begin {21}
A[Q+3,J]:=D; A[Q+4,J]:=-D;
End {21}
else A[I,J]:=0;
End; {19}
End; {18}
For I:= 1 to M do
Begin {22}
A[I,4]:=A[I,2]*A[I,3];
A[I,5]:=(A[I,2]*A[I,2])-V;
A[I,6]:=(A[I,3]*A[I,3])-V;
End; {22}
End; {17}
3:Begin {23}
For I:= Q+1 to M do
Begin {24}
For J:=2 to N+1 do
Begin {25}
If J=2 Then
Begin {26}
A[Q+1,J]:=D; A[Q+2,J]:=-D;
End; {26}
If J=3 Then
Begin {27}
A[Q+3,J]:=D; A[Q+4,J]:=-D;
End; {27}
If J=4 Then
Begin {28}
A[Q+5,J]:=D; A[Q+6,J]:=-D;
End {28}
else A[I,J]:=0;
End; {25}
End; {24}
For I:= 1 to M do
Begin {29}
A[I,5]:=A[I,2]*A[I,3]; A[I,6]:=A[I,2]*A[I,4];
A[I,7]:=A[I,4]*A[I,3]; A[I,8]:=A[I,5]*A[I,4];
A[I,9]:=(A[I,2]*A[I,2])-V; A[I,10]:=(A[I,3]*A[I,3])-V;
A[I,11]:=(A[I,4]*A[I,4])-V;
End; {29}
end; {23}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
99
4:Begin {30}
For I:= Q+1 to M do
Begin {31}
For J:=2 to N+1 do
Begin {32}
If J=2 Then
Begin {33}
A[Q+1,J]:=D; A[Q+2,J]:=-D;
End; {33}
If J=3 Then
Begin {34}
A[Q+3,J]:=D; A[Q+4,J]:=-D;
End; {34}
If J=4 Then
Begin {35}
A[Q+5,J]:=D; A[Q+6,J]:=-D;
End; {35}
If J=5 Then
Begin {36}
A[Q+7,J]:=D; A[Q+8,J]:=-D;
End {36}
Else A[I,J]:=0;
End; {32}
End; {31}
For I := 1 to M do
Begin {37}
A[I,6]:=A[I,2]*A[I,3]; A[I,7]:=A[I,2]*A[I,4];
A[I,8]:=A[I,2]*A[I,5]; A[I,9]:=A[I,4]*A[I,3];
A[I,10]:=A[I,5]*A[I,3]; A[I,11]:=A[I,4]*A[I,5];
A[I,12]:=A[I,4]*A[I,6]; A[I,13]:=A[I,6]*A[I,5];
A[I,14]:=A[I,2]*A[I,11]; A[I,15]:=A[I,11]*A[I,3];
A[I,16]:=A[I,11]*A[I,6]; A[I,17]:=(A[I,2]*A[I,2])-V;
A[I,18]:=(A[I,3]*A[I,3])-V; A[I,19]:=(A[I,4]*A[I,4])-V;
A[I,20]:=(A[I,5]*A[I,5])-V;
End; {37}
End; {30}
5:Begin {38}
For I:= Q+1 to M do
Begin {39}
For J:=2 to N+1 do
Begin {40}
If J=2 Then
Begin {41}
A[Q+1,J]:=D; A[Q+2,J]:=-D;
End; {41}
If J=3 Then
Begin {42}
A[Q+3,J]:=D; A[Q+4,J]:=-D;
End; {42}
If J=4 Then
Begin {43}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
100
A[Q+5,J]:=D; A[Q+6,J]:=-D;
End; {43}
If J=5 Then
Begin {44}
A[Q+7,J]:=D; A[Q+8,J]:=-D;
End; {44}
If J=6 Then
Begin {45}
A[Q+9,J]:=D; A[Q+10,J]:=-D;
End {45}
Else A[I,J]:=0;
End; {40}
End; {39}
For I:= 1 to M do
Begin {46}
A[I,7]:=A[I,2]*A[I,3]; A[I,8]:=A[I,2]*A[I,5];
A[I,9]:=A[I,4]*A[I,3]; A[I,10]:=A[I,2]*A[I,6];
A[I,11]:=A[I,4]*A[I,3]; A[I,12]:=A[I,5]*A[I,3];
A[I,13]:=A[I,6]*A[I,3]; A[I,14]:=A[I,4]*A[I,5];
A[I,15]:=A[I,4]*A[I,6]; A[I,16]:=A[I,5]*A[I,6];
A[I,17]:=A[I,7]*A[I,4]; A[I,18]:=A[I,7]*A[I,5];
A[I,19]:=A[I,7]*A[I,6]; A[I,20]:=A[I,8]*A[I,5];
A[I,21]:=A[I,8]*A[I,6]; A[I,22]:=A[I,9]*A[I,6];
A[I,23]:=A[I,11]*A[I,5]; A[I,24]:=A[I,11]*A[I,6];
A[I,25]:=A[I,12]*A[I,6]; A[I,26]:=A[I,14]*A[I,6];
A[I,27]:=A[I,14]*A[I,7]; A[I,28]:=A[I,15]*A[I,7];
A[I,29]:=A[I,11]*A[I,6]; A[I,30]:=A[I,7]*A[I,16];
A[I,31]:=A[I,8]*A[I,16]; A[I,32]:=A[I,27]*A[I,6];
A[I,33]:=(A[I,2]*A[I,2])-V; A[I,36]:=(A[I,5]*A[I,5])-V;
A[I,34]:=(A[I,3]*A[I,3])-V; A[I,37]:=(A[I,6]*A[I,6])-V;
A[I,35]:=(A[I,4]*A[I,4])-V;
End; {46}
End; {38}
END;
11: Writeln;
Writeln(' MA TRAN THUC NGHIEM NHU SAU');
For I:= 1 to M do
Begin {47}
For J:= 1 to O do Write('A[',I,',',J,'] = ', A[I,J]:5:3);
Writeln;
End; {47}
END;
Procedure nhapketqua;
VAR sqk,smax,gg:Real;
g,gt: m2;
BEGIN
Write('So lan lap thuc nghiem o tam la: '); Readln(II);
Writeln('CAC THI NGHIEM O TAM ') ;
For J:=1 to II do
Begin {48}
Write('KQ[M,',J,']='); Readln(KQ[M,J]);
End; {48}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
101
SKQ:=0;
For J:=1 to II do
Begin {49}
SKQ:=SKQ+KQ[M,J];
End; {49}
KQ[M,II+1]:= SKQ/II;
KQTN[M]:=KQ[M,II+1];
Writeln('KET QUA THI NGHIEM THU DUOC LA:');
For i:=1 to m-1 do
Begin {50}
Write('KQTN[',i,']= '); Readln(kqtn[i]);
End; {50}
Writeln('KQTN[',m,']= ',kqtn[m]:5:3);
If II=1 then
Begin {51}
Writeln('Nen lam lap thi nghiem de co ket qua chinh xac hon');
Exit;
End; {51}
SSUM:= 0;
For J:=1 to II do
Begin {52}
S[I]:=SQR(KQ[M,J]-KQ[M,II+1]);
End; {52}
SSUM:= SSUM+ S[I];
SMAX:= S[1];
For I:=2 to II do If SMAX<S[I] then SMAX:=S[I];
GG:=SMAX/SSUM;
F1:=II-1;
F2:= M*F1;
Gt[F1,F2]:=GG;
{CAC GIA TRI TRA BANG CHUAN G VOI Q = 0.05}
G[1,5]:=0.8412; G[1,9]:=0.6385; G[1,15]:=0.4709; G[1,25]:=0.3400;
G[2,10]:=0.4450; G[2,18]:=0.2900 ; G[2,30]:=0.1980;
G[3,15]:=0.2758; G[3,27]:=0.1742; G[4,20]:=0.1921; G[4,36]:=0.1400;
If (Gt[F1,F2]<G[F1,F2]) then Z:=TRUE;
END;
Procedure PTHQ;
VAR Y1,Y2:M1;
F3 :integer;
FFT :real;
FT,FB:M2;
BEGIN
Writeln('DANH GIA TINH PHU HOP CUA PHUONG TRINH HOI QUY');
For I:=1 to M do
Begin {53}
Y1[I]:=0;
Y2[I]:=0;
For J:=1 to O do
Begin {54}
Y1[I]:=Y1[I]+B[J]*A[I,J];
If ABS(B[J])<ABS(SS) then Y2[I]:=Y2[I]+B[J]*A[I,J];
End; {54}
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
102
Y[I]:=Y1[I]-Y2[I];
End; {53}
For I:=1 to M do
Begin {55}
Write('KQLT thu ',I:2,Y[I]:6:3,' KQTN ',KQTN[I]:6:3);
Writeln;
End; {55}
YSUM:=0;
For I:= 1 to M do YSUM:= YSUM+ SQR(KQTN[I]- Y[I]);
F3:=M-L;
SFH:=(1/F3)*YSUM;
FFT:=SFH/(SSUM/F1);
FT[F3,F1]:=FFT;
FB[2,1]:=199.5; FB[2,2]:=19.00; FB[2,3]:=9.55;
FB[3,1]:=215.7; FB[3,2]:=19.16; FB[3,3]:=9.28;
FB[4,1]:=224.6; FB[4,2]:=19.25; FB[5,1]:=230.2;
FB[5,2]:=19.30; FB[4,3]:=19.12; FB[5,3]:=19.01;
FB[6,1]:=234.0; FB[6,2]:=19.33; FB[7,1]:=236.8;
FB[8,1]:=238.9; FB[7,2]:=19.35; FB[8,2]:=19.37;
FB[9,1]:=240.5; FB[9,2]:=19.38; FB[10,1]:=241.9;
FB[12,1]:=243.9; FB[12,2]:=19.41; FB[10,2]:=19.40;
R:=SSUM/(YSUM+SSUM);
Writeln('He so tuong quan la: ',R:8:3);
Write('Danh gia muc do tuong quan: ');
If R<0.7 then Writeln('Kem tuong quan');
If (R>=0.7) and (R<0.8) then Writeln('Kha tuong quan');
If (R>=0.8) and (R<0.9) then Writeln('Tuong quan tot');
If R>=0.9 then Writeln('Rat tuong quan') ;
SL:=SQRT(YSUM/(M-L));
Writeln('Do lech chuan SL :',SL:8:3);
If FT[F3,F1]<FB[F3,F1] then
Begin {56}
Writeln('MO HINH MO TA DUNG THUC NGHIEM');
End {56}
Else
Writeln('MO HINH MO TA KHONG DUNG THUC NGHIEM. PHAI LAM LAI ');
END;
(*======CHUONG TRINH CHINH=========================*)
BEGIN
CLRSCR;
GOTOXY(20,5);Writeln('DAI HOC THAI NGUYEN ');
GOTOXY(18,8);Writeln('DAI HOC SU PHAM ');
GOTOXY(26,9);Writeln('KHOA HOA HOC');
GOTOXY(12,15);Writeln('THUC HANH MON TIN HOC UNG DUNG TRONG
HOA HOC');
GOTOXY(8,17);Writeln('MO HINH HOA THUC NGHIEM BAC HAI TAM TRUC
GIAO DAY DU ');
GOTOXY(22,25);Writeln('Nguoi thuc hien: Mai xuan Truong ');
GOTOXY(22,27);Writeln('Bo mon: Hoa phan tich');
GOTOXY(20,35);Writeln('XIN MOI AN ENTER DE BAT DAU CHUONG TRINH ');
Readln;
CLRSCR;
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
103
input;
Q:=MU(2,N) ;
Writeln('So thi nghiem ma tran goc la ',Q);
QS:=2*N;
Writeln('So thi nghiem diem sao la ',QS);
M:=Q+QS+1;
Writeln('So thi nghiem can lam la ',M);
case n of
1: exit;
2: Begin d:=1.000; v:=0.667; End;
3: Begin d:=1.1254; v:=0.7303; end;
4: begin d:=1.4142; v:=0.8000; End;
5: Begin d:=1.7244; v:=0.8433; End;
End;
Writeln('Hang so d la ', D:5:4, ' Hang so phi la ',V:5:4);
XDMTTN(A);
Writeln('LAM THI NGHIEM NHU SAU');
For I:= 1 to M do
For J:= 2 to N+1 do
Begin XT[I,J]:=(MG[J] + A[I,J]*BT[J]); end;
For I:=1 to M do
Begin
Write('Thi nghiem thu ',I:2) ;
For J:=2 to N+1 do Write( XT[I,J]:6:3);
Writeln;
End;
Readln;
nhapketqua;
If II=1 then GOTO nn2;
Writeln('DANH GIA DO LAP LAI CUA THI NGHIEM');
If Z THEN
Begin
Writeln ('Sai so thi nghiem nho hon sai so toan bo thi nghiem');
Writeln(' Thi nghiem co tinh lap lai');
End
Else
Begin
Writeln('Sai so thi nghiem nho hon sai so toan bo thi nghiem');
Writeln(' BAN PHAI LAM THEM THI NGIEM');
GOTO nn3;
End;
CLRSCR;
Writeln;
nn2:Writeln('*** MA TRAN THUC NGHIEM ***');
For i:=1 to M do
Begin
For J:=1 to O do
Write(A[I,J]:6:2); Write(KQTN[I]:6:2);
Writeln;
End;
Writeln('TIM CAC HE SO B PHUONG TRINH HOI QUY');
For J:=1 to O do
TS Mai Xuân Tr−ờng - Tr−ờng Đại học S− phạm - Đại học Thái Nguyên
104
Begin TS:=0; MS:=0;
For I:=1 TO M DO
Begin
TS:=TS+(A[I,J]*KQTN[I]);
MS:=MS+(A[I,J]*A[I,J]);
End;
TTS[J]:=TS; TMS[J]:=MS;
B[J]:=TTS[J]/(TMS[J]);
End;
For j:=1 TO O DO
Begin
Write('He so B[',J,']= ', B[J]:6:3) ;
Writeln;
Readln;
End;
If II=1 then GOTO nn3;
SO:=SQRT(SSUM/SQR(M));
TB[1]:=12.706; TB[2]:=4.303; TB[3]:=3.182; TB[4]:=2.776;
TB[5]:=2.571; TB[10]:=2.228; TB[27]:=2.050; TB[15]:=2.131;
TB[9]:=2.262; TB[18]:=2.101; TB[30]:=1.960; TB[25]:=2.060;
If F2>30 then TB[F2]:=1.960;
SS:=SO*TB[F2];
For J:=1 to O do
If (ABS(B[J])< ABS(SS)) then
Begin Writeln(' Phai loai he so B[',J,']'); end;
Readln;
L:=0;
For J:=1 to O do
If (ABS(B[J])> ABS(SS)) then
Begin
Writeln('He so hoi quy con lai la: B[',J,']= ',B[J]:7:3);
L:=L+1;
End;
Writeln('So he so co y nghia la ',l);
PTHQ;
ghiketqua;
nn3: writeln('Xin chan thanh cam on');
Writeln(CHR(7));
Readln;
END.
File đính kèm:
bai_giang_tin_hoc_ung_dung_trong_hoa_hoc_mai_xuan_truong.pdf



