#1
|
||||
|
||||
[c++]Macht nicht das was er soll.
Also. Hab mir was mit case und switch überlegt aber er macht es nicht.Er soll in den zweiten bereich springen wo case 2: ist.Es ist egal das bei den anderen Sachen nichts ist. Das muss ich noch schreiben.. ich weiss nicht wieso =( sitze schon 30min dran und ich weiss nicht weiter. Bitte nur bei dem Problem helfen keine Tipps und so.Danke.
Code:
#include <iostream.h> #include <stdlib.h> int main() { cout<<"******************************************************************************"<<endl; cout<<"* Papa_Baer (Mathe) *"<<endl; cout<<"******************************************************************************"<<endl; int P1; cout<<"[ 1]Geometrie"<<endl; cout<<"[ 2]Binomische Formeln"<<endl; cout<<"[ 3]Zinsrechnung"<<endl; cout<<"[ 4]Zinseszinsrechnung"<<endl; cout<<"[ 5]Satz des Pythagoras"<<endl; cout<<"[ 6]Trigonometrische Beziehungen"<<endl; cout<<"[ 7]Infos"<<endl; cin>>P1; //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) case 1: //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) { case 2: int b1; cout<<"******************************************************************************"<<endl; cout<<"* Papa_Baer Modul (binomische Formeln) *"<<endl; cout<<"******************************************************************************"<<endl; cout<<"[1]Die erste binomische Formel"<<endl; cout<<"[2]Die zweite binomische Formel"<<endl; cout<<"[3]Die dritte binomische Formel"<<endl; cout<<"[4]Infos zu den binomischen Formeln"<<endl; cin>>b1; break; switch(b1) { case 1: float a; float b; cout<<"Bitte geben Sie den Faktor a an und dann b."<<endl; cin>>a; cin>>b; cout<<"Das Ergebnis ist:"<<((a+b)*(a+b))<<endl; cout<<"Formel:("<<a<<"+"<<b<<")*("<<a<<"+"<<b<<")="<<a*a<<"+"<<a*b+a*b<<"+"<<b*b<<"."<<endl; break; }; switch(b1) { case 2: float a; float b; cout<<"Bitte geben Sie den Faktor a an und dann b."<<endl; cin>>a; cin>>b; cout<<"Das Ergebnis ist:"<<((a+b)*(a+b))<<endl; cout<<"Formel:("<<a<<"-"<<b<<")*("<<a<<"-"<<b<<")="<<a*a<<"+"<<a*b+a*b<<"-"<<b*b<<"."<<endl; break; }; switch(b1) { case 3: float a; float b; cout<<"Bitte geben Sie den Faktor a an und dann b."<<endl; cin>>a; cin>>b; cout<<"Das Ergebnis ist:"<<((a+b)*(a-b))<<endl; cout<<"Formel:("<<a<<"+"<<b<<")*("<<a<<"-"<<b<<")="<<a*a<<"-"<<b*b<<"."<<endl; break; }; switch(b1) case 4: cout<<"Um was geht es bei den binomischen Formeln überhaupt?"<<endl; cout<<"Die binomischen Formeln - es gibt drei Stück davon - sind ein Hilfsmittel zum Ausmultiplizieren und Ausklammern. Beim Ausmultiplizieren sparen sie Zeit, beim Ausklammern sind sie oft unersetzlich."<<endl; cout<<"Schauen wir uns dazu ein Beispiel an: (3a+4b)^2 = (3a+4b)*(3a+4b)"<<endl; cout<<" = 3a*3a+3a*4b+3a*4b+3a*"<<endl; cout<<" = 9a^2+12ab+12ab+16b^2"<<endl; cout<<" = 9a^2+24ab+16b^2"<<endl; cout<<""<<endl; cout<<"So konnten wir schon bisher durch Ausmultiplizieren die Klammer auflösen. Es geht uns nun aber darum, zu überlegen, ob wir nicht vielleicht die Zwischenschritte einsparen und in Zukunft direkt das Ergebnis hinschreiben können."<<endl; break; }; //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) case 3: //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) case 4: //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) { case 5: cout<<"Der Satz des Pythagoras ist einer der fundamentalen mathematischen Saetze der euklidischen Geometrie: Fuer die Seiten jedes ebenen rechtwinkligen Dreiecks gilt die Beziehung a2 + b2 = c2, wobei a und b für die Längen der winkelanliegenden Seiten, der Katheten, stehen und c die Laenge der dem rechten Winkel gegenueberliegenden Seite, der Hypotenuse, darstellt. In der modernen Mathematik ist der Satz aufgrund seiner Aussagen zum Konzept des Senkrechtstehens bedeutsam."<<endl; break; }; //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) case 6: //############################################################################################# //############################################################################################# //############################################################################################# switch(P1) { case 7: cout<<"##Infos##"<<endl; cout<<"Was ist Papa_Baer?"<<endl; cout<<" Papa_Baer ist ein Programm das dazu da ist:"<<endl; cout<<" einem bei den Mathe Hausaufgaben zu helfen."<<endl; cout<<"Warum wurde diese Programm geschrieben?"<<endl; cout<<" Ich hab das Programm nur geschrieben um C++ zu lernen."<<endl; cout<<"Darf ich das Programm verendern?"<<endl; cout<<" Ja, du darfst das Programm verendern. Aber du musst dann die neue"<<endl; cout<<" Version mir dann zuschicken."<<endl; break; }; //############################################################################################# //############################################################################################# //############################################################################################# system("PAUSE"); return 0; }
__________________
|
#2
|
||||
|
||||
ich mag switch und case net, weil ich das meiste mit if und else.
Also jede case(s) müssen mit einem break beendet werden. Was ich glaube ich bei dir nicht gsehen habe. zb.: switch case case case break; case case break; case case break; default Aber wie gesagt, ich mach net soviel mit switch und case ![]() EDIT: Wenn du einmal eine Switch abfrage für die Variable P1 machst, musst du weiter unten net wieder "switch(P1)" schreiben, da mit break ja unterbrochen wird
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#3
|
||||
|
||||
JO danke das wars
![]() EDIT:// Jetzt taucht es in der 2ten Spalte auf -.-° EDIT// Ich meine den Fehler-.-
__________________
Geändert von mose (13-09-2005 um 20:39 Uhr). |
#4
|
||||
|
||||
beherzige trotzdem mein "EDIT" bitte
![]()
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#5
|
||||
|
||||
da isn bisschen mehr falsch... 2 mal switch dannn n case dann wieder n switch keine geschweiften klammern... öhm... räum da erst mal n bisschen auf. dann kann man weiter helfen
__________________
C3H6O Aceton Burning squirrel Und nicht vergessen: Dieser Beitrag hat Superkuh-Kräfte! |
#6
|
||||
|
||||
Wie oben schon gesagt ist das noch nicht fertig. -.-° die ganzen anderen Sachen ignorieren. Nur das er in die zweite Spalte springen soll und dort dann weiter machen soll. Aber in der zweiten spalte mach der bei der auswahl nicht weiter
__________________
Geändert von mose (13-09-2005 um 20:54 Uhr). |
#7
|
||||
|
||||
Da ich mir gerade denke, dass du anfängst zu programmieren gebe ich dir maln tipp. Wenn du ein Programm zum laufen bringst mit switch und case und dann denkst, na, jetzt kann ichs, versuch zuerst mal jede zeile in deinem quellcode zu erklären. Dir selber, am besten, damit überprüfst du dich eigentlich selbst ob du es verstanden hast und beherrscht. Kenn noch viele Leute aus meiner klasse, die mich oft fragten wie das geht... ah ok, ah ok, ja ne is klar... ok, erklär mir wieso? .. ähm, wie war das nochmal
![]() Ne, soll kein scherz sein, aber wenn du viel verstehst, dann kannste auch umso mehr probieren wenn dir mal nen fehler passiert...
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#8
|
||||
|
||||
Joc ich verstehe das ja ^^. Habs ja auch geschrieben :P aber mir pasieren oft Tippfehler. =( Aber habs hinbekommen.
__________________
|
#9
|
||||
|
||||
JEDES case muss ( naja muss nicht, aber sonst gibt es kaum nen Sinn )
mit einem break;( raus aus dem switch ) oder einem return; ( raus aus der Funktion ) abgeschlossen werden, ansonsten werden alle weiteren case auch ausgeführt ( glaub ich zumindestens ![]() Code:
switch(i) { case 1: bla(); break; case 2: blub(); return; default: error(); break; } ![]() |
#10
|
||||
|
||||
ich glaube, "default" braucht nicht unbedingt ein break, wäre ja irgendwie sinnlos
![]()
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#11
|
||||
|
||||
wenn default als letztes steht und keine weiteren code-Zeilen innerhalb der
switch-Anweisung sind ![]() nen return macht Sinn, wenn die Funktion nen Rückgabewert hat |
#12
|
||||
|
||||
ein return; in main()
(was ja zweifelsohne auch in nem switch so ist) - Was würde das bewirken ? ![]() |
#13
|
||||
|
||||
ja klar, return liefert auch was zurück... obwohl... return 0;
![]()
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#14
|
||||
|
||||
Zitat:
Zitat:
Typ void ist ![]() also bei void main() einfach nur return, bei int main() dann halt return 1234456; Geändert von Gonzo (13-09-2005 um 21:34 Uhr). |
#15
|
||||
|
||||
ALSO. Ich wollte nicht wieder was auf machen. Also, habe eine Formel die ich für C++ umschreiben muss da es keine ^ kann.
Formel: K*(1+p/100)^n wie müsste das bei c++ ausschauen ?
__________________
|
#16
|
||||
|
||||
es gibt exponentialfunktionen in c. Das sollte die einzig schwere sachen zu sein. schau mal nach in der hilfe, mir fällt der befehl nämlich gerade nicht ein.
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#17
|
||||
|
||||
also in PHP heissts
int pow(BASIS, EXPONENT); |
#18
|
||||
|
||||
jo, danke eeb. Ich bin mir zu 99 prozent sicher das ins c++ die funktion auch pow(int x) glaube ich heißt
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#19
|
||||
|
||||
nein...
unter c: pow(double x, double y) und unter c++ gibts noch ne überladung für float.
__________________
C3H6O Aceton Burning squirrel Und nicht vergessen: Dieser Beitrag hat Superkuh-Kräfte! |
#20
|
||||
|
||||
in C heißt es
Code:
pow(basis, exponent); Code:
#include <math.h> Aus "P1" könntest Du dann z.B. "calculationSelectedByUser" machen, oder irgendwas anderes, aber eben etwas aussagekräftiges. Für Funktionen gilt das gleiche. Aber das sind nur Konventionen, keine Vorschrift. Mit einem Editor der Syntax-Vervollständigung beherrscht ist das auch kaum Mehrarbeit beim tippen, aber es erleichtert das Verstehen des Codes ungemein, speziell jemandem der ihn nicht selbst geschrieben hat. Es ist aber sehr hilfreich sich schon früh einen sauberen Stil anzugewöhnen., z.B. auch was das Einrücken von Unterbereichen angeht. |
#21
|
||||
|
||||
Zitat:
du nerviger 1% du ![]()
__________________
cu kaki100 --> Co-Leader Seit13.08.2002 Mitglied bei *GKC* ![]() |
#22
|
||||
|
||||
Hm müsste das dann so aussehen ?
Code:
cout<<"Kapital nach "<<z4<<" Jahren: "<<(z2*(pow(double (((1+z3)/100), double z4));
__________________
|
#23
|
||||
|
||||
nein. das double brauchst du da nicht mit zu schreiben, wenn du die variablen voher schon deklariert hast. und ich geh mal davon aus, dass z4 (was auch immer das sein mag
![]()
__________________
C3H6O Aceton Burning squirrel Und nicht vergessen: Dieser Beitrag hat Superkuh-Kräfte! |
#24
|
||||
|
||||
LoL irgentwie ist das komisch. 0o Des kommen zu große Zahlen raus =( was hab ich falscj gemacht . Ich meine ind er 5ten Spalte.
Code:
#include <iostream.h> #include <stdlib.h> #include <math.h> int main() { int Z1; cout<<"#####Zinsrechnung/Prozentrechnung#####"<<endl; cout<<"[1]Prozentrechnung."<<endl; cout<<"[2]Prozentrechnung wenn man mehr als 100% hat."<<endl; cout<<"[3]Zinsen nach x Tagen."<<endl; cout<<"[4]Zinsen nach x Jahren."<<endl; cout<<"*****Zinseszinsrechnung*****"<<endl; cout<<"[5]Zinsen nach x Jahren."<<endl; cin>>Z1; //############################################################################## //############################################################################## switch(Z1) { case 1: float Pr; float PR; cout<<"Bitte geben Sie die 100% an und dann wie viel Prozent es seien sollen:"<<endl; cin>>Pr; cin>>PR; cout<<"Ein Prozent ist: "<<(Pr/100)<<endl; cout<<PR<<"% von "<<Pr<<" sind: "<<(Pr/100*PR)<<endl; break; }; //############################################################################## //############################################################################## switch(Z1) { case 2: float P; float P2; float P3; cout<<"Bitte geben Sie die Prozent an,dann die Zahl und dann wie viel Prozent es seien sollen.."<<endl; cin>>P; cin>>P2; cin>>P3; cout<<"Ein Prozent ist: "<<(P2/P)<<endl; cout<<P3<<" Prozent von "<<(P2/P*100)<<endl; cout<<"100% sind: "<< (P2/P*100)<<endl; break; }; //############################################################################## //############################################################################## switch(Z1) { case 3: float Z2; float Z3; float Z4; cout<<"Bitte geben Sie das Guthaben an,dann wie viel Prozent Zinsen es gibt und am Ende wie viele Tage es laeuft"<<endl; cin>>Z2; cin>>Z3; cin>>Z4; cout<<"Man bekommt "<<(Z2/100*Z3)<<" im Jahr."<<endl; cout<<"Man bekommt "<<(Z2/100*Z3/360)<<" am Tag."<<endl; cout<<"Man bekommt "<<(Z2/100*Z3/360*Z4)<<" in "<<(Z4)<<" Tagen"<<endl; cout<<"Man hat nach einem Jahr ein Guthaben von "<<(Z2+(Z2/100*Z3))<<"."<<endl; break; }; //############################################################################## //############################################################################## switch(Z1) { case 4: float zz2; float zz3; float zz4; cout<<"Bitte geben Sie das Guthaben an,dann wie viel Prozent Zinsen es gibt und am Ende wie viele Jahre es laeuft"<<endl; cin>>zz2; cin>>zz3; cin>>zz4; cout<<"Man bekommt "<<(zz2/100*zz3*zz4)<<" in "<<zz4<<"."<<endl; cout<<"Man hat nach einem Jahr ein Guthaben von "<<(zz2+(zz2/100*zz3*zz4))<<"."<<endl; break; }; //############################################################################## //############################################################################## switch(Z1) { case 5: float z2; float z3; float z4; cout<<"Bitte geben Sie das Kapital an,dann wie viel Prozent Zinsen es gibt und am Ende wie viele Jahre es laeuft"<<endl; cin>>z2; cin>>z3; cin>>z4; cout<<"Kapital nach "<<z4<<" Jahren: "<<(z2*(pow( (1+z3)/100, z4))); break; }; //############################################################################## //############################################################################## system("PAUSE"); return 0; };
__________________
|
#25
|
||||
|
||||
puh deine variablennamen sind grausam.
ich denk mal du meinst zeile und nicht spalte. da fängt main an. was soll denn daran falsch sein?
__________________
C3H6O Aceton Burning squirrel Und nicht vergessen: Dieser Beitrag hat Superkuh-Kräfte! |
#26
|
||||
|
||||
Ich denk mal er meint das case 5:
![]() Erst mal ne kleine Anmerkung : Warum machst du soviele switch für die selbe Variable ? Einmal würde doch reichen ![]() Ansonsten ist deine Formel zur Berechnung wohl falsch, es kommt mir zumindestens merkwürdig vor dass die Laufzeit als Exponent angegeben wird |
#27
|
||||
|
||||
Das die Laufzeit der Exponent ist, stimmt schon, denke ich.
Berechnet werden die Zinsen ja so: Kapital * [(1 + Zinssatz) ^ Laufzeit] wenn der Zinssatz als Kommazahl angegeben wird (0.04 für 4 Prozent). Wenn du davon ausgehst, dass der Benutzer eher 4 eingibt, dann sollte sie halt Kapital * [((100 + Zinssatz) / 100) ^ Laufzeit] lauten. Zu deiner Verwendung von switch, möchte ich noch sagen, wie es aussehen sollte. ![]() Code:
switch (Variablenname) { case 1: Anweisungen break; case 2: Anweisungen break; [...] default: Anweisungen break; } // ################################################ verzichten. ![]() Und bei den Variablenamen solltest dir auch was einfallen lassen. Für die Zinsrechnung wären z.B. "Kapital", "Zinssatz" und "Laufzeit" ganz brauchbare Namen. ![]()
__________________
|
#28
|
||||
|
||||
OK. Also muss ich die Fariablen gescheit bennenen. =) werd ich dann auch machen
![]() Also, er spring nur am anfang zu 2 und 1 also zu den binomischen Formeln und zur geometrie. Aber sonst nirgenswo hin. //EDIT: problem gelöst. ne {} war falsch gesetzt. 2//EDIT: Wie ziehe ich denn ne Wurzel bei c++?
__________________
Geändert von mose (18-09-2005 um 09:28 Uhr). |
#29
|
||||
|
||||
Generell könntest du danach auch Googeln oder irgendeine passende Referenz im Internet suchen.
![]() In der math-library gibt's sqrt(float); Damit kannst du die Quadratwurzel aus einer Fließkommazahl ziehen. Wenn du z.B. die 3. Wurzel ziehen willst, dann solltest du vermutlich pow(float, float); verwenden. Also für die 3. Wurzel z.B. float(x, 1/3);
__________________
|
#30
|
||||
|
||||
OK danke ^^ . Stimmt könnte bei googel suchen. Aber wäre nicht sos chönw ie hier nach zu fragen
![]()
__________________
|