Wurzelziehprogramm
lima-city → Forum → Programmiersprachen → C/C++ und D
algorithmus
ausnahme
break
compiler
macher
main
mglichkeit
papier
schauen
scherzbold
schreiten
stadium
test
verlangen
wurzel
-
Ich bin zwar erst knapp ?ber dem "Hellow World-Programm Macher" Stadium hinaus, aber ich hatte irgendwie das verlangen mal ein Programm zu machen, das Wurzeln ziehen kann.
Ich habe folgendes in den Compiler eingegeben:
#include <iostream.h> main(){ int zahl; //Die zahl, die der User eingibt int test=0; //Die Zahl, die mit "zahl" verglichen wird int test2=0; //Die Zahl, die immer um 1 erh?ht wird. int langmacher=0; //Eine nutzlose zahl, die nur dazu da ist, damit es lang genug l?uft cout<<"Dieses Programm kann Wurzeln ziehen.\nBitte geben sie ihre Zahl ein:\n>>"; cin>>zahl; while(langmacher=0){ if (zahl=0){ //die Ausnahme cout<<"Die Wurzel aus 0 ist 0...Scherzbold"; //0 wird hiermit break; //erfasst } test2++; //Die n?chste Zahl wird erfasst test=test2^2; //Es wird getestet if (test=zahl){ //Zahl gefunden? cout<<"Die Wurzel aus "<<zahl<<" ist "<<test2<<".\nVielen Dank, das sie dieses Programm benutzt haben.\n"; break; } cout<<"\nZahl noch nicht gefunden, bitte warten.\n"; //kann entfernt werden, diente nur zu Testzwecken } system("pause"); }
Das Problem ist, das bei mir aus irgendeinem Grund die ganze while-Schleife ?bersprungen wird. K?nnt ihr einen Fehler entdecken?
ignoreirt bitte die PHP-Klammern, die hab ich nat?rlich nicht gemacht
Beitrag ge?ndert: 25.9.2006 18:56:55 von laberlu -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Soweit ich wei? muss es
while(langmacher==0)
hei?en.
Das Gleiche gilt auch f?r die If-Bedingungen -
ah, danke, das war der fehler.
Ich krieg zwar noch mist raus (die Wurzel von 16 ist 18 :o) aber der Fehler ist schon mal weg
Beitrag ge?ndert: 25.9.2006 19:29:32 von laberlu -
jup, hab ich schon schon gemacht, jetzt klappts, komische Welt :D
Wei? zuf?llig wer, wie man Von int in float umwandelt?
wenn ich einfach eine floatvariable mache und ihr den Wert einer Integervariable zuweise wird die Integervariable in eine floatvariable umgewandelt und hat dadurch einen anderen Wert.
Gab es nicht einen Befehl um das zu machen? -
HI...
die wurzel bekommst duso:
#include <math.h>
....
float wurzel=sqrt(zahl);
cout<<wurzel;
.... -
ixh kenn mich mit den ganzen Bibloteken nicht so aus :D
-
hm, Umwandlungen von Ganzzahltypen nach Gleitkomma geschieht meines Wissens automatisch.
Willst du das ganze explizit hinschreiben, sieht das so aus:
int i = float(92343,676);
Der Nachkommateil wird dabei abgeschnitten
-
hm, Umwandlungen von Ganzzahltypen nach Gleitkomma geschieht meines Wissens automatisch.
Willst du das ganze explizit hinschreiben, sieht das so aus:
int i = float(92343,676);
Der Nachkommateil wird dabei abgeschnitten
Ne, es muss hei?en
int i = (int)92343,676;
In Klammern schreibt man immer das, wohin konvertiert werden sol (man nennt das auch Cast). Allerdings gehen dabei mitunter Daten verloren. Allgemein sollte man sich auf Gleitkommadaten nicht verlassen, und vor allem sollte man NIEMALS Gleitkommawerte auf Gleicheit pr?fen :-)
MfG,
thw
EDIT: Okay, was ich beschrieben hab ist ein C-Style-Cast. In C++ funktioniert auch die erstgenannte Methode. Ist allerdings in dem Fall ein bisschen sinnfrei, da unn?tigerweise Daten durch den Speicher geschaufelt werden. Da k?nnte man es vielleicht lieber direkt in int konvertieren: int i=int(92343,676);
Beitrag ge?ndert: 11.10.2006 19:58:40 von thw -
Hab gerade den Thread durchgelesen. Für alle die sich hier irgendwie inspirieren wollen:
while(langmacher) ist ja schrecklich
while(true) führt zu einer Endlosschlaufe.
EDIT: Falls der Thread schon zu alt ist, die Gulden sind mir eh egal. Ich wollts zur erwähnen...
Beitrag geaendert: 25.2.2007 21:45:15 von nigolaz -
Mathematisch gesehen?
Ein eigenes Programm zu schreiben, lohnt sich nur zu Übungszwecken, da es schon was in der Richtung gibt. <math.h> oder so, glaub ich. x^1/2 wäre auch ne möglichkeit... -
Ich empfehl dir mal, den algorithmus auf nem blatt papier vorzurechnen... schritt... für.... schritt...
und schau dir nochmal die synthax für schleifen an, oh und dein cout am anfang sieht leicht vergurkt aus
lg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage