From 2c5f698589f1effe29a83b19d484806842ffa770 Mon Sep 17 00:00:00 2001
From: Peter Gerwinski <peter.gerwinski@hs-bochum.de>
Date: Mon, 14 Jan 2019 17:42:09 +0100
Subject: [PATCH] Beispielprogramme 14.1.2019

---
 {20190113 => 20190114}/aufgabe-1.c            |   0
 {20190113 => 20190114}/aufgabe-2a.c           |   0
 {20190113 => 20190114}/aufgabe-2b.c           |   0
 {20190113 => 20190114}/gtk-1.c                |   0
 {20190113 => 20190114}/gtk-2.c                |   0
 {20190113 => 20190114}/gtk-3.c                |   0
 {20190113 => 20190114}/gtk-4.c                |   0
 {20190113 => 20190114}/gtk-5.c                |   0
 {20190113 => 20190114}/gtk-6.c                |   0
 {20190113 => 20190114}/gtk-7.c                |   0
 {20190113 => 20190114}/hello-gtk.png          |   0
 .../hp-20190114.pdf                           | Bin 315470 -> 315470 bytes
 .../hp-20190114.tex                           |   4 +-
 .../hp-uebung-20190114.pdf                    | Bin 58360 -> 58203 bytes
 .../hp-uebung-20190114.tex                    |  10 +--
 {20190113 => 20190114}/landau-symbols-2.pdf   |   0
 {20190113 => 20190114}/landau-symbols.pdf     |   0
 .../logo-hochschule-bochum-cvh-text-v2.pdf    |   0
 .../logo-hochschule-bochum.pdf                |   0
 20190114/nodynmem-1.c                         |  13 +++
 20190114/nodynmem-2.c                         |  17 ++++
 {20190113 => 20190114}/objects-1.c            |   0
 20190114/objects-10.c                         |  73 +++++++++++++++++
 20190114/objects-11.c                         |  75 ++++++++++++++++++
 20190114/objects-12.c                         |  66 +++++++++++++++
 20190114/objects-13.c                         |  75 ++++++++++++++++++
 20190114/objects-14.cpp                       |  57 +++++++++++++
 {20190113 => 20190114}/objects-2.c            |   0
 {20190113 => 20190114}/objects-3.c            |   0
 {20190113 => 20190114}/objects-4.c            |   0
 {20190113 => 20190114}/objects-5.c            |   0
 {20190113 => 20190114}/objects-6.c            |   0
 20190114/objects-7.c                          |  43 ++++++++++
 20190114/objects-8.c                          |  59 ++++++++++++++
 20190114/objects-9.c                          |  66 +++++++++++++++
 {20190113 => 20190114}/pgscript.sty           |   0
 {20190113 => 20190114}/pgslides.sty           |   0
 20190114/unions-1.c                           |  16 ++++
 20190114/unions-2.c                           |  15 ++++
 39 files changed, 582 insertions(+), 7 deletions(-)
 rename {20190113 => 20190114}/aufgabe-1.c (100%)
 rename {20190113 => 20190114}/aufgabe-2a.c (100%)
 rename {20190113 => 20190114}/aufgabe-2b.c (100%)
 rename {20190113 => 20190114}/gtk-1.c (100%)
 rename {20190113 => 20190114}/gtk-2.c (100%)
 rename {20190113 => 20190114}/gtk-3.c (100%)
 rename {20190113 => 20190114}/gtk-4.c (100%)
 rename {20190113 => 20190114}/gtk-5.c (100%)
 rename {20190113 => 20190114}/gtk-6.c (100%)
 rename {20190113 => 20190114}/gtk-7.c (100%)
 rename {20190113 => 20190114}/hello-gtk.png (100%)
 rename 20190113/hp-20190113.pdf => 20190114/hp-20190114.pdf (99%)
 rename 20190113/hp-20190113.tex => 20190114/hp-20190114.tex (99%)
 rename 20190113/hp-uebung-20190113.pdf => 20190114/hp-uebung-20190114.pdf (72%)
 rename 20190113/hp-uebung-20190113.tex => 20190114/hp-uebung-20190114.tex (96%)
 rename {20190113 => 20190114}/landau-symbols-2.pdf (100%)
 rename {20190113 => 20190114}/landau-symbols.pdf (100%)
 rename {20190113 => 20190114}/logo-hochschule-bochum-cvh-text-v2.pdf (100%)
 rename {20190113 => 20190114}/logo-hochschule-bochum.pdf (100%)
 create mode 100644 20190114/nodynmem-1.c
 create mode 100644 20190114/nodynmem-2.c
 rename {20190113 => 20190114}/objects-1.c (100%)
 create mode 100644 20190114/objects-10.c
 create mode 100644 20190114/objects-11.c
 create mode 100644 20190114/objects-12.c
 create mode 100644 20190114/objects-13.c
 create mode 100644 20190114/objects-14.cpp
 rename {20190113 => 20190114}/objects-2.c (100%)
 rename {20190113 => 20190114}/objects-3.c (100%)
 rename {20190113 => 20190114}/objects-4.c (100%)
 rename {20190113 => 20190114}/objects-5.c (100%)
 rename {20190113 => 20190114}/objects-6.c (100%)
 create mode 100644 20190114/objects-7.c
 create mode 100644 20190114/objects-8.c
 create mode 100644 20190114/objects-9.c
 rename {20190113 => 20190114}/pgscript.sty (100%)
 rename {20190113 => 20190114}/pgslides.sty (100%)
 create mode 100644 20190114/unions-1.c
 create mode 100644 20190114/unions-2.c

diff --git a/20190113/aufgabe-1.c b/20190114/aufgabe-1.c
similarity index 100%
rename from 20190113/aufgabe-1.c
rename to 20190114/aufgabe-1.c
diff --git a/20190113/aufgabe-2a.c b/20190114/aufgabe-2a.c
similarity index 100%
rename from 20190113/aufgabe-2a.c
rename to 20190114/aufgabe-2a.c
diff --git a/20190113/aufgabe-2b.c b/20190114/aufgabe-2b.c
similarity index 100%
rename from 20190113/aufgabe-2b.c
rename to 20190114/aufgabe-2b.c
diff --git a/20190113/gtk-1.c b/20190114/gtk-1.c
similarity index 100%
rename from 20190113/gtk-1.c
rename to 20190114/gtk-1.c
diff --git a/20190113/gtk-2.c b/20190114/gtk-2.c
similarity index 100%
rename from 20190113/gtk-2.c
rename to 20190114/gtk-2.c
diff --git a/20190113/gtk-3.c b/20190114/gtk-3.c
similarity index 100%
rename from 20190113/gtk-3.c
rename to 20190114/gtk-3.c
diff --git a/20190113/gtk-4.c b/20190114/gtk-4.c
similarity index 100%
rename from 20190113/gtk-4.c
rename to 20190114/gtk-4.c
diff --git a/20190113/gtk-5.c b/20190114/gtk-5.c
similarity index 100%
rename from 20190113/gtk-5.c
rename to 20190114/gtk-5.c
diff --git a/20190113/gtk-6.c b/20190114/gtk-6.c
similarity index 100%
rename from 20190113/gtk-6.c
rename to 20190114/gtk-6.c
diff --git a/20190113/gtk-7.c b/20190114/gtk-7.c
similarity index 100%
rename from 20190113/gtk-7.c
rename to 20190114/gtk-7.c
diff --git a/20190113/hello-gtk.png b/20190114/hello-gtk.png
similarity index 100%
rename from 20190113/hello-gtk.png
rename to 20190114/hello-gtk.png
diff --git a/20190113/hp-20190113.pdf b/20190114/hp-20190114.pdf
similarity index 99%
rename from 20190113/hp-20190113.pdf
rename to 20190114/hp-20190114.pdf
index 61094c4e509d8476b726fd88e37282b6f554c4c8..53f9bc52c5687b45d79c284131d8edfd10d46db8 100644
GIT binary patch
delta 191
zcmX@NK=|AO;SH6H8k66NKA#l4WEW?dM$++(iwY*b=DJw*Lj3)1^_>Y}_5b_6|9m06
zdCjUn%?laZ7czn{Q~N?j=Isj^Sp<%1m>8Oy7#dn=8yKn^7^rLN`{t*(B$lKqXt-Dz
z85mj`7#c!UY`=Mo<q4~^p|PofiK&~Dk%h6FtFxP#k)^4HlYyJDg`uOVv!Q{3oq`P^
LCEL!j_%Q<jI%q%A

delta 191
zcmX@NK=|AO;SH6H8o}4J&#5l=C>4GaaHKEU^`X*r(M4Y`=-(^%FFLs9-#^*+pD&tk
z)>!qsc_Cx_LPii~YG266ynP`fi@;G0V?#@0a{~))14DHK19eS(-~1Gp#FA764HqjT
z14By#Lqmv)?Kh9HJYjWqF|#mpvoJI>b}?}=H?_2IaWl7cF|lxQaWu3vb9HgGQ?MbV
KWZPL5KV|^GVL!S6

diff --git a/20190113/hp-20190113.tex b/20190114/hp-20190114.tex
similarity index 99%
rename from 20190113/hp-20190113.tex
rename to 20190114/hp-20190114.tex
index c176e5f..96c446e 100644
--- a/20190113/hp-20190113.tex
+++ b/20190114/hp-20190114.tex
@@ -1,4 +1,4 @@
-% hp-20190113.pdf - Lecture Slides on Low-Level Programming
+% hp-20190114.pdf - Lecture Slides on Low-Level Programming
 % Copyright (C) 2012, 2013, 2015, 2016, 2017, 2018, 2019  Peter Gerwinski
 %
 % This document is free software: you can redistribute it and/or
@@ -40,7 +40,7 @@
 
 \title{Hardwarenahe Programmierung}
 \author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski}
-\date{13.\ Januar 2019}
+\date{14.\ Januar 2019}
 
 \begin{document}
 
diff --git a/20190113/hp-uebung-20190113.pdf b/20190114/hp-uebung-20190114.pdf
similarity index 72%
rename from 20190113/hp-uebung-20190113.pdf
rename to 20190114/hp-uebung-20190114.pdf
index 3bdbdd519681e19b5e3134efa85b0deb6f702f9e..15929343d34703283c19a9ed6a786e52409b5449 100644
GIT binary patch
delta 15222
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

delta 15386
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
P%`J>9xKveL{oS|#|1U*C

diff --git a/20190113/hp-uebung-20190113.tex b/20190114/hp-uebung-20190114.tex
similarity index 96%
rename from 20190113/hp-uebung-20190113.tex
rename to 20190114/hp-uebung-20190114.tex
index aa4f3f9..6153f35 100644
--- a/20190113/hp-uebung-20190113.tex
+++ b/20190114/hp-uebung-20190114.tex
@@ -1,4 +1,4 @@
-% hp-uebung-20190113.pdf - Exercises on Low-Level Programming / Applied Computer Sciences
+% hp-uebung-20190114.pdf - Exercises on Low-Level Programming / Applied Computer Sciences
 % Copyright (C) 2013, 2015, 2016, 2017, 2018, 2019  Peter Gerwinski
 %
 % This document is free software: you can redistribute it and/or
@@ -31,7 +31,7 @@
 %  \thispagestyle{empty}
 
   \section*{Hardwarenahe Programmierung\\
-            Übungsaufgaben -- 13.\ Januar 2019}
+            Übungsaufgaben -- 14.\ Januar 2019}
 
   Diese Übung enthält Punkteangaben wie in einer Klausur.
   Um zu "`bestehen"', müssen Sie innerhalb von 90 Minuten
@@ -40,7 +40,7 @@
 
   \exercise{Iterationsfunktionen}
 
-  Wir betrachten das folgende Programm (\gitfile{hp}{20190113}{aufgabe-1.c}):
+  Wir betrachten das folgende Programm (\gitfile{hp}{20190114}{aufgabe-1.c}):
 
   \begin{minipage}[t]{0.4\textwidth}
     \begin{lstlisting}[gobble=6]
@@ -86,7 +86,7 @@
 
   \exercise{Objektorientierte Tier-Datenbank}
 
-  Das auf der nächsten Seite in Blau dargestellte Programm (Datei: \gitfile{hp}{20190113}{aufgabe-2a.c})\\
+  Das auf der nächsten Seite in Blau dargestellte Programm (Datei: \gitfile{hp}{20190114}{aufgabe-2a.c})\\
   soll Daten von Tieren verwalten.
 
   Beim Compilieren erscheinen die folgende Fehlermeldungen:
@@ -98,7 +98,7 @@
   \end{lstlisting}
 
   Der Programmierer nimmt die auf der nächsten Seite in Rot dargestellten Ersetzungen vor\\
-  (Datei: \gitfile{hp}{20190113}{aufgabe-2b.c}).
+  (Datei: \gitfile{hp}{20190114}{aufgabe-2b.c}).
   Daraufhin gelingt das Compilieren, und die Ausgabe des Programms lautet:
   \begin{lstlisting}[style=terminal]
     $ ¡gcc -std=c99 -Wall -O aufgabe-2b.c -o aufgabe-2b¿
diff --git a/20190113/landau-symbols-2.pdf b/20190114/landau-symbols-2.pdf
similarity index 100%
rename from 20190113/landau-symbols-2.pdf
rename to 20190114/landau-symbols-2.pdf
diff --git a/20190113/landau-symbols.pdf b/20190114/landau-symbols.pdf
similarity index 100%
rename from 20190113/landau-symbols.pdf
rename to 20190114/landau-symbols.pdf
diff --git a/20190113/logo-hochschule-bochum-cvh-text-v2.pdf b/20190114/logo-hochschule-bochum-cvh-text-v2.pdf
similarity index 100%
rename from 20190113/logo-hochschule-bochum-cvh-text-v2.pdf
rename to 20190114/logo-hochschule-bochum-cvh-text-v2.pdf
diff --git a/20190113/logo-hochschule-bochum.pdf b/20190114/logo-hochschule-bochum.pdf
similarity index 100%
rename from 20190113/logo-hochschule-bochum.pdf
rename to 20190114/logo-hochschule-bochum.pdf
diff --git a/20190114/nodynmem-1.c b/20190114/nodynmem-1.c
new file mode 100644
index 0000000..5ab686f
--- /dev/null
+++ b/20190114/nodynmem-1.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char *name[] = { "Anton", "Bertha", "Cäsar" };
+
+  char *new_name[4];
+  for (int i = 0; i < 3; i++)
+    new_name[i] = name[i];
+  new_name[3] = "Dieter";
+
+  return 0;
+}
diff --git a/20190114/nodynmem-2.c b/20190114/nodynmem-2.c
new file mode 100644
index 0000000..0edbf93
--- /dev/null
+++ b/20190114/nodynmem-2.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+char *name[] = { "Anton", "Bertha", "Cäsar" };
+
+void store_new_name (char *s)
+{
+  char *new_name[4];
+  for (int i = 0; i < 3; i++)
+    new_name[i] = name[i];
+  new_name[3] = s;
+}
+
+int main (void)
+{
+  store_new_name ("Dieter");
+  return 0;
+}
diff --git a/20190113/objects-1.c b/20190114/objects-1.c
similarity index 100%
rename from 20190113/objects-1.c
rename to 20190114/objects-1.c
diff --git a/20190114/objects-10.c b/20190114/objects-10.c
new file mode 100644
index 0000000..ac47c0e
--- /dev/null
+++ b/20190114/objects-10.c
@@ -0,0 +1,73 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+  void (* print) (t_object *this);
+} t_base;
+
+typedef struct
+{
+  int type;
+  void (* print) (t_object *this);
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  void (* print) (t_object *this);
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_integer (t_object *this)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->string.type = T_STRING;
+  p->string.print = print_string;
+  p->string.content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_object *object[] = { new_integer (42),
+                         new_string ("Hello, world!"),
+                         NULL };
+
+  for (int i = 0; object[i]; i++)
+    object[i]->base.print (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-11.c b/20190114/objects-11.c
new file mode 100644
index 0000000..a15c8eb
--- /dev/null
+++ b/20190114/objects-11.c
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+union t_object;
+
+typedef struct
+{
+  int type;
+  void (* print) (union t_object *this);
+} t_base;
+
+typedef struct
+{
+  int type;
+  void (* print) (union t_object *this);
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  void (* print) (union t_object *this);
+  char *content;
+} t_string;
+
+typedef union t_object
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_integer (t_object *this)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->string.type = T_STRING;
+  p->string.print = print_string;
+  p->string.content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_object *object[] = { new_integer (42),
+                         new_string ("Hello, world!"),
+                         NULL };
+
+  for (int i = 0; object[i]; i++)
+    object[i]->base.print (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-12.c b/20190114/objects-12.c
new file mode 100644
index 0000000..5d605e1
--- /dev/null
+++ b/20190114/objects-12.c
@@ -0,0 +1,66 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+union t_object;
+
+typedef struct
+{
+  void (* print) (union t_object *this);
+} t_base;
+
+typedef struct
+{
+  void (* print) (union t_object *this);
+  int content;
+} t_integer;
+
+typedef struct
+{
+  void (* print) (union t_object *this);
+  char *content;
+} t_string;
+
+typedef union t_object
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_integer (t_object *this)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->string.print = print_string;
+  p->string.content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_object *object[] = { new_integer (42),
+                         new_string ("Hello, world!"),
+                         NULL };
+
+  for (int i = 0; object[i]; i++)
+    object[i]->base.print (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-13.c b/20190114/objects-13.c
new file mode 100644
index 0000000..81ef279
--- /dev/null
+++ b/20190114/objects-13.c
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+union t_object;
+struct t_vmt;
+
+typedef struct
+{
+  struct t_vmt *vmt;
+} t_base;
+
+typedef struct
+{
+  struct t_vmt *vmt;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  struct t_vmt *vmt;
+  char *content;
+} t_string;
+
+typedef union t_object
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+typedef struct t_vmt
+{
+  void (* print) (union t_object *this);
+} t_vmt;
+
+void print_integer (t_object *this)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_vmt vmt_integer = { print_integer };
+t_vmt vmt_string = { print_string };
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.vmt = &vmt_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->integer.vmt = &vmt_string;
+  p->string.content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_object *object[] = { new_integer (42),
+                         new_string ("Hello, world!"),
+                         NULL };
+
+  for (int i = 0; object[i]; i++)
+    object[i]->base.vmt->print (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-14.cpp b/20190114/objects-14.cpp
new file mode 100644
index 0000000..1c8c4aa
--- /dev/null
+++ b/20190114/objects-14.cpp
@@ -0,0 +1,57 @@
+#include <stdio.h>
+
+struct TBase
+{
+  virtual void print ();
+};
+
+struct TInteger: TBase
+{
+  int content;
+  virtual void print ();
+  TInteger (int i);
+};
+
+struct TString: TBase
+{
+  const char *content;
+  virtual void print ();
+  TString (const char *s);
+};
+
+void TBase::print ()
+{
+  printf ("Base\n");
+}
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  return 0;
+}
diff --git a/20190113/objects-2.c b/20190114/objects-2.c
similarity index 100%
rename from 20190113/objects-2.c
rename to 20190114/objects-2.c
diff --git a/20190113/objects-3.c b/20190114/objects-3.c
similarity index 100%
rename from 20190113/objects-3.c
rename to 20190114/objects-3.c
diff --git a/20190113/objects-4.c b/20190114/objects-4.c
similarity index 100%
rename from 20190113/objects-4.c
rename to 20190114/objects-4.c
diff --git a/20190113/objects-5.c b/20190114/objects-5.c
similarity index 100%
rename from 20190113/objects-5.c
rename to 20190114/objects-5.c
diff --git a/20190113/objects-6.c b/20190114/objects-6.c
similarity index 100%
rename from 20190113/objects-6.c
rename to 20190114/objects-6.c
diff --git a/20190114/objects-7.c b/20190114/objects-7.c
new file mode 100644
index 0000000..b9b24ad
--- /dev/null
+++ b/20190114/objects-7.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+void print_object (t_base *this)
+{
+  if (this->type == T_INTEGER)
+    printf ("Integer: %d\n", ((t_integer *) this)->content);
+  else if (this->type == T_STRING)
+    printf ("String: \"%s\"\n", ((t_string *) this)->content);
+}
+
+int main (void)
+{
+  t_integer i = { T_INTEGER, 42 };
+  t_string s = { T_STRING, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s, NULL };
+
+  for (int i = 0; object[i]; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-8.c b/20190114/objects-8.c
new file mode 100644
index 0000000..0c93e8f
--- /dev/null
+++ b/20190114/objects-8.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+void print_object (t_base *this)
+{
+  if (this->type == T_INTEGER)
+    printf ("Integer: %d\n", ((t_integer *) this)->content);
+  else if (this->type == T_STRING)
+    printf ("String: \"%s\"\n", ((t_string *) this)->content);
+}
+
+t_integer *new_integer (int i)
+{
+  t_integer *p = malloc (sizeof (t_integer));
+  p->type = T_INTEGER;
+  p->content = i;
+  return p;
+}
+
+t_string *new_string (char *s)
+{
+  t_string *p = malloc (sizeof (t_string));
+  p->type = T_STRING;
+  p->content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_base *object[] = { (t_base *) new_integer (42),
+                       (t_base *) new_string ("Hello, world!"),
+                       NULL };
+
+  for (int i = 0; object[i]; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20190114/objects-9.c b/20190114/objects-9.c
new file mode 100644
index 0000000..41468b0
--- /dev/null
+++ b/20190114/objects-9.c
@@ -0,0 +1,66 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_object (t_object *this)
+{
+  if (this->base.type == T_INTEGER)
+    printf ("Integer: %d\n", this->integer.content);
+  else if (this->base.type == T_STRING)
+    printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->string.type = T_STRING;
+  p->string.content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_object *object[] = { new_integer (42),
+                         new_string ("Hello, world!"),
+                         NULL };
+
+  for (int i = 0; object[i]; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20190113/pgscript.sty b/20190114/pgscript.sty
similarity index 100%
rename from 20190113/pgscript.sty
rename to 20190114/pgscript.sty
diff --git a/20190113/pgslides.sty b/20190114/pgslides.sty
similarity index 100%
rename from 20190113/pgslides.sty
rename to 20190114/pgslides.sty
diff --git a/20190114/unions-1.c b/20190114/unions-1.c
new file mode 100644
index 0000000..b75a606
--- /dev/null
+++ b/20190114/unions-1.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+#include <stdint.h>
+
+typedef union
+{
+  int8_t i;
+  uint8_t u;
+} num8_t;
+
+int main (void)
+{
+  num8_t test;
+  test.i = -1;
+  printf ("%d\n", test.u);
+  return 0;
+}
diff --git a/20190114/unions-2.c b/20190114/unions-2.c
new file mode 100644
index 0000000..be8562a
--- /dev/null
+++ b/20190114/unions-2.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <stdint.h>
+
+typedef union
+{
+  char s[8];
+  uint64_t x;
+} num_char_t;
+
+int main (void)
+{
+  num_char_t test = { "Hello!" };
+  printf ("%lx\n", test.x);
+  return 0;
+}
-- 
GitLab