Innerhalb einer Funktion andere Variablennamen

kannaum

Mitglied
hallo,

Stehe gerade vor einem Problem.
bei mir sind die Variablennamen sehr lange und deswegen wollte ich unter einer Funktion Synonyme dafür verwenden.
Zum Beispiel für "rechner_quadrat_eingabe_wert" einfach X.
Wie kann ich das bewerkstelligen.
Habe das glaube ich shcon mal gelesen finde abe rnichts mehr darüber.

mfg
 
Moin,

theoretisch kannst Du natürlich bspw. ein DEFINE setzen oder mit Funktionspointer arbeiten.

Allerdings würde ich Dir dringend raten, die Finger davon zu lassen!

Zu den goldenen Regeln für gute Software-Entwicklung gehören u. a. "sprechende Bezeichner" oder etwa auch die Vermeidung von "Magic Numbers".
Glaub' mir ... wenn Dein Projekt erstmal größer ist, dann weißt Du in einigen Monaten selbst nicht mehr, was sich hinter der Funktion X verbirgt.

Bei einem (sinnigen) sprechenden Funktionsnamen ist es dann gut nachvollziehbar!

Gruß
Klaus
 
Hallo kannaum,
wenn Du eine Funktion aufrufst, kannst du die benötigten Variablen dieser Funktion übergeben. Beim Deklarieren der Funktion kannst Du angeben, wie diese übergebenen Variablen innerhalb der Funktion heissen sollen.
Beispiel:
C++:
// Deklaration der Funktion
// x wird den Wert enthalten, welcher übergeben wurde
void rechneQuadrat (int x) {
  int ausgabe = x*x; // Hier wird x verwendet, welches den Wert deiner ursprünglichen langen Variable hat
  printf("%i", ausgabe);
}

int main () {
  int rechner_quadrat_eingabe_wert = 5; // Deine rießiger Variablennamen
  
  rechneQuadrat (rechner_quadrat_eingabe_wert); // Aufrufen der Funktion und Übergabe der Variable

}

Ich empfehle dir ein paar Tutorials über Funktionen durchzulesen. Oder "C von A bis Z" hier: http://openbook.galileocomputing.de/c_von_a_bis_z/009_c_funktionen_001.htm

Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:
ja das ist mir schon klar.
Deswegen habe ich mir überlegt wie ich die ganzen Namen Sachen benenne und ich denke unter rechner_quadrat_eingabe_wert kann man such schon was vorstellen, wenn man weiß um was es geht.
Aber die Funktion ist nur sehr kurz.
Ich kann sie ja mal kurz zeigen:
Code:
double rechner_quadrat (double rechner_quadrat_eingabe_potenz = 2, double rechner_quadrat_eingabe_wert) {
             double ergebnis;
             if (rechner_quadrat_eingabe_wert or rechner_quadrat_eingabe_potenz == 0) {
                   return false;
                   }
                   else {
                      for (double i=1; i<=rechner_quadrat_eingabe_potenz; i++) {
                          ergebnis = rechner_quadrat_eingabe_wert*i;
                          }
                          return ergebnis;
                          }
      }

Und ich denke wenn man da statt den langen Variablennamen a und n verwenden würde wäre das ganze übersichtlicher und trotzdem nciht zu komplitziert.

mfg
 
Sorry - ich hatte irgendwie "Funktionsnamen" statt "Variablennamen" gelesen :-( ... ist wohl schon die Aufregung wegen des Spiels nachher :D

Ich denke mal, dass das Beispiel von bullja genau das trifft, was Du sucht - gerade bei kurzen Funktionen !

Gruß
Klaus
 
Ja, wie schön wenn man Österreicher ist ;-)

Ja ich denke auch das triffts sehr gut.
Aber ein kleines Problem hab ich noch.
Bei mir schaut das ganze so aus:

Code:
class rechner_potenz {
      
      public:
     ......................
      
      int rechner_quadrat (int n = 2, int a) {
             int ergebnis;
             if (a or n == 0) {
                   return 1;
                   }
                   else {
                      for (int i=1; i<=n; i++) {
                          ergebnis = a*i;
                          }
                          return ergebnis;
                          }
      }
};

Aber wie kann ich die Methode dann in der main Funktion aufrufen.
Habs schon auf verschiedene Arten probiert:
z.B:
cout << rechner_potenz::rechner_quadrat(2,3);
cout << rechner_quadrat(2,3);

mfg
 
Was spricht denn dagegen, die kurzen Variablennamen a und n direkt im Funktionnsheader zu nutzen?
C++:
/* a == rechner_quadrat_eingabe_potenz
   n == rechner_quadrat_eingabe_wert */
double rechner_quadrat (double a, double n) {
...
}

Ansonsten schau Dir mal das Kapitel Zeiger an, damit kannst Du auch "Synonyme" deiner Variablen erstellen, das wird dann allerdings komplizierter. Empfehle Dir die oben genannte Lösung...

Aber wie kann ich die Methode dann in der main Funktion aufrufen.
Habs schon auf verschiedene Arten probiert:
z.B:
cout << rechner_potenz::rechner_quadrat(2,3);
cout << rechner_quadrat(2,3);

Du musst in der main-Funktion ein Objekt der Klasse rechner_potenz erstellen, dann können erst Methoden aufgerufen werden.

C++:
int main () {
  rechner_potenz rechner;
  rechner->rechner_quadrat(2,3);
}
 
Zuletzt bearbeitet von einem Moderator:
Und wo ich gerade deine Funktion
C++:
int rechner_quadrat (int n = 2, int a) {
sehe..
Optionale Parameter kommen immer nach hinten.
 
Ok , das habe ich jetzt wieder alles verstanden.
habe schon zu lange nicht mehr programmiert ;-)
Aber bei mir tut sich wenn ich
Code:
 rechner_potenz rechner;
 cout << rechner->rechner_quadrat(2,3);
hinschreibe rein ar ncihts.

mfg
 
Zurück