diff --git a/20231005/answer-01.c b/20231005/answer-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..ae37ad290203e4e490e3e2fac5a8080f7dfa0364
--- /dev/null
+++ b/20231005/answer-01.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("Die Antwort lautet: ");
+  printf (42);
+  printf ("\n");
+  return 0;
+}
diff --git a/20231005/answer-02.c b/20231005/answer-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..6a9b1daa3162c4b25d0a9eeaa93910c4625d1234
--- /dev/null
+++ b/20231005/answer-02.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("Die Antwort lautet: ");
+  printf ("42");
+  printf ("\n");
+  return 0;
+}
diff --git a/20231005/answer-03.c b/20231005/answer-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..bf2aca63d57ce244641e831b8e93b7e0700a7306
--- /dev/null
+++ b/20231005/answer-03.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  printf ("Die Antwort lautet: ");
+  printf (a);
+  printf ("\n");
+  return 0;
+}
diff --git a/20231005/answer-04.c b/20231005/answer-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..791c6f2f2a91f4ac771c12b29cf98f39b026f8e7
--- /dev/null
+++ b/20231005/answer-04.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  printf ("Die Antwort lautet: %d\n", a);
+  return 0;
+}
diff --git a/20231005/answer-05.c b/20231005/answer-05.c
new file mode 100644
index 0000000000000000000000000000000000000000..f29528d046d052dc8d22a372ceb847cfc63568d7
--- /dev/null
+++ b/20231005/answer-05.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 13;
+  int b = 137
+  printf ("Die Antwort lautet: %d oder vielleicht auch %d\n", a, b);
+  return 0;
+}
diff --git a/20231005/answer-06.c b/20231005/answer-06.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e87636c9c96f3e431aabd2e3142f3c19e912289
--- /dev/null
+++ b/20231005/answer-06.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 13;
+  int b = 137;
+  printf ("Die Antwort lautet: %d oder vielleicht auch %d\n", a, b);
+  return 0;
+}
diff --git a/20231005/answer-07.c b/20231005/answer-07.c
new file mode 100644
index 0000000000000000000000000000000000000000..e78d28d853b5bb2c08a797b0ef74f4ab004a7bea
--- /dev/null
+++ b/20231005/answer-07.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 13;
+  int b = 137;
+  printf ("Die Antwort lautet: %X oder vielleicht auch %x\n", a, b);
+  return 0;
+}
diff --git a/20231005/calc-01.c b/20231005/calc-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..72294c6576a5619922f31bbe286cad3bd365329a
--- /dev/null
+++ b/20231005/calc-01.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a;
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%d", &a);
+  a = 2 * a;
+  printf ("Das Doppelte ist: %d\n", a);
+  return 0;
+}
diff --git a/20231005/hello-01.c b/20231005/hello-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..b19d80e9bd0bd7c5ed8f54b20c6a50d9166f03ac
--- /dev/null
+++ b/20231005/hello-01.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("Hello, world!\n");
+  return 0;
+}
diff --git a/20231005/hello-gtk.c b/20231005/hello-gtk.c
new file mode 100644
index 0000000000000000000000000000000000000000..b77034771277029b483bc797f94eb6e4ecb9c466
--- /dev/null
+++ b/20231005/hello-gtk.c
@@ -0,0 +1,20 @@
+#include <gtk/gtk.h>
+
+static void activate (GtkApplication *app, gpointer user_data)
+{
+  GtkWidget *window = gtk_application_window_new (app);
+  gtk_window_set_title (GTK_WINDOW (window), "Hello");
+  GtkWidget *button = gtk_button_new_with_label ("Quit");
+  g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window);
+  gtk_window_set_child (GTK_WINDOW (window), button);
+  gtk_window_present (GTK_WINDOW (window));
+}
+
+int main (int argc, char **argv)
+{
+  GtkApplication *app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
+  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
+  int status = g_application_run (G_APPLICATION (app), argc, argv);
+  g_object_unref (app);
+  return status;
+}
diff --git a/20231005/hello.c b/20231005/hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..b19d80e9bd0bd7c5ed8f54b20c6a50d9166f03ac
--- /dev/null
+++ b/20231005/hello.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("Hello, world!\n");
+  return 0;
+}
diff --git a/20231005/hp-uebung-20231005.pdf b/20231005/hp-uebung-20231005.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..849ca3df582a3b8847019670eb96192886fb2a11
Binary files /dev/null and b/20231005/hp-uebung-20231005.pdf differ
diff --git a/20231005/hp-uebung-20231005.tex b/20231005/hp-uebung-20231005.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2cb5aa659af6c85f19f500238664f853f3bb6400
--- /dev/null
+++ b/20231005/hp-uebung-20231005.tex
@@ -0,0 +1,93 @@
+% hp-uebung-20231005.pdf - Exercises on Low-Level Programming / Applied Computer Sciences
+% Copyright (C) 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+% README: Hello-World-Programme, Schaltjahr ermitteln, Maximum berechnen
+
+\documentclass[a4paper]{article}
+
+\usepackage{pgscript}
+
+\thispagestyle{empty}
+
+\begin{document}
+
+  \thispagestyle{empty}
+
+  \section*{Hardwarenahe Programmierung\\
+            Übungsaufgaben -- 5.\ Oktober 2023}
+
+  \exercise{Hello, world!}
+
+  Unter \url{https://gitlab.cvh-server.de/pgerwinski/hp/tree/2023ws/20231005}
+  können Sie
+  \href{https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231005/hp-uebung-20231005.pdf}%
+       {diesen Übungszettel als PDF-Datei}
+  herunterladen sowie die folgenden Beispielprogramme:
+  \begin{enumerate}[\quad(a)]
+    \item \gitfile{hp}{2023ws/20231005}{hello.c}
+    \item \gitfile{hp}{2023ws/20231005}{hello-gtk.c}
+  \end{enumerate}
+  Bringen Sie diese Programme auf Ihrem eigenen Rechner
+  und/oder auf einem Rechner der Hochschule
+  unter einem Betriebssystem Ihrer Wahl zum Laufen.
+
+  \file{hello.c} ist das klassische "`Hello, world!"'-Programm;
+  \file{hello-gtk} erzeugt ein Fenster mit einem Button zum Schließen.
+  (Wie diese Programme im einzelnen funktionieren,
+  wird im Laufe der Lehrveranstaltung erklärt werden.
+  In dieser Übung geht es nur darum,
+  sich mit dem Compilieren von C-Programmen vertraut zu machen.)
+
+  \textbf{Hinweis 0:} Diese PDF-Datei enthält Links zu den jeweiligen Dateien.
+  Durch Anklicken können Sie diese direkt herunterladen.
+
+  \textbf{Hinweis 1:} Für (b) benötigen Sie die Bibliothek GTK+.
+  Diese finden Sie -- einschließlich Dokumentation -- als freie Software im Internet.
+
+  \textbf{Hinweis 2:} Unter Unix mit \lstinline[style=cmd]{gcc}
+  funktioniert das Compilieren und Starten der Programme folgendermaßen:
+  \begin{lstlisting}[style=cmd]
+    gcc -Wall -O hello.c -o hello
+    ./hello
+    gcc -Wall -O $(pkg-config --cflags gtk+-3.0) hello-gtk.c \
+        $(pkg-config --libs gtk+-3.0) -o hello-gtk
+    ./hello-gtk
+  \end{lstlisting}
+
+  \exercise{Schaltjahr ermitteln}
+
+  Schreiben Sie ein Programm in einer beliebigen Programmiersprache
+  (z.\,B.\ C, Java, Python, Shell-Skript),
+  das eine Jahreszahl erfragt und ausgibt, ob es sich um ein Schaltjahr handelt.
+  \begin{itemize}
+    \item Wenn die Jahreszahl durch 4 teilbar ist, ist das Jahr zunächst einmal ein Schaltjahr.
+    \item Ausnahme: Wenn die Jahreszahl durch 100 teilbar ist, ist das Jahr kein Schaltjahr.
+    \item Ausnahme von der Ausnahme: Wenn die Jahreszahl durch 400 teilbar ist,\\
+          ist das Jahr doch wieder ein Schaltjahr.
+  \end{itemize}
+
+  \exercise{Maximum berechnen}
+
+  Schreiben Sie ein Programm in einer beliebigen Programmiersprache,
+  das 5 Zahlen erfragt und anschließend die größte dieser Zahlen ausgibt.
+
+\end{document}
diff --git a/20231005/if-01.c b/20231005/if-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..23722545a9b3f99fa6a07de9bfee2a96f09148e9
--- /dev/null
+++ b/20231005/if-01.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-02.c b/20231005/if-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..21b94d3ce1e47707c7dce8edded4603c3ee22f5b
--- /dev/null
+++ b/20231005/if-02.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b = 0)
+    printf ("Bitte nicht durch 0 teilen.\n");
+  else
+    printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-03.c b/20231005/if-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..1256c8e3055b57cb79065f924363665cd6c9246e
--- /dev/null
+++ b/20231005/if-03.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0)
+    printf ("Bitte nicht durch 0 teilen.\n");
+  else
+    printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-04.c b/20231005/if-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..b60628f6947dd0a79d3c3a4ac8072b1055d384ad
--- /dev/null
+++ b/20231005/if-04.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0)
+    printf ("Bitte nicht durch 0 teilen.\n");
+    printf ("Das macht man nicht.\n");
+  else
+    printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-05.c b/20231005/if-05.c
new file mode 100644
index 0000000000000000000000000000000000000000..9aaa08aa954899e9c15a081aade8c425e290b4d9
--- /dev/null
+++ b/20231005/if-05.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0)
+    printf ("Bitte nicht durch 0 teilen.\n");
+  printf ("Das macht man nicht.\n");
+  else
+    printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-06.c b/20231005/if-06.c
new file mode 100644
index 0000000000000000000000000000000000000000..df18bbb1c69ed25fe0ba753185a5ed42842e4e05
--- /dev/null
+++ b/20231005/if-06.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0)
+    {
+      printf ("Bitte nicht durch 0 teilen.\n");
+      printf ("Das macht man nicht.\n");
+    }
+  else
+    printf ("a / b = %d\n", a / b);
+  return 0;
+}
diff --git a/20231005/if-07.c b/20231005/if-07.c
new file mode 100644
index 0000000000000000000000000000000000000000..0c3360a55b12b368aa5559a5cf70f4f3b75112bd
--- /dev/null
+++ b/20231005/if-07.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main (void) { int a = 360; printf ("a = %d\n", a); int b; printf
+("Bitte b eingeben: "); scanf ("%d", &b); if (b == 0) { printf
+("Bitte nicht durch 0 teilen.\n"); printf ("Das macht man nicht.\n");
+} else printf ("a / b = %d\n", a / b); return 0; }
diff --git a/20231005/if-08.c b/20231005/if-08.c
new file mode 100644
index 0000000000000000000000000000000000000000..85ca91ca75a8c741b871c4ff1a53dfc948b9e97c
--- /dev/null
+++ b/20231005/if-08.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0)
+    {
+      printf ("Bitte nicht durch 0 teilen.\n");
+      printf ("Das macht man nicht.\n");
+    }
+  else
+    {
+      printf ("a / b = %d\n", a / b);
+    }
+  return 0;
+}
diff --git a/20231005/if-09.c b/20231005/if-09.c
new file mode 100644
index 0000000000000000000000000000000000000000..de2e912ba7988e4648704e354b9152c2d5b5e56d
--- /dev/null
+++ b/20231005/if-09.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b == 0) {
+    printf ("Bitte nicht durch 0 teilen.\n");
+    printf ("Das macht man nicht.\n");
+  }
+  else {
+    printf ("a / b = %d\n", a / b);
+  }
+  return 0;
+}
diff --git a/20231005/if-10.c b/20231005/if-10.c
new file mode 100644
index 0000000000000000000000000000000000000000..a53c1acf51109607b8ef481d781192d11f37857e
--- /dev/null
+++ b/20231005/if-10.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b != 0)
+    printf ("a / b = %d\n", a / b);
+  else
+    printf ("Bitte nicht durch 0 teilen.\n");
+  return 0;
+}
diff --git a/20231005/if-11.c b/20231005/if-11.c
new file mode 100644
index 0000000000000000000000000000000000000000..e448f55c24877de3b8fd64116caaad7cd861846e
--- /dev/null
+++ b/20231005/if-11.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 360;
+  printf ("a = %d\n", a);
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  if (b)
+    printf ("a / b = %d\n", a / b);
+  else
+    printf ("Bitte nicht durch 0 teilen.\n");
+  return 0;
+}
diff --git a/20231005/init-01.c b/20231005/init-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..c0ec56bbdb16490fef283b124652274389648937
--- /dev/null
+++ b/20231005/init-01.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  int b;
+  b = 137;
+  printf ("a = %d\n", a);
+  printf ("b = %d\n", b);
+  return 0;
+}
diff --git a/20231005/init-01.s b/20231005/init-01.s
new file mode 100644
index 0000000000000000000000000000000000000000..c094d0d328751f52d0d887a88ff9e15402716653
--- /dev/null
+++ b/20231005/init-01.s
@@ -0,0 +1,32 @@
+	.file	"init-01.c"
+	.text
+	.section	.rodata.str1.1,"aMS",@progbits,1
+.LC0:
+	.string	"a = %d\n"
+.LC1:
+	.string	"b = %d\n"
+	.text
+	.globl	main
+	.type	main, @function
+main:
+.LFB11:
+	.cfi_startproc                 # #include <stdio.h>
+	subq	$8, %rsp               # 
+	.cfi_def_cfa_offset 16         # int main (void)
+	movl	$42, %esi              # {
+	leaq	.LC0(%rip), %rdi       #   int a = 42;
+	movl	$0, %eax               #   int b;
+	call	printf@PLT             #   b = 137;
+	movl	$137, %esi             #   printf ("a = %d\n", a);
+	leaq	.LC1(%rip), %rdi       #   printf ("b = %d\n", b);
+	movl	$0, %eax               #   return 0;
+	call	printf@PLT             # }
+	movl	$0, %eax
+	addq	$8, %rsp
+	.cfi_def_cfa_offset 8
+	ret
+	.cfi_endproc
+.LFE11:
+	.size	main, .-main
+	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
+	.section	.note.GNU-stack,"",@progbits
diff --git a/20231005/init-02.c b/20231005/init-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e0e85367122a6c577ac834c0c4da800bdb8626b
--- /dev/null
+++ b/20231005/init-02.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", b);
+  printf ("a * b + a + b = %d\n", a * b + a + b);
+  return 0;
+}
diff --git a/20231005/init-02.s b/20231005/init-02.s
new file mode 100644
index 0000000000000000000000000000000000000000..475094c812d5b8de9d45acd6852505cd3861e97c
--- /dev/null
+++ b/20231005/init-02.s
@@ -0,0 +1,26 @@
+	.file	"init-02.c"
+	.text
+	.section	.rodata.str1.1,"aMS",@progbits,1
+.LC0:
+	.string	"a * b + a + b = %d\n"
+	.text
+	.globl	main
+	.type	main, @function
+main:
+.LFB11:
+	.cfi_startproc
+	subq	$8, %rsp                 # #include <stdio.h>
+	.cfi_def_cfa_offset 16           # 
+	movl	$5933, %esi              # int main (void)
+	leaq	.LC0(%rip), %rdi         # {
+	movl	$0, %eax                 #   int a = 42;
+	call	printf@PLT               #   int b = 137;
+	movl	$0, %eax                 #   printf ("a * b + a + b = %d\n", a * b + a + b);
+	addq	$8, %rsp                 #   return 0;
+	.cfi_def_cfa_offset 8            # }
+	ret
+	.cfi_endproc
+.LFE11:
+	.size	main, .-main
+	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
+	.section	.note.GNU-stack,"",@progbits
diff --git a/20231005/init-03.c b/20231005/init-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e0e85367122a6c577ac834c0c4da800bdb8626b
--- /dev/null
+++ b/20231005/init-03.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", b);
+  printf ("a * b + a + b = %d\n", a * b + a + b);
+  return 0;
+}
diff --git a/20231005/init-04.c b/20231005/init-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..74f6cbb270597109b012c78931ce1b8027d115bc
--- /dev/null
+++ b/20231005/init-04.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 42;
+  int b;
+  printf ("Bitte b eingeben: ");
+  scanf ("%d", &b);
+  printf ("a * b + a + b = %d\n", a * b + a + b);
+  return 0;
+}
diff --git a/20231005/init-04.s b/20231005/init-04.s
new file mode 100644
index 0000000000000000000000000000000000000000..5fa4372537bb75e3324495dda1ca501f0981234e
--- /dev/null
+++ b/20231005/init-04.s
@@ -0,0 +1,40 @@
+	.file	"init-04.c"
+	.text
+	.section	.rodata.str1.1,"aMS",@progbits,1
+.LC0:
+	.string	"Bitte b eingeben: "
+.LC1:
+	.string	"%d"
+.LC2:
+	.string	"a * b + a + b = %d\n"
+	.text
+	.globl	main
+	.type	main, @function
+main:
+.LFB11:
+	.cfi_startproc
+	subq	$24, %rsp
+	.cfi_def_cfa_offset 32           # #include <stdio.h>
+	leaq	.LC0(%rip), %rdi         # 
+	movl	$0, %eax                 # int main (void)
+	call	printf@PLT               # {
+	leaq	12(%rsp), %rsi           #   int a = 42;
+	leaq	.LC1(%rip), %rdi         #   int b;
+	movl	$0, %eax                 #   printf ("Bitte b eingeben: ");
+	call	__isoc99_scanf@PLT       #   scanf ("%d", &b);
+	movl	12(%rsp), %eax           #   printf ("a * b + a + b = %d\n", a * b + a + b);
+	leal	1(%rax), %esi            #   return 0;
+	imull	$42, %esi, %esi          # }
+	addl	%eax, %esi
+	leaq	.LC2(%rip), %rdi
+	movl	$0, %eax
+	call	printf@PLT
+	movl	$0, %eax
+	addq	$24, %rsp
+	.cfi_def_cfa_offset 8
+	ret
+	.cfi_endproc
+.LFE11:
+	.size	main, .-main
+	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
+	.section	.note.GNU-stack,"",@progbits
diff --git a/20231005/input-01.c b/20231005/input-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..5ca4c8c63cf313591a5a57e18c915329a3c71162
--- /dev/null
+++ b/20231005/input-01.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+int main (void)
+{
+  double a;
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%lf", &a);
+  printf ("Ihre Antwort war: %lf\n", a);
+  return 0;
+}
diff --git a/20231005/input-02.c b/20231005/input-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..3c8912a1210787f322016cd6b611a3dd1bcaced3
--- /dev/null
+++ b/20231005/input-02.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+int main (void)
+{
+  double a;
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%lf", a);
+  printf ("Ihre Antwort war: %lf\n", a);
+  return 0;
+}
diff --git a/20231005/input-03.c b/20231005/input-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..b9cd0232d4fa75637c31fe1852cf3a0b9d424369
--- /dev/null
+++ b/20231005/input-03.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  double a;
+  printf ("a = %lf\n", a);
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%lf", a);
+  printf ("Ihre Antwort war: %lf\n", a);
+  return 0;
+}
diff --git a/20231005/input-04.c b/20231005/input-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..7a6f0487f5f04b2607467a4277a432ee058697e0
--- /dev/null
+++ b/20231005/input-04.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  double a = &a;
+  printf ("a = %lf\n", a);
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%lf", a);
+  printf ("Ihre Antwort war: %lf\n", a);
+  return 0;
+}
diff --git a/20231005/input-05.c b/20231005/input-05.c
new file mode 100644
index 0000000000000000000000000000000000000000..82101cfa4364995635cd65b7e0cf6e38a994202d
--- /dev/null
+++ b/20231005/input-05.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  double a = (double) (long long unsigned) &a;
+  printf ("a = %lf\n", a);
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%lf", a);
+  printf ("Ihre Antwort war: %lf\n", a);
+  return 0;
+}
diff --git a/20231005/input-06.c b/20231005/input-06.c
new file mode 100644
index 0000000000000000000000000000000000000000..00725e7fd12709bfa593640395a7c63c18797bf4
--- /dev/null
+++ b/20231005/input-06.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main (void)
+{
+  long long unsigned a = (long long unsigned) &a;
+  printf ("a = %llu\n", a);
+  printf ("Bitte eine Zahl eingeben: ");
+  scanf ("%llu", a);
+  printf ("Ihre Antwort war: %llu\n", a);
+  return 0;
+}
diff --git a/20231005/while-01.c b/20231005/while-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..9e6e7ac87eab9efaa672088ddc419befa30dce64
--- /dev/null
+++ b/20231005/while-01.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 1;
+  while (a <= 10)
+    {
+      printf ("%d\n", a);
+      a = a + 1;
+    }
+  return 0;
+}
diff --git a/20231005/while-02.c b/20231005/while-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..ebaed116f8fba5efaca85765f5baf8393aff6109
--- /dev/null
+++ b/20231005/while-02.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 1;
+  while (a <= 10)
+    {
+      printf ("%d\n", a);
+      a++;
+    }
+  return 0;
+}
diff --git a/20231005/while-03.c b/20231005/while-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..ab32889936d61b2fdaec641cf8ea453c4ca27711
--- /dev/null
+++ b/20231005/while-03.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 1;
+  while (a <= 10)
+    printf ("%d\n", a++);
+  return 0;
+}
diff --git a/20231005/while-04.c b/20231005/while-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..2c95b8c2bad694e41be5b6bb2b6606395c34af60
--- /dev/null
+++ b/20231005/while-04.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main (void)
+{
+  for (int a = 1; a <= 10; a++)
+    printf ("%d\n", a);
+  return 0;
+}
diff --git a/20231005/while-05.c b/20231005/while-05.c
new file mode 100644
index 0000000000000000000000000000000000000000..feb593d7f24649da2647321da7f1c5a7b3c448db
--- /dev/null
+++ b/20231005/while-05.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a = 1;
+  do
+    {
+      printf ("%d\n", a);
+      a = a + 1;
+    }
+  while (a <= 10);
+  return 0;
+}