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
>
>
>
>