c++ Strukturen



  • #include <cstdlib>
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    struct Spannung {
    float re, im, ergeb;
    void eingabe();
    void ausgabe();
    }
    
    int main(int argc, char *argv[])
    {
    
    Spannung u1,u2,ergeb;
    
    void  Spannung::eingabe(){
    cout <<"Bitte geben Sie den Realteil der 1. Spannung ein"<< endl;
    cin >> u1.re;
    cout <<"Bitte geben Sie den Imaginaerteil der 1. Spannung ein"<< endl;
    cin >> u1.im;
    cout <<"Bitte geben Sie den Realteil der 2. Spannung ein"<< endl;
    cin >> u2.re;
    cout <<"Bitte geben Sie den Imaginaerteil der 2. Spannung ein"<< endl;
    cin >> u2.im;
    }
    
    void Spannung::ausgabe(){
    ergeb.re = u1.re + u2.re;
    cout <<"Gesamtrealteil:  "<< ergeb.re << endl;
    ergeb.im = u1.im + u2.im; 
    cout <<"Gesamtimaginaerteil:  "<< ergeb.im << endl;
    
    //Betrag1 = sqrt(Re1*Re1 + Im1*Im1);
    //Betrag2 = sqrt(Re2*Re2 +Im2*Im2);
    //cout <<"Betrag der 1. Spannung:" << Betrag1 << endl;
    //cout <<"Betrag der 2. Spannung:" << Betrag2 << endl; 
    }    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    hallo erstmal,
    ich möchte in meinem programm gerne die spannungen in imaginär und realteil ausgegeben haben. ich soll das ganze mit strukturen machen. das gerüst steht schon mal, aber ich bekomme immer fehlermeldung mit:
    17,28 expected primary-expression before "void" oder
    13 `main' must return `int'

    die betragsberechnung is mir erstmal egal, hauptsache das programm startet mal.
    schreibe nämlich morgen eine arbeit darüber. ich hoffe ihr könnt mir weiterhelfen 😞



  • Hallo,

    C++ kennt keine lokalen Funktionsdefinitionen. Die müssen raus aus der main-Funktion.



  • was genau meinst du damit ?



  • #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    struct Spannung {
    float re, im , betrag;
    } 
    u1, u2, ergeb;
    
    void eingabe()
    {
    cout <<"Bitte geben Sie den Realteil der 1. Spannung ein"<< endl;
    cin >> u1.re;
    cout <<"Bitte geben Sie den Imaginaerteil der 1. Spannung ein"<< endl;
    cin >> u1.im;
    cout <<"Bitte geben Sie den Realteil der 2. Spannung ein"<< endl;
    cin >> u2.re;
    cout <<"Bitte geben Sie den Imaginaerteil der 2. Spannung ein"<< endl;
    cin >> u2.im;
    }
    
    void ausgabe()
    {
    ergeb.re = u1.re + u2.re;
    cout <<"Gesamtrealteil:  "<< ergeb.re << endl;
    ergeb.im = u1.im + u2.im; 
    cout <<"Gesamtimaginaerteil:  "<< ergeb.im << endl;
    u1.betrag = sqrt(u1.re*u1.re + u1.im*u1.im);
    u2.betrag = sqrt(u2.re*u2.re +u2.im*u2.im);
    cout <<"Betrag der 1. Spannung:" << u1.betrag << endl;
    cout <<"Betrag der 2. Spannung:" << u2.betrag << endl; 
    }
    
    int main(int argc, char *argv[])
    {
        eingabe();
        ausgabe();
        system("PAUSE");
        return EXIT_SUCCESS;
    
    }
    

    So hab es jetzt mal dran rumgewurschtelt und jetzt läuft das programm 😃
    Nur die wurzelfunktion spuckt mir ein seltsames ergeniss aus, aber das krieg ich bestimmt noch hin.

    vielen dank nochmal 😉



  • Jockelx schrieb:

    Hallo,

    C++ kennt keine lokalen Funktionsdefinitionen. Die müssen raus aus der main-Funktion.

    Aber Strukturen kann man einbetten und wenn man eine statische Funktion definiert, dann hat man praktisch genau das. 😉

    int main()
    {
     struct foo
     {
      static void bar (){ std::cout << "hi"; }
     };
     foo::bar ();
    }
    

Log in to reply