Add exercises 03.

This commit is contained in:
Jan Paulus 2026-04-16 09:33:46 +02:00
parent 9f63d5fa2b
commit 63c0399302
6 changed files with 227 additions and 0 deletions

23
03/bedingteBewertung.c Normal file
View File

@ -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 <stdio.h>
int main()
{
return 0;
}

30
03/castingLesen.c Normal file
View File

@ -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 <stdio.h>
#include <math.h>
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;
}

22
03/expliztesCasting.c Normal file
View File

@ -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 <stdio.h>
int main()
{
return 0;
}

77
03/ifElseGrab.c Normal file
View File

@ -0,0 +1,77 @@
/********************************************************************************************
* If-Else Grab
********************************************************************************************/
#include <stdio.h>
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;
}

41
03/taschenrechner.c Normal file
View File

@ -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 <stdio.h>
int main()
{
return 0;
}

34
03/verkehrsteilnehmer.c Normal file
View File

@ -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 <stdio.h>
int main()
{
return 0;
}