Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Pascal-Programm » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Pascal-Programm
Beiträge zu diesem Thema Autor Datum
 Pascal-Programm Bizepsbenny 04.10.2017 17:36
 RE: Pascal-Programm as_string 04.10.2017 19:50
 RE: Pascal-Programm Bizepsbenny 05.10.2017 11:44
 RE: Pascal-Programm Karlito 05.10.2017 14:17
 RE: Pascal-Programm Bizepsbenny 05.10.2017 15:40
 RE: Pascal-Programm as_string 05.10.2017 16:12
 RE: Pascal-Programm Bizepsbenny 05.10.2017 18:07
 RE: Pascal-Programm Bizepsbenny 06.10.2017 13:05
 RE: Pascal-Programm as_string 06.10.2017 13:09
 RE: Pascal-Programm Bizepsbenny 06.10.2017 13:21
 RE: Pascal-Programm as_string 06.10.2017 14:16
 RE: Pascal-Programm Bizepsbenny 06.10.2017 14:34
 RE: Pascal-Programm as_string 06.10.2017 14:56
 RE: Pascal-Programm Bizepsbenny 06.10.2017 22:36
 RE: Pascal-Programm eulerscheZahl 07.10.2017 07:00
Nächste Seite »

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Pascal-Programm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo, ich soll ein Pascal Programm schreiben, das einen Geldbetrag in Euro einliest (1-99 Cent) und diesen Betrag in der Stückelung der Centmünzen ausgibt (50,20,10,5,2,1,). Als Beispiel Eingabe: 15 Ausgabe: 0 0 1 1 0 0.

Hat da jemand einen Ansatz für mich?

Danke und Gruß
BB

Meine Ideen:
Habe bisher keinen Ansatz.
04.10.2017 17:36 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Kennst Du die Ganzzahl-Division mit "div" und die Modulo-Operation mit "mod"?
Die Idee ist: Teile den Betrag zuerst durch den höchsten Münzwert ganzzahlig. Das Ergebnis ist die Anzahl der Münzen und der Rest ist der neue Restwert. Teile diesen wieder ganzzahlig durch den nächst-kleineren Münzwert. Auch hier ist das Ergebnis die Menge dieser Münzen und der Rest mit mod gibt Dir den neuen Restwert, mit dem Du weiter machen musst. Und so weiter, bis Du alle Münzwerte durch hast oder kein Restwert mehr übrig ist (das sollte auf jeden Fall nach dem kleinsten Münzwert der Fall sein, es reicht also den Restwert auf null zu überprüfen).

Gruß
Marco
04.10.2017 19:50 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok danke dir!
Ich werde es mal probieren!

Kann ich dich weiterhin fragen, wenn Probleme auftauchen?

Gruß
BB

__________________
Gruß
BB
05.10.2017 11:44 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dafür ist das Board hier da smile
05.10.2017 14:17 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

super smile

ok, also ich habe den Algorithmus kapiert.

Ich gebe als Beispiel 0.99 Euro ein und lasse den Computer 0.99 mod 0.50 rechnen.

Dann bekomme ich 1 Rest 0.49 heraus.

Die 1 ist dann die Anzahl der 50 Cent Münzen und mit den Rest teile ich durch 0.2 usw.

Aber wie bringe ich ihm bei, dass er die '1' ausgeben soll und mit dem Rest weiter rechnen soll?

Gruß
BB

__________________
Gruß
BB
05.10.2017 15:40 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vorsicht! "mod" gibt Dir nur den Disvisionsrest, "div" gibt Dir den ganzzahligen Teil der Division.
Wenn Du also 99 mod 50 machst, bekommst Du 49 als Rest raus und mit 99 div 50 bekommst Du 1 als ganzzahligen Divisions-Anteil raus, also hast Du "1 Rest 49".
Ausgabe kannst Du z. B. mit write machen, oder? Magst Du mal ausprobieren so ein Programm zu anzufangen und was Du hast hier rein stellen? Dann können wir leichter auf Deine Fragen eingehen.

Gruß
Marco
05.10.2017 16:12 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das macht Sinn.

Werde entweder später oder morgen mal was hier rein stellen.

Gruß
BB

__________________
Gruß
BB
05.10.2017 18:07 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Moin,

ich habe mal angefangen mit dem Programm (auch wenn ich noch nicht weiß wo die Reise hingeht Augenzwinkern ) aber ich verstehe die folgende Fehlermeldung nicht....

Gruß
BB

Bizepsbenny hat dieses Bild (verkleinerte Version) angehängt:
Bildschirmfoto vom 2017-10-06 13-03-31.png



__________________
Gruß
BB
06.10.2017 13:05 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ah, ich denke, Du brauchst auch wirklich Ganzzahlen (also ohne Komma bzw. Punkt). Das kannst Du aber einfach erreichen, indem Du in Cent rechnest, also alles mit 100 multiplizierst zuerst (also den eingegebenen Betrag mit 100 multiplizierst und dann zuerst mit 50 etc. dividierst).
Gut wäre eventuell auch, wenn man die Beträge der Münzen in ein Array packen könnte zuerst. Das wäre übersichtlicher. Allerdings weiß ich selbst nicht, wie man das in Pascal genau macht... Müsste ich dann selbst mal schauen.

Gruß
Marco
06.10.2017 13:09 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

also so weit bin ich, siehe Foto...und immer so weiter dann bin ja schon fertig.

PS: Arrays müsste ich mir auch erst durchlesen, das ist das nächste Kapitel zum lernen.

Könntest du mir erklären, wie das ginge? So sieht das Programm nämlich ziemlich kompliziert aus. Danke schonmal für deine Hilfe soweit Daumen hoch

Gruß
BB

Bizepsbenny hat dieses Bild (verkleinerte Version) angehängt:
Bildschirmfoto vom 2017-10-06 13-47-55.png



__________________
Gruß
BB

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Bizepsbenny: 06.10.2017 14:05.

06.10.2017 13:21 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!

Das sieht doch schon ganz gut aus! Tanzen
Ich denke aber, Du brauchst nicht unbedingt immer eine neue Variable für den neuen Betrag-Wert. Du kannst durchaus auch einfach schreiben:
code:
1:
Betrag := Betrag mod 50;

Also immer wieder dieselbe Variable Betrag mit dem neuen Wert überschreiben. Den alten brauchst Du ja nicht mehr wirklich. Vielleicht höchstens den allerersten, um noch die ursprüngliche Eingabe des Benutzers zu kennen, aber bisher brauchst Du das auch nicht unbedingt.
Zum Array muss ich selbst probieren. Ich hab das letzte Mal vor fast 30 Jahren in Pascal programmiert (noch in der Schule... jaja, so lange ist das bei mir doch schon her!). Deshalb weiß ich das alles leider nicht mehr so genau.

Gruß
Marco
06.10.2017 14:16 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

du hast Recht, es reicht auch, die Variable Betrag immer wieder zu überschreiben Daumen hoch

PS: Ich werde mir dann mal das Kapitel über Arrays durchlesen, aber es wäre toll, wenn du mir in einfachen Worten erklären könntest, was damit ungefähr gemeint ist.

Dann verstehe ich den Text vllt etwas einfacher.

Danke smile

Gruß
BB

__________________
Gruß
BB
06.10.2017 14:34 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hab mal selbst etwas rumprobiert. Ich hab als ersten Versuch so was hier:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Program Muenzen(output);
var muenzwerte : array [1 .. 6] of Integer = (50, 20, 10, 5, 2, 1);
var intBetrag : Integer;
var muenznummer : SmallInt;
var Betrag : Double;

begin
  write('Betrag? ');
  readln(Betrag);
  intBetrag := Trunc(Betrag * 100.0); // umwandeln der Eingabe in Centwerte
  muenznummer := 1; // wir beginnen mit der ersten Muenze
  
  while(intBetrag > 0) do
  begin
    writeln('Muenze: ', muenzwerte[muenznummer], ' Anzahl: ', intBetrag div muenzwerte[muenznummer]);
    intBetrag := intBetrag mod muenzwerte[muenznummer];
    muenznummer := muenznummer + 1;
  end;
end.


Wobei er abbricht, sobald vom Betrag nichts mehr übrig ist. Wenn Du also einen Euro hast, dann gibt er nur zweimal 50Cent aus und bricht dann ab. Weiß nicht, ob das gewünscht ist, kannst ja mal mit einer for... do-Schleife probieren über alle Array-Elemente zu laufen.

Gruß
Marco
06.10.2017 14:56 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Bizepsbenny Bizepsbenny ist männlich
Mitglied


Dabei seit: 14.08.2017
Beiträge: 27

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Moin,

danke!

Ich habe auch einmal ein bissel herum probiert und den array-Typ verwendet. Wenn ich ihn so darstelle, wie in deinem Programm, erscheint bei mir folgende Fehlermeldung (siehe Anhang)

Woran liegt es?

Vllt daran, dass ich das array als type definiert habe?

PS: Ist Trunc die Gaußklammer-Funktion?

Gruß
BB

Bizepsbenny hat dieses Bild (verkleinerte Version) angehängt:
Bildschirmfoto vom 2017-10-06 22-33-41.png



__________________
Gruß
BB

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Bizepsbenny: 06.10.2017 22:46.

06.10.2017 22:36 Bizepsbenny ist offline Beiträge von Bizepsbenny suchen Nehmen Sie Bizepsbenny in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja, bei einer Typdefinition kannst du keine Werte vergeben. Dafür brauchst du eine var.

Trunc = zu 0 hin runden, also abrunden bei positiven Zahlen und aufrunden bei negativen.

__________________
Syntax Highlighting fürs Board (Link)
07.10.2017 07:00 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » Pascal-Programm