blikk info infothek forum galerie sitemap

Umrechnung von  Geldbeträgen in Währungseinheiten

zur Aufgabenstellung

  Autoren:
Ulrich R. und Julian F.
Gewerbeoberschule 'Max Valier' Bozen    Kl. 3IA

 

 

Pseudocode:


Prozedur zur Initialiersierung der Banknoten: 

  wt[1].wert:=100.00;
  wt[1].einhstr:='Euroschein';
  wt[2].wert:=50.00;
  wt[2].einhstr:='Euroschein';
  wt[3].wert:=20.00;
  wt[3].einhstr:='Euroschein';
  wt[4].wert:=10.00;
  wt[4].einhstr:='Euroschein';
  wt[5].wert:=5.00;
  wt[5].einhstr:='Euroschein';
  wt[6].wert:=2.00;
  wt[6].einhstr:='Euromuenze';
  wt[7].wert:=1.00;
  wt[7].einhstr:='Euromuenze';
  wt[8].wert:=0.50;
  wt[8].einhstr:='Centmuenze';
  wt[9].wert:=0.20;
  wt[9].einhstr:='Centmuenze';
  wt[10].wert:=0.10;
  wt[10].einhstr:='Centmuenze';
  wt[11].wert:=0.05;
  wt[11].einhstr:='Centmuenze';
  wt[12].wert:=0.02;
  wt[12].einhstr:='Centmuenze';
  wt[13].wert:=0.01;
  wt[13].einhstr:='Centmuenze';
  anz:=13;



Prozedur errechnet welche und wie viele Banknoten auszugeben sind und gibt
das Ergebnis am Bildschirm aus:
 

  b:=betr;
  {Errechnug der Banknoten die ausgegeben werden}
  Für i von 1 bis anz
    betcent:=Runde(b*100);
    wertcent:=Runde(wt[i].wert*100);
    einhanz:=betcent DIV wertcent;
    {Ergebnis wird am Bildschirm ausgegeben}
    wenn einhanz>0 dann
      Schreibe('Ausgabe von ',einhanz,'',
              wt[i].wert:10:2,'',
              wt[i].einhstr);
      b:=b-einhanz*wt[i].wert;
      Schreibe(' Restbetrag: ',b:10:2);
    ende wenn
  ende für



Hauptprogramm:
 

{Aufruf der Prozedur wtabinit}
wtabinit(waehrtab,waehranz);    
  Wiederhole
    Schreibe('Geben sie einen Betrag ein:'); 

    {lesen des Geldbetrages}
    Lese(betrag);
    Wenn betrag >0.00000001 dann
      {Aufruf der Prozedur waehrausg}
      Waehrausg(betrag,waehrtab,waehranz); 
  bis betrag<=0.000001


 

Quellcode von Pascal:

PROGRAM Waehrsp;
CONST max=30;
TYPE
{Erstellung eines Verbundtypens}
  Twaehrsp=RECORD    
    wert   :REAL;
    einhstr:STRING;
  END;

  {Erstellung eines Verbundarrays}
  twaehrtab=ARRAY[1..max] OF twaehrsp; 


{Prozedure zur initialiersierung der Banknoten}
PROCEDURE
Wtabinit(VAR wt :twaehrtab;

                   VAR anz:INTEGER);
{Zwei Referenzparameter werden übergeben}
BEGIN
  wt[1].wert:=100.00;
  wt[1].einhstr:='Euroschein';
  wt[2].wert:=50.00;
  wt[2].einhstr:='Euroschein';
  wt[3].wert:=20.00;
  wt[3].einhstr:='Euroschein';
  wt[4].wert:=10.00;
  wt[4].einhstr:='Euroschein';
  wt[5].wert:=5.00;
  wt[5].einhstr:='Euroschein';
  wt[6].wert:=2.00;
  wt[6].einhstr:='Euromuenze';
  wt[7].wert:=1.00;
  wt[7].einhstr:='Euromuenze';
  wt[8].wert:=0.50;
  wt[8].einhstr:='Centmuenze';
  wt[9].wert:=0.20;
  wt[9].einhstr:='Centmuenze';
  wt[10].wert:=0.10;
  wt[10].einhstr:='Centmuenze';
  wt[11].wert:=0.05;
  wt[11].einhstr:='Centmuenze';
  wt[12].wert:=0.02;
  wt[12].einhstr:='Centmuenze';
  wt[13].wert:=0.01;
  wt[13].einhstr:='Centmuenze';
  anz:=13;
END;



{Prozedur errechnet welche und wie viele Banknoten auszugeben sind und gibt
das Ergebnis am Bildschirm aus}
PROCEDURE Waehrausg(betr:REAL ; wt:twaehrtab;
                                anz:INTEGER);
         {drei Wertparameter werden übergeben}
VAR {Variablen deklination der lokalen Variablen}
    b:REAL;
    i:INTEGER; 
    einhanz:INTEGER;
    betcent,wertcent:LONGINT;
BEGIN
  b:=betr;
  {Errechnug der Banknoten die ausgegeben werden}
  FOR i:=1 TO anz DO BEGIN
    betcent:=Round(b*100);
    wertcent:=Round(wt[i].wert*100);
    einhanz:=betcent DIV wertcent;
    {Ergebnis wird am Bildschirm ausgegeben}
    IF einhanz>0 THEN BEGIN
      Write('Ausgabe von ',einhanz,'',
              wt[i].wert:10:2,'',
              wt[i].einhstr);
      b:=b-einhanz*wt[i].wert;
      Writeln(' Restbetrag: ',b:10:2);
    END;
  END;
END;



{Beginn des Hauptprogramms}
VAR
{lokale Variablen des Hauptprogramms}
  waehranz:INTEGER;
  betrag:REAL;
  waehrtab:twaehrtab;
BEGIN
  {Aufruf der Prozedur wtabinit}
  wtabinit(waehrtab,waehranz);
  REPEAT
    Writeln; writeln; Writeln;
    Write('Geben sie einen Betrag ein:'); 

    {lesen des Geldbetrages}
    Readln(betrag);
    IF betrag >0.00000001 THEN
      {Aufruf der Prozedur waehraus}
      Waehrausg(betrag,waehrtab,waehranz); 

  UNTIL betrag<=0.000001
END.


 

Zurück
nach oben