Toon posts:

Pascal programma

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo allemaal,

Ik moet een opdracht maken in pascal, namelijk:
Bekijk de volgende probleemanalyse en vereenvoudig deze door gebruik te maken van enerzijds functies en anderzijds commentaar in plaats van procedures.

Ik ben dus al wezen klojen uren lang, maar snap er eigenlijk niet zo heel veel van,kan iemand mij op weg helpen ?!

Niels


PROGRAM TempProg;

USES Forms;

{$apptype console}

CONST
TotaalDagen = 31;

VAR
AantalVorstDagen : Integer;
TempNietVorst : Integer;
TempVorst : Integer;
TempOvz : Text;

PROCEDURE Vooraf;
VAR
Jaar : Integer;

PROCEDURE Melding;
BEGIN
WriteLn('Na invoer van de benodigde gegevens berekent dit ');
WriteLn('programma de gemiddelde temperatuur van de',
' vorstdagen');
WriteLn('en de niet-vorstdagen in de maand januari.');
WriteLn;
END (* Melding *);

PROCEDURE Init;
BEGIN
Assign(TempOvz,'Temp.Ovz');
ReWrite(TempOvz);
Write('Geef het jaar waarin de metingen plaatsvinden: ');
ReadLn(Jaar);
WriteLn;
AantalVorstDagen := 0;
TempVorst := 0;
TempNietVorst := 0
END (* Init *);

PROCEDURE KopAfdruk;
BEGIN
WriteLn(TempOvz,'Resultaten van metingen verricht',
' in januari: ',Jaar);
WriteLn(TempOvz)
END (* KopAfdruk *);

BEGIN (* Vooraf *)
Melding;
Init;
KopAfdruk
END;

PROCEDURE Dagen;
VAR
Dag : Integer;
PROCEDURE PerDag;
VAR
Temp : Integer;

PROCEDURE TempInvoer;
BEGIN
Write('Geef de temperatuur voor dag ',Dag:2,': ');
ReadLn(Temp);
END (* TempInvoer *);

PROCEDURE VorstControle;

PROCEDURE Vorst;

PROCEDURE LageTempOph;
BEGIN
TempVorst := TempVorst + Temp
END;

PROCEDURE AantalVorstOph;
BEGIN
AantalVorstDagen := AantalVorstDagen + 1
END;

BEGIN (* Vorst *)
LageTempOph;
AantalVorstOph
END;


PROCEDURE HogeTempOph;
BEGIN
TempNietVorst := TempNietVorst + Temp
END;

BEGIN (* VorstControle *)
IF Temp < 0 THEN
Vorst
ELSE
HogeTempOph
END (* VorstControle *);

BEGIN (* PerDag *)
TempInvoer;
VorstControle
END (* PerDag *);

BEGIN (* Dagen *)
FOR Dag := 1 TO Totaal DO
PerDag
END (* Dagen *);

PROCEDURE Slot;
VAR
GemVorst : Real;
GemNietVorst : Real;

PROCEDURE AantalVorstContr;

PROCEDURE AantalVorstNul;
BEGIN
GemVorst := 0
END;

PROCEDURE BerGemVorst;
BEGIN
GemVorst := TempVorst / AantalVorstDagen
END;

BEGIN (* AantalVorstContr *)
IF AantalVorstDagen = 0 THEN
AantalVorstNul
ELSE
BerGemVorst
END (* AantalVorstContr *);

PROCEDURE AantalNietVorstContr;

PROCEDURE AantalNietVorstNul;
BEGIN
GemNietVorst := 0
END;

PROCEDURE BerGemNietVorst;
BEGIN
GemNietVorst := TempNietVorst / (Totaal - AantalVorstDagen)
END;


BEGIN (* AantalVorstContr *)
IF AantalVorstDagen = Totaal THEN
AantalNietVorstNul
ELSE
BerGemNietVorst
END (* AantalVorstContr *);

PROCEDURE SlotAfdruk;
BEGIN
WriteLn(TempOvz,'Vorstdagen:');
WriteLn(TempOvz,' Aantal: ',AantalVorstDagen:2);
WriteLn(TempOvz,' Gem. temperatuur: ',GemVorst:5:2);
WriteLn(TempOvz,'Niet-Vorstdagen:');
WriteLn(TempOvz,' Aantal: ',
Totaal - AantalVorstDagen:2);
WriteLn(TempOvz,' Gem. temperatuur: ',GemNietVorst:5:2);
Close(TempOvz)
END (* SlotAfdruk *);

BEGIN (* Slot *)
AantalVorstContr;
AantalNietVorstContr;
SlotAfdruk
END; (* Slot *)

BEGIN (* TempPrg *)
Vooraf;
Dagen;
Slot;
END.

  • whoami
  • Registratie: December 2000
  • Laatst online: 30-08 19:34
Welkom op GoT ;)

Je huiswerk hier posten zonder te zeggen wat je zelf al geprobeerd hebt, wat er niet lukt, waar het probleem zit, .... is niet toegestaan.

Dit lijkt imho veel te veel op een ' ik post hier m'n code, lossen jullie het ff vlug op'.

Lees ook even de P&W Quickstart en FAQ:

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 30-08 19:34

https://fgheysels.github.io/


Dit topic is gesloten.