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

Informatiker Board » Themengebiete » Informatik in der Schule » Pascal-Programm » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Bizepsbenny

ok vielen Dank smile

Gruß
BB
eulerscheZahl

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.
Bizepsbenny

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

as_string

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
Bizepsbenny

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
as_string

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
Bizepsbenny

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

as_string

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
Bizepsbenny

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

Bizepsbenny

Das macht Sinn.

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

Gruß
BB
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.