Advertisement
Qanar

Laborvorbereitung 4

Dec 5th, 2021 (edited)
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include <time.h>
  4.  
  5. /** AUFGABE 1.1 **/
  6. typedef struct Point {
  7.     int x;
  8.     int y;
  9. } Point;
  10.  
  11. void printPoint(Point* aPoint) {
  12.     printf("x: %d, y: %d\n",
  13.         aPoint->x, // dasselbe wie (*aPoint).x
  14.         aPoint->y // dasselbe wie (*aPoint).y
  15.     );
  16. };
  17.  
  18. void aufgabeEinsEins() {
  19.  
  20.     Point pkt;
  21.  
  22.     pkt.x = 10;
  23.     pkt.y = 20;
  24.  
  25.     printPoint(&pkt);
  26. }
  27. /** *** *** *** *** *** *** */
  28.  
  29. /** AUFGABE 1.2 **/
  30. typedef struct TemperaturMessung {
  31.     float wert;
  32. } TemperaturMessung;
  33.  
  34. typedef struct StundenMessung {
  35.     TemperaturMessung temperaturMessungen[4];
  36. } StundenMessung;
  37.  
  38. typedef struct TagesMessung {
  39.     StundenMessung stundenMessungen[24];
  40. } TagesMessung;
  41.  
  42. typedef struct JahresMessung {
  43.     TagesMessung tagesMessungen[365];
  44. } JahresMessung;
  45.  
  46. void aufgabeEinsZwei() {
  47.  
  48.     // Alle 15 Minuten f. ein Jahr
  49.     // d.h. 4 Pro Stunde
  50.     // 4*24 --> 96 Pro Tag
  51.     // 365 * 96  --> 35040 Messungen
  52.  
  53.  
  54.  
  55.     JahresMessung* jahresMessungen = (JahresMessung*)malloc(sizeof(JahresMessung));
  56.  
  57.     for (int tag = 0; tag < 365; tag++) {
  58.         TagesMessung* tagesMessung = &((*jahresMessungen).tagesMessungen[tag]);
  59.  
  60.         for (int stunde = 0; stunde < 24; stunde++) {
  61.             StundenMessung* stundenMessung = &(tagesMessung->stundenMessungen[stunde]);
  62.  
  63.             for (int messungsNummer = 0; messungsNummer < 4; messungsNummer++) {
  64.                 TemperaturMessung* temperaturMessung = &(stundenMessung->temperaturMessungen[messungsNummer]);
  65.                 temperaturMessung->wert = 1.337;
  66.             }
  67.  
  68.         }
  69.  
  70.     }
  71.  
  72.     for (int tag = 0; tag < 365; tag++) {
  73.         TagesMessung* tagesMessung = &(jahresMessungen->tagesMessungen[tag]);
  74.  
  75.         for (int stunde = 0; stunde < 24; stunde++) {
  76.             StundenMessung* stundenMessung = &(tagesMessung->stundenMessungen[stunde]);
  77.  
  78.             for (int messungsNummer = 0; messungsNummer < 4; messungsNummer++) {
  79.                 TemperaturMessung* temperaturMessung = &(stundenMessung->temperaturMessungen[messungsNummer]);
  80.                 //printf("Tag %f , Stunde %f , Messwert %f , Wert %f\n", tag+1, stunde+1, messungsNummer+1, temperaturMessung->wert);
  81.             }
  82.  
  83.         }
  84.     }
  85.  
  86.     printf("Tag 50, Stunde 20, Wert 3: %f\n", (*jahresMessungen).tagesMessungen[49].stundenMessungen[19].temperaturMessungen[2].wert);
  87.  
  88.  
  89.  
  90.     // Billo Weg2
  91.     //float Temperaturen[35040];
  92.  
  93. }
  94. /** *** *** *** *** *** *** */
  95.  
  96. /** AUFGABE 1.3-4 **/
  97. typedef enum Karten {
  98.     sieben = 7,
  99.     acht = 8,
  100.     neun = 9,
  101.     zehn = 10,
  102.     bube = 11,
  103.     dame = 12,
  104.     koenig = 13,
  105.     ass = 14
  106. } Karten;
  107.  
  108. typedef Karten Kartenstapel[8];
  109.  
  110. char const* const kartenName(Karten spielkarte) {
  111.     switch (spielkarte) {
  112.     case sieben:
  113.         return "SIEBEN";
  114.         break;
  115.     case acht:
  116.         return "ACHT";
  117.         break;
  118.     case neun:
  119.         return "NEUN";
  120.         break;
  121.     case zehn:
  122.         return "ZEHN";
  123.         break;
  124.     case bube:
  125.         return "BUBE";
  126.         break;
  127.     case dame:
  128.         return "DAME";
  129.         break;
  130.     case koenig:
  131.         return "KOENIG";
  132.         break;
  133.     case ass:
  134.         return "ASS";
  135.     }
  136.  
  137.     return "UNKNOWN";
  138. }
  139.  
  140. void aufgabeEinsDrei() {
  141.     Karten eineBubenKarte = bube;
  142.  
  143.     Kartenstapel karten;
  144.     karten[0] = bube;
  145.     karten[1] = acht;
  146.     karten[2] = sieben;
  147.     karten[3] = ass;
  148.     karten[4] = koenig;
  149.     karten[5] = zehn;
  150.     karten[6] = dame;
  151.     karten[7] = neun;
  152.  
  153.  
  154.     printf("Erste Karte: %s\n", kartenName(karten[0]));
  155.     printf("Naechste Karte: %s\n", kartenName(karten[1]));
  156.     printf("Letzte Karte: %s\n", kartenName(karten[7]));
  157. }
  158.  
  159. int aufgabeZwei() {
  160.  
  161.     float messungen[100];
  162.     int anzahlMessungen = 0;
  163.  
  164.     printf("Geben Sie die Anzahl der Messwerte an:\n");
  165.     scanf_s("%d", &anzahlMessungen);
  166.  
  167.     if (anzahlMessungen <= 0) {
  168.         printf("Sie muessen mindestens eine Messung angeben..\n", anzahlMessungen);
  169.         return -1;
  170.     }
  171.  
  172.     if (anzahlMessungen > 100) {
  173.         printf("Sie duerfen maximal 100 Messungen angeben..\n", anzahlMessungen);
  174.         return -1;
  175.     }
  176.  
  177.     printf("Bitte geben Sie nun Ihre %u Messungen ein.\n", anzahlMessungen);
  178.  
  179.     double runningAverage = 0;
  180.     for (int i = 0; i < anzahlMessungen; i++) {
  181.         printf("Geben Sie Messwert %3d ein.\n", i + 1);
  182.         scanf_s("%f", &(messungen[i]));
  183.         printf("Messwert %3d | Wert: %f \n", i + 1, messungen[i]);
  184.  
  185.         runningAverage += (double)messungen[i];
  186.     }
  187.     runningAverage = runningAverage / anzahlMessungen;
  188.  
  189.     printf("Das arith. Mittel lautet %lf\n", runningAverage);
  190.  
  191.     return 0;
  192.  
  193. }
  194.  
  195. int aufgabeDrei()
  196. {
  197.  
  198.     int anzahlRandomzahlen = 0;
  199.  
  200.     printf("Geben Sie die Anzahl der Zufallswerte an:\n");
  201.     scanf_s("%d", &anzahlRandomzahlen);
  202.  
  203.     if (anzahlRandomzahlen <= 0) {
  204.         printf("Sie müssen mindestens Eine angeben..\n", anzahlRandomzahlen);
  205.         return -1;
  206.     }
  207.  
  208.     if (anzahlRandomzahlen > 100) {
  209.         printf("Sie dürfen maximal 100 Zufallszahlen ausgeben lassen..\n", anzahlRandomzahlen);
  210.         return -1;
  211.     }
  212.  
  213.     srand(time(NULL));
  214.     for (int i = 0; i < anzahlRandomzahlen; i++) {
  215.         int randomZahl = rand() % 6;
  216.         printf("Zufallszahl %3d -  %d\n", i, randomZahl);
  217.     }
  218.  
  219.     return 0;
  220.  
  221. }
  222.  
  223.  
  224. int main() {
  225.     //aufgabeEinsEins();  //1.1
  226.     //aufgabeEinsZwei();  //1.2
  227.     //aufgabeEinsDrei();  //1.3-4
  228.     //aufgabeZwei();
  229.     aufgabeDrei();
  230.     return 0;
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement