<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Neuling hat Fragen]]></title><description><![CDATA[<p>Hi,<br />
ich bin neu in c++ und hab ein paar Fragen.</p>
<p>Ich hab das Buch &quot;C++ von A - Z&quot; und bin schon relativ weit vorgedrungen. Nun als ich bei der OOP also den Klassen angekommen bin, bin ich relativ schnell an meine Grenzen gestoßen und ich merkte dass ich einiges noch nicht verstanden habe.</p>
<p>Nun hab ich mir gedacht programmierst du mal einen kleinen Rechner der verschiedene Funktionen hat. Dieser soll einfach die Grundlagen näher bringen( Variablen, Konstanten, Funktionen).</p>
<p>Nun ist der Quelltext des Taschenrechners sehr lang geworden und ich wollte mal fragen ob mir jemand Tipps geben kann wie man manche Sachen/Funktionen kürzen könnte.</p>
<pre><code>/******************************
 * Programm: Taschenrechner   *
 * Author:   Gailer Alexander *
 * Datum:    05.05.2010       *
 * Datei:    funktionen.h     *
 ******************************/

 /* TODO (Alex#1#): Quelltext Optimierung, Kommentierung */

// funktionen.h
#ifndef _funktionen_h_
#define _funktionen_h_

// Defines
#define Teilung &quot;Teilung durch 0 nicht moeglich! Sie kommen zurueck\n&quot;

// Bibliotheken 
#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;iomanip&gt;
#include &lt;math.h&gt;

using namespace std; 

// Funktionsdeklaration
void prgbeen();
void prgerr();
void sleep( int i);

// Additions-Funktion
void addieren() {
    // Benutzerabfrage und Kontrolle    
    cout &lt;&lt; &quot;\nAddition: \n\n&quot; &lt;&lt; &quot;Wieviele Zahlen moechten Sie addieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge ) ) {
        prgerr();
    } 
    // Ein Array mit der Größe des gewünschten Zahlenbereiches erstellen
    float zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !( cin &gt;&gt; zarray[i]) ) {
            prgerr();
        } 
    }                            
    float ergebnis = 0;
    // Array-Werte addieren und in Variable ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        ergebnis = ergebnis + zarray[i];
    }      
    // Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;\nDas Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;  
    // Programm beenden / wiederholen
    prgbeen();
}

// Subtaktions-Funktion
void subtrahieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nSubtaktion:\n\n&quot; &lt;&lt; &quot;Wieviele Zahlen wollen Sie subtrahieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    // Ein Array mit der Größe des gewüschten Zahlenbereichs erstellen
    float zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !( cin &gt;&gt; zarray[i]) ) {
            prgerr();
        } 
    }
    float ergebnis = 0;
    // Array Werte subtrahieren und in Variable Ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if(i == 0) {
            ergebnis += zarray[i];
        } else {
            ergebnis -= zarray[i];
        }
    }
    //Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm Beenden / Wiederholen
    prgbeen();
}

// Multiplikations-Funktion
void multiplizieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\n Multiplikation:\n\n&quot; &lt;&lt; &quot;Wieviele Zahlen wollen Sie multiplizieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !(cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    double zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !(cin &gt;&gt; zarray[i]) ) {
            prgerr();
        }
    }
    double ergebnis = 0;
    // Array Werte multiplizieren und in Variable Ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if( i == 0 ) {
            ergebnis += zarray[i];
        } else {
            ergebnis *= zarray[i];
        }
    }
    // Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm wiederholen / beenden
    prgbeen(); 
}

// Divisions-Funktion
void dividieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nDivision: \n\n&quot; &lt;&lt; &quot;Wieviele Zahlen moechten Sie dividieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    double zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !(cin &gt;&gt; zarray[i]) ) {
            prgerr();
        }
    }
    // Fehleingabe des Benutzers prüfen
    // Teilung durch 0
    for(int i = 1; i &lt; zahlenmenge; i++ ) {
        if( zarray[i] == 0 ) {
            cout &lt;&lt; Teilung;
            sleep(3);
            return;
        }
    }
    double ergebnis = 0;
    // Berechnung des Ergebnisses und Speicherung in der Variable ergebnis
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if(i == 0) {
            ergebnis += zarray[i];
        } else {
            ergebnis /= zarray[i];
        }
    }
    // Ausgabe der Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm beenden / wiederholen
    prgbeen();
}

// Quadrierungs-Funktion
void quadrieren() {
    double qzahl;
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nQuadrierung:\n\n&quot; &lt;&lt; &quot;Bitte geben Sie die Zahl ein, die Sie quadrieren moechten: &quot;;
    if( !(cin &gt;&gt; qzahl) ) {
        prgerr();
    } 
    float ergebnis = 0;
    // Berechnung der Quadrierung und Speichern in der Variable Ergebnis
    ergebnis = qzahl * qzahl;  
    // Ausgabe der Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Quadraht von &quot; &lt;&lt; qzahl &lt;&lt; &quot; ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;; 
    // Programm beenden / wiederholen
    prgbeen();   
}

// Wurzel-Funktion
void wurzel() {
    double wzahl;  
    // Benutzerabfrage
    cout &lt;&lt; &quot;\nWurzel ziehen\n\n&quot; &lt;&lt; &quot;Bitte geben Sie die Zahl ein, aus der sie die Wurzel ziehen moechten: &quot;;
    if( !(cin &gt;&gt; wzahl) ) {
        prgerr();
    }
    float ergebnis = 0;
    // Berechnung der Wurzel aus der Zahl des Benutzers und Speicherung in der Variablen Ergebnis
    ergebnis = sqrt( wzahl );  
    // Ausgabe des Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Wurzel von &quot; &lt;&lt; wzahl &lt;&lt; &quot; ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;; 
    // Programm beenden / wiederholen
    prgbeen();
}

// Spannung berechnen - Funktion
void spannung() {

    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        // Benutzerabfrage und Kontrolle  
        cout &lt;&lt; &quot;\nSpannung:\n\n&quot;;
        cout &lt;&lt; &quot;-1- U = R * I\n&quot;;
        cout &lt;&lt; &quot;-2- U = P / I\n&quot;;
        cout &lt;&lt; &quot;-3- U = Wurzel aus P * R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;   
        if( !(cin &gt;&gt; benauswahl) ){
            prgerr();
        }    
        switch(benauswahl) {
            case 1:
                // U = R * I
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein ( A in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                spg = wid * str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                // Programm beenden / wiederholen
                prgbeen();
                break;
            case 2:
                // U = P / I
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein( P in Watt ): &quot;;
                if( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                // Teilung durch 0 wird blockiert 
                } else if(str == 0) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                spg = lei / str;
                //Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                //Programm beenden / wiederholen
                prgbeen();
                break;                
            case 3: 
                // U = Wurzel aus P * R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein( P in Watt ): &quot;;
                if( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                // Teilung durch 0 wird blockiert 
                } else if ( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                //Berechnung des Ergebnisses
                spg = sqrt(lei*wid);
                // Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;   
            default: 
                // Ungueltige Zahl eingebeben, Benutzer muss 3 Sekunden warten und kommt wieder ins Elektrotechnik Menü
                cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben( 1 - 4) !\n&quot;;
                sleep(3);
            break;
        }    
    } while( benauswahl != 4 );
    return; 
}

// Strom berechnen - Funktion
void strom() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        // Benutzerabfrage und Kontrolle               
        cout &lt;&lt; &quot;\nStrom:\n\n&quot;;
        cout &lt;&lt; &quot;-1- I = U / R\n&quot;;
        cout &lt;&lt; &quot;-2- I = P / U\n&quot;;
        cout &lt;&lt; &quot;-3- I = Wurzel aus P / R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;     
        if( !(cin &gt;&gt; benauswahl) ) {
            prgerr();
        }
        switch(benauswahl) {
            case 1:
                // I = U / R
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein ( U in Volt ): &quot;;
                if( !( cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein ( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt;  Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = spg / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 2:
                // I = P / U
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungwert ein ( P in Watt ): &quot;;
                if( !( cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungwert ein ( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                } else if( spg == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = lei / spg;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 3:
                // I = Wurzel aus P / R
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein ( P in Watt ): &quot;;
                if( !( cin &gt;&gt; lei ) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein ( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if ( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = sqrt(lei/wid);
                //Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);
        }
    } while (benauswahl != 4);  
}

// Widerstand berechnen - Funktion
void widerstand() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;
    double rho = 0;
    double len = 0;
    double que = 0;

    do{
        // Benutzerabfrage und Kontrolle
        cout &lt;&lt; &quot;\nWiderstand:\n\n&quot;;
        cout &lt;&lt; &quot;-1- R = U / I\n&quot;;
        cout &lt;&lt; &quot;-2- R = P / I(quadrat)\n&quot;;
        cout &lt;&lt; &quot;-3- R = (rho * l) / A (rho = Leitungswiderstand)\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;       
        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }   
        switch( benauswahl ) {
            case 1:
                // R = U / I
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                } else if(str == 0) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }     
                // Berechnung des Ergebnisses
                wid = spg/str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm.\n&quot;;
                prgbeen();
                break;
            case 2:
                // R = P * I²
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert an( P in Watt ): &quot;;
                if ( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert an( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                wid = lei*(str*str);
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm\n&quot;;
                prgbeen();
                break;
            case 3:
                // R = ( rho * l ) / A
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den spezifischen Leitungswiderstand an( rho in SI ): &quot;;
                if( !(cin &gt;&gt; rho) ){
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie die Leitungslaenge an( l in Meter ): &quot;;
                if ( !(cin &gt;&gt; len) ){
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Querschnitt an ( A in Quadrat-Meter): &quot;;
                if ( !(cin &gt;&gt; que) ) {
                    prgerr();
                } else if( que == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                wid = (rho*len) / que;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);      
        }
    } while( benauswahl != 4 );
}

// Leistung berechnen - Funktion
void leistung() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        cout &lt;&lt; &quot;\nLeistung:\n\n&quot;;
        cout &lt;&lt; &quot;-1- P = U * I\n&quot;;
        cout &lt;&lt; &quot;-2- P = I(quadrat) * R\n&quot;;
        cout &lt;&lt; &quot;-3- P = U(quadrat) / R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;
        if( !(cin &gt;&gt; benauswahl) ) {
            prgerr();
        }   
        switch(benauswahl) {
            case 1:
                // P = U * I
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin&gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                lei = spg * str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();
                break;
            case 2:
                // P = I² * R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert an( I in Ampere ): &quot;;
                if( !( cin &gt;&gt; str) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert an( R in Ohm ): &quot;;
                if( !( cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                lei = (str*str) / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();                
                break;
            case 3:
                // P = U² / R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie die Spannung an( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstand an( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                lei = (spg*spg) / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt: &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);               
        }   
    } while( benauswahl != 4 );
}

// Wirkungsgrad berechnen - Funktion
void wirkungsgrad() {
    unsigned int benauswahl;
    double pzu;
    double pab;
    double eta;
    do{
        // Benutzerabfrage und Kontrolle  
        cout &lt;&lt; &quot;\nWirkungsgrad:\n\n&quot;;
        cout &lt;&lt; &quot;-1- eta = abgegebene Leistung / zugefuehrte Leistung\n&quot;;
        cout &lt;&lt; &quot;-2- Zurueck ins Elektrotechnik Menue\n&quot;;

        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }

        if( benauswahl == 1 ) {
            // Benutzerabfrage und Kontrolle  
            cout &lt;&lt; &quot;Bitte geben Sie den abgegebene Leistung an( Pab in Watt): &quot;;
            if( !( cin &gt;&gt; pab) ) {
                prgerr();
            }
            cout &lt;&lt; &quot;Bitte geben Sie die zugefuehrte Leistung an ( Pzu in Watt): &quot;;
            if( !(cin &gt;&gt; pzu) ) {
                prgerr();
            } else if( pzu == 0 ) {
                cout &lt;&lt; Teilung;
                sleep(3);
                break;
            }
            // Berechnung des Ergebnisses
            eta = pab / pzu;
            // Ausgabe des Ergebnisses
            cout &lt;&lt; &quot;Der Wirkungsgrad betraget: &quot; &lt;&lt; eta &lt;&lt; &quot;.\n&quot;;
            prgbeen();
            break;
        } else if( benauswahl == 2 ) {
            break;
        } else {
            cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 2 )! Sie kommen zurueck.\n&quot;;
            sleep(3);             
        }
    } while( benauswahl != 2 );
}

// Programm Beenden Funktion
void prgbeen () {
    cout &lt;&lt; &quot;Programm beenden? ( J \\ N )&quot;;
    char prgbeen;
    cin &gt;&gt; prgbeen;
    if( prgbeen == 'J' || prgbeen == 'j' ) {
        cout &lt;&lt; &quot;Denke dran, das ist nur ein Lern-Programm. Programm wird in 5 Sekunden beendet!\n\n&quot;;
        for(int i=5; i &gt; 0; i--) {
            cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
            // Wartezeit zur Übersicht
            Sleep(1000);
        }                        
        exit(0);
    } else if( prgbeen == 'N' || prgbeen == 'n' ) {
        cout &lt;&lt; &quot;Sie kommen in 3 Sekunden zurueck\n&quot;;
        sleep(3);
    } else {
        prgerr();
    }
}

void prgerr () {    
    cerr &lt;&lt; &quot;Sie haben ein ungueltiges Zeichen eingegeben! Programm wird beendet!\n&quot;;   
    for(int i = 3; i &gt; 0; i--) {
        cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
        Sleep(1000);
    }    
    exit(1);  
}

void sleep( int i) {
    for( i; i &gt; 0; i--) {
        cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
        Sleep(1000);
        if(i==1) {
            cout &lt;&lt; &quot;\n\n&quot;;
        }
    }
}
#endif
</code></pre>
<pre><code class="language-cpp">/******************************
 * Programm: Taschenrechner   *
 * Author:   Gailer Alexander *
 * Datum:    05.05.2010       *
 * Datei:    main.cpp         *
 ******************************/

/* TODO (Alex#1#): Quelltext Optimierung, Kommentierung */

#include &lt;iostream&gt;
#include &quot;funktionen.h&quot;

using namespace std;

// Funktionsdeklarationen

void addieren();
void subtrahieren();
void multiplizieren();
void dividieren();
void quadrieren();
void wurzel();
void spannung();
void strom();
void widerstand();
void leistung();
void wirkungsgrad();

// Hauptprogramm
int main()
{
    /*
    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdout, BACKGROUND_GREEN |  FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
    */

    // Programm Beschreibung und Titel

    cout &lt;&lt; &quot;----------------------------------------------------------\n&quot;;
    cout &lt;&lt; &quot;---- Taschenrechner-Programm  |  Gailer Alexander     ----\n&quot;;
    cout &lt;&lt; &quot;---- Build-Date: 05.05.2010   |  Lern-, Testprogramm  ----\n&quot;;
    cout &lt;&lt; &quot;----   Bedenke, das ist nur ein Lern-, Testprogramm   ----\n&quot;;  
    cout &lt;&lt; &quot;----------------------------------------------------------\n\n\n&quot;;

    //Benutzerabfrage zur Auswahl der Berechnung

    int benauswahl;

    do {
        // Ausgabe des Hauptmenüs
        cout &lt;&lt; &quot;Hauptmenu:\n\n&quot;;
        cout &lt;&lt; &quot;-1- Addidtion ( + )\n&quot;;
        cout &lt;&lt; &quot;-2- Subtraktion ( - )\n&quot;;
        cout &lt;&lt; &quot;-3- Multiplikation ( * )\n&quot;;
        cout &lt;&lt; &quot;-4- Division ( \\ )\n&quot;;
        cout &lt;&lt; &quot;-5- Quadrieren\n&quot;;
        cout &lt;&lt; &quot;-6- Wurzel ziehen\n&quot;;
        cout &lt;&lt; &quot;-7- Elektotechnik\n&quot;;
        cout &lt;&lt; &quot;-8- Ende\n\n&quot;;
        cout &lt;&lt; &quot;Bitte Berechnungsart waehlen: &quot;;

        // Benutzereingabe auf falsche Eingabe überwachen(Buchstaben oder Sonderzeichen)
        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }

        // Funktions-Aufruf der Benutzerwahl
        switch ( benauswahl ) {
            case 1:
                // Addition
                addieren();
                break;                
            case 2:
                // Subtraktion
                subtrahieren();
                break;
            case 3:
                // Multiplikation
                multiplizieren();
                break;
            case 4:
                // Division
                dividieren();
                break;
            case 5:
                // Quadrierung
                quadrieren();
                break;
            case 6:
                // Wurzel ziehen 
                wurzel();
                break;
            case 7: 
                // Elektrotechnik
                int benauswahl;
                do {
                    cout &lt;&lt; &quot;\nElektrotechnik - Hauptmenu\n\n&quot;;
                    cout &lt;&lt; &quot;-1- Spannung berechnen\n&quot;;
                    cout &lt;&lt; &quot;-2- Strom berechnen\n&quot;;
                    cout &lt;&lt; &quot;-3- Widerstand berechnen\n&quot;;
                    cout &lt;&lt; &quot;-4- Leistung berechnen\n&quot;;
                    cout &lt;&lt; &quot;-5- Wirkungsgrad berechnen\n&quot;;
                    cout &lt;&lt; &quot;-6- Zurueck ins Hauptmenu\n\n&quot;;
                    cout &lt;&lt; &quot;Bitte treffen Sie eine Auswahl ( 1 - 6 ): &quot;;                   

                    // Benutzereingabe abwarten und prüfen ob er eine gueltiges Zeichen eingegeben hat, falls ein Buchstabe eingegeben wurde wird das Programm beendet
                    if( !( cin &gt;&gt; benauswahl) ) {
                        prgerr();
                    }
                    switch(benauswahl) {
                        case 1:
                            // Spannung berechnen
                            spannung();
                            break;
                        case 2:
                            // Strom berechnen
                            strom();
                            break;
                        case 3:
                            // Widerstand berechnen
                            widerstand();
                            break;
                        case 4:
                            // Leistung berechnen
                            leistung();
                            break;
                        case 5:
                            // Wirkungsgrad berechnen
                            wirkungsgrad();
                            break;
                        case 6:
                            break;
                        default:
                            // Ungueltige Zahl eingebeben, Benutzer muss 3 Sekunden warten und kommt wieder ins Elektrotechnik Menü
                            cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben!( 1 - 6 )\n&quot;;
                            for(int i = 3; i &gt; 0; i--) {
                                cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
                                Sleep(1000);
                                if( i == 1 ) {
                                    cout &lt;&lt; &quot;\n\n&quot;;
                                }
                            }
                            break;                  
                    }
                } while ( benauswahl != 6);
                break;
            case 8:
                // Programm-Beendung
                break;
            default: 
                // Falsche Zahlen-Eingabe
                cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben! ( 1 - 8 )\n&quot;;
        } 
    } while( benauswahl != 8 );
    return 0;
}
</code></pre>
<p>Hmm gibt es hier im Forum keine Spoiler Option? Oder wäre es geschickter die Dateien hochzuladen?</p>
<p>Gruß Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266357/neuling-hat-fragen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 07:14:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266357.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 May 2010 15:32:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 15:32:44 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich bin neu in c++ und hab ein paar Fragen.</p>
<p>Ich hab das Buch &quot;C++ von A - Z&quot; und bin schon relativ weit vorgedrungen. Nun als ich bei der OOP also den Klassen angekommen bin, bin ich relativ schnell an meine Grenzen gestoßen und ich merkte dass ich einiges noch nicht verstanden habe.</p>
<p>Nun hab ich mir gedacht programmierst du mal einen kleinen Rechner der verschiedene Funktionen hat. Dieser soll einfach die Grundlagen näher bringen( Variablen, Konstanten, Funktionen).</p>
<p>Nun ist der Quelltext des Taschenrechners sehr lang geworden und ich wollte mal fragen ob mir jemand Tipps geben kann wie man manche Sachen/Funktionen kürzen könnte.</p>
<pre><code>/******************************
 * Programm: Taschenrechner   *
 * Author:   Gailer Alexander *
 * Datum:    05.05.2010       *
 * Datei:    funktionen.h     *
 ******************************/

 /* TODO (Alex#1#): Quelltext Optimierung, Kommentierung */

// funktionen.h
#ifndef _funktionen_h_
#define _funktionen_h_

// Defines
#define Teilung &quot;Teilung durch 0 nicht moeglich! Sie kommen zurueck\n&quot;

// Bibliotheken 
#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;iomanip&gt;
#include &lt;math.h&gt;

using namespace std; 

// Funktionsdeklaration
void prgbeen();
void prgerr();
void sleep( int i);

// Additions-Funktion
void addieren() {
    // Benutzerabfrage und Kontrolle    
    cout &lt;&lt; &quot;\nAddition: \n\n&quot; &lt;&lt; &quot;Wieviele Zahlen moechten Sie addieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge ) ) {
        prgerr();
    } 
    // Ein Array mit der Größe des gewünschten Zahlenbereiches erstellen
    float zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !( cin &gt;&gt; zarray[i]) ) {
            prgerr();
        } 
    }                            
    float ergebnis = 0;
    // Array-Werte addieren und in Variable ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        ergebnis = ergebnis + zarray[i];
    }      
    // Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;\nDas Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;  
    // Programm beenden / wiederholen
    prgbeen();
}

// Subtaktions-Funktion
void subtrahieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nSubtaktion:\n\n&quot; &lt;&lt; &quot;Wieviele Zahlen wollen Sie subtrahieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    // Ein Array mit der Größe des gewüschten Zahlenbereichs erstellen
    float zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !( cin &gt;&gt; zarray[i]) ) {
            prgerr();
        } 
    }
    float ergebnis = 0;
    // Array Werte subtrahieren und in Variable Ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if(i == 0) {
            ergebnis += zarray[i];
        } else {
            ergebnis -= zarray[i];
        }
    }
    //Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm Beenden / Wiederholen
    prgbeen();
}

// Multiplikations-Funktion
void multiplizieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\n Multiplikation:\n\n&quot; &lt;&lt; &quot;Wieviele Zahlen wollen Sie multiplizieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !(cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    double zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !(cin &gt;&gt; zarray[i]) ) {
            prgerr();
        }
    }
    double ergebnis = 0;
    // Array Werte multiplizieren und in Variable Ergebnis speichern
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if( i == 0 ) {
            ergebnis += zarray[i];
        } else {
            ergebnis *= zarray[i];
        }
    }
    // Ausgabe der Berechnung
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm wiederholen / beenden
    prgbeen(); 
}

// Divisions-Funktion
void dividieren() {
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nDivision: \n\n&quot; &lt;&lt; &quot;Wieviele Zahlen moechten Sie dividieren? &quot;;
    unsigned int zahlenmenge;
    // Überprüfung ob eine Zahl eingegeben wurde
    if( !( cin &gt;&gt; zahlenmenge) ) {
        prgerr();
    }
    double zarray[zahlenmenge];
    // Array mit Zahlen füllen
    for(int i = 0; i &lt; zahlenmenge; i++) {
        cout &lt;&lt; i+1 &lt;&lt; &quot;.Zahl: &quot;;
        if( !(cin &gt;&gt; zarray[i]) ) {
            prgerr();
        }
    }
    // Fehleingabe des Benutzers prüfen
    // Teilung durch 0
    for(int i = 1; i &lt; zahlenmenge; i++ ) {
        if( zarray[i] == 0 ) {
            cout &lt;&lt; Teilung;
            sleep(3);
            return;
        }
    }
    double ergebnis = 0;
    // Berechnung des Ergebnisses und Speicherung in der Variable ergebnis
    for(int i = 0; i &lt; zahlenmenge; i++) {
        if(i == 0) {
            ergebnis += zarray[i];
        } else {
            ergebnis /= zarray[i];
        }
    }
    // Ausgabe der Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Ergebnis ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;;
    // Programm beenden / wiederholen
    prgbeen();
}

// Quadrierungs-Funktion
void quadrieren() {
    double qzahl;
    // Benutzerabfrage und Kontrolle  
    cout &lt;&lt; &quot;\nQuadrierung:\n\n&quot; &lt;&lt; &quot;Bitte geben Sie die Zahl ein, die Sie quadrieren moechten: &quot;;
    if( !(cin &gt;&gt; qzahl) ) {
        prgerr();
    } 
    float ergebnis = 0;
    // Berechnung der Quadrierung und Speichern in der Variable Ergebnis
    ergebnis = qzahl * qzahl;  
    // Ausgabe der Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Das Quadraht von &quot; &lt;&lt; qzahl &lt;&lt; &quot; ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;; 
    // Programm beenden / wiederholen
    prgbeen();   
}

// Wurzel-Funktion
void wurzel() {
    double wzahl;  
    // Benutzerabfrage
    cout &lt;&lt; &quot;\nWurzel ziehen\n\n&quot; &lt;&lt; &quot;Bitte geben Sie die Zahl ein, aus der sie die Wurzel ziehen moechten: &quot;;
    if( !(cin &gt;&gt; wzahl) ) {
        prgerr();
    }
    float ergebnis = 0;
    // Berechnung der Wurzel aus der Zahl des Benutzers und Speicherung in der Variablen Ergebnis
    ergebnis = sqrt( wzahl );  
    // Ausgabe des Ergebnisses
    cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Wurzel von &quot; &lt;&lt; wzahl &lt;&lt; &quot; ist: &quot; &lt;&lt; ergebnis &lt;&lt; &quot;\n\n&quot;; 
    // Programm beenden / wiederholen
    prgbeen();
}

