: very happy if you can help. Really, I do not know much about pascal, so if I change this code to Delphi, can I change the interface of program so it similar lisk on windows .
:
:
: Below is a part of code Pascal. Can you change as a example
:
: Thanks very much for your help
:
: Ngam K = 0
: Khop K = E+10
: Kha nang : 80 nut, 80 phan tu, 50 d/k bien
:
:
: HWRU 2000
: { *************************************************************************** }
: PROGRAM K3;
: Uses Dos,Crt;
: Const
: Ncn=2; Ndf=3;
: Var
: Nop : Array[1..80,1..Ncn] Of Integer;
: Imt : Array[1..80] Of Integer;
: Ibc,Nfix : Array[1..50] Of Integer;
: Mt : Array[1..80,1..3] Of Real;
: Cord : Array[1..80,1..2] Of Real;
: SK : Array[1..240,1..30] Of Real;
: R1 : Array[1..240] Of Real;
: ki1,ki2 : Array[1..80] Of Real;
: Li1,Li2 : Array[1..80] Of Real;
: EK,BD : Array[1..6,1..6] Of Real;
: AL,CC,SS : Array[1..80] Of Real;
: k11 : Byte;
: f1,f2 : Text;
: Tenfile : String[30];
: Ne,Np,Nb,Nl,Nmt,Nroe,Mband,i,j,k,l,m,n,IC : Integer;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: PROCEDURE DOC_SO_LIEU;
: Var
: R2 : Array[1..3] of Real;
: DX,DY : Real;
: Begin
: {
: Write('Ten file so lieu : '); Readln(Tenfile);
: {}
: Tenfile:='VIDU11.DAT';
: Assign(f1,Tenfile); Reset(f1);
: {
: Write('Ten file ket qua : '); Readln(Tenfile);
: {}
: Tenfile:='VIDU11.TXT';
: Assign(f2,Tenfile); ReWrite(f2);
: Readln(f1,NP,NE,NB,NL,Nmt);
: Writeln(f2,'':8,'+ So nut.....................................: ':47,NP:4);
: Writeln(f2,'':8,'+ So luong phan tu ..........................: ':47,NE:4);
: Writeln(f2,'':8,'+ So nut co lien ket.........................: ':47,NB:4);
: Writeln(f2,'':8,'+ So nut co luc tap trung....................: ':47,NL:4);
: Writeln(f2,'':8,'+ So loai vat lieu...........................: ':47,Nmt:4);
: Writeln(f2,'':8,'+ Nut X Y ');
: Nroe:=NP*3;
: For i:=1 To NP Do
: Begin
: Readln(f1,n,Cord[n,1],Cord[n,2]);
: Writeln(f2,'':7,n:4,Cord[n,1]:14:5,Cord[n,2]:14:5);
: End;
: Writeln(f2,'':8,'+ Ten nut Luc Px Luc Py Momen');
: For i:=1 To Nroe Do R1[i]:=0;
: For i:=1 To NL Do
: Begin
: Readln(f1,n,R2[1],R2[2],R2[3]);
: Writeln(f2,'':8,n:4,R2[1]:12:5,R2[2]:12:5,R2[3]:12:5);
: For k:=1 To 3 Do
: Begin
: IC:=(n-1)*3+k;
: R1[IC]:=R1[IC]+R2[K];
: End;
: End;
: Writeln(f2,'':8,'+ LoaiV.L E F J ');
: For i:=1 To Nmt Do
: Begin
: Readln(f1,n,Mt[n,1],Mt[n,2],Mt[n,3]);
: Writeln(f2,'':8,n:4,'':5,Mt[n,1]:12,'':5,Mt[n,2]:12,'':5,Mt[n,3]:12);
: End;
: Writeln(f2,'':8,'+ Phan_tu ki1 Li1 ki2 Li2 Nut I Nut J LoaiV.L');
: For i:=1 To NE Do
: Begin
: Readln(f1,n,ki1[n],Li1[n],ki2[n],Li2[n],Nop[n,1],Nop[n,2],Imt[n]);
: Write(f2,'':8,n:6,ki1[n]:6,Li1[n]:6,ki2[n]:6,Li2[n]:6);
: Writeln(f2,Nop[n,1]:8,Nop[n,2]:8,Imt[n]:10);
: End;
: Writeln(f2,'':8,'+ Ten nut co lien ket Ma lien ket');
: For i:=1 To NB Do
: Begin
: Readln(f1,Ibc[i],Nfix[i]);
: Writeln(f2,'':8,Ibc[i]:4,Nfix[i]:26);
: End;
: For i:=1 To NE Do
: Begin
: l:=Nop[i,1];
: m:=Nop[i,2];
: DX:=Cord[m,1]-Cord[l,1];
: DY:=Cord[m,2]-Cord[l,2];
: AL[i]:=SQRT(DX*DX+DY*DY);
: CC[i]:=DX/AL[i];
: SS[i]:=DY/AL[i];
: End;
: End;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: PROCEDURE CUNG(n:Byte);
: Var
: a,aLe : Array[1..6,1..6] Of Real;
: i2,j2,k2 : Integer;
: Ee,Fe,Je,ci,MS : Real;
: Phi,muy,Ge : Real;
: Length : Real;
: Begin
: For i2:=1 To 6 Do
: For j2:=1 To 6 Do
: Begin
: EK[i2,j2]:=0;
: a[i2,j2]:=0;
: aLe[i2,j2]:=0;
: End;
: Ee:=Mt[Imt[n],1]; Fe:=Mt[Imt[n],2]; Je:=Mt[Imt[n],3];
:
: muy:=0.2;
: { Ge:=Ee/2/(1+muy); }
: Ge:=1.0546e+19;
:
: Length:=AL[n]-Li1[n]-Li2[n];
: Phi:=(3*muy*Ee*Je)/(Length*Length*Ge*Fe);
:
: { Ma tran cosin chi phuong }
: a[1,1]:=CC[n]; a[1,2]:=SS[n]; a[2,1]:=-SS[n]; a[2,2]:=CC[n];
: a[3,3]:=1; a[4,4]:=CC[n]; a[4,5]:=SS[n]; a[5,4]:=-SS[n];
: a[5,5]:=CC[n]; a[6,6]:=1;
:
: { Ma tran nut cung hai dau }
: aLe[1,1]:=1; aLe[2,2]:=1; aLe[2,3]:=-Li1[n]; aLe[3,3]:=1;
: aLe[4,4]:=1; aLe[5,5]:=1; aLe[5,6]:=Li2[n]; aLe[6,6]:=1;
:
: { Do cung phan tu co lien ket mem }
: ci:=Ee*Je/Length;
: MS:=(4*(1+3*ki1[n]*ci+Phi)*(1+3*ki2[n]*ci+Phi)-(1-2*Phi)*(1-2*Phi));
: MS:=Length*Length*MS;
:
: EK[1,1]:=Ee*Fe/Length;
: EK[1,4]:=-Ee*Fe/Length;
: EK[2,2]:=36*ci*(1+(ki1[n]+ki2[n])*ci)/MS;
: EK[2,3]:=-18*ci*(1+2*ki2[n]*ci)*Length/MS;
: EK[2,5]:=-EK[2,2];
: EK[2,6]:=-18*ci*(1+2*ki1[n]*ci)*Length/MS;
: EK[3,3]:=12*ci*(1+3*ki2[n]*ci+Phi)*Length*Length/MS;
: EK[3,5]:=-EK[2,3];
: EK[3,6]:=6*ci*(1-2*Phi)*Length*Length/MS;
: EK[4,4]:=EK[1,1];
: EK[5,5]:=EK[2,2];
: EK[5,6]:=-EK[2,6];
: EK[6,6]:=12*ci*(1+3*ki1[n]*ci+Phi)*Length*Length/MS;
:
: For i2:=1 To 6 Do
: For j2:=i2 To 6 Do EK[j2,i2]:=EK[i2,j2];
:
: { Do cung phan tu co lien ket mem va nut cung }
: For i2:=1 To 6 Do
: For j2:=1 To 6 Do
: Begin
: BD[i2,j2]:=0;
: For k2:=1 To 6 Do BD[i2,j2]:=BD[i2,j2]+EK[i2,k2]*aLe[k2,j2];
: End;
: For i2:=1 To 6 Do
: For j2:=1 To 6 Do
: Begin
: EK[i2,j2]:=0;
: For k2:=1 To 6 Do EK[i2,j2]:=EK[i2,j2]+BD[k2,j2]*aLe[k2,i2];
: End;
:
: { Dua ve ma tran do cung he thong }
: For i2:=1 To 6 Do
: For j2:=1 To 6 Do
: Begin
: BD[i2,j2]:=0;
: For k2:=1 To 6 Do BD[i2,j2]:=BD[i2,j2]+EK[i2,k2]*a[k2,j2];
: End;
: If k11=1 Then
: Begin
: For i2:=1 To 6 Do
: For j2:=1 To 6 do
: Begin
: EK[i2,j2]:=0;
: For k2:=1 To 6 Do EK[i2,j2]:=EK[i2,j2]+BD[k2,j2]*a[k2,i2];
: End;
: End;
: End;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: PROCEDURE DO_CUNG;
: Var
: j3,k3,Nrowb,Ncolb,Ncol,n1,IC,Nx:Integer;
: Begin
: Mband:=0;
: For n:=1 To NE Do
: Begin
: i:=Nop[n,1]; j:=Nop[n,2];
: If Mband<Abs(i-j) Then Mband:=Abs(i-j);
: End;
: Mband:=Ndf*(Mband+1);
: For n:=1 To Nroe Do
: For m:=1 To Mband Do SK[n,m]:=0;
: For n:=1 To NE Do
: Begin
: k11:=1;
: CUNG(n);
: For j3:=1 To Ncn Do
: Begin
: Nrowb:=(Nop[n,j3]-1)*Ndf;
: For j:=1 To Ndf Do
: Begin
: Nrowb:=Nrowb+1;
: i:=(j3-1)*Ndf+j;
: For k3:=1 To Ncn Do
: Begin
: Ncolb:=(Nop[n,k3]-1)*Ndf;
: For k:=1 To Ndf Do
: Begin
: Ncol:=Ncolb+k+1-Nrowb;
: l:=(k3-1)*Ndf+k;
: If Ncol>0 Then SK[Nrowb,Ncol]:=SK[Nrowb,Ncol]+EK[i,l];
: End;
: End;
: End;
: End;
: End;
: For n:=1 To NB Do
: Begin
: Nx:=1;
: For k:=1 To Ndf-1 Do Nx:=Nx*10;
: i:=Ibc[n];
: Nrowb:=(i-1)*Ndf;
: For m:=1 To Ndf Do
: Begin
: Nrowb:=Nrowb+1;
: IC:=Trunc(Nfix[n]/Nx);
: If IC>0 Then
: Begin
: SK[Nrowb,1]:=1;
: For j:=2 To Mband Do
: Begin
: SK[Nrowb,j]:=0;
: n1:=Nrowb+1-j;
: If n1>0 Then SK[n1,j]:=0;
: End;
: Nfix[n]:=Nfix[n]-Nx*IC;
: Nx:=Trunc(Nx/10);
: End
: Else Nx:=Trunc(Nx/10);
: End;
: End;
: End;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: PROCEDURE GIAI_HE_PHUONG_TRINH;
: Var
: C:Real;
: Begin
: For n:=1 To Nroe Do
: Begin
: i:=n;
: For l:=2 To Mband Do
: Begin
: i:=i+1;
: If SK[n,l]<>0 Then
: Begin
: C:=SK[n,l]/SK[n,1];
: j:=0;
: For k:=L To Mband Do
: Begin
: j:=j+1;
: If SK[n,k]<>0 Then SK[i,j]:=Sk[i,j]-C*SK[n,k];
: End;
: SK[n,L]:=C;
: R1[i]:=R1[i]-C*R1[n];
: End;
: End;
: If SK[N,1]=0 Then SK[N,1]:=1E-15;
: R1[n]:=R1[n]/SK[n,1];
: End;
: n:=Nroe;
: Repeat
: n:=n-1;
: L:=n;
: For k:=2 To Mband Do
: Begin
: L:=L+1;
: If SK[n,k]<>0 Then R1[n]:=R1[n]-SK[n,k]*R1[L];
: End;
: Until n=1;
: End;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: PROCEDURE NOI_LUC;
: Var
: DIS :Array[1..Ndf,1..30] Of Real;
: Force :Array[1..80,1..6] Of Real;
: R :Array[1..6] Of Real;
: ij,ia :Integer;
: Begin
: For i:=1 To NP Do
: Begin
: Dis[1,i]:=R1[Ndf*i-2];
: Dis[2,i]:=R1[Ndf*i-1];
: Dis[3,i]:=R1[Ndf*i]
: End;
: For i:=1 To NE Do
: For j:=1 To 6 Do Force[i,j]:=0;
: For N:=1 To NE Do
: Begin
: k11:=0;
: CUNG(n);
: For i:=1 To Ncn Do
: Begin
: m:=Nop[n,i];
: k:=(i-1)*Ndf;
: For j:=1 To Ndf Do
: Begin
: ij:=j+k;
: R[ij]:=DIS[j,m];
: End;
: End;
: For i:=1 To 6 Do
: For j:=1 To 6 Do Force[N,i]:=Force[N,i]+BD[i,j]*R[j];
: End;
: Writeln(f2);
: Writeln(f2,'':5,' K E T Q U A C H U Y E N V I');
: Writeln(f2);
: Writeln(f2,'':13,' Nut Ux Uy Goc');
: Writeln(f2);
: For m:=1 To NP Do
: Writeln(f2,'':13,m:3,'':5,Dis[1,m]:10,'':5,Dis[2,m]:10,'':5,
: Dis[3,m]:10);
: Writeln(f2);
: Writeln(f2,'':4,' K E T Q U A N O I L U C ');
: Writeln(f2);
: Writeln(f2,'':13,'Phan tu Luc Doc Luc Cat Momen ');
: Writeln(f2);
: For N:=1 To Ne Do
: Begin
: Writeln(f2,'':13,n:3,'',Force[N,1]:16:6,Force[n,2]:16:6,Force[N,3]:16:6);
: Writeln(f2,'':16,Force[N,4]:16:6,Force[N,5]:16:6,Force[N,6]:16:6);
: End;
: Close(f2);
: Writeln;
: {
: Writeln('':9,'Ket qua da duoc ghi vao file :.................. ',Tenfile);
: Write('':9,'An ENTER de thoat khoi chuong trinh ............',#7);
: Readln;
: {}
: Clrscr;
: End;
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
: BEGIN
: ClrScr;
: DOC_SO_LIEU;
: DO_CUNG;
: GIAI_HE_PHUONG_TRINH;
: NOI_LUC;
: END.
: {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
:
:
There are several small changes which I see:
- add {$APPTYPE CONSOLE} just below the the line containing "program"
- Remove the DOS and CRT units from the uses-list
- Remove all ClrScr statements.
Then it should compile correctly. If you get errors, they need to be dealt with individually.