Zeiger/Referenzen



  • Hi
    ich bin ein C++ Anfänger.
    in meiner Aufgabe steht: "Für die Rückgabe von mehr als einem Wert aus einer Funktion müssen Sie mit Zeigern/Referenzen arbeiten!"

    ich weiss nicht wie es geht! 😕 😕 😞
    bis jetzt habe ich dieses Programm geschrieben aber ich weiss nicht wo muss ich "Zeiger" nutzen 😞 😞

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int abstand,g1,Bogenmin,Bogensek;
        double g2,nr, bogenmin2,nr2;
    
       cout << " Bitte geben sie den Abstand ein \n";
        cin >> abstand;
        g1=(abstand/111);//Output
        g2=(abstand/111.0);//to find digits after decimal point
        nr=(g2-g1);//digits after decimal point
        Bogenmin=60*(nr);//Output
        bogenmin2=60*(nr);//to find digits after decimal point
        nr2=(bogenmin2-Bogenmin);//digits after decimal point
        Bogensek=60*(nr2);//Output
    
        cout << g1 <<"° "<< Bogenmin <<"' " << Bogensek <<"\" " <<endl;
    
        system("pause");
        return 0;
    }
    

    Kann Jemand mir helfen?? 😕



  • ryhne schrieb:

    "Für die Rückgabe von mehr als einem Wert aus einer Funktion müssen Sie mit Zeigern/Referenzen arbeiten!"

    Dafür wirst du wohl eine weitere (eigene) Funktion brauchen.
    main zählt nicht.



  • 😮 😞
    Hast du vllt ein Beispiel-funktion mit "Zeiger"?
    Im internet habe ich nur einfache Funktionen gefunden.



  • ryhne schrieb:

    😮 😞
    Hast du vllt ein Beispiel-funktion mit "Zeiger"?
    Im internet habe ich nur einfache Funktionen gefunden.

    Dann such mal nach swap

    Mach du erstmal deine Funktion mit Referenz (ist sehr einfach).
    Dann können wir dir den Unterschied zeigen.

    Eine Funktion aus der C-Standard-Library mit Rückgabe über Zeiger (die nicht mit char-Zeigern) arbeitet ist:
    http://www.cplusplus.com/reference/cmath/modf/
    sonst wäre da noch scanf



  • Danke sehr! 👍 🙂
    die Seite hat mir viel geholfen.

    #include <iostream>
    #include<math.h>
    using namespace std;
    
    int main()
    {
        double abstand,grad,Bogenmin,Bogensek,fractpart1, fractpart2,fractpart3,intpart1,intpart2,intpart3;
    
        cout << " Bitte geben sie den Abstand ein \n";
        cin >> abstand;
    
        grad=(abstand/111.0);
    
        fractpart1=modf (grad,&intpart1);
    
        Bogenmin=60*(fractpart1);
    
        fractpart2= modf (Bogenmin,&intpart2);
    
        Bogensek=60*(fractpart2);
    
        fractpart3= modf (Bogensek,&intpart3);
    
        cout << intpart1 <<"°" << intpart2 <<"'" << intpart3 <<"\""<< endl;
    
        system("pause");
        return 0;
    }
    

    und es funktioniert gut 😃



  • ryhne schrieb:

    Danke sehr! 👍 🙂
    die Seite hat mir viel geholfen.

    So war das gar nicht gemeint 😃

    Zumal es deinem Verständnis wenig hilft.

    Jetzt schreib eine Funktion, die die Berechnungen von Zeile 14 bis 24 enthält.

    #include <iostream>
    #include<math.h>
    using namespace std;
    
    xxxxx Deine_Funktion(double abstand, .. weitere Parameter hier einbauen..)
    {
    
      hier die Berechnung
    
    }
    
    int main()
    {
        double abstand, intpart1,intpart2,intpart3;
    
        cout << " Bitte geben sie den Abstand ein \n";
        cin >> abstand;
    
        Deine_Funktion(abstand, .. weitere Parameter hier einbauen..)
    
        cout << intpart1 <<"°" << intpart2 <<"'" << intpart3 <<"\""<< endl;
    
        system("pause");
        return 0;
    }
    


  • Ja, ich habe es bemerkt und bevor ich weiter mache,habe ich alle Rechnungen als eine Methode geschrieben. Aber heir habe ich es nicht hochgeladen.

    Danke trotzdem


Log in to reply