From d76d58d382569d3bf4d55960a001a146010b9afd Mon Sep 17 00:00:00 2001 From: Ruben Straub Date: Tue, 17 Dec 2024 14:20:02 +0100 Subject: [PATCH 1/3] 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!!!"); + } + } +} -- 2.20.1 From 5344923baff3720778aa2585adca056e40e8860d Mon Sep 17 00:00:00 2001 From: Ruben Straub Date: Tue, 17 Dec 2024 14:28:44 +0100 Subject: [PATCH 2/3] src/Flugi-vz/Rechner_Wellenlaenge2.c aktualisiert --- src/Flugi-vz/Rechner_Wellenlaenge2.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Flugi-vz/Rechner_Wellenlaenge2.c b/src/Flugi-vz/Rechner_Wellenlaenge2.c index 52db0e2..08d1feb 100644 --- a/src/Flugi-vz/Rechner_Wellenlaenge2.c +++ b/src/Flugi-vz/Rechner_Wellenlaenge2.c @@ -18,17 +18,17 @@ 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"); + printf("Die Wellenlänge von rotem Licht liegt im Bereich zwischen 620 und 750 nm.\n"); } else if (strcmp(color, "orange") == 0) { - printf("Die Wellenlänge von orangem Licht liegt bei etwa 585-650 nm.\n"); + printf("Die Wellenlänge von orangem Licht liegt im Bereich zwischen 590 und 620 nm.\n"); } else if (strcmp(color, "gelb") == 0) { - printf("Die Wellenlänge von gelbem Licht liegt bei etwa 575-585 nm.\n"); + printf("Die Wellenlänge von gelbem Licht liegt im Bereich zwischen 570 und 590 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"); + printf("Die Wellenlänge von grünem Licht liegt im Bereich zwischen 495 und 570 nm.\n"); } else if (strcmp(color, "blau") == 0) { - printf("Die Wellenlänge von blauem Licht liegt bei etwa 450-490 nm.\n"); + printf("Die Wellenlänge von blauem Licht liegt im Bereich zwischen 450 und 495 nm.\n"); } else if (strcmp(color, "violett") == 0) { - printf("Die Wellenlänge von violettem Licht liegt bei etwa 380-420 nm.\n"); + printf("Die Wellenlänge von violettem Licht liegt im Bereich zwischen 380 und 450 nm.\n"); } else if (strcmp(color, "q") == 0) { return 10; } else if (failcount >= 5) { @@ -51,7 +51,7 @@ void printColor(int wavelength) { case 590 ... 619: // Bereich von orangem Licht printf("Das Licht dieser Wellenlänge ist Orange\n"); break; - case 570 ... 581: // Bereich von gelbem Licht + case 570 ... 589: // Bereich von gelbem Licht printf("Das Licht dieser Wellenlänge ist Gelb\n"); break; case 495 ... 569: // Bereich von grünem Licht -- 2.20.1 From 5db6926f508d675b2a99ab2fd4c04b55304dc383 Mon Sep 17 00:00:00 2001 From: straub Date: Wed, 18 Dec 2024 22:25:06 +0100 Subject: [PATCH 3/3] nicht sichtbarer Bereich angepasst --- src/Flugi-vz/Rechner_Wellenlaenge2.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Flugi-vz/Rechner_Wellenlaenge2.c b/src/Flugi-vz/Rechner_Wellenlaenge2.c index 08d1feb..04c95fc 100644 --- a/src/Flugi-vz/Rechner_Wellenlaenge2.c +++ b/src/Flugi-vz/Rechner_Wellenlaenge2.c @@ -41,9 +41,13 @@ int Wellenlaenge(const char* color) { } // Funktion, um die Farbe einer Wellenlänge auszugeben -int wavelenght = 0; +int wavelength = 0; void printColor(int wavelength) { + if (wavelength < 0){ + printf("Ich mag keine negativen Zahlen. Bitte eine positive Zahl eingeben!\n"); + return; + } switch (wavelength) { case 620 ... 750: // Bereich von rotem Licht printf("Das Licht dieser Wellenlänge ist Rot\n"); @@ -63,11 +67,13 @@ void printColor(int wavelength) { 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"); + + // nicht sichtbarer Bereich + case 0 ... 379: + printf("Diese Wellenlänge ist kürzer/kleiner als der Bereich des sichtbaren Lichts\n"); break; - default: // nicht sichtbarer Infrarotbereich - printf("Diese Wellenlänge liegt im nicht-sichtbaren Infrarotbereich\n"); + default: + printf("Diese Wellenlänge ist länger/grösser als der Bereich des sichtbaren Lichts\n"); break; } } -- 2.20.1