/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Centrer i TP 7.0
Fra : Keyser


Dato : 02-06-01 08:44

Hej...

Jeg er totalt newbie i dette her, men det er vel ikke tilfældigvis sådan at
nogen her har en smart måde at centrerer tekst på i turbo pascal 7.0.

En anden ting, kan det ikke lade sig gøre at lave flere procedures der
referrer til hinanden ??

Med venlig hilsen

Michael



 
 
Thomas P (03-06-2001)
Kommentar
Fra : Thomas P


Dato : 03-06-01 13:22

> Jeg er totalt newbie i dette her, men det er vel ikke tilfældigvis sådan
at
> nogen her har en smart måde at centrerer tekst på i turbo pascal 7.0.

Du kan vælge at bruge graph unitten til at skrive teksten med, og derefter
er det ingen sag at regne centreringen ud.

> En anden ting, kan det ikke lade sig gøre at lave flere procedures der
> referrer til hinanden ??

Jo - du kan evt. også lave en procedure inde i en procedure, ellers må du
skære problemet lidt mere ud i pap...

(efter dette svar, skal du nok regne med, at der kommer nogen og fortæller
dig, at du skulle tage at skifte til Delphi, men dem om det...)

--
- Thomas [blomme@post.com] [http://www.FlowCode.f2s.com]



Thomas P (04-06-2001)
Kommentar
Fra : Thomas P


Dato : 04-06-01 11:33

> En anden ting, kan det ikke lade sig gøre at lave flere procedures der
> referrer til hinanden ??

Per e-mail har jeg fundet ud af, hvad dit problem var. Du sendte din kode,
som ikke virkede ordenligt, og jeg har rettet den, først og fremmeste ved at
flytte funktionaliteten af valg-proceduren ned i hovedprogrammet. Udover det
har jeg også lavet din selector om til en smallint osv. - jeg fandt lige ud
af, at man ikke kan vedhæfte filer i denne newsgroup, så se den medsendte
kode nedenfor i stedet.

*credits, credits, credits*

PROGRAM ohmslov;

USES crt;

VAR
ch : CHAR;
s : smallint;

Procedure velkommen;
BEGIN
CLRSCR;
WRITELN('VELKOMMEN');
WRITELN;
WRITELN('Du har følgende muligheder');
WRITELN;
WRITELN('1 : Finde spændingen i et kredsløb');
WRITELN('2 : Finde strømmen i et kredsløb');
WRITELN('3 : Finde modstanden i et kredsløb');
WRITELN('4 : Finde den samlede modstand i et kredsløb med 2 parallelle
modstande');
WRITELN('5 : Afslutte');
WRITELN;
WRITELN('Hvad ønsker du at foretage dig ? ');

END;

{
Redigeret d. 4. juni af Thomas Plougsgaard.

Aendringer...

Jeg har flyttet valgmulighederne vaek fra velkommen-proceduren
ned til hovedprogrammet. Der koerer selve valgmulighederne i 2 repeats,
der faar det hele til at glide.

Venlig hilsen, Thomas Plougsgaard
blomme@post.com
------------------
http://www.flowcode.f2s.com
}

Procedure ohmmodstand;
VAR u : REAL;
i : REAL;
s : STRING;
BEGIN

CLRSCR;
WRITELN;
WRITELN('Du har valgt at bestemme en modstand i et kredsløb');
WRITELN;
WRITE('Hvor mange ampere er der i kredsløbet ? ');READLN(i);
WRITE('Hvad er spændingen ? ');READLN(u);
WRITELN;
WRITE('I et kredsløb med ',i : 1 : 0,' ampere og ',u : 1 : 0,' volt vil, den
totale modstand være på ',u/i : 1 : 2,' Ohm');
WRITELN;
WRITE('Ønsker du at udregne flere modstande ? (j/n) ');

REPEAT
s := READKEY;
UNTIL (s ='j') OR (s ='n');
WRITE(s);
IF s = 'j' THEN ohmmodstand;
IF s = 'n' THEN Velkommen;

END;

Procedure ohmstroem;
VAR
r : REAL;
u : REAL;
s : STRING;

BEGIN

CLRSCR;
WRITELN;
WRITELN('Du har valgt at bestemme strømmen i et kredsløb');
WRITELN;
WRITE('Hvad er spændingen i kredsløbet ? ');READLN(u);
WRITE('Hvad er modstanden på ? ');READLN(r);
WRITELN;
WRITE('I et kredsløb med ',u : 1 : 0,' volt og en samlet modstand på ',r : 1
: 0);
WRITE(' ohm vil strømmen være på ',u/r : 1 : 2,' Ampere');
WRITELN;
WRITE('Ønsker du at udregne flere strømme ? (j/n) ');

REPEAT
s := READKEY;
UNTIL (s ='j') OR (s ='n');
WRITE(s);
IF s = 'j' THEN ohmstroem;
IF s = 'n' THEN Velkommen;
END;

Procedure ohmspaending;

VAR
r : REAL;
i : REAL;
s : STRING;

BEGIN

CLRSCR;
WRITELN;
WRITELN('Du har valgt at bestemme spændingen i et kredsløb');
WRITELN;
WRITE('Hvad er strømmen i kredsløbet ? ');READLN(i);
WRITE('Hvad er modstanden på ? ');READLN(r);
WRITELN;
WRITE('I et kredsløb med ',i : 1 : 0,' ampere og en samlet modstand på ',r :
1 : 0);
WRITE(' ohm vil spændingen være på ',r*i : 1 : 0,' Volt.');
WRITELN;
WRITE('Ønsker du at udregne flere spændinger ? (j/n) ');

REPEAT
s := READKEY;
UNTIL (s ='j') OR (s ='n');
WRITE(s);
IF s = 'j' THEN ohmspaending;
IF s = 'n' THEN Velkommen;

END;

Procedure parallellemodstande;

VAR
modstand1 : REAL;
modstand2 : REAL;
s : STRING;

BEGIN
CLRSCR;
WRITELN;
WRITELN('Du har valgt at bestemme den samlede modstand i et kredsløb med 2
parallelle modstande');
WRITELN;
WRITE('Hvad er den første modstand på ? ');READLN(modstand1);
WRITE('Hvad er den anden modstand på ? ');READLN(modstand2);
WRITELN;
WRITE('Med 2 parallelforbundede modstande på henholdsvis ',modstand1 : 1 :
0,' og ',modstand2 : 1 : 0);
WRITE(' Ohm, vil den samlede modstand være på
',1/((1/modstand1)+(1/modstand2)) : 1 : 0,' Ohm');
WRITELN;
WRITELN('Ønsker du at udregne flere parallelle modstande ? (j/n) ');

REPEAT
s := READKEY;
UNTIL (s ='j') OR (s ='n');
WRITE(s);
IF s = 'j' THEN parallellemodstande;
IF s = 'n' THEN Velkommen;

END;


Procedure afslut;

BEGIN
END;

BEGIN

CLRSCR;

REPEAT
REPEAT
velkommen;
readln(s);
UNTIL (s=1) OR (s=2) OR (s=3) OR (s=4) OR (s=5); WRITE(s);
Case s of
1: ohmspaending;
2: ohmstroem;
3: ohmmodstand;
4: parallellemodstande;
5: afslut;
end;
UNTIL s=5;

END.

--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes





Keyser (04-06-2001)
Kommentar
Fra : Keyser


Dato : 04-06-01 16:05

Hej igen Thomas,

Mange tak for responsen.

Hmmm, prøvede lige med din kode og det fungerer garanteret upåklageligt på
DIN pc´er, men den skriver her at smallint er en UNKNOWN IDENTIFIER. Kan det
være fordi jeg ikke har adgang til hele programmet ??? Fik nemlig programmet
på én diskette og tror nok at alt ikke er på disketten pga. pladsmangel. Men
det gør måske ikke så meget for jeg prøvede at lave det med s : STRING; som
tidligere og så flytte valgmulighederne ned i hovedprogrammet som du
foreslog og det fungerer glimrende. Men hvad er smallint egentlig og hvad er
forskellen på om man bruger det eller string ??

Når du laver den der UNTIL s=5 til allersidst er det så egentligt nødvendigt
at lave selve afslut proceduren og lave IF s = '5' THEN afslut; ??

Men ihvertfald, nu kører det som det skal og jeg siger tusind tak for
hjælpen

Med venlig hilsen

Michael


"Thomas P" <blomme@post.com> skrev i en meddelelse
news:9ffo1s$lff$1@news.inet.tele.dk...
> > En anden ting, kan det ikke lade sig gøre at lave flere procedures der
> > referrer til hinanden ??
>
> Per e-mail har jeg fundet ud af, hvad dit problem var. Du sendte din kode,
> som ikke virkede ordenligt, og jeg har rettet den, først og fremmeste ved
at
> flytte funktionaliteten af valg-proceduren ned i hovedprogrammet. Udover
det
> har jeg også lavet din selector om til en smallint osv. - jeg fandt lige
ud
> af, at man ikke kan vedhæfte filer i denne newsgroup, så se den medsendte
> kode nedenfor i stedet.
>
> *credits, credits, credits*
>
> PROGRAM ohmslov;
>
> USES crt;
>
> VAR
> ch : CHAR;
> s : smallint;
>
> Procedure velkommen;
> BEGIN
> CLRSCR;
> WRITELN('VELKOMMEN');
> WRITELN;
> WRITELN('Du har følgende muligheder');
> WRITELN;
> WRITELN('1 : Finde spændingen i et kredsløb');
> WRITELN('2 : Finde strømmen i et kredsløb');
> WRITELN('3 : Finde modstanden i et kredsløb');
> WRITELN('4 : Finde den samlede modstand i et kredsløb med 2 parallelle
> modstande');
> WRITELN('5 : Afslutte');
> WRITELN;
> WRITELN('Hvad ønsker du at foretage dig ? ');
>
> END;
>
> {
> Redigeret d. 4. juni af Thomas Plougsgaard.
>
> Aendringer...
>
> Jeg har flyttet valgmulighederne vaek fra velkommen-proceduren
> ned til hovedprogrammet. Der koerer selve valgmulighederne i 2 repeats,
> der faar det hele til at glide.
>
> Venlig hilsen, Thomas Plougsgaard
> blomme@post.com
> ------------------
> http://www.flowcode.f2s.com
> }
>
> Procedure ohmmodstand;
> VAR u : REAL;
> i : REAL;
> s : STRING;
> BEGIN
>
> CLRSCR;
> WRITELN;
> WRITELN('Du har valgt at bestemme en modstand i et kredsløb');
> WRITELN;
> WRITE('Hvor mange ampere er der i kredsløbet ? ');READLN(i);
> WRITE('Hvad er spændingen ? ');READLN(u);
> WRITELN;
> WRITE('I et kredsløb med ',i : 1 : 0,' ampere og ',u : 1 : 0,' volt vil,
den
> totale modstand være på ',u/i : 1 : 2,' Ohm');
> WRITELN;
> WRITE('Ønsker du at udregne flere modstande ? (j/n) ');
>
> REPEAT
> s := READKEY;
> UNTIL (s ='j') OR (s ='n');
> WRITE(s);
> IF s = 'j' THEN ohmmodstand;
> IF s = 'n' THEN Velkommen;
>
> END;
>
> Procedure ohmstroem;
> VAR
> r : REAL;
> u : REAL;
> s : STRING;
>
> BEGIN
>
> CLRSCR;
> WRITELN;
> WRITELN('Du har valgt at bestemme strømmen i et kredsløb');
> WRITELN;
> WRITE('Hvad er spændingen i kredsløbet ? ');READLN(u);
> WRITE('Hvad er modstanden på ? ');READLN(r);
> WRITELN;
> WRITE('I et kredsløb med ',u : 1 : 0,' volt og en samlet modstand på ',r :
1
> : 0);
> WRITE(' ohm vil strømmen være på ',u/r : 1 : 2,' Ampere');
> WRITELN;
> WRITE('Ønsker du at udregne flere strømme ? (j/n) ');
>
> REPEAT
> s := READKEY;
> UNTIL (s ='j') OR (s ='n');
> WRITE(s);
> IF s = 'j' THEN ohmstroem;
> IF s = 'n' THEN Velkommen;
> END;
>
> Procedure ohmspaending;
>
> VAR
> r : REAL;
> i : REAL;
> s : STRING;
>
> BEGIN
>
> CLRSCR;
> WRITELN;
> WRITELN('Du har valgt at bestemme spændingen i et kredsløb');
> WRITELN;
> WRITE('Hvad er strømmen i kredsløbet ? ');READLN(i);
> WRITE('Hvad er modstanden på ? ');READLN(r);
> WRITELN;
> WRITE('I et kredsløb med ',i : 1 : 0,' ampere og en samlet modstand på ',r
:
> 1 : 0);
> WRITE(' ohm vil spændingen være på ',r*i : 1 : 0,' Volt.');
> WRITELN;
> WRITE('Ønsker du at udregne flere spændinger ? (j/n) ');
>
> REPEAT
> s := READKEY;
> UNTIL (s ='j') OR (s ='n');
> WRITE(s);
> IF s = 'j' THEN ohmspaending;
> IF s = 'n' THEN Velkommen;
>
> END;
>
> Procedure parallellemodstande;
>
> VAR
> modstand1 : REAL;
> modstand2 : REAL;
> s : STRING;
>
> BEGIN
> CLRSCR;
> WRITELN;
> WRITELN('Du har valgt at bestemme den samlede modstand i et kredsløb med 2
> parallelle modstande');
> WRITELN;
> WRITE('Hvad er den første modstand på ? ');READLN(modstand1);
> WRITE('Hvad er den anden modstand på ? ');READLN(modstand2);
> WRITELN;
> WRITE('Med 2 parallelforbundede modstande på henholdsvis ',modstand1 : 1 :
> 0,' og ',modstand2 : 1 : 0);
> WRITE(' Ohm, vil den samlede modstand være på
> ',1/((1/modstand1)+(1/modstand2)) : 1 : 0,' Ohm');
> WRITELN;
> WRITELN('Ønsker du at udregne flere parallelle modstande ? (j/n) ');
>
> REPEAT
> s := READKEY;
> UNTIL (s ='j') OR (s ='n');
> WRITE(s);
> IF s = 'j' THEN parallellemodstande;
> IF s = 'n' THEN Velkommen;
>
> END;
>
>
> Procedure afslut;
>
> BEGIN
> END;
>
> BEGIN
>
> CLRSCR;
>
> REPEAT
> REPEAT
> velkommen;
> readln(s);
> UNTIL (s=1) OR (s=2) OR (s=3) OR (s=4) OR (s=5); WRITE(s);
> Case s of
> 1: ohmspaending;
> 2: ohmstroem;
> 3: ohmmodstand;
> 4: parallellemodstande;
> 5: afslut;
> end;
> UNTIL s=5;
>
> END.
>
> --
> - Thomas
> ~~~~~~~~
> ... http://www.FlowCode.f2s.com - where code flows
> ... mailto:blomme@post.com - where email goes
>
>
>
>



Thomas P (04-06-2001)
Kommentar
Fra : Thomas P


Dato : 04-06-01 16:35

[snip]

> Men hvad er smallint egentlig og hvad er
> forskellen på om man bruger det eller string ??

En smallint betegnes også som et signed 16-bit integer. Det kan rumme tal
fra (minus) 32768 til 32767.
Grunden til at jeg brugte det var bare, at det gav muligheden for at bruge
en CASE sætning i stedet for en masse IF'er.
Det skal lige siges, at jeg rettede koden i FreePascal, så det skal ikke
siges om det er lidt nyere end Turbo Pascal

> Når du laver den der UNTIL s=5 til allersidst er det så egentligt
nødvendigt
> at lave selve afslut proceduren og lave IF s = '5' THEN afslut; ??

Nej, det er det ikke. Et Pascal program bliver afsluttet når der ikke er
mere kode at afspille -

> Men ihvertfald, nu kører det som det skal og jeg siger tusind tak for
> hjælpen

Så lidt

--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes



Keyser (04-06-2001)
Kommentar
Fra : Keyser


Dato : 04-06-01 21:29

Hej Thomas,

Okay, men er smallint så ikke bare det samme som INTEGER ??

En sidste ting, det der med at centrerer, jeg har åbenbart heller ikke den
graph unit jeg skal bruge. Kan man centrerer ved at indsætte en decideret
kode i stedet for at bruge en Graph unit ??

Endnu engang tak for hjælpen.

Hilsen

Michael


"Thomas P" <blomme@post.com> skrev i en meddelelse
news:9fg9o4$ln9$1@news.inet.tele.dk...
> [snip]
>
> > Men hvad er smallint egentlig og hvad er
> > forskellen på om man bruger det eller string ??
>
> En smallint betegnes også som et signed 16-bit integer. Det kan rumme tal
> fra (minus) 32768 til 32767.
> Grunden til at jeg brugte det var bare, at det gav muligheden for at bruge
> en CASE sætning i stedet for en masse IF'er.
> Det skal lige siges, at jeg rettede koden i FreePascal, så det skal ikke
> siges om det er lidt nyere end Turbo Pascal
>
> > Når du laver den der UNTIL s=5 til allersidst er det så egentligt
> nødvendigt
> > at lave selve afslut proceduren og lave IF s = '5' THEN afslut; ??
>
> Nej, det er det ikke. Et Pascal program bliver afsluttet når der ikke er
> mere kode at afspille -
>
> > Men ihvertfald, nu kører det som det skal og jeg siger tusind tak for
> > hjælpen
>
> Så lidt
>
> --
> - Thomas
> ~~~~~~~~
> ... http://www.FlowCode.f2s.com - where code flows
> ... mailto:blomme@post.com - where email goes
>
>



Thomas Due (07-06-2001)
Kommentar
Fra : Thomas Due


Dato : 07-06-01 07:36

"Keyser" <michaelbruun@pc.dk> wrote in message news:<9fgqpj$kj3$1@news.inet.tele.dk>...
> Hej Thomas,
>
> Okay, men er smallint så ikke bare det samme som INTEGER ??
>
> En sidste ting, det der med at centrerer, jeg har åbenbart heller ikke den
> graph unit jeg skal bruge. Kan man centrerer ved at indsætte en decideret
> kode i stedet for at bruge en Graph unit ??
>
Hejsa,

DU kan jo bare udregne hvor mange karaktere der er i din tekst, trække
det fra 80 (skærmens bredde) dividere med 2 og så fylde det antal
blanke foran din tekst.

Ellers kommer jeg lige til at tænke på at der vistnok er noget der
hedder GotoXY i TP. Dvs. du skriver f.eks.

GotoXY(4, 10);
Writeln('Dette er en test.');

Den gør så det at på position 4, 10 skrives teksten.

Håber det kunne være til hjælp.

Mvh
Thomas

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste