Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //FUNKTIONEN / UNTERPROGRAMME
- /* Vorbemerkungen
- Aufruf (Nutzung,Verwendung)
- Genauso wie die Funktion printf, wird jede Funktion aufgerufen, sofern sie im (Main)-Code notiert wird.
- Der Code wird ja von oben nach unten abgearbeitet und wenn an einer bestimmten Stelle der Name einer Funktion +()
- erscheint, dann wird diese Funktion abgearbeitet.
- Übergabewerte (Informationen mit denen die aufgerufene Funktion arbeiten soll)
- Übergabewerte werden zwisschen den runden Klammer der Funtkion notiert (falls mehrere, dann durch Kommata getrennt)
- Auch das kenn wir schon durch die Funktion printf (....), denn zwischen den Klammern wird ja mitgeteilt, "was" auf der Konsole erscheinen soll.
- Bei printf sind das "Text"+Variablen, also mehrere Informationen, die daher mit Komma getrennt werden.
- Bemerkung: Nicht jede Funktion braucht Übergabewerte, Beispiele: main() oder rand() ...
- Rückgabewerte (Werte, die an den aufrufenden Code als Ergebnis zurückgeliefert werden)
- Bsp var=rand(), dann berechnet rand() einen Wert, gibt den an das Programm zurück und in diesem Fall wird der Wert der Variablen var zugeordnet.
- Anschaulich wird hier rand() nach seiner Abarbeitung durch Rückgabewert ersetzt, nehmen wir an, rand() hatt 33 ausgelastet, dann können wir nach Abarbeitung von rand()
- uns die Zeile var=rand() auch vorstellen als var = 33.
- */
- #include<stdio.h>
- #include<stdlib.h> //beinhaltet (rand)
- #include<time.h> // Startpunkt der Zufallsliste in Abhängigkeit der aktuellen Zeit
- // Postition, an denen die Funktionen notiert werden sollen
- // Nach den Präprozessor-Angaben (#)
- schreibeHalloWelt()
- {
- printf("Hallo Welt (einfache Funktion)\n");
- }
- xMalHalloWelt(int x)
- {
- int i; //Diese Variable gilt nur in dieser Funktion, daher kann sie den gleichen Namen wie eine ANDERE Variable haben im main()
- for (i=0;i<x;i=i+1)
- printf("Hallo Welt %i\n",i);
- }
- xMalHalloyMALWelt(int x,int y)
- {
- int i;
- for (i=0;i<x;i=i+1)
- {
- printf("Hallo%i\n",i);
- }
- for (i=0;i<y;i=i+1)
- {
- printf(" Welt%i\n",i);
- }
- }
- xMalCHAR(int x,char buchstabe)
- {
- int i;
- for (i=0;i<x;i=i+1)
- {
- printf("\n'j'");
- }
- }
- int bloedsinn() //der Typ VOR dem Funktionsnamen ist der Typ, den der Rückgabewert hat
- {
- return 4711;
- }
- float berechneFlaecheRechteck(float a,float b)
- {
- float ergebnis;
- ergebnis = a*b;
- return ergebnis;
- }
- // aber VOR dem main()
- main()
- {
- srand(time(NULL));
- system("chcp 1252");
- system("cls");
- int i=111;
- printf("Hallo Welt (ganz allein)\n");
- //Beispiel für eine Funktion OHNE Übergabwerte, NOCH einem Rückgabewert
- schreibeHalloWelt(); // Nach Abarbeitung der aufgerufenen Funktion geht es....
- // ... "dahinter" im (Haupt)-Programm ganz normal weiter.
- // Bermerkung: schreibeHalloWelt ist eine Funktion mit einem "Seiteneffekt". Alleine der Aufruf bewirkt etwas.
- // Gegenbeispiel: rand() ist eine "reine Funktion" (ohne Seiteneffekt), der reine Aufruf hat keine Wirkung
- // Beispiel für eine Funktion MIT Übergabewerten, aber OHNE einem Rückgabewert
- printf("\n\nBeispiel Hallo Welt mit festem Wert (10)\n");
- xMalHalloWelt(10);
- // Aufruf funktioniert auch mit Integer Variablen:
- printf("\n\nBeispiel Hallo Welt mit variablen Wert (var)\n");
- int var = 3;
- xMalHalloWelt(var);
- // Beispiel für eine Funktion MIT MEHREREN Übergabewerten aber OHNE einem Rückgabewert
- printf("\n\nBeispiel Hallo Welt mit mehreren Übergabewerten (2,3)\n");
- xMalHalloyMALWelt(2,3);
- //Beispiel für eine Funktion MIT MEHREREN Übergabewerten von UNTERSCHIEDLICHEM TYP aber OHNE einem Rückgabewert
- ("\n\nBeispiel Hallo Welt mit mehreren verschiedenen Übergabewerten (2,'j')\n");
- xMalCHAR(3,'j');// Reihenfolge wichtig, Aufruf von XMailCHAR('j',3) würde nicht funktionieren
- // Beispiel für eine Funktion OHNE Übergabewert, aber mit Rückgabewert (Ausgabe per printf - also OHNE ABSPEICHERUNG)
- printf("\n\nDer Rückgabe-Wert von bloedsinn() lautet: %i",bloedsinn());
- // Bemerkung ohne Übergabewert ist der Rückgabewert natürlich stets identisch, daher ist eine solche Funktion in der Regel überflüssig
- // Ausnahmen: Zufallszahl ermitteln oder aktuelles Datum/Uhrzeit)
- // Beispiel für eine Funktion OHNE Übergabewert, aber mit Rückgabewert (Rückgabewert wird abgespeichert)
- var=bloedsinn();
- printf("\n\nDer Rückgabe-Wert von bloedsinn() (var) lautet: %i",var);
- //Beispiel für eine Funktion MIT Übergabewert und MIT Rückgabewert
- printf("\n\nBeispiel berechneFlaecheRechteck (10,22)\n");
- float seiteA=10,seiteB=22,fvar;
- fvar=berechneFlaecheRechteck(seiteA,seiteB);
- printf("\n\nDer Rückgabe-Wert von berechneFlaecheRechteck() lautet: %.2f",fvar);
- printf("\n\n");
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement