Zeigt zu viel im Fenster.
-
Naja, ich weiss ja nicht, aber mich wunderts dass du den Code compilieren kannst , wenn du nicht sagst woher die funktionen cin und cout stammen.
Denn mit using namespace std; machst du in deinem Programm alle Funktionen
die im Namespace(namensraum) std stehen, bekannt.
Dies ist nötig da dein Compiler sonst cin und cout nicht kennen kann.
Also um deine Frage zu beantworten: JA ist es.
btw du solltest include <cstdlib> und nicht stdlib.h nehmen und evtl diese Zeile
weglassen und system("Pause"); durch zB cin.get(); ersetzen ..
Siehe faq
-
nur mal so am Rande: Auch die ersten 4 haben einen Umfang
-
So habe es ersetzt. Hm.. habe immer noch ein Problem mit den Zahlen. wenn ich "int" brichte r ebi Kommerzahlen ab. Ich brauche aber was um auch Kommerzahlen zu speichern.
//edit: ich weiss ^^ habe diese sachen aus eineem mathebuch übernommen.^^ Naja wir noch erweitert.
-
Ahja wie stelle ich es an das, wenn man am Anfang 0 eingibt, dass das Programm sich schießt?
-
öhm: Kommerzahlen kann man weder in c++ noch sonst einer Sprache darstellen.
Wenn du aber Kommazahlen meinst nimm float statt int.
Denn int ist ein ganzzahliger Typ und float einer für Fließkommazahlen.zu deinem Menu, falls du switch kennst und ggf string könntest du es deutlich verkürzen . hier mal eine ungetestete Alternative:
#include <iostream> #include <cstdlib> using namespace std; int main(){ int Menue1; string figure[]={"das rechteck","das Parallelogramm","das dreieck","das trapez", "den kreis","den Sektor"," den quader","das prisma","den zylinder", "die pyramide","den kegel","die kugel"}; cout<<"******************************************************************************"<<endl; cout<<"* Papa_Baer Modul 1# (Geometrie) *"<<endl; cout<<"******************************************************************************"<<endl; cout<<"[0]Beenden "<<endl; cout<<" >>>>>>>>>>1-5 2D<<<<<<<<<<"<<endl; cout<<"[1]Rechteck"<<endl; cout<<"[2]Parallelogramm"<<endl; cout<<"[3]Dreieck"<<endl; cout<<"[4]Trapez"<<endl; cout<<"[5]Kreis: Flaecheninhalt"<<endl; cout<<"[6]Kreisausschnit (Sektor)"<<endl; cout<<"______________________________________________________________________________"<<endl; cout<<" >>>>>>>>>>7-13 3D<<<<<<<<<<"<<endl; cout<<"[7]Quader"<<endl; cout<<"[8]Prisma(gerades)"<<endl; cout<<"[9]Zylinder"<<endl; cout<<"[10]Pyramide"<<endl; cout<<"[11]Kegel"<<endl; cout<<"[12]Kugel"<<endl; cin>>Menue1; if(Menue1<=0) return 0; cout<<Menue1<<endl; cout<<"Sie haben "<<figure[Menue1-1]<<" gewaehlt."<<endl; switch(Menue1){ case 1: cout<<"Flaecheninhalt:A=a*b"<<endl; cout<<"Umfang:--------"<<endl; break; case 2: cout<<"Flaecheninhalt:A=g*h:2*h"<<endl; cout<<"Umfang:--------"<<endl; break; case 3: cout<<"Flaecheninhalt:A=g*h:2*h"<<endl; cout<<"Umfang:--------"<<endl; break; case 4: cout<<"Flaecheninhalt:A=a+c:2*h"<<endl; cout<<"Umfang:--------"<<endl; break; case 5: cout<<"Flaecheninhalt:A=Pi*h*h=Pi*d*d/4"<<endl; cout<<"Umfang:U=Pi*d=2Pir"<<endl; break; case 6: cout<<"Kreisausschnitt:A=Pi*r*r*Alpha/360*360"<<endl; cout<<"Umfang:U=Pi*r*r*Alpha/180*180"<<endl; break; case 7: cout<<"Volumen: V= a*b*c"<<endl; cout<<"Oberflaeche: O=2ab+2ac+2bc"<<endl; break; case 8: cout<<"Volumen: V=G*h"<<endl; cout<<"Oberflaeche: O=2G+M"<<endl; break; case 9: cout<<"Volumen: V=Pi*r*r*h"<<endl; cout<<"Oberflaeche: O=M+2G=2*Pi*r*h+2*Pi*r*r"<<endl; break; case 10: cout<<"Volumen: V=1/3*G*h"<<endl; cout<<"Oberflaeche: O=G+M"<<endl; break; case 11: cout<<"Oberflaeche: O=G+M=Pe*r*r+Pi*r*S"<<endl; cout<<"Mantelflaeche: M=Pi*r*s"<<endl; break; case 12: cout<<"Volumen: V=4/3*Pi*r*r*r"<<endl; cout<<"Oberflaeche: O=4*Pi*r*r"<<endl; break; } return 0; }
-
mose schrieb:
Ahja wie stelle ich es an das, wenn man am Anfang 0 eingibt, dass das Programm sich schießt?
if(Menue1==0) return 0; //
-
Also am
schuaen wir mahl ob ich das ganz verstanden habe.
string figure[] = reservier Speicher oder?
cout<<"Sie haben "<<figure[Menue1]<<" gewaehlt."<<endl; = Ind er Mittw wird dann etwas von oben eingefügt doer?switch(Menue1)= Ka
case 1: Wird dann etwas vom gespeicherten eingefügt.
-
Naja ich sagte wenn du switch kennst ..gg
mit string figure[]={...}
definiere ich ein array von strings die den namen der Körper haben die du später benutzt.cout<<"Sie haben "<<figure[Menue1-1]<<" gewaehlt."<<endl;
hiermit kannst du die gleiche ausgabe machen wie bei dir denn bei der eingabe 1
bekommst du figure[0] ausgegeben . Dies ist der erste string im Array also "rechteck" , da der erste Index eines Arrays 0 und nicht 1 ist.switch(Menue1)
du betrachtest hiermit den wert der Variablen Menue1mit "case wert :" kannst du dann das gleiche machen wie mit
if(Menue1==wert)so kürzt du dein Programm nur ein wenig ab.
also machst du mit case 1: das gleiche wie du vorher mit
if(Menue1==1) gemacht hättest
-
^^ Das ist cool
finde das gut
So
jetzt muss man nur noch das Problem mit den Kommerzahlen lösen. 
-
shapeless schrieb:
öhm: Kommerzahlen kann man weder in c++ noch sonst einer Sprache darstellen.
Wenn du aber Kommazahlen meinst nimm ->floatstatt
intDenn int ist ein ganzzahliger Typ und float einer für Fließkommazahlen.
Wie gesagt...
-
JO danke.
die Sache geht nicht.
string figure[]={"das Rechteck","das Parallelogramm","das Dreieck","das Trapez",
"den Kreis","den Sektor"," den Quader","das prisma","den zylinder",
"die pyramide","den kegel","die kugel"
-
hast du
};am ende vergessen ?
und bitte : wenn was "nicht geht" ssg mir bitte was du damit meinst.
Compiliert dein Code nicht ? Wenn dem so ist poste bitte deine Fehlermeldungen.ggf musst du mal
#include<string>oben hinzufügen.
also weiter kann ich dir erst helfen wenn du mir sagst "was nicht geht" bzw Was für einen Fehler du bekommst
-
So die Fehler die er mir zeigt
In function
int main()': 35: parse error before;'
41: break statement not within loop or switch
42: parse error before;' 48: break statement not within loop or switch 49: parse error before;'
55: break statement not within loop or switch
56: parse error before;' 62: break statement not within loop or switch 63: parse error before;'
69: break statement not within loop or switch
70: parse error before;' 76: break statement not within loop or switch 77: parse error before;'
83: break statement not within loop or switch
84: parse error before;' 90: break statement not within loop or switch 91: parse error before;'
97: break statement not within loop or switch
98: parse error before;' 104: break statement not within loop or switch 105: parse error before;'
112: break statement not within loop or switch
113: parse error before `;'
149: parse error at end of input
-
dann zeig mir doch deine Zeile 35 gleich mal.
also am besten die drumherum auch also 30-40,aber bitte kennzeichne die Zeile mal.
Parse error heisst meistens du hast ne klammer zu wenig , eine nicht geschlossen oder sowas in der richtung. oder semikolon vergessen ...
-
{case 1; cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=a*b"<<endl; cout<<"Umfang:--------"<<endl; break; case 1; cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=g*h"<<endl; cout<<"Umfang:--------"<<endl; break; case 3; cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=g*h:2*h"<<endl; cout<<"Umfang:--------"<<endl; break; case 4;so ist es.
-
nach den cases kommt ein Doppelpunkt und kein Semikolon.
also
switch(variablenname) { case 1: tu dies;break; case 2: tu das ;break; }
-
mose schrieb:
[cpp]
{case 1;
cout<<"Formeln"<<endl;
cout<<"Flaecheninhalt:A=ab"<<endl;
cout<<"Umfang:--------"<<endl;
break;
case 1; //warum 2x case 1??
cout<<"Formeln"<<endl;
cout<<"Flaecheninhalt:A=gh"<<endl;
cout<<"Umfang:--------"<<endl;
break;
case 3;
cout<<"Formeln"<<endl;
cout<<"Flaecheninhalt:A=g*h:2*h"<<endl;
cout<<"Umfang:--------"<<endl;
break;
case 4;
[/cpp]
-
Ahso gut
