-
Gesamte Inhalte
2 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Sh4dow
-
-
Noch ein bisschen Senf zu Funktionen:
Wenn Du eine Funktion innerhalb deiner main-funktion aufrufst, dann muss der Compiler zu dem Zeitpunkt, an dem er deinen Quelltext in ein lauffähiges Programm übersetzt, bereits etwas von der Funktion wissen (nicht, was sie macht, sondern einfach nur, dass es sie gibt).
Das, was Du also vor deiner main-Funktion hinschreibst, nennt man den "Prototyp". Das gleiche geht auch mit Klassen und zum Beispiel auch mit Strukturen.
Bei Funktionen ist dieser Prototyp die Signatur der Funktion, als der Rückgabetyp, dann der Name und dann in den runden Klammern noch die Parameter. Wenn Du Dir jetzt beispielsweise eine Funktion zum addieren von zwei Zahlen schreiben willst dann schreibst Du beispielsweise
int addiereAundB( int a, int b );
Dann weiss der Compiler, dass es eine Funktion gibt, die 2 Ganzzahlen als Parameter entgegen nimmt und eine Ganzzahl zurück gibt.
Wenn Du das gleiche Verhalten für Gleitkommazahlen umsetzten wolltest, dann sähe die Signatur wie folgt aus:
float addiereAundB( float a, float b );
Wenn Du weiter unten dann irgendwann die Funktion implementierst, dann schreibst du genau das nochmal, aber diesmal mit Funktionsrumpf ( das zwischen { und } ).
Also: float addiereAundB( float a, float b ) {
return a+b;
}
Das Schlüsselwort return bedeutet, dass an dieser Stelle etwas zurückgegeben wird, also die addiereAundB-Funktion etwas zurückgibt.
Zum Schluss noch eine Sache zu Pointern:
Bei den beiden Beispielen oben wird der Funktion der tatsächliche Wert der Variablen übergeben, also beispielsweise 2 und 5. Das nennt sich "Call-by-Value". Wenn Du jetzt mit Pointern arbeiten würdest, dann spricht man von "Call-by-Reference", es wird also nicht der tatsächliche Wert übergeben, sondern "nur" ein Verweis, also die Information (Speicheradresse) wo der Wert steht.
Ein wenig abstrakter: "Call-by-Value" arbeitet mit einer Kopie, "Call-by-Reference" arbeitet mit der gleichen Variable.
Ich hoffe, das war jetzt nicht zu kompliziert, und ich konnte Dir ein klein wenig Erleuchtung bringen.
Grüße, Sh4dow
PS: Falls Du Dich noch ein bisschen tiefer in die Materie einarbeiten möchtest, dann empfehle ich Dir das openbook "C von A bis Z" bei Galileo Computing (Link: Galileo Computing :: C von A bis Z)
Das Buch beschäftigt sich zwar mit C, aber da C++ eine Weiterentwicklung (z.B. OOP) von C ist, sind viele Dinge gleich.
C++ - Unterricht in der Berufschule
in C und C++
Geschrieben
Also, zu 1):
Bei 4 Quartalen berechnet sich der Durchschitt wie folgt: durchschnitt = ( q1 + q2 + q3 + q4) / 4
Zu 2): Du musst den beiden Funktionen das entsprechende Array und die Größe des Arrays (also der Elemente im Array) übergeben, da die Funktionen sonst nicht wissen, wie viele Elemente es im Array gibt.
Zu 3):
Das Zauberwort heisst hier "Schleifen": Sowohl die Eingabe der Umsätze als auch die Möglichkeit, Eingaben zu korrigieren lassen sich mit Hilfe von Schleifen umsetzen...
Ich hoffe, das reicht Dir erstmal... Du hast ja mehr davon, wenn Du dir das selbst erarbeitest