From 411f20bc05c9e445f341e4f7e8e3501ad001b9f6 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Mon, 5 Oct 2020 13:40:56 +0200 Subject: [PATCH] =?UTF-8?q?Musterl=C3=B6sungen=20zu=20Aufgabe=204=20der=20?= =?UTF-8?q?Klausur=20vom=2012.2.2018?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exams/20180213/loesung-4-1.c | 8 ++++++++ exams/20180213/loesung-4-2.c | 23 +++++++++++++++++++++++ exams/20180213/loesung-4-3.c | 25 +++++++++++++++++++++++++ exams/20180213/loesung-4-4.c | 29 +++++++++++++++++++++++++++++ exams/20180213/loesung-4-5.c | 29 +++++++++++++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 exams/20180213/loesung-4-1.c create mode 100644 exams/20180213/loesung-4-2.c create mode 100644 exams/20180213/loesung-4-3.c create mode 100644 exams/20180213/loesung-4-4.c create mode 100644 exams/20180213/loesung-4-5.c diff --git a/exams/20180213/loesung-4-1.c b/exams/20180213/loesung-4-1.c new file mode 100644 index 0000000..ca3af2e --- /dev/null +++ b/exams/20180213/loesung-4-1.c @@ -0,0 +1,8 @@ +#include <stdio.h> + +#include "aufgabe-4.xbm" + +int main (void) +{ + return 0; +} diff --git a/exams/20180213/loesung-4-2.c b/exams/20180213/loesung-4-2.c new file mode 100644 index 0000000..693a715 --- /dev/null +++ b/exams/20180213/loesung-4-2.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdint.h> + +#include "aufgabe-4.xbm" + +int main (void) +{ + int aufgabe_4_bytes = (aufgabe_4_width + 7) / 8; + for (int y = 0; y < aufgabe_4_height; y++) + { + for (int b = 0; b < aufgabe_4_bytes; b++) + { + uint8_t buffer = aufgabe_4_bits[y * aufgabe_4_bytes + b]; + for (int i = 0; i < 8; i++) + if (buffer & (1 << i)) + printf ("*"); + else + printf (" "); + } + printf ("\n"); + } + return 0; +} diff --git a/exams/20180213/loesung-4-3.c b/exams/20180213/loesung-4-3.c new file mode 100644 index 0000000..dc6bf84 --- /dev/null +++ b/exams/20180213/loesung-4-3.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include <stdint.h> + +#include "aufgabe-4.xbm" + +int main (void) +{ + // PBM-Datei zum Schreiben öffnen und Vorspann hineinschreiben + FILE *pbm_file = fopen ("test.pbm", "w"); + // TODO: Prüfen, ob das Öffnen der Datei geklappt hat, sonst Fehlermeldung! + fprintf (pbm_file, "P4\n%d %d\n", aufgabe_4_width, aufgabe_4_height); + + int aufgabe_4_bytes = (aufgabe_4_width + 7) / 8; + for (int y = 0; y < aufgabe_4_height; y++) + { + for (int b = 0; b < aufgabe_4_bytes; b++) + { + uint8_t buffer = aufgabe_4_bits[y * aufgabe_4_bytes + b]; + fprintf (pbm_file, "%c", buffer); + } + } + + fclose (pbm_file); + return 0; +} diff --git a/exams/20180213/loesung-4-4.c b/exams/20180213/loesung-4-4.c new file mode 100644 index 0000000..db6bd15 --- /dev/null +++ b/exams/20180213/loesung-4-4.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <stdint.h> + +#include "aufgabe-4.xbm" + +int main (void) +{ + // PBM-Datei zum Schreiben öffnen und Vorspann hineinschreiben + FILE *pbm_file = fopen ("test.pbm", "w"); + // TODO: Prüfen, ob das Öffnen der Datei geklappt hat, sonst Fehlermeldung! + fprintf (pbm_file, "P4\n%d %d\n", aufgabe_4_width, aufgabe_4_height); + + int aufgabe_4_bytes = (aufgabe_4_width + 7) / 8; + for (int y = 0; y < aufgabe_4_height; y++) + { + for (int b = 0; b < aufgabe_4_bytes; b++) + { + uint8_t buffer_xbm = aufgabe_4_bits[y * aufgabe_4_bytes + b]; + uint8_t buffer_pbm = 0; + for (int i = 0; i < 8; i++) + if (buffer_xbm & (1 << i)) + buffer_pbm |= 1 >> i; + fprintf (pbm_file, "%c", buffer_pbm); + } + } + + fclose (pbm_file); + return 0; +} diff --git a/exams/20180213/loesung-4-5.c b/exams/20180213/loesung-4-5.c new file mode 100644 index 0000000..6ba4359 --- /dev/null +++ b/exams/20180213/loesung-4-5.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <stdint.h> + +#include "aufgabe-4.xbm" + +int main (void) +{ + // PBM-Datei zum Schreiben öffnen und Vorspann hineinschreiben + FILE *pbm_file = fopen ("test.pbm", "w"); + // TODO: Prüfen, ob das Öffnen der Datei geklappt hat, sonst Fehlermeldung! + fprintf (pbm_file, "P4\n%d %d\n", aufgabe_4_width, aufgabe_4_height); + + int aufgabe_4_bytes = (aufgabe_4_width + 7) / 8; + for (int y = 0; y < aufgabe_4_height; y++) + { + for (int b = 0; b < aufgabe_4_bytes; b++) + { + uint8_t buffer_xbm = aufgabe_4_bits[y * aufgabe_4_bytes + b]; + uint8_t buffer_pbm = 0; + for (int i = 0; i < 8; i++) + if (buffer_xbm & (1 << i)) + buffer_pbm |= 0x80 >> i; + fprintf (pbm_file, "%c", buffer_pbm); + } + } + + fclose (pbm_file); + return 0; +} -- GitLab