Ergebnis 1 bis 7 von 7
  1. #1
    W32.Lovgate
    Registriert seit
    23.05.2007
    Beiträge
    346

    Standard Brauche Hilfe Javascript Berechnung

    Also wir haben jetzt in der Schule Javascript.Vorher HTML, da bei HTML wusste ich alles, aber bei Javascript habe ich leider gefehlt und wirklich keinen Plan.
    Nun lerne ich Javascript nach und bin bei einer Aufgabe stecken geblieben wo ich net weiterkomme , könntet ihr mir dabei bitte helfen?

    Aufgabe 3: Fahrkartenautomat-Wechselgeld
    Am Fahrscheinautomat wählt man einen Fahrschein zu einem bestimmten Preis P. Anschließend bezahlt man den Betrag B und bekommt Wechselgeld W zurück. Dabei sorgt der Automat dafür, dass die Anzahl der Münzen im Wechselgeld möglichst gering ist. Also nie 2 x 1€, sondern 1x 2€.

    Schreibe ein Skript, das zu vorgegebenen Werten für den Preis und den bezahlten Betrag ausgibt, wie viele Münzen welcher Art wieder ausgeworfen werden.

    Beispiel: Preis 2,10€, eingeworfen 5€, ausgegeben werden: 1x 2€, 1x 50cent, 2x 20 cent.

    Das wäre sehr sehr nett wenn ihr mir helfen könntet

    MFG,
    zug404
    Geändert von enco (29.04.2009 um 20:49 Uhr)

  2. #2
    (*(void (*)()) sc)(); Avatar von Cheese
    Registriert seit
    25.12.2008
    Beiträge
    332

    Standard

    eingewurfene geld - preis -> wechselgeld


    wechselgeld > größter schein?
    ja-> schein ausgeben und vom wechselgeld abziehen und nochmal
    nein -> wechselgeld > nächst kleinerer wert?

    bis es auf 0 ist.

    while (W>=50€)
    {
    gib 50€ aus;
    W-50€
    }
    while (W>=20€)
    {
    gib 20€ aus;
    W-20€
    }
    ....
    ....
    ....
    while (W>=1Ct)
    {
    gib 1Ct aus;
    W-1Ct
    }



    dir ist klar das das ne art psäudocode ist und so der algo wäre, also das ist KEIN javascript ^^
    [myCheese.org]

    << n0psl3d >>

  3. #3
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Mh...
    Ich kann Dir nicht versprechen, dass es geht. Ist nur mal eben zusammengezimmert ...

    Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    
    var p = "2,10";
    p = p.split(',');
    p = p.join('');
    var b = "5,00";
    b = b.split(',');
    b = b.join('');
    
    var w = b-p;
    var mu = true;
    var zwei = true;
    var eins = true;
    var fuenfzig = true;
    var zwanzig = true;
    var zehn = true;
    var fuenf = true;
    var nullzwei = true;
    var nulleins = true;
    
    while(w > "0") {
    
    w--;
    mu++;
    
    if(mu == "200") {
    
    zwei++;
    mu = "0";
    
    }
    
    if(mu == "100") {
    
    eins++;
    mu = "0";
    
    }
    
    if(mu == "50") {
    
    fuenfzig++;
    mu = "0";
    
    }
    
    if(mu == "20") {
    
    zwanig++;
    mu = "0";
    
    } 
    
    if(mu == "10") {
    
    zehn++;
    mu = "0";
    
    }
    
    if(mu == "5") {
    
    fuenf++;
    mu = "0";
    
    }
    
    if(mu == "2") {
    
    nullzwei++;
    mu = "0";
    
    }
    
    if(mu == "1") {
    
    nulleins++;
    mu = "0";
    
    }
    
    }
    
    document.write("Wechselgeld: "+zwei+" Zwei EuroStuecke");
    
    //-->
    </script>
    Das ist auch eher provisorisch und sehr einfach, da ich gerade wenig Zeit habe.
    Vom Prinzip her denke ich, ist es das einfachste: Du rechnest die Eurobeträge (mit den Kommata) in Centbeträge (ohne Kommata) um, indem Du einfach das Komma entfernst (mal 100 halt).
    Danach rechnest Du die Differen, die hier 290 beträgt (500 - 210).
    Die While-Schleife läuft nun 290 mal und zieht dem Wert (w) jeweils eins ab (w--) und rechnet auf mu (muenzen) eins dazu (mu++).
    Wenn mu ganz genau gleich 200 dann rechnet sich zwei plus eins (zwei++). Das heißt, dass ein zwei Euro-Stück benötigt wird. Außerdem wird mu wieder auf 0 gesetzt, um erneut zu prüfen. Die 90 restlichen male wird geprüft, ob mu ganz genau 100 ist (was es nicht ist). Ist es ganz genau 50? Ja, nach 40 weiteren Durchläufen: Fuenfzig wird um eins erhöht (fuenfzig++). Dann noch 40 Durchläufe, wobei zweimal mu ganz genau 20 ist. Die Ausgabe müsstest Du dann noch Deinen Wünschen entsprechend anpassen. Ich käme somit auf 1*2€, 1*50 Cent und 2*20 Cent, was Du ja auch sagtest...
    Korrekturen erwünscht, da nur mal eben prinzipiell zusammengezimmert .
    Come to the dark side - We have cookies

  4. #4
    W32.Lovgate
    Registriert seit
    23.05.2007
    Beiträge
    346

    Standard

    Vielen Dank Power-Sven und Cheese für eure Hilfe aber irgendwie funktioniert der Script nicht @ Power Sven könnte jemand evtl ein Funzendes Script Proggen das ich mir angucken kann um die zusammenhänge zu verstehen.

    Das wäre extrem nett wenn es nicht zuviel mühe macht

    MFG zug404

  5. #5
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Ich denke es war nur ein kleiner Rechtschreibfehler... Der Versuch auf die Variable "zwanig" zuzugreifen. Falls dort noch mehr Fehler sind dann wohl noch mehr solche Fehler... Zusammenhang habe ich ja oben gepostet. Also zumindest meinen Gedankengang.

    Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    
    var p = "2,10";
    p = p.split(',');
    p = p.join('');
    var b = "5,00";
    b = b.split(',');
    b = b.join('');
    
    var w = b-p;
    var mu = true;
    var zwei = true;
    var eins = true;
    var fuenfzig = true;
    var zwanzig = true;
    var zehn = true;
    var fuenf = true;
    var nullzwei = true;
    var nulleins = true;
    
    while(w > "0") {
    
    w--;
    mu++;
    
    if(mu == "200") {
    
    zwei++;
    mu = "0";
    
    }
    
    if(mu == "100") {
    
    eins++;
    mu = "0";
    
    }
    
    if(mu == "50") {
    
    fuenfzig++;
    mu = "0";
    
    }
    
    if(mu == "20") {
    
    zwanzig++;
    mu = "0";
    
    } 
    
    if(mu == "10") {
    
    zehn++;
    mu = "0";
    
    }
    
    if(mu == "5") {
    
    fuenf++;
    mu = "0";
    
    }
    
    if(mu == "2") {
    
    nullzwei++;
    mu = "0";
    
    }
    
    if(mu == "1") {
    
    nulleins++;
    mu = "0";
    
    }
    
    }
    
    document.write("Wechselgeld: "+zwei+" Zwei EuroStuecke");
    
    //-->
    </script>
    Hoffe das geht jetzt.
    Come to the dark side - We have cookies

  6. #6
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Kannst auch gleich schreiben wir sollen deine Aufgaben lösen.

  7. #7
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    Yups. Das wichtigste ist Eigeninitiative aber lieder vergessen das soviele. Ich weis nicht worin die Schwierigkeit besteht, sich etwas Zeit zu nehmen und Herr Google zu fragen. Solche Aufgaben wie deinige sind absolut standart, jeder Informatikschüler muss sich damit rumplagen - also gibt es dazu massig Lösungsvorschläge und Ansätze.

    Grüße C0bra

Stichworte

Berechtigungen

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