Problem mit bool initializing
-
@HeavyStrike sagte in Problem mit bool initializing:
um erlich zu sein muss ich das morgen abgeben
In dem Fall nimm bitte deinen zuletzt geposteten Code, tausche
<cstdlib>
gegen<string>
. Dann packst Du Zeilen 38 und 39 so wie sie sind unter dasswitch
in diefor
-Schleife. Ist zwar nicht perfekt aber funktioniert für viele Eingaben. Viel Glück.
-
@Swordfish Vielen Dank für deine Hilfe!
und ein Gute Nacht
-
@HeavyStrike sagte in Problem mit bool initializing:
Nicht den Kopf hängen lassen. Mach jetzt hinne und probiers aus. Wenns nicht tut Zeig nochmal deinen Code.
-
@Swordfish Die Ausgabe sieht so aus:
Sie haben den UmwandlerVon Hexadezimal zu Dezimal
ausgewaehlt
Hex in Dez - Umrechnung
Geben Sie Ihre Hexadezimalzahl ein
1b
Laenge2
11
1
67Ergebnis:17179
Process exited after 2.532 seconds with return value 0
Drücken Sie eine beliebige Taste . . .code ist derzeit (Empfehlung es ist in case 3, damit du nicht suchen musst):
#include <iostream> #include <cstdlib> #include <String> using namespace std; int main(int argc, char** argv) { char Antwort; int zahl; int count = 0, rest[32]; //---------Ausgabe der Vorinformationen------------------------------- cout <<"Dies ist der Multiumrechner."<<endl ; cout <<"Waehlen sie Ihre gewuenschte Umrechnungsart aus."; cout <<"\nVon Dezimal zu Hexadezimal : 1" << endl; cout <<"Von Dezimal zu Binaer : 2" << endl; cout <<"Von Hexadezimal zu Dezimal : 3" << endl; cout <<"Von Hexadezimal zu Binaer : 4" << endl; cout <<"Von Binaer zu Hexadezimal : 5" << endl; cout <<"Von Binaer zu Dezimal : 6\n \n \n" << endl; cout <<"Bitte geben sie Ihre Antwort ein"<< endl; //-------- EInelesen der Antwort--------------------------- cin >>Antwort; //----------------Switch zur Antwortsunterscheidung---------------------------- switch(Antwort) { //***********Von Dezimal zu Hexadezimal **************** case'1': { system("cls"); cout << "\nSie haben den Umwandler ``Von Dezimal zu Hexadezimal`` ausgewaehlt"; cout << "\n\n\nBitte geben Sie eine Dezimal Zahl ein: "; cin >> zahl; // Berechnung / Ausgabe Hexadezimal cout << "Umgerechnet in eine Hexadezimal Zahl lautet diese: "; cout << endl; while (zahl!=0) { cout << (zahl%16) <<endl; zahl = zahl / 16; } } break; //*********** Von Dezimal zu Binaer **************** case'2': { system("cls"); //Leeren der Bildschirmes cout <<"\nSie haben den Umwandler ``Von Dezimal zu Binaer`` ausgewaehlt"<< endl; //Titel der gewaehlten Option //--------Integer---------- -------------------------- bool go = true; string run; while(go == true) //Beginn der Schleife { cout <<"Bitte geben Sie eine Dezimalzahl ein\n"; cin >>zahl; //-----------Schleifenbeginn----------------- for(int i= 0;i<32; i++) //Bedingung der Berechnung { rest[i] = zahl%2; zahl = zahl / 2; count++; if(zahl==0) // Outbreak aus der Schleife { break; } } //-----------Schleifenbeginn fuer Berechnung----------------- while(count > 0) //Zaehler { cout << rest[count - 1]; count--; } cout <<"\nNeue Berechnung? (y/n)"; //abfrage cin >>run; if(run=="n") { break; } else if(run == "y") { go = true; } else { cout<<"Fehlerhafte Eingabe. Bitte wiederholen Sie die Eingabe"; // Bei Fehlerhaften Einagebe cout <<"\nNeue Berechnung? (y/n)"; cin >> run; } if(run=="n") { break; } else if(run == "y") { go = true; } else { break; } } cin.get(); } break; //*********** Von Hexadezimal zu Dezimal **************** case'3': { system("cls"); //Leeren der Bildschirmes cout <<"\nSie haben den Umwandler ``Von Hexadezimal zu Dezimal`` ausgewaehlt"<< endl; //Titel der gewaehlten Option int i=0, s=0, laenge; //i und s f¨¹r das Array int dezWerte=0; //um Falsche Ausgaben zu verhindern string HexEingabe; int HexArray[4]; //[4] f¨¹r die 4 Eingaben/Zeichen int HexVorgabe [4] ={1, 16, 256, 4096}; // 16 hoch 0-3 Ergebnisse cout <<"Hex in Dez - Umrechnung" <<endl; cout <<"Geben Sie Ihre Hexadezimalzahl ein\n"; cin >> HexEingabe; laenge = HexEingabe.length(); //Analyse der L?nge f¨¹r sp?tere Verwendung cout <<"Laenge" << laenge << endl; for(i=laenge-1; i>=0; i--) //Beginn des Case { switch (HexEingabe[i]) { case'A': case'a': HexArray[s]=10; break; case'B': case'b': HexArray[s]=11; break; case'C': case'c': HexArray[s]=12; break; case'D': case'd': HexArray[s]=13; break; case'E': case'e': HexArray[s]=14; break; case'F': case'f': HexArray[s]=15; break; default : HexArray[s]= HexEingabe[i]-48; } cout <<HexArray[s]<<endl; dezWerte = dezWerte+ HexVorgabe[s]*HexArray[s];s = s+1; } cout <<HexArray[s]<<endl; dezWerte = dezWerte+ HexVorgabe[s]*HexArray[s];s = s+1; cout << endl<< "Ergebnis:" << dezWerte; } break; //*********** Von Hexadezimal zu Binaer **************** case'4': { cout<<"Antwort"<<endl; } break; //*********** Von Binaer zu Hexadezimal **************** case'5': { cout<<"Antwort"<<endl; } break; //*********** Von Binaer zu Dezimal **************** case'6': { cout<<"Antwort"<<endl; } break; } }
-
@Swordfish sagte in Problem mit bool initializing:
Dann packst Du Zeilen 38 und 39 so wie sie sind unter das switch in die for-Schleife.
Damit war gemeint verschieben, nicht kopieren.
-
@Swordfish oops , habe die kopie von zeile 157 und 158 entfernt
jetzt die Ausgabe :
Sie haben den UmwandlerVon Hexadezimal zu Dezimal
ausgewaehlt
Hex in Dez - Umrechnung
Geben Sie Ihre Hexadezimalzahl ein
1b
Laenge2
11
1Ergebnis:27
-
-
@Swordfish Vielen Dank für deine Hilfe und deine Geduld
Mir Fehlen noch 3 Umrechner, jedoch schreibe ich morgen zeitgleich ne Klausur und brauche Schlaf (nach dem Structorizer)
also beende ich das Structogramm und gehe schlafen.Vielen Dank, mit Glück rettet das meine Note!
-
@Swordfish Oder haste zufälligerweise nen mit Grundkenntnissen geschriebennen Rechnern rumliegen:
Hex zu Binär
Binär zu Hex
Binär zu Dezimal
-
Leider nein. Und das wäre auch nicht fair deinen Kommilitonen gegenüber.
-
die haben in 80% der fällen 3 Jahre vorerfahrung aber naja , das muss reichen , Vielen Dank nochmal und noch eine Gute Nacht/Guten Morgen