Advertisement
phoenix79194

Lehre-Funktionen

Feb 21st, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.78 KB | None | 0 0
  1. //FUNKTIONEN / UNTERPROGRAMME
  2. /* Vorbemerkungen
  3.  
  4.     Aufruf (Nutzung,Verwendung)
  5.     Genauso wie die Funktion printf, wird jede Funktion aufgerufen, sofern sie im (Main)-Code notiert wird.
  6.     Der Code wird ja von oben nach unten abgearbeitet und wenn an einer bestimmten Stelle der Name einer Funktion +()
  7.     erscheint, dann wird diese Funktion abgearbeitet.
  8.    
  9.     Übergabewerte (Informationen mit denen die aufgerufene Funktion arbeiten soll)
  10.     Übergabewerte werden zwisschen den runden Klammer der Funtkion notiert (falls mehrere, dann durch Kommata getrennt)
  11.     Auch das kenn wir schon durch die Funktion printf (....), denn zwischen den Klammern wird ja mitgeteilt, "was" auf der Konsole erscheinen soll.
  12.     Bei printf sind das "Text"+Variablen, also mehrere Informationen, die daher mit Komma getrennt werden.
  13.  
  14.     Bemerkung: Nicht jede Funktion braucht Übergabewerte, Beispiele: main() oder rand() ...
  15.    
  16.     Rückgabewerte (Werte, die an den aufrufenden Code als Ergebnis zurückgeliefert werden)
  17.     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.
  18.     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()
  19.     uns die Zeile var=rand() auch vorstellen als var = 33.
  20.  
  21. */
  22.  
  23.  
  24. #include<stdio.h>
  25. #include<stdlib.h> //beinhaltet (rand)
  26. #include<time.h>  // Startpunkt der Zufallsliste in Abhängigkeit der aktuellen Zeit
  27.  
  28. // Postition, an denen die Funktionen notiert werden sollen
  29. // Nach den Präprozessor-Angaben (#)
  30. schreibeHalloWelt()
  31. {
  32.     printf("Hallo Welt (einfache Funktion)\n");
  33. }
  34.  
  35. xMalHalloWelt(int x)
  36. {
  37.     int i; //Diese Variable gilt nur in dieser Funktion, daher kann sie den gleichen Namen wie eine ANDERE Variable haben im main()
  38.     for (i=0;i<x;i=i+1)
  39.     printf("Hallo Welt %i\n",i);
  40. }
  41.  
  42. xMalHalloyMALWelt(int x,int y)
  43. {
  44.     int i;
  45.     for (i=0;i<x;i=i+1)
  46.     {
  47.     printf("Hallo%i\n",i);
  48.     }
  49.     for (i=0;i<y;i=i+1)
  50.     {
  51.         printf(" Welt%i\n",i);
  52.     }
  53. }
  54.  
  55. xMalCHAR(int x,char buchstabe)
  56. {
  57.     int i;
  58.     for (i=0;i<x;i=i+1)
  59.     {
  60.         printf("\n'j'");
  61.     }
  62. }
  63.  
  64. int bloedsinn() //der Typ VOR dem Funktionsnamen ist der Typ, den der Rückgabewert hat
  65. {
  66.     return 4711;   
  67. }
  68.  
  69.  
  70. float berechneFlaecheRechteck(float a,float b)
  71. {
  72.     float ergebnis;
  73.     ergebnis = a*b;
  74.     return ergebnis;
  75. }
  76.  
  77. // aber VOR dem main()
  78.  
  79. main()
  80. {
  81.    
  82.     srand(time(NULL));
  83.    
  84.     system("chcp 1252");
  85.     system("cls");
  86.    
  87.     int i=111;
  88.    
  89.    
  90.     printf("Hallo Welt (ganz allein)\n");
  91.     //Beispiel für eine Funktion OHNE Übergabwerte, NOCH einem Rückgabewert
  92.     schreibeHalloWelt(); // Nach Abarbeitung der aufgerufenen Funktion geht es....
  93.     // ... "dahinter" im (Haupt)-Programm ganz normal weiter.
  94.    
  95.     // Bermerkung: schreibeHalloWelt ist eine Funktion mit einem "Seiteneffekt". Alleine der Aufruf bewirkt etwas.
  96.     // Gegenbeispiel: rand() ist eine "reine Funktion" (ohne Seiteneffekt), der reine Aufruf hat keine Wirkung
  97.    
  98.    
  99.     // Beispiel für eine Funktion MIT Übergabewerten, aber OHNE einem Rückgabewert
  100.     printf("\n\nBeispiel Hallo Welt mit festem Wert (10)\n");
  101.     xMalHalloWelt(10);
  102.     // Aufruf funktioniert auch mit Integer Variablen:
  103.     printf("\n\nBeispiel Hallo Welt mit variablen Wert (var)\n");
  104.     int var = 3;
  105.     xMalHalloWelt(var);
  106.    
  107.    
  108.     // Beispiel für eine Funktion MIT MEHREREN Übergabewerten aber OHNE einem Rückgabewert    
  109.     printf("\n\nBeispiel Hallo Welt mit mehreren Übergabewerten (2,3)\n");
  110.     xMalHalloyMALWelt(2,3);
  111.    
  112.     //Beispiel für eine Funktion MIT MEHREREN Übergabewerten von UNTERSCHIEDLICHEM TYP aber OHNE einem Rückgabewert
  113.     ("\n\nBeispiel Hallo Welt mit mehreren verschiedenen Übergabewerten (2,'j')\n");
  114.     xMalCHAR(3,'j');// Reihenfolge wichtig, Aufruf von XMailCHAR('j',3) würde nicht funktionieren
  115.    
  116.     // Beispiel für eine Funktion OHNE Übergabewert, aber mit Rückgabewert (Ausgabe per printf - also OHNE ABSPEICHERUNG)
  117.     printf("\n\nDer Rückgabe-Wert von bloedsinn() lautet: %i",bloedsinn());
  118.     // Bemerkung ohne Übergabewert ist der Rückgabewert natürlich stets identisch, daher ist eine solche Funktion in der Regel überflüssig
  119.     // Ausnahmen: Zufallszahl ermitteln oder aktuelles Datum/Uhrzeit)
  120.    
  121.     // Beispiel für eine Funktion OHNE Übergabewert, aber mit Rückgabewert (Rückgabewert wird abgespeichert)
  122.     var=bloedsinn();
  123.     printf("\n\nDer Rückgabe-Wert von bloedsinn() (var) lautet: %i",var);
  124.    
  125.     //Beispiel für eine Funktion MIT Übergabewert und MIT Rückgabewert
  126.     printf("\n\nBeispiel berechneFlaecheRechteck (10,22)\n");
  127.     float seiteA=10,seiteB=22,fvar;
  128.     fvar=berechneFlaecheRechteck(seiteA,seiteB);
  129.     printf("\n\nDer Rückgabe-Wert von berechneFlaecheRechteck() lautet: %.2f",fvar);
  130.    
  131.    
  132.    
  133.     printf("\n\n");
  134.     system("pause");
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement