Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Tu dir selbst einen gefallen und rück den Kram bei jeder neuen geschweiften Klammer, die du aufmachst, einen Tab weiter ein. So sieht kein Mensch, wann wo was beginnt oder aufhört...
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
#include <iostream> using namespace std; #include <math.h> #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main() { double a; //Gegebene Seite int d; //wahrheitswert int x; //formelwert double y; //zwischeninteger nr.1 double z; //zwischeninteger nr.2 double z1; //zwischeninteger nr.3 double z2; //zwischeninteger nr.4 double z3; double z4; double z5; double z6; double z7; double z8; double z9; double test1; double test2; double test3; double f; double f1; long double schleife1; long double schleife2; long double finalif1; long double finalif2; int i; int I; int loop; long double finaldone; for (;;){ loop = 0; x = 2; i = 1; I = 0; cout.precision(15); cout << "Bitte die Seitenlänge von A angeben:\n"; cin >> a; if(a >= 0) //Hier wird ein Errorloop benötigt für else cout << "Ist die gegebene Seite die Hypothenuse? (0=n/1=j)\n"; // auf ja/nein tastenbestätigung ändern cin >> d; if(!(d != 0 && d != 1)) //Hier wird ein Errorloop benötigt für else if(d == 1) y = pow(a, x); z = y/2; z1 = sqrt(z); z6 = z1*10; z7 = z6+0.5; z8 = floor(z7); z9 = z8/10; z2 = z9/10; z3 = pow(z2, x); z4 = z3*2; z5 = sqrt(z4); f1 = 10*z5+0.5; f = floor(f1)/10; test1 = pow(z9-f, x); test2 = pow(z9+f, x); test3 = test1+test2; schleife1 = z9-f; schleife2 = z9+f; if (test3 == a*a){ cout << "Seite A:" << z9-f << "\n"; cout << "Seite B:" << z9+f << "\n"; cout << "Ja " << test3 << "\n\n";} if (!(test3 == a*a)){ //cout << "Nein " << test3 << " " << f1 << "\n\n"; schleife1 = schleife1*10; schleife1 = schleife1+0.5; schleife1 = floor(schleife1); schleife1 = schleife1/10; schleife2 = schleife2*10; schleife2 = schleife2+0.5; schleife2 = floor(schleife2); schleife2 = schleife2/10; for (;;){ if (loop == 0){ schleife1 = schleife1-0.01;} if (loop == 1){ schleife2 = schleife2-0.01;} finalif1 = schleife1*schleife1; finalif2 = schleife2*schleife2; finaldone = finalif1+finalif2; cin.get(); if (i == 1 && I == 0){ I = 1; i = i+1; system("cls"); cout << "Bitte warten.\n" << schleife1 << " " << schleife2 << "\n" << finalif1 << " " << finalif2 << "\n" << finaldone << " " << a*a << "\n";} if (i == 2 && I == 0){ I = 1; i = i+1; system("cls"); cout << "Bitte warten..\n" << schleife1 << " " << schleife2 << "\n" << finalif1 << " " << finalif2 << "\n" << finaldone << " " << a*a << "\n";} if (i == 3 && I == 0){ I = 1; i = 1; system("cls"); cout << "Bitte warten...\n" << schleife1 << " " << schleife2 << "\n" << finalif1 << " " << finalif2 << "\n" << finaldone << " " << a*a << "\n";} if (loop == 0){ loop = 1;} else{ loop = 0;} I = 0; if (finaldone == a*a){ goto ende;} ende:{ cout << "Seite A:" << schleife1 << "\n"; cout << "Seite B:" << schleife2 << "\n"; cout << "Ja " << "\n\n";}}}} //cout << finalif1 << " " << finalif2; return 0; } |
Treue Seele
Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft
Treue Seele
Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft
Außer der Formatierung solltest du dir über ein paar weitere Dinge klar werden.
Du mischst C und C++. Du hast eine Menge nichtssagender Variablen die einfach alle am Anfang der Main deklariert sind. Wenn du nur kurz ein Zwischenergebnis speichern willst, dann würde ich dieses Ergebnis auch nur an dieser Stelle deklarieren. Was genau willst du berechnen? Irgendwas mit einemDreiecke wahrscheinlich, aber was genau (hilft uns auch dir zu helfen wenn wir genau wissen was das werden soll)? Kannst du nicht eventuell Dinge in Funktionen mit aussagekräftigen Namen auslagern? Das macht es viel leichter zu lesen/zu verstehen. Du hast auch Kommentare die nicht zum Code passen.
Von welcher Formel und welchen Abweichungen spricht du eigentlich genau?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »StupidWiseMan« (06.01.2014, 18:28)
An der Stelle muss ich dir sagen hatte es bevor ich den zuerst geposteten Abschnitt verfasst hatte teilweise funktioniert, nun funktiniert es überhaupt nicht mehr. Dabei gehörten natürliche Zahlen mit zu den nicht funktionierenden Werten.Fließkommazahlen niemals auf Gleichheit prüfen. Durch die interne Darstellung wirst du quasi immer leichte Ungenauigkeiten haben. 0 ist nunmal nicht gleich 0.000000000000000000000000000001.
Trotzdem würde ich dir dringend empfehlen das komplette Programm zu überdenken.
Werbeanzeige