Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Tut mir leid aber nur fehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
30.09.2003, 17:46 Uhr
~Fat-Tiger
Gast


Also ich bins wieder aber ich weiß net das funzt nie:

Quellcode:

C++:
//Rechner-Com

#include <iostream>
#include <conio>
#include <stdlib>
#include <fstream>
using namespace std;



int main () {

menu:

        int b;
        int a;
    int x;
    int y;
    int z;
    int w;
        int hoehe;
        int breite;
    int zahl;
        int weiter;

    cout << "1)Addieren \n 2)Subtraieren \n 3)Multiplizieren \n 4)Dividieren \n 5)Dreieck";
    cin >> zahl;

    switch(zahl) {
        switch(weiter) {
        
case 1:
    cout << "Please input a number for x :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << a=x*y <<endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;
    
case 6:
        cout << "want you rechnen with\n\n8)Addieren\n9)Subtrahieren\n10)Dividieren\n11)Multiliezieren";
        cin >> weiter;

break;

case 7:
        if(getch() < 256)
        clrscr();
        goto menu;

break;

case 8:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a+x << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 9:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a-x << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 10:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a/x << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

    
break;

case 11;

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a/x << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

case 2:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << a=x/y << endl ;
    cout << "17)DO you want to rechnen\n18)Do you want to restart ";


case 17:
        cout << "want you rechnen with\n\n13)Addieren\n14)Subtrahieren\n15)Dividieren\n16)Multiliezieren:";
        cin >> weiter;

break;

case 18:
        if(getch() < 256)
        clrscr();
        goto menu;

break;

case 13:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a+x << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

break;

case 14:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a-x << endl ;
    cout << "18)Do you want to restart ";
    cin >> weiter;

break;

case 15:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a/x << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

    
break;

case 16;

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << b=a*x << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;



break;


case 3:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << a=x-y << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";

    




break;




case 4:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << a=x+y << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";
    

    
    if(getch() < 256)
        clrscr();
        goto menu;
    
    

break;
    
case 5:
    cout << "Please input the height of the Dreickeck: ";
    cin >> hoehe;
    cout << "Please input the width of the Dreickeck: ";
    cin >> breite;
    cout << "The result is: " << a=hoehe*breite*0.5 << endl;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";
    
break;


    if(getch() < 256)
        clrscr();
        goto menu;
    
      
      
    
    
      
}
    return 0;
  }



edit: Codetags eingefügt. Macht das bitte immer selbst!

Dieser Post wurde am 30.09.2003 um 18:05 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.09.2003, 17:59 Uhr
Tommix



Hallo,
die Masse der Fehler behebst Du, indem Du
Zeilen wie

C++:
cout << "The result is:" << b=a-x << endl ;


durch

C++:
cout << "The result is:" << (b=a-x) << endl ;


ersetzt. Mach das mal und siehs Dir dann noch mal an.
Es ist, nebenbei, hilfreich wenn Du postet was genau nicht geht.

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.09.2003, 18:01 Uhr
~(un)wissender
Gast


Wo liegt den der Fehler?
Das haben dir andere auch schon gesagt: du solltest nicht sagen: "Fehler, hier Quellcode, mach richtig!"
Konkretisiere deine Frage bitte.

btw.
Rechen = compute oder calculate
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.09.2003, 18:06 Uhr
~Fat-Tiger
Gast


Die Fehler sind Makiert:

C++:
//Rechner-Com

#include <iostream>
#include <conio>
#include <stdlib>
#include <fstream>
using namespace std;



int main () {

menu:

        int b;
        int a;
    int x;
    int y;
    int z;
    int w;
        int hoehe;
        int breite;
    int zahl;
        int weiter;

    cout << "1)Addieren \n 2)Subtraieren \n 3)Multiplizieren \n 4)Dividieren \n 5)Dreieck";
    cin >> zahl;

    switch(zahl) {
        switch(weiter) {     //Fehler
        
case 1:
    cout << "Please input a number for x :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x*y) <<endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

case 6:
        cout << "want you rechnen with\n\n8)Addieren\n9)Subtrahieren\n10)Dividieren\n11)Multiliezieren";
        cin >> weiter;

break;

case 7:
        if(getch() < 256)
        clrscr();
        goto menu;

break; //Fehler

case 8:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a+x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 9:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a-x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 10:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;


break;

case 11;   // Fehler

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

case 2:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x/y) << endl ;
    cout << "17)DO you want to rechnen\n18)Do you want to restart ";


case 17:
        cout << "want you rechnen with\n\n13)Addieren\n14)Subtrahieren\n15)Dividieren\n16)Multiliezieren:";
        cin >> weiter;

break;

case 18:
        if(getch() < 256)
        clrscr();
        goto menu;

break;       //Fehler

case 13:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a+x( << endl ;    //Fehler
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

break;

case 14:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a-x) << endl ;
    cout << "18)Do you want to restart ";
    cin >> weiter;

break;

case 15:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

    
break;

case 16;           //Fehler

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a*x) << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;



break;


case 3:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x-y) << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";

    




break;




case 4:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x+y) << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";


    
    if(getch() < 256)
        clrscr();
        goto menu;

    

break;   //Fehler
    
case 5:
    cout << "Please input the height of the Dreickeck: ";
    cin >> hoehe;
    cout << "Please input the width of the Dreickeck: ";
    cin >> breite;
    cout << "The result is: " << (a=hoehe*breite*0.5) << endl;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";

break;


    if(getch() < 256)          //Fehler  2*
        clrscr();
        goto menu;






}
    return 0;
  }                 //Fehler



edit mike: code Tags eingefügt
vor dem code [ cpp ] am Ende [ /cpp ] !!!!

Dieser Post wurde am 30.09.2003 um 18:09 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.09.2003, 18:12 Uhr
~(un)wissender
Gast


Da sind alle Fehler raus, bis aus warning:unreachable code, aber das ist design, ändere deine switches!



C++:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <fstream>
using namespace std;



int main () {

menu:

        int b;
        int a;
    int x;
    int y;
    //int z;
    //int w;
        int hoehe;
        int breite;
    int zahl;
        int weiter;

    cout << "1)Addieren \n 2)Subtraieren \n 3)Multiplizieren \n 4)Dividieren \n 5)Dreieck";
    cin >> zahl;

    switch(zahl) {
        switch(weiter) {
        
case 1:
    cout << "Please input a number for x :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x*y) <<endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;
    
case 6:
        cout << "want you rechnen with\n\n8)Addieren\n9)Subtrahieren\n10)Dividieren\n11)Multiliezieren";
        cin >> weiter;

break;

case 7:
        if(getch() < 256)
        clrscr();
        goto menu;

break;

case 8:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a+x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 9:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a-x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

break;

case 10:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

    
break;

case 11:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "6)DO you want to rechnen\n7)Do you want to restart ";
    cin >> weiter;

case 2:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x/y) << endl ;
    cout << "17)DO you want to rechnen\n18)Do you want to restart ";


case 17:
        cout << "want you rechnen with\n\n13)Addieren\n14)Subtrahieren\n15)Dividieren\n16)Multiliezieren:";
        cin >> weiter;

break;

case 18:
        if(getch() < 256)
        clrscr();
        goto menu;

break;

case 13:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a+x) << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

break;

case 14:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a-x) << endl ;
    cout << "18)Do you want to restart ";
    cin >> weiter;

break;

case 15:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a/x) << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;

    
break;

case 16:

    cout << "Please input a number for x :";
    cin >> x;
    cout << "The result is:" << (b=a*x) << endl ;
    cout << "\n18)Do you want to restart ";
    cin >> weiter;



break;


case 3:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x-y) << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";

    




break;




case 4:
    cout << "Please input a number for x  :";
    cin >> x;
    cout << "Please input a number for y  :";
    cin >> y;
    cout << "The result is:" << (a=x+y) << endl ;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";
    

    
    if(getch() < 256)
        clrscr();
        goto menu;
    
    

break;
    
case 5:
    cout << "Please input the height of the Dreickeck: ";
    cin >> hoehe;
    cout << "Please input the width of the Dreickeck: ";
    cin >> breite;
    cout << "The result is: " << (a=static_cast<int>(hoehe*breite*0.5)) << endl;
    cout << " \n\n\n\n\n\n\nPress ENTER to continiue";
    
break;


    if(getch() < 256)
        clrscr();
        goto menu;
    
      
      
    
    
  }    
}
    return 0;
  }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.09.2003, 18:40 Uhr
Pablo
Supertux
(Operator)


Den ganzen Code zu posten nimmt sher viel Platz weg.

Kurz gesagt:
Wenn du eine switch-Anweisung benutzt, darfst du zwischen switch und case nix schreiben.

2. Packe das ganze lieber in Funktionen ein, dann verliert man den Überlick nicht so schnell.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 30.09.2003 um 18:40 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.09.2003, 19:44 Uhr
0xdeadbeef
Gott
(Operator)


Natürlich darfst du zwischen switch und case was schreiben. Ist zwar ungewöhnlich und nur selten sinnvoll, aber es geht. Nie was von Duff's Device gehört?

Wie dem auch sei, ich denke, ich werd mal ein Anschauungsbeispiel für Code-Design geben. Also:

C++:
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std; // wir wollen uns ja nicht am Anfang
                     // gleich mit namespaces rumärgern

double read_variable(string varname) { //Häufig benutzten Code in Funktionen kapseln
  double ret;
  cout << "Bitte geben Sie einen Wert für " << varname << " ein: " << flush;
  cin >> ret;
  return ret;
}

double print_result(double result) {
  cout << "Das Ergebnis ist: " << result << endl;
}

int main() {
  char nochmal;

  do {
    int auswahl;
    double x, y;

    cout << "1) Addieren"       << endl   // Den Code lesbar hinzuschreiben
         << "2) Subtrahieren"   << endl   // ist wichtiger, als man wahr
         << "3) Multiplizieren" << endl   // haben möchte. Schreib immer so,
         << "4) Dividieren"     << endl   // dass du auf einem Blick siehst,
         << "Auswahl: "         << flush; // was dein Code macht.

    cin >> auswahl;

    switch(auswahl) {
    case 1:
      x = read_variable("x");
      y = read_variable("y");
      print_result(x+y);
      break;
    case 2: //kompaktere Schreibmöglichkeit
      print_result(read_variable("x") - read_variable("y"));
      break;
    case 3:
      print_result(read_variable("x") * read_variable("y"));
      break;
    case 4:
      print_result(read_variable("x") / read_variable("y"));
      break;
    }
    
    cout << "Nochmal? (j/n): " << flush;
    cin >> nochmal;
    
  } while(tolower(nochmal) == 'j');
}


@Fat-Tiger: Verstehst du den Code?

--edit: An einer Stelle war noch ein std:: drin, was unnötig war. Lief vorher auch, aber ist so konsistenter.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 01.10.2003 um 12:26 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.09.2003, 20:00 Uhr
Pablo
Supertux
(Operator)


Ich hab einmal eine printf Anweisung ode so zwischen switch und case geschrieben. Und damals hab ich Compilerfehler bekommen. Jetzt weiß ich allerdings nicht mehr, ob Warnung oder Fehler. Jedenfalls habe ich seit dem nie wieder getan. Ich finde, es macht keinen Sinn.


Bearbeitung:
Als ich mit der Programmierung (mit QBASIC & PASCAL) angefangen hab, habe ich alles ohne Gliederung geschrieben, ohne Funktionen oder so. Mein Bruder nannte meinen Code immer den Spagetti-Code, und Recht hat er gehabt. Ich habe mehrmals den Überblick verloren. Denn ich hate 10000000Mal die selbe 3 Zeilen in meinem Programm und vor alles GOTOS, dann hatte ich keine Ahnung mehr, was ich da machte.

Alsi ich mit C angefangen hab, hab ich gelernt in Funktionen zu schreiben und seitdem hab ich keine Probleme mehr mit dem Überblick meiner Programme. Deshalb rate ich dir, die häufig benutzen Zeilen in einer Funktion zusammen zu bringen, das vereinfacht unglaublich die Übersicht und man verliert weniger Zeit mit der Fehlersuche.

--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 30.09.2003 um 20:06 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.09.2003, 20:13 Uhr
0xdeadbeef
Gott
(Operator)


ACHTUNG, fortgeschrittener Code. Als Anfänger muss man das nicht verstehen. Das hier ist ein Duff's Device:

C++:
#include <stdio.h>

int main() {
  int n, i = 0, cnt;
  
  scanf("%d", &n);
  cnt = n/8;

  switch(n % 8) {
    do {
      printf("%d\n", ++i);
    case 7:
      printf("%d\n", ++i);
    case 6:
      printf("%d\n", ++i);
    case 5:
      printf("%d\n", ++i);
    case 4:
      printf("%d\n", ++i);
    case 3:
      printf("%d\n", ++i);
    case 2:
      printf("%d\n", ++i);
    case 1:
      printf("%d\n", ++i);
    case 0:
    } while(cnt--);
  }
}


Das ist gültiges ANSI-C, und es macht in diesem Fall sogar Sinn. Durch das switch springt man in die Schleife rein, an der passenden Stelle, so dass man im Endeffekt nur ein Achtel der Sprunganweisungen hat.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
30.09.2003, 20:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@beefy
ich glaub viel kranker kann man das kaum programmieren
Und du willst mir bei den Arrays was von "komplizierter" derenrenzierung erzählen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: