Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14
  1. #1
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard C++ Kugelspiel Problem

    Nabend Jungs,

    also Aufgabe war ein Kugelspiel zu erstellen was je nach Weicheneinstellung dann die Kugel an Ausgang 1 oder Ausgang 0 rausgibt. Hier mein Code

    #include<iostream>
    using namespace std;

    int main()
    {
    double kugel, weiche1, weiche2, weiche3, weiche4, ;

    cout<<"Weicheneinstellung 1 eingeben:"<<endl;
    cin>>weiche1;

    cout<<"Weicheneinstellung 2 eingeben:"<<endl;
    cin>>weiche2;

    cout<<"Weicheneinstellung 3 eingeben:"<<endl;
    cin>>weiche3;

    cout<<"Weicheneinstellung 4 eingeben:"<<endl;
    cin>>weiche4;

    if(weiche1==0)
    { kugel=1;
    goto weiche 2;
    }
    else
    { kugel=0;
    }

    weiche 2:
    if(weiche2==0)
    { kugel=1;
    goto weiche 3;
    }
    else
    { kugel=0
    }

    weiche 3:
    if(weiche3==0)
    { kugel=1;
    goto weiche 4;
    }
    else
    { kugel=0;
    }

    weiche 4:
    if(weiche4==0)
    {
    kugel=1;
    }
    else
    {
    kugel=0;
    }



    cout<<"Ausgang:"<<kugel<<endl;



    return 0;

    }



    Ich bin verzweifelt, als ich es gedebuggt hab funktionierte alles wunderbar nun gibt er mir haufenweise Syntaxfehler aus.. falls welche drin sind, weist mich darauf hin.

    Grüße

    Hat sich erledigt er hat die Sprungmarke mit Leerzeichen nicht erkannt..
    Geändert von Salimox (06.10.2010 um 23:28 Uhr) Grund: Automerged Doublepost

  2. #2
    Bugbear Wurm Avatar von ZoX
    Registriert seit
    12.07.2008
    Beiträge
    238

    Standard

    schreib ma über return noch

    cin.sync();
    cin.get();

    und ich glaub du musst die weichen in ne klammer packen und hinter der 4. muss das , weg

    also so:

    Code:
    double kugel (weiche1, weiche2, weiche3, weiche4) ;
    bin mir aber bei den klammern nicht ganz sicher

    ~MfG ZoX~


  3. #3
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard

    cin.sync und cin.get bewirkt was?

    ne das geht auch ohne klammer
    das komma ist nur ein tipfehler..

    danke für deine hilfe

    EDIT: Läuft jetzt übrigens der hat die sprungmarken mit Leerzeichen nicht erkannt -.-
    Geändert von Salimox (06.10.2010 um 23:36 Uhr)

  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von Salimox Beitrag anzeigen
    Ich bin verzweifelt, als ich es gedebuggt hab funktionierte alles wunderbar nun gibt er mir haufenweise Syntaxfehler aus.. falls welche drin sind, weist mich darauf hin.
    Ein Programm zu debuggen erfordert doch erstmal, dass es überhaupt existiert. Wenn dein Code nicht compiliert werden kann ist das wohl nicht der Fall.

    Zitat Zitat von ZoX Beitrag anzeigen
    Code:
    double kugel (weiche1, weiche2, weiche3, weiche4) ;
    Ich bin mir unsicher, ob ich jetzt traurig, gequält, belustigt, entsetzt, oder doch alles zusammen sein sollte.
    Aber das hat ja wohl nicht mehr viel mit C++ zu tun.

    Zitat Zitat von Salimox Beitrag anzeigen
    cin.sync und cin.get bewirkt was?
    [IRONIE]Dass der Code compiliert wird.[/IRONIE]
    An der Stelle würde ich dir Google ans Herz legen, jedoch kann ich dir versichern, dass dir die beiden Methoden nicht weiterhelfen werden (wieso auch?!).

    Zitat Zitat von Salimox Beitrag anzeigen
    EDIT: Läuft jetzt übrigens der hat die sprungmarken mit Leerzeichen nicht erkannt -.-
    Kannst du mir mal erklären, wieso du da überhaupt mit Labels und goto arbeitest?
    Dein Code macht doch sowieso nichts anderes als das:
    kugel = !weiche1;
    kugel = !weiche2;
    kugel = !weiche3;
    kugel = !weiche4;
    Zumal die goto's völlig redundant sind, da nach dem Ende vom if-Block sowieso immer zu der Stelle gesprungen wird ist es auch in der Implementierung völlig egal, wie du Weiche1/2/3 setzt, da das Ergebnis nur von Weiche4 abhängt.
    Wieso du da double's benutzt ist mir auch völlig unverständlich.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    ocz (06.10.2010)

  6. #5
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard

    Ich weiß dass er erst Debuggen kann wenn es funktioniert.. Nur wie gesagt er hat es mir am Anfang wirklich gedebuggt.

    Hab die goto's entfernt.

    Danke
    und OpCodez kriegt ein thx weil er es kurz und knapp ebenfalls auf den punkt gebracht hat..

  7. #6
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von Salimox Beitrag anzeigen
    Hab die goto's entfernt.
    Ändert aber trotzdem nichts daran, dass die Ausgabe nur von Weiche4 abhängt.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  8. #7
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard



    so das ist dieses kugelspiel und das programm funktioniert, soweit ich nicht ganz am rad drehe.

  9. #8
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Pseudocode:


    Kompakt:
    (w1 && w2) || (w1 && !w2 && w4) || (!w1 && w3 && w4)
    ==> 1
    Geändert von blackberry (07.10.2010 um 00:31 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  10. #9
    DateMake Dialer
    Registriert seit
    04.07.2010
    Beiträge
    100

    Standard

    In deinem Pseudocode gehört w3 beim ersten else Zweig bei der if bedingung, hast dich anscheinend vertippt, unten passts wieder =)
    Außerdem gibts da noch einen Fehler: Nämlich z.b. bei Weiche 1 bedeutet 0, dass die Kugel links rollt, da die Weiche 1 rechts oben ist. Also alles in anderer Logik

    Außerdem geht es noch einfacher (diesmal in der Richtigen logik):

    Kugel = (!w3 && !w4) || (!w1 && !w2) || (!w1 && !w4);

    Z.b.: hattest du oben (w1 && !w2 && w4), allerdings wird hier !w2 nicht benötigt, da es ja auch im Falle von w2=true zu einer 1 als Ergebnis kommt. (letzter Satz war jetzt wieder in Umgekehrter Logik).
    Problemlösung ist:
    Kugel = (!w3 && !w4) || (!w1 && !w2) || (!w1 && !w4);


    Des weiteren solltest du niemals Goto benutzen!! (nie!)! Und double benötigst du da auch nicht. Außerdem würde ich statt w1,w2, usw. Weiche[0] - Weiche[3] nehmen, falls du das schon gelernt hast. Dann kannst du die Einstellungen in einer Schleife einlesen.

  11. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Salimox (07.10.2010)

  12. #10
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard

    Wunderbar erklärt!

    Ne das haben wir noch nicht gelernt, ich hatte erst 4 schulstunden programmierunterricht. Aber es wäre nett wenn du mir sagen könntest wie ich mit Weiche[0] usw, die einstellungen in einer schleife einlesen kann.

    EDIT: Dass du goto's hier total überflüssig sind habe ich verstanden, aber wieso soll man das nie benutzen?

    Thx

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

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