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