|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Need help writing a pascal program in Delphi
Hi
I've written a program using Pascal and I need to convert it to a delphi languaged program. I need some help. I'll post my program here. can some one convert it for me. I don't know how to make my Procedures work in Delphi. EDIT: you can email me the project: sam_x_911@yahoo.com Here's my program: program hararat; {$APPTYPE CONSOLE} uses SysUtils; const Maxi = 70; Maxj = 140; epsilonconst = 0.1; var Temp : array [1..Maxi, 1..Maxj] of Real; oldTemp : array [1..Maxi, 1..Maxj] of Real; a, b, c, d, e, f : Real; T1, T2, T3 : Real; i, j : Integer; Edgei, Edgej : Integer; dx : Real; epsilon : Real; X, Y : Real; Xi, Yj : Integer; PointTemp : Real; Procedure CalcTemp1; var i, j : Integer; begin for i := 2 to Maxi-1 do for j := 2 to Edgej-1 do Temp[i,j] := ( Temp[i-1, j] + Temp[i+1, j] + Temp[i, j-1] + Temp[i, j+1] )/4; end; Procedure CalcTemp2; var i, j : Integer; begin for i := Edgei+1 to Maxi-1 do for j := Edgej+1 to Maxj-1 do Temp[i, j] := ( Temp[i-1, j] + Temp[i+1, j] + Temp[i, j-1] + Temp[i, j+1] )/4; end; Procedure EdgeCTemp; var i, j : Integer; begin for i := 2 to Edgei-1 do Temp[i, Edgej] := ( Temp[i-1, Edgej] + Temp[i+1, Edgej] + ( 2*Temp[i, Edgej-1] ) )/4; end; Procedure EdgeDTemp; var i, j : Integer; begin for j := Edgej+1 to Maxj-1 do Temp[Edgei, j] := ( Temp[Edgei, j-1] + Temp[Edgei, j+1] + ( 2*Temp[Edgei-1, j] ) )/4; end; Procedure EdgeFTemp; var i, j : Integer; begin for j := 2 to maxj-1 do Temp[Maxi, j] := ( Temp[Maxi, j-1] + Temp[Maxi, j+1] + ( 2*Temp[Maxi-1, j] ) )/4; end; Procedure TempLoop1; var i, j : Integer; begin repeat for i := 2 to Maxi-1 do for j := 2 to Edgej-1 do OldTemp[i, j] := Temp[i, j]; CalcTemp1; epsilon := 0; for i := 2 to Maxi-1 do for j := 2 to Edgej-1 do epsilon := epsilon + abs(Temp[i, j] - OldTemp[i, j]) ; until epsilon < epsilonconst; end; Procedure TempLoop2; var i, j : Integer; begin repeat for i := Edgei+1 to Maxi-1 do for j := Edgej+1 to Maxj-1 do OldTemp[i, j] := Temp[i, j]; CalcTemp2; epsilon := 0; for i := Edgei+1 to Maxi-1 do for j := Edgej+1 to Maxj-1 do epsilon := epsilon + abs(Temp[i, j] - OldTemp[i, j] ); until epsilon < epsilonconst; end; Procedure EdgeCLoop; var i, j : Integer; begin repeat for i := 2 to Edgei-1 do OldTemp[i, Edgej] := Temp[i, Edgej]; EdgeCTemp; epsilon := 0; for i := 2 to Edgei-1 do epsilon := epsilon + abs(Temp[i, Edgej] - OldTemp[i, Edgej] ); until epsilon < epsilonconst; end; Procedure EdgeDLoop; var i, j : Integer; begin repeat for j := Edgej+1 to Maxj-1 do OldTemp[Edgei, j] := Temp[Edgei, j]; EdgeDTemp; epsilon := 0; for j := Edgej+1 to Maxj-1 do epsilon := epsilon + abs(Temp[Edgei, j] - OldTemp[Edgei, j]) ; until epsilon < epsilonconst; end; Procedure EdgeFLoop; var i, j : Integer; begin repeat for i := 2 to Maxi-1 do OldTemp[i, Maxj] := Temp[i, Maxj]; EdgeFTemp; epsilon := 0; for i := 2 to Maxi-1 do epsilon := epsilon + abs(Temp[i, maxj] - OldTemp[i, maxj] ); until epsilon < epsilonconst; end; Procedure LeftOutPoints; var i, j : Integer; begin Temp[Edgei, Edgej] := ( Temp[Edgei+1, Edgej] + Temp[Edgei, Edgej-1] + ( ( Temp[Edgei-1, Edgej] + Temp[Edgei, Edgej+1] )/2 ) ); for i := Edgei+1 to Maxi-1 do Temp[i, Edgej] := ( Temp[i-1, Edgej] + Temp[i+1, Edgej] + Temp[i, Edgej-1] + Temp[i, Edgej+1] )/4; end; begin write('Enter a, b, c, d, e, f: '); readln(a, b, c, d, e, f); write('Enter T1, T2, T3: '); readln(T1, T2, T3); write('Enter X, Y: '); readln(X, Y); dx := f/(Maxj-1); Edgej := trunc(b/dx) + 1; Edgei := trunc(c/dx) + 2; for i := 2 to Maxi-1 do for j := 2 to Maxj-1 do Temp[i, j] := 0; for i := 1 to Maxi do Temp[i, 1] := T1; for j := 1 to Edgej do Temp[1, j] := T2; for i := Edgei to Maxi do Temp[i, Maxj] := T3; TempLoop1; TempLoop2; EdgeCLoop; EdgeDLoop; EdgeFLoop; LeftOutPoints; Xi := trunc(X/dx) + 1; Yj := trunc(a-Y/dx) + 1; PointTemp := Temp[Xi, Yj]; writeln('The Point''s Temperature is ', Temp[Xi, Yj]:0:3); readln; end. Last edited by Tip3r : February 7th, 2006 at 11:48 AM. Reason: to add my email. |
|
#2
|
|||
|
|||
|
eh?
looks like that program will compile in delphi without much (if any) changes to the source. ...you do realize that delphi is a "development environment"... and not a "programming language". The language Delphi compiles is a just beefed up version of Object Pascal. The Delphi compiler is capable of compiling most generic Pascal code out of the box. btw - this wouldn't happen to be your homework would it? |
|
#3
|
|||
|
|||
|
heh. well actually the teacher said he would give some extra grades if I used Delphi. but he never tought us how.
could u tell me what changes I'd have to make? |
|
#4
|
|||
|
|||
|
Quote:
Could you at least try and compile it yourself? At least put in a smidgen of effort. Then post your questions about the errors that the compiler throws. |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > Delphi Programming > Need help writing a pascal program in Delphi |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|