Funktion für berechnung eines ohmschen widerstandes mit switch anweisung



  • Jester schrieb:

    zum Beispiel das von Shade of Mine oder von volkard

    Die zwei werden immer so oft erwähnt... Wird mal Zeit das ich mein Lieblingstutorial erwähne, was zwar umfangreicher ist, aber denoch gut:
    Wolfgang Schröder Tutorial -> http://www.cpp-tutor.de/cpp/intro/toc.htm



  • OK danke für die ersten TIPPS



  • #include <iostream>
    #include <map>
    #define _USE_MATH_DEFINES
    #include <cmath>
    
    using namespace std;
    
    template< typename T >
    T get_value( std::istream &is ) {
    
    	T value;
    
    	is.clear( );
    
    	do {
    
    		if( is.fail( ) ) {
    
    			cout << "\nFehlerhafte Eingabe, bitte wiederholen Sie Ihre Eingabe:" << endl;
    		}
    
    		is.clear( );
    		is.ignore( is.rdbuf( )->in_avail( ), '\n' );
    		is >> value;
    
    	} while( is.fail( ) );
    
    	return value;
    }
    
    char get_material( std::istream &is, map< char, pair< string, double > > &rho ) {
    
    	char material = 1;
    
    	do {
    
    		for( map< char, pair< string, double > >::iterator i = rho.begin( ); i != rho.end( ); ++i ) {
    
    			cout << "[" << ( *i ).second.first.substr( 0, 1 ).c_str( ) << "]" << ( *i ).second.first.substr( 1 ).c_str( ) << endl;
    		}
    
    		if( !material ) {
    
    			cout << "\nFehlerhafte Eingabe, bitte wiederholen Sie Ihre Eingabe:" << endl;
    		}
    
    		if( rho.find( ( material = toupper( get_value< char >( is ) ) ) ) == rho.end( ) ) {
    
    			material = 0;
    		}
    
    	} while( !material );
    
    	return material;
    }
    
    int main( ) {
    
    	cout << "Widerstandsberechnung:\n\nBitte geben Sie die Länge [m] ein:" << endl;
    	double length = get_value< double >( cin );
    
    	cout << "\nBitte geben Sie den Durchmesser [mm] ein:" << endl;
    	double diameter = get_value< double >( cin );
    
    	map< char, pair< string, double > > rho;
    	rho[ 'K' ] = pair< string, double >( "Kupfer", 0.0178 );
    	rho[ 'A' ] = pair< string, double >( "Aluminium", 0.0264 );
    	rho[ 'E' ] = pair< string, double >( "Eisen", 0.125 );
    
    	cout << "\nWählen Sie bitte das Material durch seinen Anfangsbuchstaben." << endl;
    
    	char material = get_material( cin, rho );
    
    	cout << "\nWiderstand:\n" << endl;
    	cout <<  rho[ material ].second * ( length / ( ( ( diameter * diameter ) * M_PI ) / 4.0 ) ) << " Ohm\n" << endl;
    }
    

    aber wehe es erklärt einer... 😃

    greetz, Swordfish



  • du hast se ganz anders geschrieben wie ich es erst lerne weil es ist mit float, cout, if anweisung und switch ich benutze noch kein doubl oder die variablen namen die du benutzt hast templates , string

    trotzdem danke es hat mir geholfen zu verstehen wie se funktionieren soll...



  • Das war gemein Swordfish ...



  • kann es jemand auch für anfänger schreiben mit die switch anweisung soll nur bei den 3 kennbuchstaben sein, pi soll const sein,funktion soll überschrift, eingabe, berechnung, ausgabe beinhalten, länge durchmesser und kennbuchstabe sollen global und roh und A lokal sein

    BITTE LEUte



  • Ja, das was du gerade gesagt hast, kannst du ja mal zu nem Code zusammen zaubern, danach helfe ich dir an Problemstellen ( vorausgesetzt du machst das schnell und ich bin noch wach 😉 ).


  • Mod

    Swordfish schrieb:

    aber wehe es erklärt einer... 😃

    Dann bitte auch so, dass es funktionieren kann. Da fehlen mehrere #include: string,cctype,ostream,utility



  • mir12za schrieb:

    kann es jemand auch für anfänger schreiben mit die switch anweisung soll nur bei den 3 kennbuchstaben sein, pi soll const sein,funktion soll überschrift, eingabe, berechnung, ausgabe beinhalten, länge durchmesser und kennbuchstabe sollen global und roh und A lokal sein

    Hier werden keine Hausaufgaben gemacht. Schreib es selbst und frag wenn du nicht weiterkommst.

    Wenn du C++-Tutorials sucht wurden ja schon ein paar Verweise gegeben. Ansonsten kannst du dir auch "Thinking in C++" anschauen. Das gibt es auch als gratis eBook.



  • mir12za schrieb:

    kann es jemand auch für anfänger schreiben ...

    Klar: Mit Folgender Funktion dürfte es klappen:

    void doYourHomework();
    

    Simon2.



  • mir12za schrieb:

    du hast se ganz anders geschrieben wie ich es erst lerne weil es ist mit float, cout, if anweisung und switch ich benutze noch kein doubl oder die variablen namen die du benutzt hast templates , string

    trotzdem danke es hat mir geholfen zu verstehen wie se funktionieren soll...

    glaub ich weniger -.-


Anmelden zum Antworten