Hi! Brauche Hilfe mit OR und AND und vielleicht auch NOT!



  • Hi!

    Ich verwende den Borland Compiler, den man gratis aus dem Netz bekommt.
    Ich hab mir extra ein Lernbuch von KnowWare gekauft und trotzdem komm ich nicht weiter. Ich hoffe, mir kann hier geholfen werden!

    Und zwar habe ich ein ansich simples Programm geschrieben, das eine Klasse Dackel erzeugt, dem man Alter und Name geben kann und der bellt und Stöckchen holt, wenn er nicht älter als 10 ist. Das funkt ansich recht gut. Übrigens, die Klasse ist in einer extra Header-Datei definiert. Und nun wollte ich ein Programm schreiben, mit dem ich eine gewisse Anzahl an Dackeln erzeugen und eingeben kann. Und dabei gergibt sich das Problem, dass ich KEINE gekoppelten Abfragen mit AND oder OR machen kann : NOT hab ic hnoch nicht probiert, brauch ich aber auch (noch) nicht. Folgend der SOURCE und die FEHLERMELDUNG, bei der der Fehler angezeigt wird:
    int Anzahl;
    char Alter;
    char Namen;
    cout << "Wieviele Dackel erzeugen: ";
    cin >> Anzahl;
    Dackel Meute[5];
    cout << "Alter angeben? Antworten mit j/n: ";
    cin >> Alter;
    cout << "Namen geben? Für alle gültig! Antworten mit j/n: ";
    cin >> Namen;
    if (Alter == 'j' OR Name == 'j') { cout << i+1 << ". Dackel:\n"; }
    Das heißt, wenn der User Name oder Alter eingeben will, soll vor der Eingabe dortstehen, welcher Dackel eingegeben wird. Und dann kommt die Fehlermeldung für die if-Anwaisung. Zeile 19 ist nämlich die Vorige.
    Dackel.cpp:
    Error E2377 Dackel.cpp 19: If statement missing ) in function main()
    *** 1 errors in Compile ***
    Was mache ich falsch? Im Handbuch steht das auch so drin. Bzw. so ähnlich, denn die machen dort in dem Fall keinen Dackel!
    Ich hoffe auf eure Hilfe! Wenn jemand den kompletten Source haben will, bitte per mailto:nulac@gmx.at dazu auffordern!

    Mit hoffnulgsvollen Grüßen, Nulac!



  • Sorry, hab gerade herausgefunden, was das Problem war! Man sollte halt keine Klammern vergessen!

    Richigstellung:

    if ((Alter == 'j') OR (Name == 'j')) { cout << i+1 << ". Dackel:\n"; }

    statt:

    if (Alter == 'j' OR Name == 'j') { cout << i+1 << ". Dackel:\n"; }

    Sorry nochmal!



  • Für solche Logic Operationen gibt es extra Zeichen, man schreibt OR etc nich hin.

    && ist AND
    || ist OR
    ! ist NOT

    Achja und wenn du Quelltext einfügst es gibt unten den C/C++ Button damit erscheints Formatiert.



  • Natürlich kann man

    if(a == b or c == d)
       blubb();
    

    schreiben, man muss bloss 'or' klein schreiben, und ggf. vorher <iso646.h> inkludieren.



  • Raven2 schrieb:

    Für solche Logic Operationen gibt es extra Zeichen, man schreibt OR etc nich hin.

    Ach, wieso nicht? es ist ein standard keyword. Du kannst soviel "or" schreiben, wie du lustig bist ;). Was man hinterher persönlich als besser empfindet, ist jedem selbst überlassen.



  • otze schrieb:

    Raven2 schrieb:

    Für solche Logic Operationen gibt es extra Zeichen, man schreibt OR etc nich hin.

    Ach, wieso nicht? es ist ein standard keyword. Du kannst soviel "or" schreiben, wie du lustig bist ;). Was man hinterher persönlich als besser empfindet, ist jedem selbst überlassen.

    Ich bin immer wieder erstaunt, wie oft ich in Programmier-Foren "Geschmackssache" oder "persönliche Entscheidung" lese. Man könnte meinen, wir sind in einem Kunstforum. => Nein. Programmieren ist eine Wissenschaft. Gibt es hier keine absoluten Wahrheiten?

    (aber das gehört nicht hierher.)


Log in to reply