From ffdaf12535865dc0d1b6e6f50f60efff6862bebf Mon Sep 17 00:00:00 2001 From: paulusja Date: Thu, 26 Mar 2026 12:35:01 +0100 Subject: [PATCH] Add assignments --- 01/binaerUmrechnung.c | 11 +++++++++++ 01/binaerZahl.c | 23 +++++++++++++++++++++++ 01/bit_shift_operatoren.c | 33 +++++++++++++++++++++++++++++++++ 01/bmi.c | 4 ++++ 01/division.c | 18 ++++++++++++++++++ 5 files changed, 89 insertions(+) create mode 100644 01/binaerUmrechnung.c create mode 100644 01/binaerZahl.c create mode 100644 01/bit_shift_operatoren.c create mode 100644 01/bmi.c create mode 100644 01/division.c diff --git a/01/binaerUmrechnung.c b/01/binaerUmrechnung.c new file mode 100644 index 0000000..aabb165 --- /dev/null +++ b/01/binaerUmrechnung.c @@ -0,0 +1,11 @@ +/*********************************************************************************** + * Aufgabe * + * Schreiben Sie ein Programm, das eine ganze Zahl einliest und die Rechenschritte * + * anzeigt, um die letzten vier Bits der entsprechenden Binaerzahl zu ermitteln. * + * * + * Ausgabebeispiel mit 21: * + * 21 / 2 = 10, Rest: 1 * + * 10 / 2 = 5, Rest: 0 * + * 5 / 2 = 2, Rest: 1 * + * 2 / 2 = 1, Rest: 0 * + ***********************************************************************************/ diff --git a/01/binaerZahl.c b/01/binaerZahl.c new file mode 100644 index 0000000..aa89c61 --- /dev/null +++ b/01/binaerZahl.c @@ -0,0 +1,23 @@ +#include + +int main() +{ + // Hinweis: bit4 ist das hoechstwertige Bit, bit1 das niederwertigste Bit + unsigned int bit4 = 1; + unsigned int bit3 = 0; + unsigned int bit2 = 1; + unsigned int bit1 = 0; + + unsigned int zahl = 0; + + // Todo: a) Benutzen Sie nur Shift- und Bit-Operatoren, um die obige Binaerzahl in der Variable zahl zu speichern. + // b) Kommentieren Sie Teilaufgabe a) aus und nutzen Sie nun nur logische und arithmetische Operatoren sowie + // Bitoperatoren, um die obige Binaerzahl in der Variable zahl zu speichern. + // Geben Sie am Ende jeder Teilaufgabe die entsprechenden Bits der Variable zahl aus. + + printf("Zielwert: %u%u%u%u\n", bit4, bit3, bit2, bit1); + + // Ausgabe der Variable zahl + + return 0; +} \ No newline at end of file diff --git a/01/bit_shift_operatoren.c b/01/bit_shift_operatoren.c new file mode 100644 index 0000000..f085813 --- /dev/null +++ b/01/bit_shift_operatoren.c @@ -0,0 +1,33 @@ + +#include + +int main() +{ + int wert = -5; + unsigned int istZwischen0und255 = 0; + unsigned int istGerade = 0; + int malMinusEins = 0; + int malAcht = 0; + + // Todo: Pruefen Sie nur mit Bitoperatoren und dem !-Operator, ob in der Variable wert ein Wert im Interval [0; 255] gespeichert ist. + istZwischen0und255 = 0; // Hier Ausdruck anstelle von 0 einfuegen. + + printf("Liegt die Variable wert im Intervall [0; 255]? %u\n", istZwischen0und255); + + // Todo: Pruefen Sie nur mit Bitoperatoren, ob in der Variable wert ein gerader Wert gespeichert ist. + istGerade = 0; // Hier Ausdruck anstelle von 0 einfuegen. + + printf("Ist der Wert der Variablen wert gerade? %u\n", istGerade!=0); + + // Todo: Rechnen Sie den in der Variablen wert gespeicherten Wert mal -1 und verwenden Sie dabei nur Bitoperatoren und den +-Operator. + malMinusEins = 0; // Hier Ausdruck anstelle von 0 einfuegen. + + printf("%d * -1 = %d\n", wert, malMinusEins); + + // Todo: Rechnen Sie den in der Variablen wert gespeicherten Wert mal 8 und verwenden Sie dabei keine arithmetischen Operatoren. + malAcht = 0; // Hier Ausdruck anstelle von 0 einfuegen. + + printf("%d * 8 = %d\n", wert, malAcht); + + return 0; +} \ No newline at end of file diff --git a/01/bmi.c b/01/bmi.c new file mode 100644 index 0000000..dcf30aa --- /dev/null +++ b/01/bmi.c @@ -0,0 +1,4 @@ +/************************************************************************************************* + * Schreiben Sie ein Programm, das das Gewicht in kg und die Groesse in cm einliest und dann den * + * Body Mass Index mit zwei Nachkommastellen ausgibt (bmi = gewicht / (groesse in m)²). * + *************************************************************************************************/ \ No newline at end of file diff --git a/01/division.c b/01/division.c new file mode 100644 index 0000000..8826aaf --- /dev/null +++ b/01/division.c @@ -0,0 +1,18 @@ +/******************************************************************************** + * Aufgabe * + * Welche Ausgabe liefert folgendes Programm? Erst ueberlegen, dann ausfuehren! * + ********************************************************************************/ + +#include + +int main() +{ + int zahl1 = 1, zahl2 = 2; + double erg; + + erg = zahl1 / zahl2; + + printf("%d / %d = %lf", zahl1, zahl2, erg); + + return 0; +} \ No newline at end of file