Seite 1 von 7 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 61

Thema: Die kleine Faultier Programmierschule

  1. #1
    Avatar von gubbel
    Registriert seit
    03.04.2011
    Beiträge
    4.449

    Die kleine Faultier Programmierschule

    Der hochmoderne Snackautomat von dem im Chat die Rede war:

    Code:
    PROGRAM Snackautomat;
    
    TYPE WareARRAY=ARRAY[1..4,1..12] OF CHAR;
         MuenzeARRAY=ARRAY[1..6] OF REAL;
    CONST Ware:WareARRAY=('Mars','Snickers','Twix','Duplo');
          Muenze:MuenzeARRAY=(0.05,0.10,0.20,0.50,1.00,2.00);
    VAR Eingabe,Einwurf:INTEGER;
        Preis,Summe,Rest:REAL;
        Abbruch:BOOLEAN;
    BEGIN
      Abbruch:=FALSE;
      WRITELN('Bitte w„hlen sie ein Produkt mit');
      WRITELN('1:Mars(1.50E), 2:Snickers(1.70E), 3: Twix(1.80E), 4:Duplo(0.70E)');
      READLN(Eingabe);
      IF Eingabe IN [1..4] THEN
        BEGIN
          Case Eingabe OF
            1:Preis:=1.50;
            2:Preis:=1.70;
            3:Preis:=1.80;
            4:Preis:=0.70
          END;
          WRITELN('Bitte werfen Sie' ,Preis,' Euro ein. Der Automat akzeptiert nur 5Cent bis 2Euro Mnzen');
          WRITELN('1:5Cent, 2:10Cent, 3:20Cent, 4:50Cent, 5:1Euro, 6:2Euro');
          Summe:=0.00;
          REPEAT
            WRITELN('Verbleibend: ',Preis-Summe:1:2,' Euro');
            READLN(Einwurf);
            IF Eingabe IN [1..6] THEN
              BEGIN
                Summe:=Summe+Muenze[Einwurf];
                WRITELN(Summe:1:2);
              END
            ELSE
              Abbruch:=TRUE
          UNTIL (Summe>=Preis) OR Abbruch;
          Rest:=Summe-Preis;
          WRITELN('Ausgabe ',Ware[Eingabe]);
          WRITELN(Rest:1:2,' Euro Rckgeld');
          REPEAT
            IF Rest>=1 THEN
              BEGIN
                WRITELN('Ausgabe ',Muenze[5]:1:2,' Euro');
                Rest:=Rest-1
              END;
            IF Rest>=0.50 THEN
              BEGIN
                WRITELN('Ausgabe ',Muenze[4]:1:2,' Euro');
                Rest:=Rest-0.50
              END;
            IF Rest>=0.20 THEN
              BEGIN
                WRITELN('Ausgabe ',Muenze[3]:1:2,' Euro');
                Rest:=Rest-0.20
              END;
            IF Rest>=0.10 THEN
              BEGIN
                WRITELN('Ausgabe ',Muenze[2]:1:2,' Euro');
                Rest:=Rest-0.10
              END;
            IF Rest>=0.05 THEN
              BEGIN
                WRITELN('Ausgabe ',Muenze[1]:1:2,' Euro');
                Rest:=Rest-0.05
              END
          UNTIL Rest=0
        END
      ELSE
        WRITELN('Falsche Eingabe')
    END.
    Unten erlaubt er sich alle möglichen Späße
    Wenn Ich zum Beispiel mit 1,30 Euronen Rückegeld starte dann gehts erst gut los. Der Euro wird abgezogen, dann 20 Cent, wenns dann aber darum geht die 10 Cent auch noch abzuziehen womit dann die Abbruchbedingung erfüllt wäre kommt da aus 0,1-0,1 auseinmal 1,0231815395E-12 raus
    A sanity powered pizza vaporizer.

  2. #2
    schaermt. Avatar von Jim
    Alien Bounce Champion Bitmap TD 2 Champion
    Registriert seit
    03.04.2011
    Ort
    Atlantica
    Beiträge
    4.966
    Hat er Wunderbar-Schokoriegel?

  3. #3
    s̓̍̒͋̌l̎ow̐̔̉̉c̊͋̉ar̄͑ ͪͫ͛ ̓ Avatar von slowcar
    Registriert seit
    03.04.2011
    Ort
    hamburg
    Beiträge
    8.007
    An Deinen Problembeschreibungsskills müssen wir noch arbeiten...

    Deine 2. Schleife läuft die Schritte einen nach dem anderen ab.
    Richtig wäre:
    - Gib 2€ raus so lange Du kannst
    dann gib 1€ raus so lange Du kannst
    dann...
    also mehrfache repeat-schleifen.

    Ansonsten: Nimm Integer als Datentyp. Real macht Dir da nur Probleme, siehe http://de.wikipedia.org/wiki/Gleitko...auf_Gleichheit
    Geändert von slowcar (13.04.2015 um 16:38 Uhr)
    Oh what a day! What a lovely day!

  4. #4
    Erfahrener Benutzer
    Registriert seit
    03.04.2011
    Beiträge
    3.075
    @gubbel
    Biste jetzt unter die Programmierer gegangen?

    @all
    Pascal erinnert mich fatal an meine Schulzeit. Wir hatten das da auch im "Informatik"-Kurs. Mit welchen Programmiersprachen sollte man als Anfänger heute beginnen?

  5. #5
    s̓̍̒͋̌l̎ow̐̔̉̉c̊͋̉ar̄͑ ͪͫ͛ ̓ Avatar von slowcar
    Registriert seit
    03.04.2011
    Ort
    hamburg
    Beiträge
    8.007
    Zitat Zitat von kronic Beitrag anzeigen
    Pascal erinnert mich fatal an meine Schulzeit. Wir hatten das da auch im "Informatik"-Kurs. Mit welchen Programmiersprachen sollte man als Anfänger heute beginnen?
    Für die Grundprinzipien ist es ja fast egal, ich würde vielleicht etwas praxisrelevanter vorgehen. Vielleicht mit Javascript, wobei das halt direkt Objektorientiert ist und einiges an Spezialitäten hat.
    Oder Ruby oder sowas vllt.
    Oh what a day! What a lovely day!

  6. #6
    Avatar von gubbel
    Registriert seit
    03.04.2011
    Beiträge
    4.449
    Das ist auch nur im Rahmen der 2 wöchigen Einführung, das macht man ganz zu Beginn der Ausbildung oder Ich habs jetzt schon als Erprober gemacht
    A sanity powered pizza vaporizer.

  7. #7
    Erfahrener Benutzer Avatar von visti
    Ally The Alien Champion Mini Golf Gold Champion Box Dodge Fury Champion Jurassic Bug Champion Bobulous Champion
    Paddle Ball Champion Park My Big Rig 2 Champion Bird Line Up Champion Missile Game 3D HS Champion The Matrix:Tunnel Recon Champion
    Twice as Bounce Champion
    gewonnene Turniere: 2
    Registriert seit
    03.04.2011
    Ort
    Kölle
    Beiträge
    4.050
    Zitat Zitat von kronic Beitrag anzeigen
    Mit welchen Programmiersprachen sollte man als Anfänger heute beginnen?
    Mit QBasic.

    10 PRINT
    20 THEN GOTO


    Zitat Zitat von wisthler Beitrag anzeigen
    Also ich habe es gerade getestet und konnte bei Brain daran rumfummeln.
    Zitat Zitat von BrainDamage Beitrag anzeigen
    Ist schon seltsam. Wo das Spannende mit der "Abartigkeit" gerade anfängt, hört das Strafrecht schon auf.

  8. #8
    s̓̍̒͋̌l̎ow̐̔̉̉c̊͋̉ar̄͑ ͪͫ͛ ̓ Avatar von slowcar
    Registriert seit
    03.04.2011
    Ort
    hamburg
    Beiträge
    8.007
    Zitat Zitat von visti Beitrag anzeigen
    Mit QBasic.

    10 PRINT
    20 THEN GOTO

    Ich hab auf meinem VC20 noch Seiten an Listings abgetippt - und dann hab ich mich irgendwo verschrieben...
    Oh what a day! What a lovely day!

  9. #9
    Dafür gab'd doch Checksummer beim C64, wenn ich mich richtig erinnere
    "Oh, I'ma go walkin' in the moonlight with you."
    ~ Billy Crash ~

    "One look at the cannibals massing at the arrival gate and his revulsion rubs its paws together and hisses."
    ~ Colson Whitehead ~

  10. #10
    Erfahrener Benutzer Avatar von visti
    Ally The Alien Champion Mini Golf Gold Champion Box Dodge Fury Champion Jurassic Bug Champion Bobulous Champion
    Paddle Ball Champion Park My Big Rig 2 Champion Bird Line Up Champion Missile Game 3D HS Champion The Matrix:Tunnel Recon Champion
    Twice as Bounce Champion
    gewonnene Turniere: 2
    Registriert seit
    03.04.2011
    Ort
    Kölle
    Beiträge
    4.050
    @slow: Jo!

    @weasel: Mist. Das kannte ich nicht.

    Zitat Zitat von wisthler Beitrag anzeigen
    Also ich habe es gerade getestet und konnte bei Brain daran rumfummeln.
    Zitat Zitat von BrainDamage Beitrag anzeigen
    Ist schon seltsam. Wo das Spannende mit der "Abartigkeit" gerade anfängt, hört das Strafrecht schon auf.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •