Merge pull request 'main' (#8) from straubruben/Photonics-Helfer:main into main
Reviewed-on: #8main
commit
f84eff9aa5
|
@ -1,136 +1,148 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
// Funktion, um einen String in Kleinbuchstaben umzuwandeln
|
// Funktion, um einen String in Kleinbuchstaben umzuwandeln
|
||||||
void zuKleinbuchstaben(char* str) {
|
void zuKleinbuchstaben(char* str) {
|
||||||
for (int i = 0; str[i]; i++) {
|
for (int i = 0; str[i]; i++) {
|
||||||
str[i] = tolower(str[i]);
|
str[i] = tolower(str[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funktion, um die Wellenlänge einer Farbe auszugeben
|
// Funktion, um die Wellenlänge einer Farbe auszugeben
|
||||||
int value = 0;
|
int value = 0;
|
||||||
int failcount = 0;
|
int failcount = 0;
|
||||||
int returncode = 0;
|
int returncode = 0;
|
||||||
|
|
||||||
|
|
||||||
int Wellenlaenge(const char* color) {
|
int Wellenlaenge(const char* color) {
|
||||||
if (strcmp(color, "rot") == 0) {
|
if (strcmp(color, "rot") == 0) {
|
||||||
printf("Die Wellenlänge von Rot 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) {
|
} else if (strcmp(color, "orange") == 0) {
|
||||||
printf("Die Wellenlänge von Orange 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) {
|
} else if (strcmp(color, "gelb") == 0) {
|
||||||
printf("Die Wellenlänge von Gelb 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) {
|
} 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");
|
printf("Die Wellenlänge von grünem Licht liegt im Bereich zwischen 495 und 570 nm.\n");
|
||||||
} else if (strcmp(color, "blau") == 0) {
|
} else if (strcmp(color, "blau") == 0) {
|
||||||
printf("Die Wellenlänge von Blau 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) {
|
} else if (strcmp(color, "violett") == 0) {
|
||||||
printf("Die Wellenlänge von Violett 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) {
|
} else if (strcmp(color, "q") == 0) {
|
||||||
return 10;
|
return 10;
|
||||||
} else if (failcount >= 5) {
|
} else if (failcount >= 5) {
|
||||||
return 20;
|
return 20;
|
||||||
} else {
|
} else {
|
||||||
printf("Unbekannte Farbe oder keine Wellenlängeninformation verfügbar.\n");
|
printf("Oh nein! Diese Farbe kenne ich nicht. Bitte geben sie eine der 6 Grund- oder Komplementärfarben ein.\n");
|
||||||
}
|
}
|
||||||
failcount++;
|
failcount++;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funktion, um die Farbe einer Wellenlänge auszugeben
|
// Funktion, um die Farbe einer Wellenlänge auszugeben
|
||||||
int wavelenght = 0;
|
int wavelength = 0;
|
||||||
|
|
||||||
void printColor(int wavelength) {
|
void printColor(int wavelength) {
|
||||||
switch (wavelength) {
|
if (wavelength < 0){
|
||||||
case 620 ... 750: // Range for red
|
printf("Ich mag keine negativen Zahlen. Bitte eine positive Zahl eingeben!\n");
|
||||||
printf("Das Licht dieser Wellenlänge ist Rot\n");
|
return;
|
||||||
break;
|
}
|
||||||
case 590 ... 619: // Range for orange
|
switch (wavelength) {
|
||||||
printf("Das Licht dieser Wellenlänge ist Orange\n");
|
case 620 ... 750: // Bereich von rotem Licht
|
||||||
break;
|
printf("Das Licht dieser Wellenlänge ist Rot\n");
|
||||||
case 570 ... 581: // Range for yellow
|
break;
|
||||||
printf("Das Licht dieser Wellenlänge ist Gelb\n");
|
case 590 ... 619: // Bereich von orangem Licht
|
||||||
break;
|
printf("Das Licht dieser Wellenlänge ist Orange\n");
|
||||||
case 495 ... 569: // Range for green
|
break;
|
||||||
printf("Das Licht dieser Wellenlänge ist Grün\n");
|
case 570 ... 589: // Bereich von gelbem Licht
|
||||||
break;
|
printf("Das Licht dieser Wellenlänge ist Gelb\n");
|
||||||
case 450 ... 494: // Range for blue
|
break;
|
||||||
printf("Das Licht dieser Wellenlänge ist Blau\n");
|
case 495 ... 569: // Bereich von grünem Licht
|
||||||
break;
|
printf("Das Licht dieser Wellenlänge ist Grün\n");
|
||||||
case 380 ... 449: // Range for violet
|
break;
|
||||||
printf("Das Licht dieser Wellenlänge ist Violett\n");
|
case 450 ... 494: // Bereich von blauem Licht
|
||||||
break;
|
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");
|
||||||
// Main Programm
|
break;
|
||||||
int Wellenlaengen_rechner_main() {
|
|
||||||
|
// nicht sichtbarer Bereich
|
||||||
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");
|
case 0 ... 379:
|
||||||
int modus = 0;
|
printf("Diese Wellenlänge ist kürzer/kleiner als der Bereich des sichtbaren Lichts\n");
|
||||||
int failcount = 0;
|
break;
|
||||||
int returncode = 0;
|
default:
|
||||||
|
printf("Diese Wellenlänge ist länger/grösser als der Bereich des sichtbaren Lichts\n");
|
||||||
char auswahl[21] = {0};
|
break;
|
||||||
long wavelength = 0;
|
}
|
||||||
char *endptr;
|
}
|
||||||
|
|
||||||
while (1) {
|
// Main Programm
|
||||||
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");
|
int Wellenlaengen_rechner_main() {
|
||||||
|
|
||||||
scanf("%20s", auswahl);
|
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");
|
||||||
modus = strtol((const char*)auswahl, &endptr, 10);
|
int modus = 0;
|
||||||
|
int failcount = 0;
|
||||||
if (*endptr != 0){
|
int returncode = 0;
|
||||||
modus = -1;
|
|
||||||
}
|
char auswahl[21] = {0};
|
||||||
if (*endptr == 'q'){
|
long wavelength = 0;
|
||||||
return 10;
|
char *endptr;
|
||||||
}
|
|
||||||
|
while (1) {
|
||||||
// Ausgabe der Farbe
|
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");
|
||||||
if (modus==1) {
|
|
||||||
|
scanf("%20s", auswahl);
|
||||||
|
modus = strtol((const char*)auswahl, &endptr, 10);
|
||||||
printf("Bitte geben Sie eine Wellenlänge ein (in nm): ");
|
|
||||||
scanf("%20s", auswahl);
|
if (*endptr != 0){
|
||||||
wavelength = strtol((const char*)auswahl, &endptr, 10);
|
modus = -1;
|
||||||
|
}
|
||||||
if (*endptr != 0){
|
if (*endptr == 'q'){
|
||||||
wavelength = -1;
|
return 10;
|
||||||
}
|
}
|
||||||
if (*endptr == 'q'){
|
|
||||||
return 10;
|
// Ausgabe der Farbe
|
||||||
}
|
if (modus==1) {
|
||||||
|
|
||||||
|
|
||||||
printColor(wavelength);
|
printf("Bitte geben Sie eine Wellenlänge ein (in nm): ");
|
||||||
}
|
scanf("%20s", auswahl);
|
||||||
|
wavelength = strtol((const char*)auswahl, &endptr, 10);
|
||||||
//Ausgabe der Wellenlänge
|
|
||||||
else if (modus==2) {
|
if (*endptr != 0){
|
||||||
|
wavelength = -1;
|
||||||
char color[50];
|
}
|
||||||
|
if (*endptr == 'q'){
|
||||||
printf("Bitte geben Sie eine Farbe ein (z. B. Rot, Orange, Gelb, Grün, Blau, Violett): ");
|
return 10;
|
||||||
scanf("%49s", color);
|
}
|
||||||
|
|
||||||
// Funktion für Eingabe in Kleinbuchstaben umwandeln abrufen
|
|
||||||
zuKleinbuchstaben(color);
|
printColor(wavelength);
|
||||||
|
}
|
||||||
// Funktion für Ausgabe der Wellenlänge abrufen
|
|
||||||
returncode = Wellenlaenge(color);
|
//Ausgabe der Wellenlänge
|
||||||
if (returncode == 10){
|
else if (modus==2) {
|
||||||
return 10;
|
|
||||||
}
|
char color[50];
|
||||||
}
|
|
||||||
|
printf("Bitte geben Sie eine Farbe ein (z. B. Rot, Orange, Gelb, Grün, Blau, Violett): ");
|
||||||
// Ungültige Eingabe
|
scanf("%49s", color);
|
||||||
else {
|
|
||||||
printf("Bitte geben Sie die Nummer eins (1) oder zwei (2) ein. Nichts anderes!!!");
|
// 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!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue