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...

pdf105 trang | Chia sẻ: havih72 | Lượt xem: 182 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Tin học ứng dụng trong hóa học - Mai Xuân Trường, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
=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:

  • pdfbai_giang_tin_hoc_ung_dung_trong_hoa_hoc_mai_xuan_truong.pdf