[Anfänger] Pointer Problem?



  • Hi Leute,
    ich habe ein Verständnisproblem, was Pointer/ Referenzen angeht.
    Die Berechnung soll mithilfe von Zeigern oder Referenzen innerhalb einer Funktion drei getrennte Variablen (Grad, Bogenminute, Bogensekunde) zurückgeben. Die Berechnung erfolgt mit den Nachkommazahlen, jedoch sollen nur die integer Werte ausgegeben werden. Pointer/ Referenzen scheinen mir aber redundant?
    Würde mich über Hilfe freuen 🙂

     ... // ConsoleApplication128.cpp: Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <math.h>
    using namespace std;
    
    double bogenminute;
    int bogensekunde;
    double grad;
    double zahl;
    double i;
    
    double eingabe(double i)
    {
    	cout << " Diese Programm rechnet eine Entfernung vom \204quator zu seinem Breitengrad um:";
    	cin >> zahl;
    	cin.get();
    	return 0;
    }
    
    double berechnung(int i)
    {
    	grad = (zahl / 111);
    	int grad2 = (int)grad;
    	grad = grad - (int)grad;
    	
    
    	double*newgrad = &grad;
    
    	bogenminute = (*newgrad * 60);
    	int bogenminute2 = (int)bogenminute;
    	bogenminute = bogenminute - (int)bogenminute;
    
    	double *newbogenminute = &bogenminute;
    
    
    	int bogensekunde = (*newbogenminute * 60);
    
    	cout << grad2 << "\n" << bogenminute2 << "\n" << bogensekunde << "";
    
    	cin.get();
    	return 0;
    
    }
    
    
    int main()
    
    
    {
    	eingabe(i);
    	berechnung(i);
    } ... 
    

  • |  Mod

    Globale Variablen sind ganz böse, aus gleich einem ganzen Haufen von Gründen, auf die ich jetzt nicht im Detail eingehen werde. Wenn du ohne globale Variablen arbeiten würdest, dann macht die Aufgabenstellung auf einmal Sinn. Wahrscheinlich ist es gerade der Zweck der Aufgabenstellung, dir zu zeigen, wie du auch ohne globale Variablen Werte aus Funktionen zurück geben kannst.



  • Also eine Zahl soll in Grad, Bogenminuten und Bogensekunden umgewandelt werden? Dazu soll eine Funktion geschrieben werden? Also soll der Funktion eine Variable "übergeben" werden und drei Variablen "zurückgeben"?

    Bitte korrigieren falls unübliche Wörter verwendet werden oder die Antwort fehlerhaft ist 🧐

    Kurzes Beispiel:

    // Wenn die Funktion aufgerufen wird, wird die Variable kopiert.
    // Innerhalb der Funktion nimmt man nur Änderungen an der Kopie vor.
    void function(int variable)  
    {
        variable = 0;
    }
    
    // Wenn die Funktion aufgerufen wird, wird die "Referenz" "übergeben"
    // Innerhalb der Funktion kann die "übergeben " Variable geändert werden 
    void function(int& variable)
    {
        variable = 0;
    }
    
    // variable muss ??? sein, sonst ???
    void function(int *variable)
    {
        *variable = 0;
    }
    

Anmelden zum Antworten