// Spannung berechnen - Funktion
void spannung() {

    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        // Benutzerabfrage und Kontrolle  
        cout &lt;&lt; &quot;\nSpannung:\n\n&quot;;
        cout &lt;&lt; &quot;-1- U = R * I\n&quot;;
        cout &lt;&lt; &quot;-2- U = P / I\n&quot;;
        cout &lt;&lt; &quot;-3- U = Wurzel aus P * R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;   
        if( !(cin &gt;&gt; benauswahl) ){
            prgerr();
        }    
        switch(benauswahl) {
            case 1:
                // U = R * I
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein ( A in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                spg = wid * str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                // Programm beenden / wiederholen
                prgbeen();
                break;
            case 2:
                // U = P / I
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein( P in Watt ): &quot;;
                if( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                // Teilung durch 0 wird blockiert 
                } else if(str == 0) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                spg = lei / str;
                //Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                //Programm beenden / wiederholen
                prgbeen();
                break;                
            case 3: 
                // U = Wurzel aus P * R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein( P in Watt ): &quot;;
                if( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                // Teilung durch 0 wird blockiert 
                } else if ( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                //Berechnung des Ergebnisses
                spg = sqrt(lei*wid);
                // Ausgabe des Ergebnisses
                cout &lt;&lt; setprecision(15) &lt;&lt; &quot;Die Spannung betraegt: &quot; &lt;&lt; spg &lt;&lt; &quot; Volt!\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;   
            default: 
                // Ungueltige Zahl eingebeben, Benutzer muss 3 Sekunden warten und kommt wieder ins Elektrotechnik Menü
                cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben( 1 - 4) !\n&quot;;
                sleep(3);
            break;
        }    
    } while( benauswahl != 4 );
    return; 
}

// Strom berechnen - Funktion
void strom() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        // Benutzerabfrage und Kontrolle               
        cout &lt;&lt; &quot;\nStrom:\n\n&quot;;
        cout &lt;&lt; &quot;-1- I = U / R\n&quot;;
        cout &lt;&lt; &quot;-2- I = P / U\n&quot;;
        cout &lt;&lt; &quot;-3- I = Wurzel aus P / R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;     
        if( !(cin &gt;&gt; benauswahl) ) {
            prgerr();
        }
        switch(benauswahl) {
            case 1:
                // I = U / R
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein ( U in Volt ): &quot;;
                if( !( cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein ( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt;  Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = spg / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 2:
                // I = P / U
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungwert ein ( P in Watt ): &quot;;
                if( !( cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungwert ein ( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                } else if( spg == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = lei / spg;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 3:
                // I = Wurzel aus P / R
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert ein ( P in Watt ): &quot;;
                if( !( cin &gt;&gt; lei ) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert ein ( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if ( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                str = sqrt(lei/wid);
                //Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;\nDer Strom betraegt: &quot; &lt;&lt; str &lt;&lt; &quot; Ampere.\n\n&quot;;
                prgbeen();
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);
        }
    } while (benauswahl != 4);  
}

// Widerstand berechnen - Funktion
void widerstand() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;
    double rho = 0;
    double len = 0;
    double que = 0;

    do{
        // Benutzerabfrage und Kontrolle
        cout &lt;&lt; &quot;\nWiderstand:\n\n&quot;;
        cout &lt;&lt; &quot;-1- R = U / I\n&quot;;
        cout &lt;&lt; &quot;-2- R = P / I(quadrat)\n&quot;;
        cout &lt;&lt; &quot;-3- R = (rho * l) / A (rho = Leitungswiderstand)\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;       
        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }   
        switch( benauswahl ) {
            case 1:
                // R = U / I
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                } else if(str == 0) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }     
                // Berechnung des Ergebnisses
                wid = spg/str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm.\n&quot;;
                prgbeen();
                break;
            case 2:
                // R = P * I²
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Leistungswert an( P in Watt ): &quot;;
                if ( !(cin &gt;&gt; lei) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert an( I in Ampere ): &quot;;
                if( !(cin &gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                wid = lei*(str*str);
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm\n&quot;;
                prgbeen();
                break;
            case 3:
                // R = ( rho * l ) / A
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den spezifischen Leitungswiderstand an( rho in SI ): &quot;;
                if( !(cin &gt;&gt; rho) ){
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie die Leitungslaenge an( l in Meter ): &quot;;
                if ( !(cin &gt;&gt; len) ){
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Querschnitt an ( A in Quadrat-Meter): &quot;;
                if ( !(cin &gt;&gt; que) ) {
                    prgerr();
                } else if( que == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                wid = (rho*len) / que;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Der Widerstand betraegt: &quot; &lt;&lt; wid &lt;&lt; &quot; Ohm\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);      
        }
    } while( benauswahl != 4 );
}

// Leistung berechnen - Funktion
void leistung() {
    unsigned int benauswahl;
    double spg = 0;
    double str = 0;
    double wid = 0;
    double lei = 0;
    double wir = 0;

    do{
        cout &lt;&lt; &quot;\nLeistung:\n\n&quot;;
        cout &lt;&lt; &quot;-1- P = U * I\n&quot;;
        cout &lt;&lt; &quot;-2- P = I(quadrat) * R\n&quot;;
        cout &lt;&lt; &quot;-3- P = U(quadrat) / R\n&quot;;
        cout &lt;&lt; &quot;-4- Zurueck ins Elektrotechnik-Menue\n&quot;;
        if( !(cin &gt;&gt; benauswahl) ) {
            prgerr();
        }   
        switch(benauswahl) {
            case 1:
                // P = U * I
                // Benutzerabfrage und Kontrolle
                cout &lt;&lt; &quot;Bitte geben Sie den Spannungswert ein( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert ein( I in Ampere ): &quot;;
                if( !(cin&gt;&gt; str) ) {
                    prgerr();
                }
                // Berechnung des Ergebnisses
                lei = spg * str;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();
                break;
            case 2:
                // P = I² * R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie den Stromwert an( I in Ampere ): &quot;;
                if( !( cin &gt;&gt; str) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstandswert an( R in Ohm ): &quot;;
                if( !( cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                lei = (str*str) / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();                
                break;
            case 3:
                // P = U² / R
                // Benutzerabfrage und Kontrolle  
                cout &lt;&lt; &quot;Bitte geben Sie die Spannung an( U in Volt ): &quot;;
                if( !(cin &gt;&gt; spg) ) {
                    prgerr();
                }
                cout &lt;&lt; &quot;Bitte geben Sie den Widerstand an( R in Ohm ): &quot;;
                if( !(cin &gt;&gt; wid) ) {
                    prgerr();
                } else if( wid == 0 ) {
                    cout &lt;&lt; Teilung;
                    sleep(3);
                    break;
                }
                // Berechnung des Ergebnisses
                lei = (spg*spg) / wid;
                // Ausgabe des Ergebnisses
                cout &lt;&lt; &quot;Die Leistung betraegt: &quot; &lt;&lt; lei &lt;&lt; &quot; Watt.\n&quot;;
                prgbeen();                
                break;
            case 4:
                break;
            default:
                cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 4 )! Sie kommen zurueck.\n&quot;;
                sleep(3);               
        }   
    } while( benauswahl != 4 );
}

// Wirkungsgrad berechnen - Funktion
void wirkungsgrad() {
    unsigned int benauswahl;
    double pzu;
    double pab;
    double eta;
    do{
        // Benutzerabfrage und Kontrolle  
        cout &lt;&lt; &quot;\nWirkungsgrad:\n\n&quot;;
        cout &lt;&lt; &quot;-1- eta = abgegebene Leistung / zugefuehrte Leistung\n&quot;;
        cout &lt;&lt; &quot;-2- Zurueck ins Elektrotechnik Menue\n&quot;;

        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }

        if( benauswahl == 1 ) {
            // Benutzerabfrage und Kontrolle  
            cout &lt;&lt; &quot;Bitte geben Sie den abgegebene Leistung an( Pab in Watt): &quot;;
            if( !( cin &gt;&gt; pab) ) {
                prgerr();
            }
            cout &lt;&lt; &quot;Bitte geben Sie die zugefuehrte Leistung an ( Pzu in Watt): &quot;;
            if( !(cin &gt;&gt; pzu) ) {
                prgerr();
            } else if( pzu == 0 ) {
                cout &lt;&lt; Teilung;
                sleep(3);
                break;
            }
            // Berechnung des Ergebnisses
            eta = pab / pzu;
            // Ausgabe des Ergebnisses
            cout &lt;&lt; &quot;Der Wirkungsgrad betraget: &quot; &lt;&lt; eta &lt;&lt; &quot;.\n&quot;;
            prgbeen();
            break;
        } else if( benauswahl == 2 ) {
            break;
        } else {
            cout &lt;&lt; &quot;Sie haben keine gueltige Zahl eingegeben( 1 - 2 )! Sie kommen zurueck.\n&quot;;
            sleep(3);             
        }
    } while( benauswahl != 2 );
}

// Programm Beenden Funktion
void prgbeen () {
    cout &lt;&lt; &quot;Programm beenden? ( J \\ N )&quot;;
    char prgbeen;
    cin &gt;&gt; prgbeen;
    if( prgbeen == 'J' || prgbeen == 'j' ) {
        cout &lt;&lt; &quot;Denke dran, das ist nur ein Lern-Programm. Programm wird in 5 Sekunden beendet!\n\n&quot;;
        for(int i=5; i &gt; 0; i--) {
            cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
            // Wartezeit zur Übersicht
            Sleep(1000);
        }                        
        exit(0);
    } else if( prgbeen == 'N' || prgbeen == 'n' ) {
        cout &lt;&lt; &quot;Sie kommen in 3 Sekunden zurueck\n&quot;;
        sleep(3);
    } else {
        prgerr();
    }
}

void prgerr () {    
    cerr &lt;&lt; &quot;Sie haben ein ungueltiges Zeichen eingegeben! Programm wird beendet!\n&quot;;   
    for(int i = 3; i &gt; 0; i--) {
        cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
        Sleep(1000);
    }    
    exit(1);  
}

void sleep( int i) {
    for( i; i &gt; 0; i--) {
        cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
        Sleep(1000);
        if(i==1) {
            cout &lt;&lt; &quot;\n\n&quot;;
        }
    }
}
#endif
</code></pre>
<pre><code class="language-cpp">/******************************
 * Programm: Taschenrechner   *
 * Author:   Gailer Alexander *
 * Datum:    05.05.2010       *
 * Datei:    main.cpp         *
 ******************************/

/* TODO (Alex#1#): Quelltext Optimierung, Kommentierung */

#include &lt;iostream&gt;
#include &quot;funktionen.h&quot;

using namespace std;

// Funktionsdeklarationen

void addieren();
void subtrahieren();
void multiplizieren();
void dividieren();
void quadrieren();
void wurzel();
void spannung();
void strom();
void widerstand();
void leistung();
void wirkungsgrad();

// Hauptprogramm
int main()
{
    /*
    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdout, BACKGROUND_GREEN |  FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
    */

    // Programm Beschreibung und Titel

    cout &lt;&lt; &quot;----------------------------------------------------------\n&quot;;
    cout &lt;&lt; &quot;---- Taschenrechner-Programm  |  Gailer Alexander     ----\n&quot;;
    cout &lt;&lt; &quot;---- Build-Date: 05.05.2010   |  Lern-, Testprogramm  ----\n&quot;;
    cout &lt;&lt; &quot;----   Bedenke, das ist nur ein Lern-, Testprogramm   ----\n&quot;;  
    cout &lt;&lt; &quot;----------------------------------------------------------\n\n\n&quot;;

    //Benutzerabfrage zur Auswahl der Berechnung

    int benauswahl;

    do {
        // Ausgabe des Hauptmenüs
        cout &lt;&lt; &quot;Hauptmenu:\n\n&quot;;
        cout &lt;&lt; &quot;-1- Addidtion ( + )\n&quot;;
        cout &lt;&lt; &quot;-2- Subtraktion ( - )\n&quot;;
        cout &lt;&lt; &quot;-3- Multiplikation ( * )\n&quot;;
        cout &lt;&lt; &quot;-4- Division ( \\ )\n&quot;;
        cout &lt;&lt; &quot;-5- Quadrieren\n&quot;;
        cout &lt;&lt; &quot;-6- Wurzel ziehen\n&quot;;
        cout &lt;&lt; &quot;-7- Elektotechnik\n&quot;;
        cout &lt;&lt; &quot;-8- Ende\n\n&quot;;
        cout &lt;&lt; &quot;Bitte Berechnungsart waehlen: &quot;;

        // Benutzereingabe auf falsche Eingabe überwachen(Buchstaben oder Sonderzeichen)
        if( !( cin &gt;&gt; benauswahl) ) {
            prgerr();
        }

        // Funktions-Aufruf der Benutzerwahl
        switch ( benauswahl ) {
            case 1:
                // Addition
                addieren();
                break;                
            case 2:
                // Subtraktion
                subtrahieren();
                break;
            case 3:
                // Multiplikation
                multiplizieren();
                break;
            case 4:
                // Division
                dividieren();
                break;
            case 5:
                // Quadrierung
                quadrieren();
                break;
            case 6:
                // Wurzel ziehen 
                wurzel();
                break;
            case 7: 
                // Elektrotechnik
                int benauswahl;
                do {
                    cout &lt;&lt; &quot;\nElektrotechnik - Hauptmenu\n\n&quot;;
                    cout &lt;&lt; &quot;-1- Spannung berechnen\n&quot;;
                    cout &lt;&lt; &quot;-2- Strom berechnen\n&quot;;
                    cout &lt;&lt; &quot;-3- Widerstand berechnen\n&quot;;
                    cout &lt;&lt; &quot;-4- Leistung berechnen\n&quot;;
                    cout &lt;&lt; &quot;-5- Wirkungsgrad berechnen\n&quot;;
                    cout &lt;&lt; &quot;-6- Zurueck ins Hauptmenu\n\n&quot;;
                    cout &lt;&lt; &quot;Bitte treffen Sie eine Auswahl ( 1 - 6 ): &quot;;                   

                    // Benutzereingabe abwarten und prüfen ob er eine gueltiges Zeichen eingegeben hat, falls ein Buchstabe eingegeben wurde wird das Programm beendet
                    if( !( cin &gt;&gt; benauswahl) ) {
                        prgerr();
                    }
                    switch(benauswahl) {
                        case 1:
                            // Spannung berechnen
                            spannung();
                            break;
                        case 2:
                            // Strom berechnen
                            strom();
                            break;
                        case 3:
                            // Widerstand berechnen
                            widerstand();
                            break;
                        case 4:
                            // Leistung berechnen
                            leistung();
                            break;
                        case 5:
                            // Wirkungsgrad berechnen
                            wirkungsgrad();
                            break;
                        case 6:
                            break;
                        default:
                            // Ungueltige Zahl eingebeben, Benutzer muss 3 Sekunden warten und kommt wieder ins Elektrotechnik Menü
                            cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben!( 1 - 6 )\n&quot;;
                            for(int i = 3; i &gt; 0; i--) {
                                cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
                                Sleep(1000);
                                if( i == 1 ) {
                                    cout &lt;&lt; &quot;\n\n&quot;;
                                }
                            }
                            break;                  
                    }
                } while ( benauswahl != 6);
                break;
            case 8:
                // Programm-Beendung
                break;
            default: 
                // Falsche Zahlen-Eingabe
                cout &lt;&lt; &quot;Sie haben eine ungueltige Zahl eingegeben! ( 1 - 8 )\n&quot;;
        } 
    } while( benauswahl != 8 );
    return 0;
}
</code></pre>
<p>Hmm gibt es hier im Forum keine Spoiler Option? Oder wäre es geschickter die Dateien hochzuladen?</p>
<p>Gruß Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893853</guid><dc:creator><![CDATA[Gailer]]></dc:creator><pubDate>Fri, 07 May 2010 15:32:44 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 15:42:57 GMT]]></title><description><![CDATA[<p>Quellcode in weitere logische Teile zerlegen. Außerdem wiederholdenen Code finden und entsprechend auslagern. Beispiel:</p>
<pre><code class="language-cpp">if ( !(cin &gt;&gt; lei) ) {
 prgerr();
}
</code></pre>
<p>Findet sich total oft in deinem Code. Stattdessweren wäre eine Funktion besser:</p>
<pre><code class="language-cpp">wert = leseDouble(&quot;Bitte den Wert eingeben:&quot;);
</code></pre>
<p>Außerdem Variablen dort deklarieren, wo sie benötigt werden.</p>
<p>Und wenn du richtig gut sein willst, dann nutze Exceptions und lass dieses prgbeen() weg... Das bläht deinen Code auch total auf.</p>
<p>Deine Menüs wiederholen sich auch total oft. Eventuell kannst du dafür eine eigene Klasse schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893866</guid><dc:creator><![CDATA[ghjghj]]></dc:creator><pubDate>Fri, 07 May 2010 15:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 15:43:19 GMT]]></title><description><![CDATA[<p>Du hast sehr viel Code doppelt und dreifach mit jeweils kleinen Änderungen. Davon kann man sehr vieles zusammenkürzen indem man die Abstraktionsmittel von C++ benutzt: Templates (wahrscheinlich noch nicht drangekommen), Funktionszeiger (Falls schon drangekommen), bessere Aufteilung der Funktionen (z.B. eine allgemeine Eingabefunktion), zur Not auch Makros.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893869</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 07 May 2010 15:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 15:53:35 GMT]]></title><description><![CDATA[<p>Danke erstmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Seppj schrieb:</p>
<blockquote>
<p>Du hast sehr viel Code doppelt und dreifach mit jeweils kleinen Änderungen. Davon kann man sehr vieles zusammenkürzen indem man die Abstraktionsmittel von C++ benutzt: Templates (wahrscheinlich noch nicht drangekommen), Funktionszeiger (Falls schon drangekommen), bessere Aufteilung der Funktionen (z.B. eine allgemeine Eingabefunktion), zur Not auch Makros.</p>
</blockquote>
<p>Hmm Genau da liegt mein Problem, Templates Zeiger hab ich mir zwar schonmal durchgelesen, aber da endet irgendwie mein Verständnis, deswegen dachte ich mir ich schreib mal nen Rechner mit den Grundfunktionen.</p>
<p>ghjghj schrieb:</p>
<blockquote>
<p>Deine Menüs wiederholen sich auch total oft. Eventuell kannst du dafür eine eigene Klasse schreiben.</p>
</blockquote>
<p>Was meinste damit?</p>
<p>Gruß Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893876</guid><dc:creator><![CDATA[Gailer]]></dc:creator><pubDate>Fri, 07 May 2010 15:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 15:59:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Menu hauptmenu(&quot;Hauptmenu&quot;);

hauptmenu.add(&quot;Punkt 1&quot;);
hauptmenu.add(&quot;Punkt 2&quot;);

int auswahl = hauptmenu.display();

switch (auswahl)
{
 //...
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>--- Hauptmenu ---
1. Punkt 1
2. Punkt 2

Auswahl:
</code></pre>
<p>Alternativ wäre das auch über Funktionszeiger zu realisieren, dann fällt sogar das switch werg, aber das führt wohl zu weit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893881</guid><dc:creator><![CDATA[hjkhjk]]></dc:creator><pubDate>Fri, 07 May 2010 15:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 16:26:11 GMT]]></title><description><![CDATA[<p>hjkhjk schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Menu hauptmenu(&quot;Hauptmenu&quot;);

hauptmenu.add(&quot;Punkt 1&quot;);
hauptmenu.add(&quot;Punkt 2&quot;);

int auswahl = hauptmenu.display();

switch (auswahl)
{
 //...
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>--- Hauptmenu ---
1. Punkt 1
2. Punkt 2

Auswahl:
</code></pre>
<p>Alternativ wäre das auch über Funktionszeiger zu realisieren, dann fällt sogar das switch werg, aber das führt wohl zu weit.</p>
</blockquote>
<p>Jo, noch. Das Problem ist mir macht das Programmieren riesen Spass, das nachdenken über bestimmt Lösungsansätze, verschiedene Funktionen ausdenken, usw. Nur die Umsetzung hakt bei mir glaub ich. Bzw. das erweiterte Veständnis für Zeiger, Klassen usw... Und die einzige Lösung ist wahrscheinlich üben üben üben .</p>
<p>Gruß Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893898</guid><dc:creator><![CDATA[Gailer]]></dc:creator><pubDate>Fri, 07 May 2010 16:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling hat Fragen on Fri, 07 May 2010 16:24:35 GMT]]></title><description><![CDATA[<p>Noch etwas anderes: Die erste Datei soll wohl eine Header-Datei sein -- den Include-Guards zufolge. Du hast in dieser Datei aber viele Funktions<em>definitionen</em> drin, die da nicht reingehören.</p>
<pre><code class="language-cpp">void foo();   // &lt;-- Deklaration

void foo()    // &lt;-- Definition
{
  cout &lt;&lt; &quot;hello!\n&quot;;
}
</code></pre>
<p>Du darfst von diesen Definitionen nur jeweils eine einzige im Programm haben. Wenn Du Dein Programm in mehrere Module aufgeteilt hast und mehr als ein Modul diese Header-Datei einbindet, übersetzt der Compiler die Funktionen mehrfach und Du erhälst .obj/.o-Dateien (kompilierte &quot;Übersetzungseinheiten&quot;), die die Funktionsdefinitionen mehrfach enthalten. Das mag der Linker nicht und ist auch verboten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1893906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1893906</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 07 May 2010 16:24:35 GMT</pubDate></item></channel></rss>