'OR''='
15-01-2008, 02:38
Các bác cho em hỏi tại sao lại bị lỗi chia 0 ở dòng in đậm nhỉ? Dạo này đầu óc mụ mẫm nên phải cầu cứu các bác.
Program PHUONG_LINH;
Uses Crt;
Var
a, i, j, m, n: Integer;
d, v, l: char;
dx, f, sigma1, sigma2, sigma, sohang1, sohang2, sohang3: Real;
x, x1, x2, xx, h, hh, k, dgtp, dg, slv: Array[1..255] of real;
ten1, ten2: String;
vao, ra: Text;
Begin
Clrscr;
{Nhap so lieu}
Write('Ban hay nhap ten cua file so lieu vao:');
ReadLn(ten1);
Assign (vao, ten1);
Reset(vao);
a:=0;
While not eof(vao) do
Begin inc(a);
read(vao, slv[a]);
End;
Close(vao);
m:=a-1;
For i:=1 to m div 2 do Begin xx[i]:=slv[2*i-1]; hh[i]:=slv[2*i]; End;
Write('Ban hay nhap so diem tinh n =');ReadLn(n);
Write('Ban hay nhap khoang cach giua cac diem tinh dx=');ReadLn(dx);
Write('Ban hay nhap mat do sigma1='); ReadLn(sigma1);
Write('Ban hay nhap mat do sigma2='); ReadLn(sigma2);
sigma:=sigma1-sigma2;
f:=2/3*10e-7;
{Gan do sau cho cac diem do}
For j:=1 to m div 2 do
Begin
For i:=1 to n do
Begin
If i*dx=xx[j] then h[i]:=hh[j];
If (i*dx > xx[j]) and (i*dx < xx[j+1] ) then
h[i]:=(i*dx-xx[j])*(hh[j+1]-hh[j])/(xx[j+1]-xx[j]);
End;
End;
For i:=1 to n do Write(h[i]:9:3);
{Tinh delta g tai cac diem do}
For i:=1 to n do x[i]:=i*dx;
For j:=1 to n do dg[j]:=0;
For j:=1 to n do
Begin
For i:=1 to n do Begin x[i]:=x[i]-j*dx;Write(x[i]:4:2,' ');End;Writeln;
For i:=1 to n do
Begin
x1[i]:=x[i];
x2[i]:=x[i+1];
If (x1[i]=0) then dgtp[i]:=f*sigma*(-x2[i]*ln((sqr(x2[i])+sqr(h[i]))/(sqr(x2[i]))))+
2*h[i]*(arctan(x2[i]/h[i])-arctan(x2[i]/h[i]));
If (x2[i]=0) then dgtp[i]:=f*sigma*(x1[i]*ln((sqr(x1[i])+sqr(h[i]))/(sqr(x1[i]))))
Else dgtp[i]:=f*sigma*(x1[i]*ln((sqr(x1[i])+sqr(h[i]))/(sqr(x1[i])))-
x2[i]*ln((sqr(x2[i])+sqr(h[i]))/(sqr(x2[i]))))+
2*h[i]*(arctan(x2[i]/h[i])-arctan(x2[i]/h[i]));
dg[j]:=dg[j]+dgtp[i];
End;
End;
{Xuat so lieu}
Write('Ban hay nhap ten cua file so lieu ra:');
ReadLn(ten2);
Assign(ra, ten2);
Rewrite(ra);
For j:=1 to n do WriteLn(ra,j*dx:5:2,' ',dg[j]:17:7);
Close(ra);
ReadLn;
End.
Program PHUONG_LINH;
Uses Crt;
Var
a, i, j, m, n: Integer;
d, v, l: char;
dx, f, sigma1, sigma2, sigma, sohang1, sohang2, sohang3: Real;
x, x1, x2, xx, h, hh, k, dgtp, dg, slv: Array[1..255] of real;
ten1, ten2: String;
vao, ra: Text;
Begin
Clrscr;
{Nhap so lieu}
Write('Ban hay nhap ten cua file so lieu vao:');
ReadLn(ten1);
Assign (vao, ten1);
Reset(vao);
a:=0;
While not eof(vao) do
Begin inc(a);
read(vao, slv[a]);
End;
Close(vao);
m:=a-1;
For i:=1 to m div 2 do Begin xx[i]:=slv[2*i-1]; hh[i]:=slv[2*i]; End;
Write('Ban hay nhap so diem tinh n =');ReadLn(n);
Write('Ban hay nhap khoang cach giua cac diem tinh dx=');ReadLn(dx);
Write('Ban hay nhap mat do sigma1='); ReadLn(sigma1);
Write('Ban hay nhap mat do sigma2='); ReadLn(sigma2);
sigma:=sigma1-sigma2;
f:=2/3*10e-7;
{Gan do sau cho cac diem do}
For j:=1 to m div 2 do
Begin
For i:=1 to n do
Begin
If i*dx=xx[j] then h[i]:=hh[j];
If (i*dx > xx[j]) and (i*dx < xx[j+1] ) then
h[i]:=(i*dx-xx[j])*(hh[j+1]-hh[j])/(xx[j+1]-xx[j]);
End;
End;
For i:=1 to n do Write(h[i]:9:3);
{Tinh delta g tai cac diem do}
For i:=1 to n do x[i]:=i*dx;
For j:=1 to n do dg[j]:=0;
For j:=1 to n do
Begin
For i:=1 to n do Begin x[i]:=x[i]-j*dx;Write(x[i]:4:2,' ');End;Writeln;
For i:=1 to n do
Begin
x1[i]:=x[i];
x2[i]:=x[i+1];
If (x1[i]=0) then dgtp[i]:=f*sigma*(-x2[i]*ln((sqr(x2[i])+sqr(h[i]))/(sqr(x2[i]))))+
2*h[i]*(arctan(x2[i]/h[i])-arctan(x2[i]/h[i]));
If (x2[i]=0) then dgtp[i]:=f*sigma*(x1[i]*ln((sqr(x1[i])+sqr(h[i]))/(sqr(x1[i]))))
Else dgtp[i]:=f*sigma*(x1[i]*ln((sqr(x1[i])+sqr(h[i]))/(sqr(x1[i])))-
x2[i]*ln((sqr(x2[i])+sqr(h[i]))/(sqr(x2[i]))))+
2*h[i]*(arctan(x2[i]/h[i])-arctan(x2[i]/h[i]));
dg[j]:=dg[j]+dgtp[i];
End;
End;
{Xuat so lieu}
Write('Ban hay nhap ten cua file so lieu ra:');
ReadLn(ten2);
Assign(ra, ten2);
Rewrite(ra);
For j:=1 to n do WriteLn(ra,j*dx:5:2,' ',dg[j]:17:7);
Close(ra);
ReadLn;
End.