CnC Foren

CnC Foren (http://www.cncforen.de/index.php)
-   Tech-Support / Tech-Talk (http://www.cncforen.de/forumdisplay.php?f=26)
-   -   [HELP] Erstes c++ Program. Geht es oder geht es nicht (http://www.cncforen.de/showthread.php?t=64166)

mose 31-08-2005 20:20

Ich habe Dev-C++ 4

maxl 01-09-2005 11:27

Ich bin zwar selbst noch eher ein Anfänger, aber trotzdem mal ein paar Sachen:
Die Verwendung der konstanten Integers versteh ich nicht. Warum schreibst du das nicht direkt in die if-Bedingungen hinein?
Dein else-Statement sollte generell eine falsche Eingabe abfangen. D.h. die Meldung sollte in etwa lauten "Ihre Eingabe war ungültig. Wählen Sie eine Zahl zwischen 1 und 3."
Außerdem ist mir dein Einrück-Stil ein wenig unklar, aber wenn du dich auskennst, ist es ja ok. ;)

Und eine ordentliche IDE oder ein guter Compiler wären sicher auch ganz brauchbar. ;) gcc hat zu deinem Programm vorhin z.B. folgendes gesagt:
Zitat:

max@gamma:~$ g++ mose.cpp
mose.cpp:9: Fehler: fehlendes abschließendes Zeichen "
mose.cpp:10: Fehler: fehlendes abschließendes Zeichen "
mose.cpp: In function »int main()«:
mose.cpp:10: Fehler: »aussuchen« wurde in diesem Gültigkeitsbereich nicht definiert
mose.cpp:10: Fehler: expected unqualified-id before »*« token
mose.cpp:44: Fehler: expected `;' before »cout«
Demnach haben da die Zeilen 9 und 10 auch gestört:
Code:

    cout<<"*Bitte geben Sie erst die Faktoren ein. Danach koennen Sie die Formel            *
 *aussuchen.                                                                                                                                *"<<endl;
    cout<<"******************************************************************************"<<endl;

Schöner wäre:
Code:

    cout << "*Bitte geben Sie erst die Faktoren ein. Danach koennen Sie die Formel            *" <<
            "*aussuchen.                                                              *" << endl;

oder so. Ich bin aber, wie gesagt, selber Anfänger, deshalb ist nichts, was ich sage zwingendermaßen richtig. ;)

MyersGer 01-09-2005 17:38

so nun war ich hier auch mal drin :p
ich war mal so frei und hab das codechaos in codetags gesetzt.

devc++ benutzt meines wissens nach den gcc. ansonsten könnte ich dir die gute alte visual c++ 6 autoren edition empfehlen oder den borland c builder, der für nicht kommerziellen einsatz kostenfrei ist.

alles andere gute kostet geld. mit devc++ kommste aber auch schon weit.

gabs jetzt eigentlich noch fehler?

mose 01-09-2005 17:56

Ne ^^ Alle fehler wech ich poste nochmahl den fertigen Quelltext :)

Code:

  #include <iostream>
  using namespace std;
  int main ()
 
  {
 
      cout<<"******************************************************************************"<<endl;
 cout<<"*Das Programm kann die 3 Binomischen Formeln rechen                                                *"<<endl;
      cout<<"*Bitte geben Sie erst die Faktoren ein. Danach koennen Sie die Formel            *
 *aussuchen.                                                                                                                                *"<<endl;
      cout<<"******************************************************************************"<<endl;
 
      //Alles was zwischen cout<<"......."<<endl, ist sichtbar.
      int a;
      int b;
      int c;
      //Der Befehl int resaviert genau so wie float Speicher. In diesem Fall wird Speicher für 3 Elemente resaviert.
      const int l1=1;
      const int l2=2;
      const int l3=3;
 //Durch den Befehl `const´ vor `int´ wird der Befehl so erweiter, das eine Variable definiert die sich nicht verändern läst.
 //Die Zahl wird dich selbst im Quelltext verwendet, sondern es wird ein Wort oder ein Buchstabe verwändet der an die stelle der Zahl im Quelltext erscheint.
      //Dieses Wort bzw Buchstabe bedeutet das gleiche wie die Zahl. Im Falle ´const int l1=1´ ist l1 genau das gleiche wie 1.
      cout<<"Bitte geben sie den Faktor a ein.";
      cin>>a;
      //Durch den Befehl ´cin>>a;´ wird auf den resavierten Speicher a zurückgegriffen.
      cout<<"Bitte geben sie den Faktor b ein."<<endl;
      cin>>b;
      //Durch den Befehl ´cin>>b;´ wird auf den resavierten Speicher b zurückgegriffen.
      cout<<"******************************************************************************"<<endl;
 cout<<"*Mit welcher Formel wollen Sie fortfahren? Fuer die erste binomische Formel * *druecken sie die 1 . Fuer die zweite die 2 und fuer die dritte die 3.        *"<<endl;
      cout<<"******************************************************************************"<<endl;
      //Alles was zwischen cout<<"......."<<endl, ist sichtbar.
      cin>>c;
      //Durch den Befehl ´cin>>c;´ wird auf den resavierten Speicher c zurückgegriffen.
      if(c==l1)
      //Nach if gibt man in die Klammern eine Bedingung ein, und wenn sie wahr ist, dann wird der Befehl nach if ausgeführt,
      //anderenfalls wird der Befehl nach else ausgeführt.Befor else ausgefürt wird. Werden alle if-Bedingungen überprüft.
      cout<<"Das Ergebnis ist: "<<((a+b)*(a+b))<<endl;
      //((a+b)*(a+b)) ist die erste binomische Formel.
      else if(c==l2)
      cout<<"Das Ergebnis ist: "<<((a-b)*(a-b))<<endl;
      //Das else bewirkt das die Fehler Meldung aus dem else nicht bei if auftrit.
      else if(c==l3)
      cout<<"Das Ergebnis ist: "<<((a+b)*(a-b))<<endl;
      else
      {
      cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
 cout<<"!                                                        Error= no error                                                        !"<<endl;
      cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
      }
      //Alles was zwischen cout<<"......."<<endl, ist sichtbar.
      //Dies ist die Fehlermeldung die kommt wenn keine if-Bedingung passt.
 
      cout<<"******************************************************************************"<<endl;
 cout<<"*Dieses Progrmm wird noch erweiter und wenn noetich komplet verendert.        *"<<endl;
      cout<<"******************************************************************************"<<endl;
      //Alles was zwischen cout<<"......."<<endl, ist sichtbar.
 
 
      std::cin.clear();
      //"std::cin.clear(); löscht alle eventuellen Fehlerbits des assoziierten Streams und gibt dem Stream den Status,
      //der durch das Argument von clear spezifiziert wird (Defaultmäßig ist das ios::godbit)"
      std::cin.ignore(std::cin.rdbuf()->in_avail());
      //Verhindert das Das Fenster sich schließt.
      //"Diese Zeile löscht (bzw. ignoriert) alle Zeichen aus dem Eingabepuffer.
      //Oder mit anderen Worten leert den Eingabe-puffer."
      std::cin.get();
      //Dieser Befehl bewirkt das sich das Fenster schließt wenn man eine beliebeige Taste drückt.
 
      return 0;
 
  };




//edit: Ich arbeite an einem Neuen Programm. Aber brauche dafür mehr Befehle. Kennt einer ne seite wo viel befehle sind.

MyersGer 01-09-2005 18:17

www.cplusplus.com :p
es ist manchmal soooo einfach ;)

mose 01-09-2005 20:19

JO danke ^^ Was hält ihr den von meinem Programm?

MyersGer 01-09-2005 20:22

kranker stil :p :D

btw.: es heißt reserviert ;)

kaki100 01-09-2005 20:56

Naja, ich man ja selbst net der schönste coder, aber dass muss man entziffern können ^^ :D ...

Übrigens, wer braucht schon Kommentare :rolleyes:

mose 01-09-2005 21:00

Wieso ist das ein kranker Stil ? :P Naja die Rechtschreibung :P

//edit: mein Lehrer braucht die Kommentare. :gf:

Gonzo 01-09-2005 21:55

Werd dir mal ein Beispiel "guten" Stils zeigen ;)
Code:

void main()
{
    int bla = 5;

    for( int i=0 ; i<10 ; i++ )
    {
        // Überprüfung ob i gleich bla ist
        if( i == bla)
        {
            cout<<" i ist gleich bla"<<endl;
            break; // Abbruch for i
        }
        else
            cout<<" i ist ungleich bla"<<endl;
    }
}

Einrückungen ( Tabs ) sind das halbe Programmiererleben :p
Ne vernünftige Strukturierung erhöht die Lesbarkeit ungemein, das stellste spätestens
fest, wenn du mal ein grösseres Programm schreibst ;)

mose 01-09-2005 22:00

AHSO ^^ gut das kann man sich ja angewönen =). Werde es nechstes mahl beahten ^^


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:17 Uhr.

Powered by vBulletin Version 3.7.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.