Structures

C_Boy

Mitglied
Struct, Poine

Hallo,

Die Frage steht in den Comments. Bitte schaut euch das an.

Danke !

C++:
struct punkt_struct
{
  float x;
  float y;
};

typedef struct punkt_struct punkt;

void getPunkte(punkt thePunkte[], int len)
{
  double t=0;

  for( t = 0.0 ; t < len; t++)
  {
    thePunkte[(int)t].x = (float)t;
    thePunkte[(int)t].y = (float)sin(t*0.1);
  }
}

void printPunkte(punkt thePunkte[], int len)
{
  int t=0;

  for( t = 0 ; t < len; t++)
  {
    printf("(x,y)=(%f,%f)\n",thePunkte[t].x ,thePunkte[t].y);
  }
}

punkt getGreater(punkt p1, punkt p2)
{
  if (p1.y >= p2.y)
  {
    return p1;
  }
  return p2;
}

punkt findMax(punkt thePunkte[], int len)
{
  int t=0;
  punkt maxValue;

  maxValue=thePunkte[0];
  for( t = 0 ; t < len; t++)
  {
    maxValue = getGreater(thePunkte[t],maxValue);
//Soll das der Unterprogrammaufruf sein von punkt get creater? warum schreibt //man hier thepunkte und maxValue rein. Ich dachte immer man muss die //Übergabeparameter hineinschreiben: p1 und p2 in meinem Fall?
  }
  return maxValue;
}

void main()
{
  ....
}

Gruß C_boy
 
Hi.

Ja, in Zeile 47 wird die Funktion getGreater aufgerufen.

Der Funktion werden als Argumente thePunkte[t] und maxValue übergeben.

Die Funktion besitzt 2 Parameter namens p1 und p2. Diese existieren nur in der Funktion getGreater und sind insbesondere nicht in der Funktion findMax bekannt.

Die Argumente werden in dem Fall beim Aufruf kopiert (call by value) und p1, p2 haben in der Funktion die gleichen Werte wie thePunkte[t] und maxValue.

Gruß
 
Hi

getGreater ist kein Unterprogramm von punkt, aber dafür ein normales Unterprogramm, das zwei punkte als Parameter nimmt und einen punkt returnend.

Und die Parameternamen sind wohl nicht so deine Sache?

Übergeben kannst irgendwas, völlig egal, solange es punkt ist.
Nur im getGreater wird das dann p1 und p2 genannt.
 
Zurück