Knifflige fehler im kleinem programm

Tutorials.at
Verfügbare Informationen zu "Knifflige fehler im kleinem programm"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: aimheld - AQE89 - X
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 9
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Knifflige fehler im kleinem programm
  • Letzte Antwort: vor 17 Jahren, 6 Monaten, 24 Tagen, 12 Stunden, 37 Minuten
  • Alle Beiträge und Antworten zu "Knifflige fehler im kleinem programm"

    Re: Knifflige fehler im kleinem programm

    aimheld - 23.09.2006, 07:20

    Knifflige fehler im kleinem programm
    Moin !

    Ich habe vor ein paar stunden angefangen, mir c++ anzugucken. Ich hab zwar gelesen das man am besten erst mit C anfangen soll statt mit c++, aber c++ interessiert mich grade mehr ;)
    Zu meinem eigentlichen problem:
    Ich habe versucht ein kleines testprogramm zu schreiben, das es einen ermöglicht, die verschiedenen zeiten in anderen ländern zu erfahren. Ich zeige euch besser erstmal was ich meine.

    Code: #include <iostream>
    using namespace std;
    int main() {
        cout<<"Dieses Programm zeigt dir die Zeit eines jeweiligen Landes an\n";
           double zeit;
           cout<<"Wie viel uhr ist es jetzt bei dir? (bsp. bei 15:40 Uhr schreibst du 15.40)\n";
           cin>>zeit;
        cout<<"Fuer welches Land brauchst du die genaue Zeit?\n";
        cout<<"(bsp: Fuer Argentinien schreibst du 1, fuer China 2 usw)\n\n";
        cout<<"Hier ist die List der Laender\n\n";
        cout<<"1 = Argentinien\n";
        cout<<"2 = China\n";
        cout<<"3 = Griechenland\n";
        cout<<"4 = Britanien\n";
        cout<<"5 = Irak\n";
        cout<<"6 = Japan\n";
        cout<<"7 = Kanada\n";
        cout<<"8 = Korea\n";
        cout<<"9 = Mexiko\n";
        cout<<"10 = Portugal\n";
        cout<<"11 = Russland\n";
        cout<<"12 = USA\n";
        int land;
        cin>>land;
        cout<<"du hast die "<<land<< "gewaehlt.\n";
                  if(land=1)
                  cout<<"In Argentinien ist es jetzt "<<zeit-4.0<<" Uhr.";
                  if(land=2)
                  cout<<"In China ist es jetzt "<<zeit-+7.0<<" Uhr.";
                  if(land=3)
                  cout<<"In Griechenland ist es jetzt "<<zeit+1.0<<" Uhr.";
                  if(land=4)
                  cout<<"In Britanien ist es jetzt "<<zeit+1.0<<" Uhr.";
                  if(land=5)
                  cout<<"In Irak ist es jetzt "<<zeit+2.0<<" Uhr.";
                  if(land=6)
                  cout<<"In Japan ist es jetzt "<<zeit+8.0<<" Uhr.";
                  if(land=7)
                  cout<<"In Kanada ist es jetzt "<<zeit-6.0<<" Uhr.";
                  if(land=8)
                  cout<<"In Korea ist es jetzt "<<zeit+8.0<<" Uhr.";
                  if(land=9)
                  cout<<"In Mexiko ist es jetzt "<<zeit-7.0<<" Uhr.";
                  if(land=10)
                  cout<<"In Portugal ist es jetzt "<<zeit-1.0<<" Uhr.";
                  if(land=11)
                  cout<<"In Russland ist es jetzt "<<zeit+2.0<<" Uhr.";
                  if(land=12)
                  cout<<"In der USA ist es jetzt "<<zeit-6.0<<" Uhr.";
                  else
                  cout<<"Die Zahl entspricht nicht einen von den aus der Liste";
        cin.get();
        cin.get();
        return 0;
    }

    Das hier ist erstmal der quelltext. Ich benutze übrigens Dev-C++

    Hier ist mein problem. Erstmal n bild von dem ausgeführtem programm



    So .. also mein problem habt ihr sicher schon erkannt.
    1. Wenn ich alles zuende eingegeben habe, erscheinen auf einmal alle zeiten von den jeweiligen ländern, statt nur der einen die man haben will.
    Ich zerbreche mir schon ewig den kopf darüber was ich anders machen kann, aber mir fällt nichts mehr ein. Mit hilfe von tutorials komme ich auch nicht so ganz an die lösung ran. Und bei google wüsste ich net was ich zu dem thema eingeben sollte :P
    Ich hoffe ihr könnt mir sagen was ich falsch gemacht habe.

    2. Unten seht ihr, das da zb bei Mexiko -0.45 uhr steht. Das sollte normalerweise vor 0 uhr bei 24 uhr aufhören, stattdessen läuft unter 0 weiter. Ich wüsste jetzt gar nicht was ich da reinschreiben sollte, damit das funktioniert. Ich denke mal das ist auch noch ein bisl zu hoch für mich, aber vielleicht könnt ihr mir ja trozdem sagen, wie man das umgehen kann.

    Okay, dafür das ihr den ganzen krams nur gelesen habt müsstet ihr schon ne belohnung kriegen ;)
    Ich danke schon jetzt für jede hilfreiche antwort

    MfG aimheld



    Re: Knifflige fehler im kleinem programm

    AQE89 - 23.09.2006, 10:21

    Re: Knifflige fehler im kleinem programm
    also

    du hast die zeichen = und == verwechselt.

    du hast der variable Land die zahl 1, 2 ... zugeortnet. da du ja
    land = 1
    eingegeben hast, du hättest aber land == 1 nehmen müssen.
    mit == kann man etwas überprüfen.
    den Fehler passiert noch vielen.

    das zeite porblem werde ich mal genauer anschauen!

    Edit:

    ich habe eine Idee, aber ich muss sie noch ausarbeiten, wenn du erst neulich angefangen hast ist es fileicht noch ein bischen schwer. ich hatte an eine funktion gedacht, ich werde mal schauen was ich machen könnte.



    Re: Knifflige fehler im kleinem programm

    aimheld - 23.09.2006, 11:03


    Sehr schön, das eine klappt schonmal ^^ vielen dank dafür.
    Auch danke das du dir um das andere problem noch gedanken machst. Sowas gibt anfängern den nötigen motivationsschub finde ich.



    Re: Knifflige fehler im kleinem programm

    AQE89 - 23.09.2006, 11:24


    ich habe es, muss nur noch das programm um schreiben, danach compilieren.
    dann sehe ich ob es wirklich richtig ist.
    da ich ja nur c kann ist es fileicht ein wenig komisch. musst dan noch um schreiben und so:


    Code: int zeitpruefen (int zeit1);
    {

    double zeitaus, zeit1;

    if (zeit1>24)
    zeit + 24.00 = zeitaus;

    if (zeit1<0)
    zeit + 24.00 = zeitaus;

    else
    return zeit1;

    return zeitaus;
    }

    habe diese Funktion eingefügt, um ales zu überprüfen. ist nicht profesionel gelöst aber es wird den zwek erfüllen.

    danach habe ich noch in der if anwieung etwqas abgfeändert.

    mal ne frage gibt es in C++ auch switch und case schleifen?



    Re: Knifflige fehler im kleinem programm

    aimheld - 23.09.2006, 11:40


    hmm im tutorial steht nur was von while, for und do schleifen. Dat nehm ich aba auch grad erst durch ^^ also kann ich net sooo viel dazu sagen.
    Auf jeden fall danke das du dir die mühe gemacht hast mit dem codeschnipsel. Ich probier es gleich mal aus.



    Re: Knifflige fehler im kleinem programm

    AQE89 - 23.09.2006, 11:52


    hi also ich habe es,
    der compiler gibt nur eine fehlermeldung aus, nämlich
    129:2: warning: no newline at end of file

    der code ist:
    Zitat:
    #include <iostream>

    using namespace std;

    double zeitpruefen (double x);

    int main()
    {
    cout<<"Dieses Programm zeigt dir die Zeit eines jeweiligen Landes an\n";
    double zeit;
    cout<<"Wie viel uhr ist es jetzt bei dir? (bsp. bei 15:40 Uhr schreibst du 15.40)\n";
    cin>>zeit;
    cout<<"Fuer welches Land brauchst du die genaue Zeit?\n";
    cout<<"(bsp: Fuer Argentinien schreibst du 1, fuer China 2 usw)\n\n";
    cout<<"Hier ist die List der Laender\n\n";
    cout<<"1 = Argentinien\n";
    cout<<"2 = China\n";
    cout<<"3 = Griechenland\n";
    cout<<"4 = Britanien\n";
    cout<<"5 = Irak\n";
    cout<<"6 = Japan\n";
    cout<<"7 = Kanada\n";
    cout<<"8 = Korea\n";
    cout<<"9 = Mexiko\n";
    cout<<"10 = Portugal\n";
    cout<<"11 = Russland\n";
    cout<<"12 = USA\n";
    int land;
    cin>>land;
    cout<<"du hast die "<<land<< "gewaehlt.\n";

    double ausgabe

    if(land==1 )
    {
    zeit - 4.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Argentinien ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==2 )
    {
    zeit + 7.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In China ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==3 )
    {
    zeit + 1.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Griechenland ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==4 )
    {
    zeit + 1.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Britanien ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==5 )
    {
    zeit + 2.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Irak ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==6 )
    {
    zeit + 8.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Japan ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==7 )
    {
    zeit - 6.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Kanada ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==8 )
    {
    zeit + 8.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Korea ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==9)
    {
    zeit - 7.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Mexiko ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land=10 )
    {
    zeit - 1.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Portugal ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==11 )
    {
    zeit + 2.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In Russland ist es jetzt "<<ausgabe<<" Uhr.";
    }
    if(land==12)
    {
    zeit - 6.00 = ausgabe;
    ausgabe= zeitpruefen(ausgabe);
    cout<<"In der USA ist es jetzt "<<ausgabe<<" Uhr.";
    }
    else
    cout<<"Die Zahl entspricht nicht einen von den aus der Liste";
    cin.get();
    cin.get();
    return 0;
    }


    double zeitpruefen (double zeit1)
    {

    double zeitaus;

    if (zeit1>24)
    zeit + 24.00 = zeitaus;

    if (zeit1<0)
    zeit + 24.00 = zeitaus;

    else
    return zeit1;

    return zeitaus;
    }



    Re: Knifflige fehler im kleinem programm

    aimheld - 23.09.2006, 12:40


    Moin !
    Bei mir hat alles geklappt ^^ vielen dank für deine hilfe AQE89 .

    Ich hab zwar jetzt, nachdem ich versuche das programm ein bisl komplexer zu gestalten noch ein, zwei probleme dazu gekriegt, aber irgentwie schaff ich das schon :P
    Allerdings kann fragen auch nicht schaden.
    Also gut, hier ist mein problem.
    Sagen wir mal, ich möchte es so hinkriegen, das der benutzer am ende sagen kann "ich möchte noch eine zeit wissen" und das der dann wenn er "ja" schreibt, zum punkt zurück kehrt, wo er seine zeit reinschreiben muss.
    Apopros "ja" schreiben. Wenn ich statt eine zahl einen buchstaben oder ein wort schreibe, bricht das programm ab. Auch verschiendene tutorials konnten mir es nicht so richtig erklären. Vllt kann mir einer sagen, wie genau ich das machen kann, das der auch buchstaben speichert.
    Ich hoffe das ist nicht zuviel verlangt ;) Ich weis ja noch nicht so recht was das für eine arbeit für euch sein könnte.

    MfG aimheld



    Re: Knifflige fehler im kleinem programm

    X - 23.09.2006, 15:04


    Hi aimheld,

    damit du auch Zeichenfolgen speichern kannst musst du den Datentyp "string " wählen für einzelne Zeichen genügt "char"
    Code: cout<<"12 = USA\n";
        int land;       //<<<--- Hier muss String statt int
        cin>>land;
        cout<<"du hast die "<<land<< "gewaehlt.\n";

    @AQE
    ich weiß nich wie oft ich das hier schon gesagt hab
    ABER: C UND C++ sind absolut gleich in c++ sind nur noch spezielle Techniken hinzugekommen!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Zitat: mal ne frage gibt es in C++ auch switch und case schleifen?
    damit sollte sich die frage hoffentlich erledigt haben[/quote]



    Re: Knifflige fehler im kleinem programm

    aimheld - 24.09.2006, 19:59


    hat geklappt, vielen dank X ;P



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    ANSI.SYS einbinden - gepostet von detewe89 am Freitag 18.05.2007
    Brauche das Programm Pascal - gepostet von Lino am Freitag 14.07.2006
    Automatisch abschalten - gepostet von ThE_B0MBeRMaN am Mittwoch 22.11.2006
    Mein Programm HILFE GESUCHT!! - gepostet von Pole am Montag 11.12.2006
    brauche Hilfe für ein kleines Programm - gepostet von Boron am Samstag 24.06.2006
    ASCII pfeiltasten - gepostet von Elch am Donnerstag 20.09.2007
    PROGRAMMSAMMLUNG - gepostet von DrPhil_Guth am Freitag 25.08.2006
    microsoft visual C++ Express edition - gepostet von patrick am Donnerstag 15.02.2007
    Programm (C) was Sekunden in Tage Stunden Minuten umrechnet! - gepostet von Kimi am Donnerstag 01.11.2007



    Ähnliche Beiträge wie "Knifflige fehler im kleinem programm"

    Fehler oder notwendige Änderungen auf der Hompage - Christoph Weikl (Dienstag 09.05.2006)
    kleiner fehler? - deadenddreaming (Dienstag 02.05.2006)
    Fehler - unstopable (Freitag 14.07.2006)
    Fehler!!! - administrator (Montag 01.10.2007)
    Muss man bei eigenen Fehler selbst zahlen? - Cheryn Light (Donnerstag 05.07.2007)
    Fehler beim Builden - lanzet3 (Samstag 19.06.2004)
    Fehler im Projekt - andreasw (Mittwoch 30.11.2005)
    The Frida and Agnetha meta-list (list of lists) - Emmanuelle (Sonntag 01.08.2010)
    Fehler - Geigi (Dienstag 17.07.2007)
    Fehler - Sarita (Freitag 22.06.2007)