diff --git a/03/bedingteBewertung.c b/03/bedingteBewertung.c new file mode 100644 index 0000000..716d186 --- /dev/null +++ b/03/bedingteBewertung.c @@ -0,0 +1,23 @@ +/******************************************************************************************** + * Bedingte Zuweisung + * Schreiben Sie ein Programm, das abfragt, in welchem Studiensemester Sie sich befinden + * und dann ausgibt, ob Sie damit noch in Regelstudienzeit sind oder nicht. + * Beide Varianten der Ausgabe sollen ohne if-Anweisung in einem einzigen printf getätigt + * werden. Fangen Sie ungültige Eingaben mit einer entsprechenende Fehlermeldung ab. + * + * 1. Beispiel + * >> Wieviele Semester studieren Sie bereits? 2 + * Sie studieren im 2. Semester. Damit sind Sie in Regelstudienzeit. + * + * 2. Beispiel + * >> Wieviele Semester studieren Sie bereits? 8 + * Sie studieren im 8. Semester. Damit sind Sie NICHT MEHR in Regelstudienzeit. + ********************************************************************************************/ + +#include + +int main() +{ + + return 0; +} \ No newline at end of file diff --git a/03/castingLesen.c b/03/castingLesen.c new file mode 100644 index 0000000..242722e --- /dev/null +++ b/03/castingLesen.c @@ -0,0 +1,30 @@ +/******************************************************************************************** + * Sehen Sie sich untenstehenden Code und markieren Sie alle Stellen mit einem Kommentar, * + * an denen eine Datentypumwandlung stattfindet. Erklaeren Sie zudem, von welchem Datentyp * + * in welchen anderen umgewandelt wird und warum. * + ********************************************************************************************/ + +#include +#include + +int main() +{ + int punkt1x, punkt1y; + unsigned int punkt2x, punkt2y; + float zeit, geschwindigkeit; + + printf("Geben Sie die Koordinaten des 1. Punkts in Metern ein (x, y): "); + scanf("%d, %d", &punkt1x, &punkt1y); + + printf("Geben Sie die Koordinaten des 2. Punkts in Metern ein (x, y): "); + scanf("%u, %u", &punkt2x, &punkt2y); + + printf("Geben Sie die benoetigte Zeit in Sekunden ein: "); + scanf("%f", &zeit); + + geschwindigkeit = sqrt((punkt1x - punkt2x) * (punkt1x - punkt2x) + (punkt1y - punkt2y) * (punkt1y - punkt2y)) / zeit; + + printf("Um von der Koordinate (%d, %d) nach Koordinate (%d, %d) in %.2f Sekunden zu kommen, wird eine Geschwindigkeit von %.2f m/s benoetigt.\n", punkt1x, punkt1y, (int)punkt2x, (int)punkt2y, zeit, geschwindigkeit); + + return 0; +} \ No newline at end of file diff --git a/03/expliztesCasting.c b/03/expliztesCasting.c new file mode 100644 index 0000000..18acb19 --- /dev/null +++ b/03/expliztesCasting.c @@ -0,0 +1,22 @@ +/******************************************************************************************** + * Schreiben Sie ein Programm, das einen Preis in Euro als Kommazahl vom Benutzer abfragt + * und diesen dann mittels explizitem casting in Euros und Cents zerlegt und ausgibt. + * Brechen Sie die Ausführung des Programms ab, wenn der Benutzer eine falsche Eingabe + * (z.B. keine gültige Zahl) gemacht hat. + * + * 1. Beispiel: + * >> Geben Sie einen Preis in Euro ein: 12.53 + * Der Preis ist 12 Euro und 53 Cents. + * + * 2. Beispiel: + * >> Geben Sie einen Preis in Euro ein: abc + * Ungültige Eingabe! + ********************************************************************************************/ + +#include + +int main() +{ + + return 0; +} \ No newline at end of file diff --git a/03/ifElseGrab.c b/03/ifElseGrab.c new file mode 100644 index 0000000..12f53a5 --- /dev/null +++ b/03/ifElseGrab.c @@ -0,0 +1,77 @@ +/******************************************************************************************** + * If-Else Grab + ********************************************************************************************/ + +#include + +int main() +{ + int status = 201; + int fehler = 0; + int warnung = 1; + int aktion = 1; + + /******************************************************************************************** + * Aufgabe: Schauen Sie sich folgende if/else Konstruktion an. + * a) Ist diese Ihrer Meinung nach gut lesbar? + * b) Identifizieren Sie Pfade, die überflüssig sind bzw. niemals ausgeführt werden. + * c) Vereinfachen Sie den Code unter Verwendung von so wenigen Verzweigungsebenen wie + * möglich, ohne die Ausgabe bzw. das Verhalten des Programms zu verändern + ********************************************************************************************/ + + if (status == 200) + { + if (fehler) + { + printf("Fehler"); + return -1; + } + + if (aktion == 1) + { + if (!fehler) + { + if (!warnung) + { + printf("Aktion 1 erfolgreich ausgeführt."); + } + else if (warnung) + { + printf("Aktion 1 mit Warnung ausgeführt."); + + if(status != 200) + { + printf("Ungültiger Status!"); + } + } + } + else + { + printf("Fehler"); + return -1; + } + } + else if (aktion == 2) + { + if (!fehler) + { + printf("Aktion 2 erfolgreich ausgeführt."); + } + } + else + { + printf("Unbekannte Aktion"); + } + + } + else if (status != 200) + { + if (fehler) + { + printf("Fehler"); + return -1; + } + } + + return 0; +} \ No newline at end of file diff --git a/03/taschenrechner.c b/03/taschenrechner.c new file mode 100644 index 0000000..b17b497 --- /dev/null +++ b/03/taschenrechner.c @@ -0,0 +1,41 @@ +/************************************************************* + * Schreiben Sie ein Programm, das zwei positive Zahlen vom * + * Benutzer einliest sowie einen Rechenoperator und * + * anschliessend das Ergebnis ausgibt. Bei falschen Eingaben * + * soll das Programm kontrolliert beendet werden. * + * * + * 1. Beispiel: * + * >> Geben Sie eine positive, ganze Zahl ein: 50 * + * >> Geben Sie noch eine positive, ganze Zahl ein: 20 * + * >> Geben Sie einen Rechenoperator ein (+, -, *, /): - * + * 50 - 20 = 30 * + * * + * 2. Beispiel: * + * >> Geben Sie eine positive, ganze Zahl ein: 50 * + * >> Geben Sie noch eine positive, ganze Zahl ein: 20 * + * >> Geben Sie einen Rechenoperator ein (+, -, *, /): + * + * 50 + 20 = 70 * + * * + * 3. Beispiel: * + * >> Geben Sie eine positive, ganze Zahl ein: -50 * + * Falsche Eingabe! * + * * + * 4. Beispiel: * + * >> Geben Sie eine positive, ganze Zahl ein: 50 * + * >> Geben Sie noch eine positive, ganze Zahl ein: -20 * + * Falsche Eingabe! * + * * + * 5. Beispiel: * + * >> Geben Sie eine positive, ganze Zahl ein: 50 * + * >> Geben Sie noch eine positive, ganze Zahl ein: 20 * + * >> Geben Sie einen Rechenoperator ein (+, -, *, /): dfgfd * + * Unbekannter Rechenoperator d * + *************************************************************/ + +#include + +int main() +{ + + return 0; +} \ No newline at end of file diff --git a/03/verkehrsteilnehmer.c b/03/verkehrsteilnehmer.c new file mode 100644 index 0000000..d92e33a --- /dev/null +++ b/03/verkehrsteilnehmer.c @@ -0,0 +1,34 @@ +/******************************************************************************************** + * Verkehrsteilnehmer + * + * In einer Verkehrssimulation gibt es Fußgänger, Fahrräder, PKW, LKW/Bus und Motorräder. + * Schreiben Sie ein Programm, dass die Merkmale "Anzahl Räder" und "motorisiert" vom + * Benutzer abfragt und einen Verkehrsteilnehmer anhand dieser Merkmale identifiziert. + * Hinweise: Fußgänger haben 0 Räder, LKW/Bus haben eine gerade Anzahl Räder > 4. + * Für eine nicht existierende Merkmalskombination geben Sie eine entsprechende + * Meldung aus! + * + * 1. Beispiel + * >> Wieviele Räder? 2 + * >> Motorisiert? 0 + * Es handelt sich um ein Fahrrad. + * + * 2. Beispiel + * >> Wieviele Räder? 0 + * >> Motorisiert? 1 + * Es handelt sich um ein unbekannten Verkehrsteilnehmer. + * + * 3. Beispiel + * >> Wieviele Räder? 6 + * >> Motorisiert? 1 + * Es handelt sich um einen Bus oder LKW. + * + ********************************************************************************************/ + +#include + +int main() +{ + + return 0; +} \ No newline at end of file