From d76d58d382569d3bf4d55960a001a146010b9afd Mon Sep 17 00:00:00 2001 From: Ruben Straub Date: Tue, 17 Dec 2024 14:20:02 +0100 Subject: [PATCH] src/Flugi-vz/Rechner_Wellenlaenge2.c aktualisiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit printf Ausgaben angepasst und bei switch case nicht sichtbarer Bereich hinzugefügt --- src/Flugi-vz/Rechner_Wellenlaenge2.c | 278 ++++++++++++++------------- 1 file changed, 142 insertions(+), 136 deletions(-) diff --git a/src/Flugi-vz/Rechner_Wellenlaenge2.c b/src/Flugi-vz/Rechner_Wellenlaenge2.c index d74efc6..52db0e2 100644 --- a/src/Flugi-vz/Rechner_Wellenlaenge2.c +++ b/src/Flugi-vz/Rechner_Wellenlaenge2.c @@ -1,136 +1,142 @@ -#include -#include -#include -#include - -// Funktion, um einen String in Kleinbuchstaben umzuwandeln -void zuKleinbuchstaben(char* str) { - for (int i = 0; str[i]; i++) { - str[i] = tolower(str[i]); - } -} - -// Funktion, um die Wellenlänge einer Farbe auszugeben -int value = 0; -int failcount = 0; -int returncode = 0; - - -int Wellenlaenge(const char* color) { - if (strcmp(color, "rot") == 0) { - printf("Die Wellenlänge von Rot liegt bei etwa 650-780 nm.\n"); - } else if (strcmp(color, "orange") == 0) { - printf("Die Wellenlänge von Orange liegt bei etwa 585-650 nm.\n"); - } else if (strcmp(color, "gelb") == 0) { - printf("Die Wellenlänge von Gelb liegt bei etwa 575-585 nm.\n"); - } else if (strcmp(color, "grün") == 0 || strcmp(color, "gruen") == 0) { - printf("Die Wellenlänge von Grün liegt bei etwa 490-575 nm.\n"); - } else if (strcmp(color, "blau") == 0) { - printf("Die Wellenlänge von Blau liegt bei etwa 450-490 nm.\n"); - } else if (strcmp(color, "violett") == 0) { - printf("Die Wellenlänge von Violett liegt bei etwa 380-420 nm.\n"); - } else if (strcmp(color, "q") == 0) { - return 10; - } else if (failcount >= 5) { - return 20; - } else { - printf("Unbekannte Farbe oder keine Wellenlängeninformation verfügbar.\n"); - } - failcount++; - return 0; -} - -// Funktion, um die Farbe einer Wellenlänge auszugeben -int wavelenght = 0; - -void printColor(int wavelength) { - switch (wavelength) { - case 620 ... 750: // Range for red - printf("Das Licht dieser Wellenlänge ist Rot\n"); - break; - case 590 ... 619: // Range for orange - printf("Das Licht dieser Wellenlänge ist Orange\n"); - break; - case 570 ... 581: // Range for yellow - printf("Das Licht dieser Wellenlänge ist Gelb\n"); - break; - case 495 ... 569: // Range for green - printf("Das Licht dieser Wellenlänge ist Grün\n"); - break; - case 450 ... 494: // Range for blue - printf("Das Licht dieser Wellenlänge ist Blau\n"); - break; - case 380 ... 449: // Range for violet - printf("Das Licht dieser Wellenlänge ist Violett\n"); - break; - } -} - -// Main Programm -int Wellenlaengen_rechner_main() { - - printf("Guten Tag.\nSie mögen Farben? Dann sind Sie hier genau richtig. Dieses Programm zeigt Ihnen nähmlich den Zusammenhang zwischen der Wellenlänge und der Farbe von Licht.\n"); - int modus = 0; - int failcount = 0; - int returncode = 0; - - char auswahl[21] = {0}; - long wavelength = 0; - char *endptr; - - while (1) { - printf("\nFalls Sie die Lichtfarbe des emittierten Lichtes erfahren wollen, drücken Sie die Taste 1. Wenn Sie die Wellenlänge einer bestimmten Lichtfarbe interessiert, drücken Sie die Taste 2.\n"); - - scanf("%20s", auswahl); - modus = strtol((const char*)auswahl, &endptr, 10); - - if (*endptr != 0){ - modus = -1; - } - if (*endptr == 'q'){ - return 10; - } - - // Ausgabe der Farbe - if (modus==1) { - - - printf("Bitte geben Sie eine Wellenlänge ein (in nm): "); - scanf("%20s", auswahl); - wavelength = strtol((const char*)auswahl, &endptr, 10); - - if (*endptr != 0){ - wavelength = -1; - } - if (*endptr == 'q'){ - return 10; - } - - - printColor(wavelength); - } - - //Ausgabe der Wellenlänge - else if (modus==2) { - - char color[50]; - - printf("Bitte geben Sie eine Farbe ein (z. B. Rot, Orange, Gelb, Grün, Blau, Violett): "); - scanf("%49s", color); - - // Funktion für Eingabe in Kleinbuchstaben umwandeln abrufen - zuKleinbuchstaben(color); - - // Funktion für Ausgabe der Wellenlänge abrufen - returncode = Wellenlaenge(color); - if (returncode == 10){ - return 10; - } - } - - // Ungültige Eingabe - else { - printf("Bitte geben Sie die Nummer eins (1) oder zwei (2) ein. Nichts anderes!!!"); - } - } -} +#include +#include +#include +#include + +// Funktion, um einen String in Kleinbuchstaben umzuwandeln +void zuKleinbuchstaben(char* str) { + for (int i = 0; str[i]; i++) { + str[i] = tolower(str[i]); + } +} + +// Funktion, um die Wellenlänge einer Farbe auszugeben +int value = 0; +int failcount = 0; +int returncode = 0; + + +int Wellenlaenge(const char* color) { + if (strcmp(color, "rot") == 0) { + printf("Die Wellenlänge von rotem Licht liegt bei etwa 650-780 nm.\n"); + } else if (strcmp(color, "orange") == 0) { + printf("Die Wellenlänge von orangem Licht liegt bei etwa 585-650 nm.\n"); + } else if (strcmp(color, "gelb") == 0) { + printf("Die Wellenlänge von gelbem Licht liegt bei etwa 575-585 nm.\n"); + } else if (strcmp(color, "grün") == 0 || strcmp(color, "gruen") == 0) { + printf("Die Wellenlänge von grünem Licht liegt bei etwa 490-575 nm.\n"); + } else if (strcmp(color, "blau") == 0) { + printf("Die Wellenlänge von blauem Licht liegt bei etwa 450-490 nm.\n"); + } else if (strcmp(color, "violett") == 0) { + printf("Die Wellenlänge von violettem Licht liegt bei etwa 380-420 nm.\n"); + } else if (strcmp(color, "q") == 0) { + return 10; + } else if (failcount >= 5) { + return 20; + } else { + printf("Oh nein! Diese Farbe kenne ich nicht. Bitte geben sie eine der 6 Grund- oder Komplementärfarben ein.\n"); + } + failcount++; + return 0; +} + +// Funktion, um die Farbe einer Wellenlänge auszugeben +int wavelenght = 0; + +void printColor(int wavelength) { + switch (wavelength) { + case 620 ... 750: // Bereich von rotem Licht + printf("Das Licht dieser Wellenlänge ist Rot\n"); + break; + case 590 ... 619: // Bereich von orangem Licht + printf("Das Licht dieser Wellenlänge ist Orange\n"); + break; + case 570 ... 581: // Bereich von gelbem Licht + printf("Das Licht dieser Wellenlänge ist Gelb\n"); + break; + case 495 ... 569: // Bereich von grünem Licht + printf("Das Licht dieser Wellenlänge ist Grün\n"); + break; + case 450 ... 494: // Bereich von blauem Licht + printf("Das Licht dieser Wellenlänge ist Blau\n"); + break; + case 380 ... 449: // Bereich von violettem Licht + printf("Das Licht dieser Wellenlänge ist Violett\n"); + break; + case 0 ... 379: // nicht sichtbarer Ultraviolettbereich + printf("Diese Wellenlänge liegt im nicht-sichtbaren Ultraviolettbereich\n"); + break; + default: // nicht sichtbarer Infrarotbereich + printf("Diese Wellenlänge liegt im nicht-sichtbaren Infrarotbereich\n"); + break; + } +} + +// Main Programm +int Wellenlaengen_rechner_main() { + + printf("Guten Tag.\nSie mögen Farben? Dann sind Sie hier genau richtig, denn ich zeige Ihnen den Zusammenhang zwischen der Wellenlänge und der Farbe von Licht.\n"); + int modus = 0; + int failcount = 0; + int returncode = 0; + + char auswahl[21] = {0}; + long wavelength = 0; + char *endptr; + + while (1) { + printf("\nFalls Sie die Lichtfarbe des emittierten Lichtes erfahren wollen, drücken Sie die Taste 1. Wenn Sie die Wellenlänge einer bestimmten Lichtfarbe interessiert, drücken Sie die Taste 2.\n"); + + scanf("%20s", auswahl); + modus = strtol((const char*)auswahl, &endptr, 10); + + if (*endptr != 0){ + modus = -1; + } + if (*endptr == 'q'){ + return 10; + } + + // Ausgabe der Farbe + if (modus==1) { + + + printf("Bitte geben Sie eine Wellenlänge ein (in nm): "); + scanf("%20s", auswahl); + wavelength = strtol((const char*)auswahl, &endptr, 10); + + if (*endptr != 0){ + wavelength = -1; + } + if (*endptr == 'q'){ + return 10; + } + + + printColor(wavelength); + } + + //Ausgabe der Wellenlänge + else if (modus==2) { + + char color[50]; + + printf("Bitte geben Sie eine Farbe ein (z. B. Rot, Orange, Gelb, Grün, Blau, Violett): "); + scanf("%49s", color); + + // Funktion für Eingabe in Kleinbuchstaben umwandeln abrufen + zuKleinbuchstaben(color); + + // Funktion für Ausgabe der Wellenlänge abrufen + returncode = Wellenlaenge(color); + if (returncode == 10){ + return 10; + } + } + + // Ungültige Eingabe + else { + printf("Bitte geben Sie die Nummer eins (1) oder zwei (2) ein. Nichts anderes!!!"); + } + } +}