Delphi Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreDelphi Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old February 7th, 2006, 11:47 AM
Tip3r Tip3r is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Feb 2006
Posts: 2 Tip3r User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 28 m 5 sec
Reputation Power: 0
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.

Reply With Quote
  #2  
Old February 7th, 2006, 05:33 PM
michaelm michaelm is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2006
Posts: 52 michaelm User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 10 h 49 m 33 sec
Reputation Power: 3
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?

Reply With Quote
  #3  
Old February 8th, 2006, 09:07 AM
Tip3r Tip3r is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Feb 2006
Posts: 2 Tip3r User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 28 m 5 sec
Reputation Power: 0
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?

Reply With Quote
  #4  
Old February 8th, 2006, 02:45 PM
michaelm michaelm is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2006
Posts: 52 michaelm User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 10 h 49 m 33 sec
Reputation Power: 3
Quote:
Originally Posted by Tip3r
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?


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.

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreDelphi Programming > Need help writing a pascal program in Delphi


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway
Stay green...Green IT