|
Umrechnung von Geldbeträgen in Währungseinheiten
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
Letzte Änderung: 07.02.2007
© Pädagogisches Institut für die deutsche Sprachgruppe
- Bozen. 2000 -
|
|
|
|
|
|
|
|
|