Archief - [PROG]Free Pascal Eerste progje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

RaTsJa

Legacy Member
Ik heb iets geprobeerd, maar telkens dat ik het probeer komt er: oplossing is 0000.000000000+00 zonder ik iets moest invullen,, ervoor had ik nog iets anders en dan moest ik de 2 getallen ingeven, en dan stopte het programma.
Moet ik nog een procedure toevoegen of niet? :help: :help:

Code:
Code:
PROGRAM Calc;
Uses Crt;

VAR getalEen, getalTwee, oplossing : REAL;

PROCEDURE SchrijfHoofding;

BEGIN
    ClrScr;
    WriteLn ('Rekenmachine optelling');
    WriteLn ('----------------------');
    WriteLn;
END; {SchrijfHoofing}

PROCEDURE VraagGetallen;

BEGIN
    WriteLn ('Geef getal 1 in: ');
    ReadLn (getalEen);
    WriteLn ('Geef getal 2 in: ');
    ReadLn (getalTwee);
END; {VraagGetallen}

PROCEDURE Berekening;

VAR oplossing : REAL;

BEGIN
    oplossing := getalEen + getalTwee;
END; {Berekening}


BEGIN (* Main *)
    WriteLn;
    SchrijfHoofding;
    VraagGetallen;
    Berekening;
    WriteLn ('De oplossing is: ',oplossing:0:2,'');
END. (* Main *)

Afotai_leader

Legacy Member
Ben je je ervan bewust dat de lange cijfers het gevolg zijn van REAL (Komma getallen tot xx aantal cijfers). Je zou dit kunnen oplossen door type Integer te gebruiken (maar dit gaat dan maar van -32k tot 32k)

Ook is het enige tijd geleden dat ik nog geprogrammeerd heb met Pascal, maar hier is volgens mijn inzicht de code:

PROGRAM Calc;
Uses Crt;

VAR getalEen, getalTwee, oplossing : Integer;

PROCEDURE SchrijfHoofding;

BEGIN
ClrScr;
WriteLn ('Rekenmachine optelling');
WriteLn ('----------------------');
WriteLn;
END; {SchrijfHoofing}

PROCEDURE VraagGetallen;

BEGIN
WriteLn ('Geef getal 1 in: ');
ReadLn (getalEen);
WriteLn ('Geef getal 2 in: ');
ReadLn (getalTwee);
END;

PROCEDURE Berekening;
BEGIN
oplossing := getalEen + getalTwee;
END;


BEGIN
SchrijfHoofding;
VraagGetallen;
Berekening;
WriteLn ("De oplossing is: ",oplossing);
END.

RaTsJa

Legacy Member
Het klopt, behalve de de " ' moet worden,
Dus ik geef cijfer 1 in dan cijfer 2 en klik enter, en dan gaat ie gewoon terug naar Free Pascal

cG`

Legacy Member
Ik veronderstel dat de uitvoering van een bestand in pascal in een commandprompt venster gebeurt?
Het resultaat verschijnt waarschijnlijk wel, maar je ziet het waarschijnlijk niet. Je vraagt om getallen in te geven, de som wordt berekent, de uitkomst afgeprint en dan heeft het programma geen instructies meer dus stopt de uitvoering en sluit het venster.

Het is wel handiger als je
SchrijfHoofding;
VraagGetallen;
Berekening;
WriteLn ("De oplossing is: ",oplossing);

In een aparte procedure (bv Main) zet. Je kan aan Main dit toevoegen:
WriteLn ('Druk op <ENTER> om verder te gaan');
ReadLn (enter);

(wel nog een variabele enter als string of karakter declareren dan) en dan kan je in het instructiegedeelte van de module enkel Main(); zetten.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan