Binär zu Dezimal Rechner



  • Hallo,
    ich stelle hier ein kleines Programm ein, das Werte von Binär nach Dezimal umrechnet. Ich weiß, er ist nicht perfekt aber ich brauche die Kritik um mich verbessern zu können. Ich bitte daher um sachliche Kritik.
    Das Programm stellt den Ausführlichen Weg als Umrechner zur Verfügung und nutzt dafür keine Funktionen.

    /*Urheber: Eledriel
    Es ist alles erlaubt, ich, der Urheber möchte aber als dieser genannt werden*/
    
    #include <iostream>
    //#include <locale>
    #include <cmath>
    
    using namespace std;
    
    int main(){
    	//locale::global(locale("German")); 
    
    	int bin [10] {0};
    	int i {7};
    	int dez[10] {0};
    	int c {0};
    	int v [10]{0};
    	int e {7};
    
    	cout << "Binär in Dezimal Wandler" << endl;
    	cout << endl << endl << endl;
    	cout << "Gebe einen Binärwert ein:" << endl;
    
    	while(i >= 0){
    		A:
    		cin >> bin[i];
    		if(bin[i] <= 1){
    			i--;
    		}
    		else{
    			cout << "Unerlaubte Eingabe! Fange von vorne an." << endl;
    			i = 7;
    			goto A;
    		}
    	}
    	i = 7;
    	cout << "Dein Wert ist: ";
    	while(i >= 0){
    		cout << bin[i]; 
    		i--;
    	}
    	cout << endl;
    	cout << "Ist dieser Wert richtig? " << endl;
    	cout << "Drücke -1- für Ja" << endl;
    	cout << "Drücke -2- für Nein" << endl;
    
    	cin >> c;
    	switch(c){
    		case 1 : break;
    
    		case 2 : cout << "Fange von vorn an" << endl;
    				goto A;
    	}
    	i = 0;
    	while(i <= 7){
    		v[i] = pow(2,e);
    		dez[i] = bin[e]*v[i];
    		i++;
    		e--;
    	}
    	cout << "Dein Binärwert ist in Dezimal = ";
    	cout << dez[0]+dez[1]+dez[2]+dez[3]+dez[4]+dez[5]+dez[6]+dez[7];
    	cout << endl;
    	while(1){}
    }
    

    Gerne nehme ich auch Verbesserungsvorschläge entgegen.

    MfG
    Eledriel



  • Wirf's weg, machs neu.



  • Weshalb?



  • goto, komische variablennamen, auslagern in eine funktion ist auch ganz nice.


  • Mod

    Troll. Hat er gestern schon einmal versucht.



  • Sicher kein Troll. Ich versuche hier ernsthafte Kritik zu bekommen. Danke für die Tipps bisher



  • Troll. Die Sachen sind konstruiert, um möglichst blöd auszuzsehen.



  • Es ist mein erstes großes selbsgeschriebenes Programm. Ich habe davor nur C geschrieben und dort macht es so Sinn. Aber wenn man in diesem Forum nur beleidigt wird...



  • Sämtliche Anmerkungen von roflo treffen auch in C zu.



  • C++ ist weit mehr als nur printf durch cout und scanf durch cin zu ersetzen.
    Aber auch in C sollte man passende Funktionen erzeugen (Eingabe, Verarbeitung, Ausgabe).
    Deine eigentlichen Rechenoperationen sind auch nicht gerade optimal, z.B. statt pow besser den Shift-Operator (<<) benutzen.

    Und die Benutzung von 'goto' sowie so sinnlose Anweisungen wie 'while(1){}' führen halt dazu, daß man dich als Troll ansieht.



  • Es ist nun mal so, das ich mir alles selbst beibringen musste. Ich denke, ich habe das nötige Wissen, habe aber keine praktische Erfahrung und man sieht ja wohin das führt. Ich habe halt keinen, der mir hilft, Code sinnvoll zu schreiben. Ich bräuchte halt echt Hilfe um mir einen sauberen Still anzueignen. Bisher war es so, das ich so geschrieben habe das es funktioniert. Ich weiß, das das den Regeln von C++ nicht entspricht und ich möchte auch dazulernen. Mit den bisherigen Tipps werde ich Versuchen, das Programm zu Verbessern und es dann auch als Antwort einstellen aber einfach ist es für mich nicht. Wahrscheinlich habe ich mich zu lange mit Theorie befasst.



  • Mein allererster größerer Code nach einem Taschenrechner sah ähnlich aus. Nach zwei Stunden eines Mini-Kurses. Ich meine, gerade Wissen und Theorie hat noch gefehlt. Und wird wohl wie bei mir in den meisten Fällen immer nie reichen. Praxis ist imho nur die Syntax des Wissen und Theorie, diese blind und ohne nachzuschlagen zu beherrschen.



  • Th69 schrieb:

    Und die Benutzung von 'goto' sowie so sinnlose Anweisungen wie 'while(1){}' führen halt dazu, daß man dich als Troll ansieht.

    Viel mehr.
    Das ist ein Gesamtkunstwerk.



  • /delete


Log in to reply