From 66e0f87d04d8e39812522b9966189594e5c4f7c0 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Thu, 21 Jan 2021 12:56:43 +0100 Subject: [PATCH] =?UTF-8?q?Skript:=20Links=20angepa=C3=9Ft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/egal.txt | 37 +++++++ script/fifo-8.c | 49 ++++++++ script/gtk-1.c | 11 ++ script/gtk-2.c | 12 ++ script/gtk-3.c | 16 +++ script/gtk-4.c | 25 +++++ script/gtk-5.c | 26 +++++ script/gtk-6.c | 53 +++++++++ script/gtk-7.c | 71 ++++++++++++ script/hp-2020ws.pdf | Bin 537498 -> 537565 bytes script/hp-2020ws.tex | 252 +++++++++++++++++++++--------------------- script/objects-12.c | 66 +++++++++++ script/objects-13.c | 75 +++++++++++++ script/objects-14.cpp | 52 +++++++++ script/objects-7.c | 43 +++++++ script/objects-8.c | 59 ++++++++++ script/objects-9.c | 66 +++++++++++ script/stack-11.c | 64 +++++++++++ script/strings-14.c | 19 ++++ script/strings-15.c | 18 +++ script/strings-16.c | 15 +++ script/unions-1.c | 16 +++ 22 files changed, 919 insertions(+), 126 deletions(-) create mode 100644 script/egal.txt create mode 100644 script/fifo-8.c create mode 100644 script/gtk-1.c create mode 100644 script/gtk-2.c create mode 100644 script/gtk-3.c create mode 100644 script/gtk-4.c create mode 100644 script/gtk-5.c create mode 100644 script/gtk-6.c create mode 100644 script/gtk-7.c create mode 100644 script/objects-12.c create mode 100644 script/objects-13.c create mode 100644 script/objects-14.cpp create mode 100644 script/objects-7.c create mode 100644 script/objects-8.c create mode 100644 script/objects-9.c create mode 100644 script/stack-11.c create mode 100644 script/strings-14.c create mode 100644 script/strings-15.c create mode 100644 script/strings-16.c create mode 100644 script/unions-1.c diff --git a/script/egal.txt b/script/egal.txt new file mode 100644 index 0000000..70fbe4a --- /dev/null +++ b/script/egal.txt @@ -0,0 +1,37 @@ +GNU/Linux +~~~~~~~~~ +Compilieren: gcc -Wall -O cube-5.c opengl-magic.c \ + -lGL -lGLU -lglut -o cube-5 +Aufrufen: ./cube-5 + +MacOS +~~~~~ +Compilieren: gcc -Wall -O cube-5.c opengl-magic.c \ + -framework OpenGL -framework GLUT -o cube-5 +Aufrufen: ./cube-5 + +Cygwin mit X11 +~~~~~~~~~~~~~~ +Compilieren: gcc -Wall -O cube-5.c opengl-magic.c \ + -lGL -lGLU -lglut -o cube-5 +Aufrufen: DISPLAY=:0.0 ./cube-5 +oder: + einmalig: export DISPLAY=:0.0 + danach: ./cube-5 + +Vorher einmalig: X-Server starten + XWin -multiwindow & + +Cygwin ohne X11 +~~~~~~~~~~~~~~~ +Compilieren: i686-pc-mingw32-gcc -I freeglut/include -L freeglut/lib \ + -Wall -O cube-5.c opengl-magic.c \ + -lOpenGL32 -lGLU32 -lfreeglut -o cube-5 +Aufrufen: ./cube-5 + +MinGW ohne X11 +~~~~~~~~~~~~~~ +Compilieren: gcc -I freeglut/include -L freeglut/lib \ + -Wall -O cube-5.c opengl-magic.c \ + -lOpenGL32 -lGLU32 -lfreeglut -o cube-5 +Aufrufen: ./cube-5 diff --git a/script/fifo-8.c b/script/fifo-8.c new file mode 100644 index 0000000..5ee60f2 --- /dev/null +++ b/script/fifo-8.c @@ -0,0 +1,49 @@ +#include <stdio.h> + +#define FIFO_SIZE 10 + +int fifo[FIFO_SIZE]; +int fifo_read = 0; +int fifo_write = 0; + +void push (int x) +{ + if ((fifo_write + 1) % FIFO_SIZE == fifo_read) + fprintf (stderr, "push(): FIFO is full\n"); + else + { + fifo[fifo_write++] = x; + if (fifo_write >= FIFO_SIZE) + fifo_write = 0; + } +} + +int pop (void) +{ + if (fifo_read == fifo_write) + { + fprintf (stderr, "pop(): FIFO is empty\n"); + return -1; + } + else + { + int result = fifo[fifo_read++]; + if (fifo_read >= FIFO_SIZE) + fifo_read = 0; + return result; + } +} + +int main (void) +{ + push (3); + push (7); + push (137); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + printf ("%d\n", pop ()); + for (int i = 0; i < 15; i++) + push (i); + return 0; +} diff --git a/script/gtk-1.c b/script/gtk-1.c new file mode 100644 index 0000000..884a14e --- /dev/null +++ b/script/gtk-1.c @@ -0,0 +1,11 @@ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-2.c b/script/gtk-2.c new file mode 100644 index 0000000..c5db19f --- /dev/null +++ b/script/gtk-2.c @@ -0,0 +1,12 @@ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-3.c b/script/gtk-3.c new file mode 100644 index 0000000..26fcdd9 --- /dev/null +++ b/script/gtk-3.c @@ -0,0 +1,16 @@ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + GtkWidget *button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + gtk_container_add (GTK_CONTAINER (window), button); + gtk_widget_show (button); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-4.c b/script/gtk-4.c new file mode 100644 index 0000000..3e15b64 --- /dev/null +++ b/script/gtk-4.c @@ -0,0 +1,25 @@ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + + GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add (GTK_CONTAINER (window), vbox); + + GtkWidget *button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + gtk_container_add (GTK_CONTAINER (vbox), button); + + GtkWidget *drawing_area = gtk_drawing_area_new (); + gtk_container_add (GTK_CONTAINER (vbox), drawing_area); + + gtk_widget_show (button); + gtk_widget_show (vbox); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-5.c b/script/gtk-5.c new file mode 100644 index 0000000..132dbcb --- /dev/null +++ b/script/gtk-5.c @@ -0,0 +1,26 @@ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + + GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add (GTK_CONTAINER (window), vbox); + + GtkWidget *button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + gtk_container_add (GTK_CONTAINER (vbox), button); + + GtkWidget *drawing_area = gtk_drawing_area_new (); + gtk_container_add (GTK_CONTAINER (vbox), drawing_area); + + gtk_widget_show (drawing_area); + gtk_widget_show (button); + gtk_widget_show (vbox); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-6.c b/script/gtk-6.c new file mode 100644 index 0000000..81e12e6 --- /dev/null +++ b/script/gtk-6.c @@ -0,0 +1,53 @@ +#include <gtk/gtk.h> + +gboolean draw (GtkWidget *widget, cairo_t *c, gpointer data) +{ + GdkRGBA red = { 1.0, 0.0, 0.0, 0.8 }; + GdkRGBA yellow = { 1.0, 1.0, 0.0, 0.6 }; + GdkRGBA blue = { 0.0, 0.5, 1.0, 0.4 }; + + gdk_cairo_set_source_rgba (c, &red); + cairo_rectangle (c, 10, 10, 60, 40); + cairo_fill (c); + + gdk_cairo_set_source_rgba (c, &yellow); + cairo_arc (c, 65, 50, 30, 0, 2 * G_PI); + cairo_fill (c); + + gdk_cairo_set_source_rgba (c, &blue); + cairo_move_to (c, 10, 70); + cairo_line_to (c, 70, 70); + cairo_line_to (c, 40, 18); + cairo_close_path (c); + cairo_fill (c); + + return FALSE; /* TRUE to stop other handlers from being invoked for the event. + FALSE to propagate the event further. */ +} + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + + GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add (GTK_CONTAINER (window), vbox); + + GtkWidget *button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + gtk_container_add (GTK_CONTAINER (vbox), button); + + GtkWidget *drawing_area = gtk_drawing_area_new (); + gtk_container_add (GTK_CONTAINER (vbox), drawing_area); + g_signal_connect (drawing_area, "draw", G_CALLBACK (draw), NULL); + gtk_widget_set_size_request (drawing_area, 100, 100); + + gtk_widget_show (drawing_area); + gtk_widget_show (button); + gtk_widget_show (vbox); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/gtk-7.c b/script/gtk-7.c new file mode 100644 index 0000000..11041fb --- /dev/null +++ b/script/gtk-7.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <gtk/gtk.h> + +gboolean draw (GtkWidget *widget, cairo_t *c, gpointer data) +{ + GdkRGBA red = { 1.0, 0.0, 0.0, 0.8 }; + GdkRGBA yellow = { 1.0, 1.0, 0.0, 0.6 }; + GdkRGBA blue = { 0.0, 0.5, 1.0, 0.4 }; + + gdk_cairo_set_source_rgba (c, &red); + cairo_rectangle (c, 10, 10, 60, 40); + cairo_fill (c); + + gdk_cairo_set_source_rgba (c, &yellow); + cairo_arc (c, 65, 50, 30, 0, 2 * G_PI); + cairo_fill (c); + + gdk_cairo_set_source_rgba (c, &blue); + cairo_move_to (c, 10, 70); + cairo_line_to (c, 70, 70); + cairo_line_to (c, 40, 18); + cairo_close_path (c); + cairo_fill (c); + + return FALSE; /* TRUE to stop other handlers from being invoked for the event. + FALSE to propagate the event further. */ +} + +gboolean button_press (GtkWidget *widget, GdkEventButton *e, gpointer data) +{ + printf ("button %d pressed at (%lf, %lf)\n", e->button, e->x, e->y); + return FALSE; +} + +gboolean key_press (GtkWidget *widget, GdkEventKey *e, gpointer data) +{ + printf ("key '%c' (%d) pressed\n", e->keyval, e->keyval); + return FALSE; +} + +int main (int argc, char **argv) +{ + gtk_init (&argc, &argv); + GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hello"); + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + + GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add (GTK_CONTAINER (window), vbox); + + GtkWidget *button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); + gtk_container_add (GTK_CONTAINER (vbox), button); + + GtkWidget *drawing_area = gtk_drawing_area_new (); + gtk_container_add (GTK_CONTAINER (vbox), drawing_area); + g_signal_connect (drawing_area, "draw", G_CALLBACK (draw), NULL); + gtk_widget_set_size_request (drawing_area, 100, 100); + gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK); + g_signal_connect (drawing_area, "button_press_event", G_CALLBACK (button_press), NULL); + + gtk_widget_add_events (window, GDK_KEY_PRESS_MASK); + g_signal_connect (window, "key_press_event", G_CALLBACK (key_press), NULL); + + gtk_widget_show (drawing_area); + gtk_widget_show (button); + gtk_widget_show (vbox); + gtk_widget_show (window); + gtk_main (); + return 0; +} diff --git a/script/hp-2020ws.pdf b/script/hp-2020ws.pdf index 5cb5791ac2df663284a741c84b703d637c9494a0..9ffec9021c72492cdbc0119d27f88f428ac500e2 100644 GIT binary patch delta 41287 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%0Aix!w1ej(<L9mB?vp#qyqE`)1vn4PV8| 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 Yf7IJGz0jCLp3BhKgiBS`)!&T^0K|-YH~;_u delta 41155 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≈QI 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 diff --git a/script/hp-2020ws.tex b/script/hp-2020ws.tex index a6f2868..5adc27d 100644 --- a/script/hp-2020ws.tex +++ b/script/hp-2020ws.tex @@ -264,7 +264,7 @@ \subsection{Hello, world!} - Das folgende Beispiel-Programm (Datei: \gitfile{hp}{script}{hello-1.c}) + Das folgende Beispiel-Programm (Datei: \gitfile{hp}{2020ws/script}{hello-1.c}) gibt den Text "`Hello, world!"' auf dem Bildschirm aus: \begin{lstlisting} #include <stdio.h> @@ -333,7 +333,7 @@ Der Programmtext wird mit Hilfe eines Eingabeprogramms, des \newterm{Texteditors}, in den Computer eingegeben und als Datei gespeichert. - Als Dateiname sei hier \gitfile{hp}{script}{hello-1.c} angenommen. + Als Dateiname sei hier \gitfile{hp}{2020ws/script}{hello-1.c} angenommen. Die Dateiendung \file{.c} soll anzeigen, daß es sich um einen Programmquelltext in der Programmiersprache C handelt. @@ -413,7 +413,7 @@ eine Benutzergruppe (hier: \lstinline[style=terminal]{ainf}) und für alle anderen Benutzer des Computers. - Im o.\,a.\ Beispiel ist die Datei \gitfile{hp}{script}{hello-1.c} + Im o.\,a.\ Beispiel ist die Datei \gitfile{hp}{2020ws/script}{hello-1.c} für den Benutzer \lstinline[style=terminal]{peter} les- und schreibbar, für alle Angehörigen der Gruppe \lstinline[style=terminal]{ainf} nur lesbar und für alle anderen Benutzer des Computers ebenfalls nur lesbar. @@ -453,7 +453,7 @@ eine String-Konstante wie z.\,B.\ \lstinline{"Hello, world!\n"} "`einfach so"' auszugeben, liegt die Vermutung nahe, Integer-Konstanten auf gleiche Weise ausgeben zu können. - Datei \gitfile{hp}{script}{output-1.c}: + Datei \gitfile{hp}{2020ws/script}{output-1.c}: \begin{lstlisting} #include <stdio.h> @@ -530,7 +530,7 @@ \breath Wie man nun tatsächlich in C Zahlenwerte ausgibt, - illustriert das Beispielprogramm \gitfile{hp}{script}{output-2.c}: + illustriert das Beispielprogramm \gitfile{hp}{2020ws/script}{output-2.c}: \begin{lstlisting} #include <stdio.h> @@ -582,7 +582,7 @@ Auch mehrere \lstinline{\n} in derselben String-Konstanten sind zulässig. \item C akzeptiert auch sehr seltsame Konstrukte. - Das folgende Beispiel (Datei: \gitfile{hp}{script}{hello-2.c}) + Das folgende Beispiel (Datei: \gitfile{hp}{2020ws/script}{hello-2.c}) \begin{lstlisting}[gobble=8] #include <stdio.h> @@ -611,7 +611,7 @@ Wenn mehrere Werte ausgegeben werden sollen, verwendet man in \lstinline{printf()} mehrere Formatspezifikationen - und gibt mehrere Werte als Parameter an (Datei: \gitfile{hp}{script}{output-3.c}): + und gibt mehrere Werte als Parameter an (Datei: \gitfile{hp}{2020ws/script}{output-3.c}): \begin{lstlisting} #include <stdio.h> @@ -629,7 +629,7 @@ \end{lstlisting} Achtung: Zu viele oder zu wenige Werte in der Parameterliste ergeben trotzdem ein gültiges, wenn auch fehlerhaftes C-Programm - (Datei: \gitfile{hp}{script}{output-4.c}): + (Datei: \gitfile{hp}{2020ws/script}{output-4.c}): \begin{lstlisting} #include <stdio.h> @@ -660,7 +660,7 @@ Das Einlesen von Werten erfolgt in C mit der Funktion \lstinline{scanf()}. - Das folgende Beispielprogramm (Datei: \gitfile{hp}{script}{input-1.c}) + Das folgende Beispielprogramm (Datei: \gitfile{hp}{2020ws/script}{input-1.c}) liest einen Wert vom Standardeingabegerät (hier: Tastatur) ein und gibt ihn wieder aus: \begin{lstlisting} @@ -683,7 +683,7 @@ (Genaugenommen handelt es sich um die Übergabe einer Speicheradresse. Dies wird in Abschnitt \ref{Zeiger} genauer behandelt.) - Wenn wir das \lstinline{&} vergessen (Beispielprogramm: \gitfile{hp}{script}{input-2.c}), + Wenn wir das \lstinline{&} vergessen (Beispielprogramm: \gitfile{hp}{2020ws/script}{input-2.c}), kann das C-Programm weiterhin compiliert werden. Bei Verwendung der Option \lstinline[style=cmd]{-Wall} erhalten wir eine Warnung. Wenn wir das Programm ausführen und versuchen, einen Wert einzugeben, stürzt das Programm ab. @@ -725,7 +725,7 @@ dazu verwendet werden, zwei Integer-Ausdrücke, die sogenannten \newterm{Operanden}, durch Addition zu einem neuen Integer-Ausdruck zu verknüpfen. - Beispiel: \gitfile{hp}{script}{mathe-1.c} + Beispiel: \gitfile{hp}{2020ws/script}{mathe-1.c} \begin{lstlisting} #include <stdio.h> @@ -815,7 +815,7 @@ \subsection{Verzweigungen} - Das Beispielprogramm \gitfile{hp}{script}{if-0.c} + Das Beispielprogramm \gitfile{hp}{2020ws/script}{if-0.c} \begin{lstlisting} #include <stdio.h> @@ -850,7 +850,7 @@ Diese sog.\ \newterm{Verzweigung\/} geschieht mittels einer \lstinline{if}-Anweisung. \goodbreak - Beispielprogramm: \gitfile{hp}{script}{if-1.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{if-1.c} \begin{lstlisting} #include <stdio.h> @@ -883,7 +883,7 @@ Die \lstinline{if}-Anweisung kennt einen optionalen \lstinline{else}-Zweig. Dieser wird dann ausgeführt, wenn die Bedingung \emph{nicht\/} erfüllt ist. - Beispielprogramm: \gitfile{hp}{script}{if-2.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{if-2.c} \begin{lstlisting} #include <stdio.h> @@ -907,7 +907,7 @@ Sowohl auf das \lstinline{if} als auch auf das \lstinline{else} folgt nur jeweils \emph{eine\/} Anweisung, die von der Bedingung abhängt. - In dem folgenden Beispielprogramm (Datei: \gitfile{hp}{script}{if-3.c}) + In dem folgenden Beispielprogramm (Datei: \gitfile{hp}{2020ws/script}{if-3.c}) \begin{lstlisting} #include <stdio.h> @@ -943,7 +943,7 @@ zu einem sog.\ \newterm{Anweisungsblock\/} zusammenfassen. \goodbreak - Beispielprogramm: \gitfile{hp}{script}{if-4.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{if-4.c} \begin{lstlisting} #include <stdio.h> @@ -967,8 +967,8 @@ Aus Sicht des Computers ist die Einrückung -- und überhaupt die Anordnung von Leerzeichen und Zeilenschaltungen -- belanglos. - Die folgende Schreibweise (Datei: \gitfile{hp}{script}{if-5.c}) ist für ihn - vollkommen gleichwertig zu \gitfile{hp}{script}{if-4.c}: + Die folgende Schreibweise (Datei: \gitfile{hp}{2020ws/script}{if-5.c}) ist für ihn + vollkommen gleichwertig zu \gitfile{hp}{2020ws/script}{if-4.c}: \begin{lstlisting} #include<stdio.h> int main(void){int a,b;printf("Bitte a eingeben: ");scanf("%d",&a); @@ -1047,7 +1047,7 @@ Daß es sich bei Wahrheitswerten in C tatsächlich um Integer-Werte handelt, wird auch deutlich, wenn man sich diese mittels \lstinline{printf()} ausgeben läßt. - Wenn man beispielsweise in dem folgenden Programm \gitfile{hp}{script}{if-6.c} + Wenn man beispielsweise in dem folgenden Programm \gitfile{hp}{2020ws/script}{if-6.c} den Wert \lstinline{7} für die Variable \lstinline{b} eingibt, \begin{lstlisting} #include <stdio.h> @@ -1083,7 +1083,7 @@ Mit Hilfe der \lstinline{while}-Anweisung ist es möglich, Anweisungen in Abhängigkeit von einer Bedingung mehrfach auszuführen. - Das folgende Beispielprogramm \gitfile{hp}{script}{loop-1.c} + Das folgende Beispielprogramm \gitfile{hp}{2020ws/script}{loop-1.c} schreibt die Zahlen von 1 bis einschließlich 10 auf den Bildschirm: \begin{lstlisting} #include <stdio.h> @@ -1112,7 +1112,7 @@ \breath Wenn man eine Bedingung angibt, die niemals 0 wird, - erzeugt man eine Endlosschleife (\gitfile{hp}{script}{while-2.c}): + erzeugt man eine Endlosschleife (\gitfile{hp}{2020ws/script}{while-2.c}): \begin{lstlisting} #include <stdio.h> @@ -1236,7 +1236,7 @@ printf ("%d\n", i); \end{lstlisting} \bigskip - \quad(Datei: \gitfile{hp}{script}{loop-2.c}) + \quad(Datei: \gitfile{hp}{2020ws/script}{loop-2.c}) \end{minipage} \end{center} @@ -1276,7 +1276,7 @@ printf ("%d\n", i); \end{lstlisting} \vspace{-\smallskipamount} - zwar zulässiges C, aber nicht sinnvoll (Datei: \gitfile{hp}{script}{loop-3.c}). + zwar zulässiges C, aber nicht sinnvoll (Datei: \gitfile{hp}{2020ws/script}{loop-3.c}). Dies kann man sofort erkennen, indem man die \lstinline{for}-Schleife in eine \lstinline{while}-Schleife übersetzt: \begin{lstlisting} @@ -1298,7 +1298,7 @@ Das Verwerfen berechneter Werte verdient eine nähere Betrachtung -- insbesondere in der Programmiersprache C. - Wie das Beispielprogramm \gitfile{hp}{script}{statements-1.c} illustriert, + Wie das Beispielprogramm \gitfile{hp}{2020ws/script}{statements-1.c} illustriert, \begin{lstlisting} #include <stdio.h> @@ -1326,7 +1326,7 @@ nämlich die Ausgabe des Textes auf dem Standardausgabegerät (Bildschirm). Diese weitere Bedeutung heißt \newterm{Seiteneffekt\/} des Ausdrucks. - Das Beispielprogramm \gitfile{hp}{script}{statements-2.c} + Das Beispielprogramm \gitfile{hp}{2020ws/script}{statements-2.c} gibt den vom ersten \lstinline{printf()} zurückgegebenen Wert mit Hilfe eines zweiten \lstinline{printf()} aus: \begin{lstlisting} @@ -1534,7 +1534,7 @@ \} \end{quote} - Beispielprogramm: \gitfile{hp}{script}{functions-1.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{functions-1.c} \begin{lstlisting} #include <stdio.h> @@ -1579,7 +1579,7 @@ sind sie von verschiedenen Stellen im Programm aus zugänglich und/oder verhalten sich unterschiedlich. - Beispielprogramm: \gitfile{hp}{script}{functions-2.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{functions-2.c} \begin{lstlisting}[style=numbered] #include <stdio.h> @@ -1724,7 +1724,7 @@ mit dem Wert "`Speicheradresse dieser Variablen"' zu erhalten. \goodbreak - Beispielprogramm: \gitfile{hp}{script}{pointers-1.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{pointers-1.c} \begin{lstlisting} #include <stdio.h> @@ -1770,7 +1770,7 @@ wenn mehrere Variable gleichen Typs gemeinsam angelegt werden. Eine derartige Ansammlung von Variablen gleichen Typs heißt \newterm{Array\/} (Feldvariable, Vektor). - Beispielprogramm: \gitfile{hp}{script}{arrays-1.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{arrays-1.c} \begin{lstlisting} #include <stdio.h> @@ -1805,7 +1805,7 @@ Wenn wir uns dieser Schreibweise bedienen und anstelle des Zeigers \lstinline{p}, der durchgehend den Wert \lstinline{prime} hat, direkt \lstinline{prime} verwenden, - erhalten wir das Beispielprogramm \gitfile{hp}{script}{arrays-2.c}: + erhalten wir das Beispielprogramm \gitfile{hp}{2020ws/script}{arrays-2.c}: \goodbreak \begin{lstlisting} #include <stdio.h> @@ -1857,7 +1857,7 @@ braucht diese nicht ausdrücklich angegeben zu werden. In diesem Fall folgt auf den Bezeichner nur das Paar eckiger Klammern und der Initialisierer. - Das Beispielprogramm \gitfile{hp}{script}{strings-1.c} zeigt, + Das Beispielprogramm \gitfile{hp}{2020ws/script}{strings-1.c} zeigt, wie das Array durchlaufen werden kann, bis die Zahl 0 gefunden wird: \begin{lstlisting} #include <stdio.h> @@ -1875,7 +1875,7 @@ Durch die Formatangabe \lstinline{%d} wird jedes Zeichen -- korrektermaßen -- als Dezimalzahl ausgegeben. Wenn wir stattdessen die Formatangabe \lstinline{%c} verwenden (für \emph{character\/}), wird für jedes Zeichen -- ebenso korrektermaßen -- sein Zeichenwert (Buchstabe, Ziffer, \dots) ausgegeben - (Datei: \gitfile{hp}{script}{strings-2.c}): + (Datei: \gitfile{hp}{2020ws/script}{strings-2.c}): \begin{lstlisting} #include <stdio.h> @@ -1891,7 +1891,7 @@ Durch Verwendung von Pointer-Arithmetik und Weglassen der überflüssigen Abfrage \lstinline{!= 0} - erhalten wir das äquivalente Beispielprogramm \gitfile{hp}{script}{strings-3.c}: + erhalten wir das äquivalente Beispielprogramm \gitfile{hp}{2020ws/script}{strings-3.c}: \begin{lstlisting} #include <stdio.h> @@ -1912,7 +1912,7 @@ Eine weitere Formatangabe \lstinline{%s} dient in \lstinline{printf()} dazu, direkt einen kompletten String bis ausschließlich der abschließenden 0 auszugeben. - Beispielprogramm: \gitfile{hp}{script}{strings-4.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-4.c} \begin{lstlisting} #include <stdio.h> @@ -1967,7 +1967,7 @@ führt dies zu unsinnigen Ergebnissen bis hin zu einem Absturz (Speicherzugriffsfehler). - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-14.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-14.c} \item[\textbf{;\,)}] Null-Zeichen in den String schreiben @@ -1988,7 +1988,7 @@ werden andere Variable überschrieben, was in der Regel zu einem Absturz führt (Speicherzugriffsfehler). - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-14.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-14.c} \item \lstinline{strlen()} -- Ermitteln der Länge eines Strings @@ -2001,7 +2001,7 @@ printf ("%s\n", strlen (hello)); \end{lstlisting} - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-14.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-14.c} \item \lstinline{strcmp()} -- Strings vergleichen @@ -2024,7 +2024,7 @@ normalerweise ASCII. Dabei kommen z.\,B.\ Großbuchstaben grundsätzlich \emph{vor\/} den Kleinbuchstaben. - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-15.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-15.c} \item \lstinline{strcat()} -- String an anderen String anhängen @@ -2046,7 +2046,7 @@ werden andere Variable überschrieben, was in der Regel zu einem Absturz führt (Speicherzugriffsfehler). - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-15.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-15.c} \item \lstinline{sprintf()} -- in String schreiben @@ -2075,7 +2075,7 @@ zu verwenden. Diese erwartet als zweiten Parameter die Länge des Ziel-Strings und sorgt dafür, daß nicht über dessen Ende hinausgeschrieben wird. - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-16.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-16.c} \item \lstinline{strstr()} -- in String suchen @@ -2097,7 +2097,7 @@ (\emph{signed size type\/}). Um diese mit \lstinline{printf()} auszugeben, verwendet man \lstinline{%zd} anstelle von \lstinline{%d}. - Beispielprogramm: \gitfile{hp}{2020ws/20161024}{strings-16.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{strings-16.c} \end{itemize} @@ -2114,7 +2114,7 @@ geschrieben. Tatsächlich kann das Hauptprogramm vom Betriebssystem Parameter entgegennehmen - (Datei: \gitfile{hp}{script}{params-1.c}): + (Datei: \gitfile{hp}{2020ws/script}{params-1.c}): \begin{lstlisting} #include <stdio.h> @@ -2156,9 +2156,9 @@ Um die Parameter des Programms in einer Schleife durchzugehen, können wir also entweder von \lstinline{0} bis \lstinline{argc - 1} zählen - (Schleifenbedingung \lstinline{i < argc}, Datei: \gitfile{hp}{script}{params-1.c} -- siehe oben) + (Schleifenbedingung \lstinline{i < argc}, Datei: \gitfile{hp}{2020ws/script}{params-1.c} -- siehe oben) oder die Schleife mit dem Erreichen der Endmarkierung abbrechen - (Schleifenbedingung \lstinline{argv[i] != NULL}, Datei: \gitfile{hp}{script}{params-2.c}). + (Schleifenbedingung \lstinline{argv[i] != NULL}, Datei: \gitfile{hp}{2020ws/script}{params-2.c}). \begin{lstlisting} #include <stdio.h> @@ -2172,7 +2172,7 @@ \end{lstlisting} Auch für Zeiger gilt: \lstinline{NULL} entspricht dem Wahrheitswert "`falsch"'; alles andere dem Wahrheitswert "`wahr"'. - Wir dürfen die Schleifenbedingung also wie folgt abkürzen (Datei: \gitfile{hp}{script}{params-3.c}): + Wir dürfen die Schleifenbedingung also wie folgt abkürzen (Datei: \gitfile{hp}{2020ws/script}{params-3.c}): \begin{lstlisting} #include <stdio.h> @@ -2190,7 +2190,7 @@ In vielen Situationen ist es sinnvoll, mehrere Variable zu einer Einheit zusammenzufassen. - Das folgende Beispielprogramm \gitfile{hp}{script}{structs-1.c} + Das folgende Beispielprogramm \gitfile{hp}{2020ws/script}{structs-1.c} faßt drei Variable \lstinline{day}, \lstinline{month} und \lstinline{year} zu einem einzigen -- neuen -- Datentyp \lstinline{date} zusammen: \begin{lstlisting} @@ -2225,7 +2225,7 @@ Eine wichtige Anwendung derartiger \newterm{strukturierter Datentypen\/} besteht darin, zusammengehörige Daten als Einheit an Funktionen übergeben zu können - (Beispielprogramm: \gitfile{hp}{script}{structs-2.c}): + (Beispielprogramm: \gitfile{hp}{2020ws/script}{structs-2.c}): \begin{lstlisting} #include <stdio.h> @@ -2265,7 +2265,7 @@ \lstinline{foo->bar} \goodbreak - Beispielprogramm: \gitfile{hp}{script}{structs-3.c} + Beispielprogramm: \gitfile{hp}{2020ws/script}{structs-3.c} \goodbreak \begin{lstlisting} #include <stdio.h> @@ -2314,7 +2314,7 @@ sollte man ihn durch etwas Uncompilierbares (z.\,B.\ \lstinline{@@@}) markieren, damit man auf jeden Fall vermeidet, ein fehlerhaftes Programm auszuliefern.) - Zunächst kopieren wir das Beispielprogramm \gitfile{hp}{script}{structs-3.c} + Zunächst kopieren wir das Beispielprogramm \gitfile{hp}{2020ws/script}{structs-3.c} und ergänzen den Aufruf der -- noch nicht existierenden -- Funktion \lstinline{inc_date()} (Datei: \gitfile{{hp}script}{incdate-0.c}): \begin{lstlisting} @@ -2367,7 +2367,7 @@ Stattdessen haben wir jetzt eine fehlerhafte Funktion \lstinline{inc_date()}. Im nächsten Schritt ersetzen wir die fehlerhafte Funktion - durch ein simples Hochzählen der \lstinline{day}-Kom\-po\-nen\-te (Datei: \gitfile{hp}{script}{incdate-1.c}) + durch ein simples Hochzählen der \lstinline{day}-Kom\-po\-nen\-te (Datei: \gitfile{hp}{2020ws/script}{incdate-1.c}) \begin{lstlisting} void inc_date (date *d) { @@ -2378,7 +2378,7 @@ Dies reparieren wir im nächsten Schritt, wobei wir für den Moment inkorrekterweise annehmen, daß alle Monate 30 Tage hätten und das Jahr beliebig viele Monate. - (Datei: \gitfile{hp}{script}{incdate-2.c}): + (Datei: \gitfile{hp}{2020ws/script}{incdate-2.c}): \begin{lstlisting} void inc_date (date *d) { @@ -2391,7 +2391,7 @@ } \end{lstlisting} Zunächst reparieren wir den Fehler, der am Ende des Jahres entsteht - (Datei: \gitfile{hp}{script}{incdate-3.c}). + (Datei: \gitfile{hp}{2020ws/script}{incdate-3.c}). \begin{lstlisting} void inc_date (date *d) { @@ -2411,7 +2411,7 @@ Das Problem der unterschiedlich langen Monate gehen wir wieder stufenweise an. Zunächst ersetzen wir die Konstante \lstinline{31} durch eine Variable \lstinline{days_in_month}. - (Datei: \gitfile{hp}{script}{incdate-4.c}) + (Datei: \gitfile{hp}{2020ws/script}{incdate-4.c}) \begin{lstlisting} void inc_date (date *d) { @@ -2430,7 +2430,7 @@ } \end{lstlisting} Anschließend reparieren wir den fehlerhaften (konstanten) Wert der Variablen, - wobei wir zunächst das Problem der Schaltjahre aussparen (Datei: \gitfile{hp}{script}{incdate-5.c}): + wobei wir zunächst das Problem der Schaltjahre aussparen (Datei: \gitfile{hp}{2020ws/script}{incdate-5.c}): \begin{lstlisting} void inc_date (date *d) { @@ -2454,7 +2454,7 @@ \end{lstlisting} Auf dieselbe Weise lagern wir das Problem "`Schaltjahr oder nicht?"' in eine Variable aus. Diese ist wieder zunächst konstant - (Datei: \gitfile{hp}{script}{incdate-6.c}): + (Datei: \gitfile{hp}{2020ws/script}{incdate-6.c}): \begin{lstlisting} void inc_date (date *d) { @@ -2483,7 +2483,7 @@ } \end{lstlisting} Als nächstes ergänzen wir die Vier-Jahres-Regel für Schaltjahre - (Datei \gitfile{hp}{script}{incdate-7.c}): + (Datei \gitfile{hp}{2020ws/script}{incdate-7.c}): \begin{lstlisting} ¡int is_leap_year = 0; if (d->year % 4 == 0) @@ -2495,11 +2495,11 @@ \end{lstlisting} Das nun vorliegende Programm arbeitet bereits für den julianischen Kalender sowie für alle Jahre von 1901 bis 2099 korrekt, - nicht jedoch für z.\,B.\ das Jahr 2100 (Datei: \gitfile{hp}{script}{incdate-8.c}). + nicht jedoch für z.\,B.\ das Jahr 2100 (Datei: \gitfile{hp}{2020ws/script}{incdate-8.c}). Damit das Programm für den aktuell verwendeten gregorianischen Kalender korrekt arbeitet, ergänzen wir noch die Ausnahme, daß durch 100 teilbare Jahre keine Schaltjahre sind, sowie die Ausnahme von der Ausnahme, daß durch 400 teilbare Jahre - (z.\,B.\ das Jahr 2000) eben doch Schaltjahre sind (Datei: \gitfile{hp}{script}{incdate-9.c}): + (z.\,B.\ das Jahr 2000) eben doch Schaltjahre sind (Datei: \gitfile{hp}{2020ws/script}{incdate-9.c}): \begin{lstlisting} int is_leap_year = 0; if (d->year % 4 == 0) @@ -2518,7 +2518,7 @@ days_in_month = 28; \end{lstlisting} Damit ist die Aufgabe gelöst. - Der vollständige Quelltext der Lösung (Datei: \gitfile{hp}{script}{incdate-9.c}) lautet: + Der vollständige Quelltext der Lösung (Datei: \gitfile{hp}{2020ws/script}{incdate-9.c}) lautet: \begin{lstlisting} #include <stdio.h> @@ -2650,7 +2650,7 @@ \lstinline{FILE} übergibt, verhalten sie sich in der üblichen Weise, nur daß sie nicht zur Standardausgabe schreiben (Bildschirm), sondern in die Datei, deren Name beim Öffnen des \lstinline{FILE} - angegeben wurde (Datei \gitfile{hp}{script}{fhello-1.c}): + angegeben wurde (Datei \gitfile{hp}{2020ws/script}{fhello-1.c}): \begin{lstlisting} #include <stdio.h> @@ -2671,7 +2671,7 @@ ist dieser Zeiger \lstinline{NULL}, und seine Verwendung führt zum Absturz des Programms. Es ist daher dringend empfohlen, diesen Fall zu prüfen - (Datei: \gitfile{hp}{script}{fhello-2.c}): + (Datei: \gitfile{hp}{2020ws/script}{fhello-2.c}): \begin{lstlisting} #include <stdio.h> @@ -2696,7 +2696,7 @@ Mit \lstinline{#include <errno.h>} erhält unser Programm Zugriff auf diese Variable und kann den Fehler-Code in seiner Fehlermeldung mit ausgeben - (Datei: \gitfile{hp}{script}{fhello-3.c}): + (Datei: \gitfile{hp}{2020ws/script}{fhello-3.c}): \begin{lstlisting} #include <stdio.h> @@ -2730,7 +2730,7 @@ Mit \lstinline{#include <string.h>} erhalten wir eine Funktion \lstinline{strerror()}, die den Fehler-Code in eine für Menschen lesbare Fehlermeldung umwandelt - (Datei: \gitfile{hp}{script}{fhello-4.c}): + (Datei: \gitfile{hp}{2020ws/script}{fhello-4.c}): \begin{lstlisting} #include <stdio.h> @@ -2769,7 +2769,7 @@ eine Funktion \lstinline{error()} zur Verfügung, die eine zum übergebenen Fehler-Code gehörende Fehlermeldung ausgibt und anschließend das Programm mit einem übergebenen Fehler-Code beendet - (Datei: \gitfile{hp}{script}{fhello-5.c}): + (Datei: \gitfile{hp}{2020ws/script}{fhello-5.c}): \begin{lstlisting} #include <stdio.h> @@ -2817,14 +2817,14 @@ Dies ist zunächst unabhängig von Bibliotheken und auch nicht auf die Programmiersprache C beschränkt. Beispiel: - Die Datei \gitfile{hp}{script}{maerchen.c} enthält: + Die Datei \gitfile{hp}{2020ws/script}{maerchen.c} enthält: \begin{lstlisting}[language={}] Vor langer, langer Zeit gab es einmal #include "hexe.h" Die lebte in einem Wald. \end{lstlisting} - Die Datei \gitfile{hp}{script}{hexe.h} enthält: + Die Datei \gitfile{hp}{2020ws/script}{hexe.h} enthält: \begin{lstlisting}[language={}] eine kleine Hexe. \end{lstlisting} @@ -2859,7 +2859,7 @@ \end{lstlisting} Nichts anderes geschieht, wenn man das klassische \file{hello.c} - (Datei: \gitfile{hp}{script}{hello-1.c} compiliert: + (Datei: \gitfile{hp}{2020ws/script}{hello-1.c} compiliert: \begin{lstlisting} #include <stdio.h> @@ -2869,7 +2869,7 @@ return 0; } \end{lstlisting} - Die Datei \file{stdio.h} ist wesentlich länger als \gitfile{hp}{script}{hexe.txt} in dem o.\,a.\ + Die Datei \file{stdio.h} ist wesentlich länger als \gitfile{hp}{2020ws/script}{hexe.txt} in dem o.\,a.\ Beispiel, und sie ruft weitere Include-Dateien auf, so daß wir insgesamt auf über 800 Zeilen Quelltext kommen. @@ -2918,7 +2918,7 @@ die bei Benutzung durch einen Text ersetzt werden. Auf diese Weise kann man \newterm{Konstante\/} definieren. - Beispiel: \gitfile{hp}{script}{higher-math-1.c} + Beispiel: \gitfile{hp}{2020ws/script}{higher-math-1.c} \begin{lstlisting} #include <stdio.h> @@ -2934,7 +2934,7 @@ Genau wie bei \lstinline{#include} nimmt der Präprozessor auch bei \lstinline{#define} eine rein textuelle Ersetzung vor, ohne sich um den Sinn des Ersetzten zu kümmern. - Beispiel: \gitfile{hp}{script}{higher-math-2.c} + Beispiel: \gitfile{hp}{2020ws/script}{higher-math-2.c} \begin{lstlisting} #include <stdio.h> @@ -2952,7 +2952,7 @@ Dies kann zu Problemen führen, sobald Berechnungen ins Spiel kommen. - Beispiel: \gitfile{hp}{script}{higher-math-3.c} + Beispiel: \gitfile{hp}{2020ws/script}{higher-math-3.c} \begin{lstlisting} #include <stdio.h> @@ -2975,7 +2975,7 @@ Um derartige Effekte zu vermeiden, setzt man arithmetische Operationen innerhalb von Makros in Klammern. - Beispiel: \gitfile{hp}{script}{higher-math-4.c} + Beispiel: \gitfile{hp}{2020ws/script}{higher-math-4.c} \begin{lstlisting} #define VIER (2 + 2) \end{lstlisting} @@ -2988,7 +2988,7 @@ \begin{experts} Wenn man ein Semikolon setzt, gehört dies mit zum Ersetzungstext des Makros. Dies ist grundsätzlich zulässig, führt aber zu sehr seltsamen C-Quelltexten. - -- siehe z.\,B.\ \gitfile{hp}{script}{higher-math-5.c}. + -- siehe z.\,B.\ \gitfile{hp}{2020ws/script}{higher-math-5.c}. \end{experts} \breath @@ -2997,7 +2997,7 @@ Es besteht aus drei Quelltexten: - \gitfile{hp}{script}{philosophy.c}: + \gitfile{hp}{2020ws/script}{philosophy.c}: \begin{lstlisting} #include <stdio.h> #include "answer.h" @@ -3010,7 +3010,7 @@ \end{lstlisting} \goodbreak - \gitfile{hp}{script}{answer.c}: + \gitfile{hp}{2020ws/script}{answer.c}: \begin{lstlisting} int answer (void) { @@ -3019,13 +3019,13 @@ \end{lstlisting} \goodbreak - \gitfile{hp}{script}{answer.h}: + \gitfile{hp}{2020ws/script}{answer.h}: \begin{lstlisting} extern int answer (void); \end{lstlisting} - Das Programm \gitfile{hp}{script}{philosophy.c} verwendet eine Funktion \lstinline{answer()}, die - in der Datei \gitfile{hp}{script}{answer.h} extern deklariert ist. + Das Programm \gitfile{hp}{2020ws/script}{philosophy.c} verwendet eine Funktion \lstinline{answer()}, die + in der Datei \gitfile{hp}{2020ws/script}{answer.h} extern deklariert ist. Der "`normale"' Aufruf \begin{lstlisting}[style=terminal] @@ -3044,7 +3044,7 @@ tritt ein Fehler auf. Tatsächlich wird die Funktion \lstinline{answer()} - nicht innerhalb von \gitfile{hp}{script}{philosophy.c}, sondern in einer separaten Datei \gitfile{hp}{script}{answer.c}, + nicht innerhalb von \gitfile{hp}{2020ws/script}{philosophy.c}, sondern in einer separaten Datei \gitfile{hp}{2020ws/script}{answer.c}, einer sog.\ \newterm{Bibliothek\/} definiert. Es ist möglich (und üblich), Bibliotheken separat vom Hauptprogramm zu compilieren. Dadurch spart man sich das Neucompilieren, @@ -3096,7 +3096,7 @@ Unter Microsoft Windows ist der Aufruf etwas anders und hängt von der verwendeten Version der GLUT-Bibliothek ab. Für Details siehe die Dokumentation der GLUT-Bibliothek - sowie die Datei \gitfile{hp}{2020ws/20161031}{egal.txt}.) + sowie die Datei \gitfile{hp}{2020ws/script}{egal.txt}.) Die Bibliothek stellt uns fertig geschriebene Programmfragmente zur Verfügung, insbesondere: \begin{itemize} @@ -3145,7 +3145,7 @@ \begin{itemize} \item - Das Beispielprogramm \gitfile{hp}{script}{cube-1.c} illustriert, + Das Beispielprogramm \gitfile{hp}{2020ws/script}{cube-1.c} illustriert, wie man grundsätzlich überhaupt ein geometrisches Objekt zeichnet. In diesem Fall handelt es sich um einen Würfel der Kantenlänge \lstinline{0.5}, von dem wir nur die Vorderfläche sehen, also ein Quadrat. @@ -3190,7 +3190,7 @@ \put(5.1,1.7){\makebox(0,0)[l]{Endlosschleife: Ab jetzt werden nur noch Callbacks aufgerufen.}} \end{picture} \item - In \gitfile{hp}{script}{cube-2.c} kommt eine Drehung um \lstinline{-30} Grad + In \gitfile{hp}{2020ws/script}{cube-2.c} kommt eine Drehung um \lstinline{-30} Grad um eine schräge Achse \lstinline{(0.5, 1.0, 0.0)} hinzu. Der Würfel ist jetzt als solcher zu erkennen. @@ -3198,7 +3198,7 @@ daß alle nachfolgenden Zeichenoperationen gedreht ausgeführt werden. \item - In \gitfile{hp}{script}{cube-3.c} kommt als zusätzliches Konzept eine weitere Callback-Funktion hinzu, + In \gitfile{hp}{2020ws/script}{cube-3.c} kommt als zusätzliches Konzept eine weitere Callback-Funktion hinzu, nämlich ein \newterm{Timer-Handler}. Durch den \lstinline{glutTimerFunc()}-Aufruf veranlassen wir OpenGL, die von uns geschriebene Funktion \lstinline{timer_handler()} aufzurufen, @@ -3216,21 +3216,21 @@ % \item % Weil das Bild während des Neuzeichnens die ganze Zeit zu sehen ist, -% flackert in \gitfile{hp}{script}{cube-3.c} der Bildschirm. -% Dies wird in \gitfile{hp}{script}{cube-3a.c} dadurch behoben, +% flackert in \gitfile{hp}{2020ws/script}{cube-3.c} der Bildschirm. +% Dies wird in \gitfile{hp}{2020ws/script}{cube-3a.c} dadurch behoben, % daß die Zeichnung zunächst in einem unsichtbaren Pufferspeicher aufgebaut wird. % Erst die fertige Zeichnung wird mit dem Funktionsaufruf \lstinline{swapBuffers()} sichtbar gemacht. % % Damit dies möglich ist, muß beim Initialisieren ein doppelter Puffer angefordert werden. -% Zu diesem Zweck ersetzen wir die Bibliothek \gitfile{hp}{script}{opengl-magic.c} -% durch \gitfile{hp}{script}{opengl-magic-double.c}. +% Zu diesem Zweck ersetzen wir die Bibliothek \gitfile{hp}{2020ws/script}{opengl-magic.c} +% durch \gitfile{hp}{2020ws/script}{opengl-magic-double.c}. % % Der Compiler-Aufruf lautet dann: % \begin{lstlisting}[style=terminal,gobble=8] % $ ¡gcc -Wall -O cube.c -lGL -lGLU -lglut opengl-magic-double.c -o cube¿ % \end{lstlisting} % -% Unabhängig davon heißt die Include-Datei weiterhin \gitfile{hp}{script}{opengl-magic.h}. +% Unabhängig davon heißt die Include-Datei weiterhin \gitfile{hp}{2020ws/script}{opengl-magic.h}. % Dies illustriert, daß der Include-Mechanismus des Präprozessors % und der Zusammenbau-Mecha"-nismus des Linkers tatsächlich voneinander unabhängig sind. % @@ -3244,7 +3244,7 @@ % \end{experts} \item - In \gitfile{hp}{script}{cube-3.c} dreht sich der Würfel zunächst langsam, dann immer schneller. + In \gitfile{hp}{2020ws/script}{cube-3.c} dreht sich der Würfel zunächst langsam, dann immer schneller. Dies liegt daran, daß sich jedes \lstinline{glRotatef()} auf alle nachfolgenden Zeichenbefehle auswirkt, so daß sich sämtliche \lstinline{glRotatef()} aufaddieren. @@ -3256,7 +3256,7 @@ Durch \lstinline{glPopMatrix()} wird das System wieder in denjenigen Zustand versetzt, in dem es sich vor dem Aufruf von \lstinline{glPushMatrix()} befand. - Dies ist in \gitfile{hp}{script}{cube-4.c} (langsame Drehung) und \gitfile{hp}{script}{cube-5.c} (schnelle Drehung) umgesetzt. + Dies ist in \gitfile{hp}{2020ws/script}{cube-4.c} (langsame Drehung) und \gitfile{hp}{2020ws/script}{cube-5.c} (schnelle Drehung) umgesetzt. \end{itemize} @@ -3304,7 +3304,7 @@ Die weiteren OpenGL-Beispielprogramme illustrieren den Umgang mit Transformationen. \begin{itemize} \item - Die Beispielprogramme \gitfile{hp}{script}{cube-5.c} und \gitfile{hp}{script}{cube-6.c} + Die Beispielprogramme \gitfile{hp}{2020ws/script}{cube-5.c} und \gitfile{hp}{2020ws/script}{cube-6.c} illustrieren eine weitere Transformation der gezeichneten Objekte, nämlich die Translation (Verschiebung). @@ -3315,7 +3315,7 @@ muß man die Transformationen in der Reihenfolge \emph{von unten nach oben\/} ausführen. \item - Das Beispielprogramm \gitfile{hp}{script}{orbit-1.c} + Das Beispielprogramm \gitfile{hp}{2020ws/script}{orbit-1.c} verwendet weitere Transformationen und geometrische Objekte, um die Umlaufbahn des Mondes um die Erde zu illustrieren. @@ -3395,8 +3395,8 @@ mehreren Leerzeichen unterscheiden. \lstinline[style=cmd]{make} akzeptiert jedoch nur das Tabulator-Zeichen. - Die o.\,a.\ Regel bedeutet, daß jedesmal, wenn sich \gitfile{hp}{script}{philosophy.c} oder - \gitfile{hp}{script}{answer.h} geändert hat, \lstinline[style=cmd]{make} + Die o.\,a.\ Regel bedeutet, daß jedesmal, wenn sich \gitfile{hp}{2020ws/script}{philosophy.c} oder + \gitfile{hp}{2020ws/script}{answer.h} geändert hat, \lstinline[style=cmd]{make} das Programm \lstinline[style=cmd]{gcc} in der beschriebenen Weise aufrufen soll. Durch die Kombination mehrerer Regeln lernt \lstinline[style=cmd]{make}, @@ -4687,7 +4687,7 @@ \begin{displaymath} \phi(t) = \phi(0)\cdot\cos(\omega t)\qquad\mbox{mit}\qquad\omega=\sqrt{\frac{g}{l}} \end{displaymath} - Das Beispielprogramm \gitfile{hp}{script}{pendulum-1.c} illustriert, + Das Beispielprogramm \gitfile{hp}{2020ws/script}{pendulum-1.c} illustriert, welche Bewegung sich aus diesem $\phi(t)$ ergibt. \end{experts} @@ -4743,7 +4743,7 @@ = \phi(t) + \frac{\Delta t \cdot v}{l} \end{displaymath} - Ein C-Programm, das diese Berechnungen durchführt (Datei: \gitfile{hp}{script}{pendulum-2.c}), enthält als Kernstück: + Ein C-Programm, das diese Berechnungen durchführt (Datei: \gitfile{hp}{2020ws/script}{pendulum-2.c}), enthält als Kernstück: \goodbreak \begin{lstlisting} #define g 9.81 @@ -4767,21 +4767,21 @@ versetzt das Pendel um das Zeitintervall \lstinline{dt} in die Zukunft. Es ist vom Verfahren her nicht notwendig, mit der Kleinwinkelnäherung $\sin\phi\approx\phi$ zu arbeiten. - Das Beispielprogramm \gitfile{hp}{script}{pendulum-3.c} illustriert, + Das Beispielprogramm \gitfile{hp}{2020ws/script}{pendulum-3.c} illustriert, welchen Unterschied die Kleinwinkelnäherung ausmacht. Wie gut arbeitet das explizite Euler-Verfahren? Um dies zu untersuchen, lösen wir eine Differentialgleichung, deren exakte Lösung aus der Literatur bekannt ist, nämlich die Differentialgleichung mit Kleinwinkelnäherung. - Das Beispielprogramm \gitfile{hp}{script}{pendulum-4.c} vergleicht beide Lösungen miteinander. + Das Beispielprogramm \gitfile{hp}{2020ws/script}{pendulum-4.c} vergleicht beide Lösungen miteinander. Für das betrachtete Beispiel ist die Übereinstimmung recht gut; für Präzisionsberechnungen ist das explizite Euler-Verfahren jedoch nicht genau (und stabil) genug. Hierfür sei auf die Lehrveranstaltungen zur numerischen Mathematik verwiesen. \subsubsection*{Bemerkung} - Das Beispielprogramm \gitfile{hp}{script}{pendulum-4.c} berechnet mit überzeugender Übereinstimmung + Das Beispielprogramm \gitfile{hp}{2020ws/script}{pendulum-4.c} berechnet mit überzeugender Übereinstimmung dasselbe Ergebnis für die Auslenkung des Pendels auf zwei verschiedene Weisen: \begin{enumerate} \item @@ -4900,26 +4900,26 @@ \begin{itemize} \item Minimum/Maximum ermitteln: - \gitfile{hp}{script}{sort-0.c} (mit "`Schummeln"'), - \gitfile{hp}{script}{sort-1.c} (lineare Suche), - \gitfile{hp}{script}{sort-2.c} (mit Visualisierung) + \gitfile{hp}{2020ws/script}{sort-0.c} (mit "`Schummeln"'), + \gitfile{hp}{2020ws/script}{sort-1.c} (lineare Suche), + \gitfile{hp}{2020ws/script}{sort-2.c} (mit Visualisierung) \item Selectionsort: - \gitfile{hp}{script}{sort-3.c} (bei Minimumsuche Anfang des Arrays überspringen), - \gitfile{hp}{script}{sort-4.c} (Selectionsort), - \gitfile{hp}{script}{sort-5.c} (100 Namen), - \gitfile{hp}{script}{sort-6.c} (100 Namen, ohne Visualisierung) + \gitfile{hp}{2020ws/script}{sort-3.c} (bei Minimumsuche Anfang des Arrays überspringen), + \gitfile{hp}{2020ws/script}{sort-4.c} (Selectionsort), + \gitfile{hp}{2020ws/script}{sort-5.c} (100 Namen), + \gitfile{hp}{2020ws/script}{sort-6.c} (100 Namen, ohne Visualisierung) \item Bubblesort: - \gitfile{hp}{script}{sort-7.c} (Selectionsort, Minimumsuche mit in der Hauptschleife), - \gitfile{hp}{script}{bsort-1.c} (Minimumsuche durch Vergleich benachbarter Strings), - \gitfile{hp}{script}{bsort-2.c} (Abbruch in äußerer Schleife, sobald sortiert), - \gitfile{hp}{script}{bsort-3.c} (Abbruch auch in innerer Schleife, sobald sortiert) + \gitfile{hp}{2020ws/script}{sort-7.c} (Selectionsort, Minimumsuche mit in der Hauptschleife), + \gitfile{hp}{2020ws/script}{bsort-1.c} (Minimumsuche durch Vergleich benachbarter Strings), + \gitfile{hp}{2020ws/script}{bsort-2.c} (Abbruch in äußerer Schleife, sobald sortiert), + \gitfile{hp}{2020ws/script}{bsort-3.c} (Abbruch auch in innerer Schleife, sobald sortiert) \item Quicksort: - \gitfile{hp}{script}{qsort-1.c} (Array in 2 Hälften vorsortieren), - \gitfile{hp}{script}{qsort-2.c} (rekursiver Aufruf für linke Hälfte), - \gitfile{hp}{script}{qsort-3.c} (rekursiver Aufruf für beide Hälften) + \gitfile{hp}{2020ws/script}{qsort-1.c} (Array in 2 Hälften vorsortieren), + \gitfile{hp}{2020ws/script}{qsort-2.c} (rekursiver Aufruf für linke Hälfte), + \gitfile{hp}{2020ws/script}{qsort-3.c} (rekursiver Aufruf für beide Hälften) \end{itemize} Bei "`zufällig"' sortierten Ausgangsdaten arbeitet Quicksort schneller als Bubblesort. @@ -5274,7 +5274,7 @@ print_object (object[i]); \end{lstlisting} - (Beispiel-Programm: \gitfile{hp}{2020ws/20161219}{objects-7.c}) + (Beispiel-Programm: \gitfile{hp}{2020ws/script}{objects-7.c}) Die expliziten Typumwandlungen sind ein gravierender Nachteil dieser Vorgehensweise, denn sie schalten jegliche Überprüfung durch den Compiler aus. @@ -5317,7 +5317,7 @@ NULL }; \end{lstlisting} - (Beispiel-Programm: \gitfile{hp}{2020ws/20161219}{objects-8.c}) + (Beispiel-Programm: \gitfile{hp}{2020ws/script}{objects-8.c}) \subsection{Unions} @@ -5357,7 +5357,7 @@ Die im o.\,a.\ Beispiel konstruierte \lstinline{union} spricht dieselbe Speicherzelle einerseits als \lstinline{int8_t} an und andererseits als \lstinline{uint8_t}. - Das Beispiel-Programm (Datei: \gitfile{hp}{2020ws/20161219}{unions-1.c}) + Das Beispiel-Programm (Datei: \gitfile{hp}{2020ws/script}{unions-1.c}) nutzt dies aus, um die negative Zahl \lstinline{-3} als positive 8-Bit-Zahl auszugeben (Berechnung des Zweierkomplements). @@ -5419,7 +5419,7 @@ \end{minipage} \end{center} - (Beispiel-Programm: \gitfile{hp}{2020ws/20161219}{objects-9.c}) + (Beispiel-Programm: \gitfile{hp}{2020ws/script}{objects-9.c}) Das Ansprechen falscher Speicherbereiche wird hierdurch zwar nicht völlig ausgeschlossen; @@ -5437,7 +5437,7 @@ nur die veränderlichen Eigenschaften der Objekte in einer \lstinline{union} zu speichern -- siehe Aufgabe 1 (c) bis (e) in den Übungen vom 19.\,12.\,2016 - (Datei: \gitfile{hp}{2020ws/20161219}{hp-uebung-20161219.pdf}). + (Datei: \gitfile{hp}{2016ws/20161219}{hp-uebung-20161219.pdf}). \goodbreak @@ -5454,7 +5454,7 @@ Die Bibliothek verwendet intern einige der hier besprochenen Vorgehensweisen zur Realisierung objektorientierter Programmierung in C. - Die Beispielprogramme \href{https://gitlab.cvh-server.de/pgerwinski/hp/tree/2020ws/20161219}% + Die Beispielprogramme \href{https://gitlab.cvh-server.de/pgerwinski/hp/tree/2020ws/script}% {\file{gtk-1.c} bis \file{gtk-7.c}} demonstrieren, wie man mit Hilfe von GTK+ ein einfaches GUI-Programm schreibt, das graphische Objekte (Rechteck, Kreis, Dreieck) auf den Bildschirm zeichnet @@ -5490,7 +5490,7 @@ sowie die Verarbeitung von Benutzereingaben (Tastatur, Maus) über Callbacks. - In \href{https://gitlab.cvh-server.de/pgerwinski/hp/raw/2020ws/20161219/hp-2016ws-p4.pdf}% + In \href{https://gitlab.cvh-server.de/pgerwinski/hp/raw/2016ws/20161219/hp-2016ws-p4.pdf}% {Praktikumsversuch 4} haben Sie selbst weitere Erfahrungen mit GTK+ gesammelt und gleichzeitig eine eigene Objekt-Hierarchie (für graphische Objekte: Rechteck, Kreis, Dreieck) programmiert. @@ -5611,7 +5611,7 @@ \breath - Das Beispiel-Programm \gitfile{hp}{2020ws/20170109}{objects-12.c} illustriert, + Das Beispiel-Programm \gitfile{hp}{2020ws/script}{objects-12.c} illustriert, wie man virtuelle Methoden in C realisieren kann. In größeren Projekten ist es nicht effizient, @@ -5620,7 +5620,7 @@ Stattdessen speichert man in der Objektinstanz lediglich einen Zeiger auf eine Tabelle von Zeigern auf die virtuellen Methoden, die sog.\ \newterm{virtuelle Methodentabelle} -- - siehe das Beispiel-Programm \gitfile{hp}{2020ws/20170109}{objects-13.c}. + siehe das Beispiel-Programm \gitfile{hp}{2020ws/script}{objects-13.c}. \subsection{Einführung in C++} @@ -5635,8 +5635,8 @@ Andere bekannte objektorientierte Sprachen sind Java, Python, C\#, JavaScript, PHP, verschiedene Pascal-Dialekte und viele weitere. - Das Beispiel-Programm \gitfile{hp}{2020ws/20170109}{objects-14.cpp} - ist eine direkte Übersetzung von \gitfile{hp}{2020ws/20170109}{objects-12.c} nach C++. + Das Beispiel-Programm \gitfile{hp}{2020ws/script}{objects-14.cpp} + ist eine direkte Übersetzung von \gitfile{hp}{2020ws/script}{objects-12.c} nach C++. In C++ kümmert sich der Compiler um die Vererbung zwischen den Objekt-Datentypen, um die Verwaltung der Zeiger auf virtuelle Methoden, um korrekte Konstruktoren und um vieles mehr. @@ -5687,7 +5687,7 @@ In der ermittelten Hälfte beginnt man die Suche wieder in der Mitte -- so lange, bis man nur noch ein einzelnes Element vor sich hat. - Das Beispiel-Programm \gitfile{hp}{2020ws/20170116}{stack-11.c} illustriert, + Das Beispiel-Programm \gitfile{hp}{2020ws/script}{stack-11.c} illustriert, wie man einen Stack mit den o.\,g.\ Funktionalitäten implementieren kann. \breath @@ -5711,7 +5711,7 @@ Die beiden Indexvariablen arbeiten also \emph{ringförmig\/}; der FIFO wird durch einen \newterm{Ringpuffer\/} realisiert. - Beispiel-Programm: \gitfile{hp}{2020ws/20170116}{fifo-8.c} + Beispiel-Programm: \gitfile{hp}{2020ws/script}{fifo-8.c} \subsection{Verkettete Listen} diff --git a/script/objects-12.c b/script/objects-12.c new file mode 100644 index 0000000..5d605e1 --- /dev/null +++ b/script/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/script/objects-13.c b/script/objects-13.c new file mode 100644 index 0000000..81ef279 --- /dev/null +++ b/script/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/script/objects-14.cpp b/script/objects-14.cpp new file mode 100644 index 0000000..ea40a13 --- /dev/null +++ b/script/objects-14.cpp @@ -0,0 +1,52 @@ +#include <stdio.h> + +struct TBase +{ + virtual void print () = 0; +}; + +struct TInteger: TBase +{ + int content; + virtual void print (); + TInteger (int i); +}; + +struct TString: TBase +{ + char *content; + virtual void print (); + TString (char *s); +}; + +void TInteger::print () +{ + printf ("Integer: %d\n", content); +} + +void TString::print () +{ + printf ("String: \"%s\"\n", content); +} + +TInteger::TInteger (int i) +{ + content = i; +} + +TString::TString (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/script/objects-7.c b/script/objects-7.c new file mode 100644 index 0000000..b9b24ad --- /dev/null +++ b/script/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/script/objects-8.c b/script/objects-8.c new file mode 100644 index 0000000..0c93e8f --- /dev/null +++ b/script/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/script/objects-9.c b/script/objects-9.c new file mode 100644 index 0000000..41468b0 --- /dev/null +++ b/script/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/script/stack-11.c b/script/stack-11.c new file mode 100644 index 0000000..89629d6 --- /dev/null +++ b/script/stack-11.c @@ -0,0 +1,64 @@ +#include <stdio.h> + +#define STACK_SIZE 10 + +int stack[STACK_SIZE]; +int stack_pointer = 0; + +void push (int x) +{ + stack[stack_pointer++] = x; +} + +void push_at (int x, int pos) +{ + for (int i = stack_pointer - 1; i >= pos; i--) + stack[i + 1] = stack[i]; + stack[pos] = x; + stack_pointer++; +} + +void push_sorted (int x) +{ + int left = 0; + int right = stack_pointer; + while (left < right - 1) + { + int i = (left + right) / 2; + if (x < stack[i]) + right = i; + else + left = i; + } + push_at (x, right); +} + +int pop (void) +{ + return stack[--stack_pointer]; +} + +void show (void) +{ + printf ("stack:"); + for (int i = 0; i < stack_pointer; i++) + printf (" %d", stack[i]); + printf ("\n"); +} + +int main (void) +{ + push (3); + push (7); + push (137); + show (); + push_sorted (5); + show (); + push_sorted (256); + show (); + push_sorted (42); + push_sorted (13); + push_sorted (107); + show (); + return 0; +} diff --git a/script/strings-14.c b/script/strings-14.c new file mode 100644 index 0000000..dd05111 --- /dev/null +++ b/script/strings-14.c @@ -0,0 +1,19 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char hello[] = "Hello, world!\n"; + + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + printf ("%s\n", hello + 7); + printf ("%zd\n", strlen (hello + 7)); + + hello[5] = 0; + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + return 0; +} diff --git a/script/strings-15.c b/script/strings-15.c new file mode 100644 index 0000000..fed7abe --- /dev/null +++ b/script/strings-15.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *anton = "Anton"; + char *zacharias = "Zacharias"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/script/strings-16.c b/script/strings-16.c new file mode 100644 index 0000000..731a6b1 --- /dev/null +++ b/script/strings-16.c @@ -0,0 +1,15 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Antwort"); + printf ("%s\n", answer); + printf ("found at: %zd\n", answer - buffer); + + return 0; +} diff --git a/script/unions-1.c b/script/unions-1.c new file mode 100644 index 0000000..87e5325 --- /dev/null +++ b/script/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 n; + n.i = -3; + printf ("%d\n", n.u); + return 0; +} -- GitLab