diff --git a/20231123/aufgabe-3.c b/20231123/aufgabe-3.c index 5b0cb23fdd5ee15a4403808c18d2104ed49caf3f..2bcd5e63a71f212b7243d1f7d9c92406d1e41e77 100644 --- a/20231123/aufgabe-3.c +++ b/20231123/aufgabe-3.c @@ -1,62 +1,10 @@ -#include <gtk/gtk.h> +#include <stdio.h> -#define WIDTH 320 -#define HEIGHT 240 - -double t = 0.0; -double dt = 0.2; - -int r = 5; - -double x = 10; -double y = 200; -double vx = 20; -double vy = -60; -double g = 9.81; - -gboolean draw (GtkWidget *widget, cairo_t *c, gpointer data) +int main (void) { - GdkRGBA blue = { 0.0, 0.5, 1.0, 1.0 }; - - gdk_cairo_set_source_rgba (c, &blue); - cairo_arc (c, x, y, r, 0, 2 * G_PI); - cairo_fill (c); - - return FALSE; -} - -gboolean timer (GtkWidget *widget) -{ - t += dt; - x += vx * dt; - y += vy * dt; - vx = vx; - vy = 0.5 * g * (t * t); - if (y + r >= HEIGHT) - vy = -vy * 0.9; - if (x + r >= WIDTH) - vx = -vx * 0.9; - if (x - r <= 0) - vx = -vx * 0.9; - gtk_widget_queue_draw_area (widget, 0, 0, WIDTH, HEIGHT); - g_timeout_add (50, (GSourceFunc) timer, widget); - return FALSE; -} - -int main (int argc, char **argv) -{ - gtk_init (&argc, &argv); - - GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_show (window); - gtk_window_set_title (GTK_WINDOW (window), "Hello"); - g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); - - GtkWidget *drawing_area = gtk_drawing_area_new (); - gtk_widget_show (drawing_area); - gtk_container_add (GTK_CONTAINER (window), drawing_area); - gtk_widget_set_size_request (drawing_area, WIDTH, HEIGHT); - - gtk_main (); - return 0; + char buffer[100]; + fgets (buffer, 100, stdin); + for (char *p = buffer; *p; p++) + printf ("%02x", *p); + printf ("\n"); } diff --git a/20231123/hp-20231123.pdf b/20231123/hp-20231123.pdf index 721a2fe874f61111db02c6f2e18d0b937123a3ec..44bf8dfc4de090990e3d4061099d2bb3a366ec7f 100644 Binary files a/20231123/hp-20231123.pdf and b/20231123/hp-20231123.pdf differ diff --git a/20231123/hp-20231123.tex b/20231123/hp-20231123.tex index 1975ab620ce0aa95de87e6b30f9be90c46c309e7..eda7fca5dcfed48f0854d68b34d6d1fd01c45ed8 100644 --- a/20231123/hp-20231123.tex +++ b/20231123/hp-20231123.tex @@ -59,6 +59,7 @@ \color{medgreen} \item[4.5] Byte-Reihenfolge -- Endianness \item[4.6] Binärdarstellung negativer Zahlen + \color{orange} \item[4.7] Binärdarstellung von Gleitkommazahlen \color{red} \item[4.8] Speicherausrichtung -- Alignment @@ -357,7 +358,7 @@ $m - e - 1$ Bits für die Mantisse. \end{itemize} -% \pause + \pause \begin{picture}(0,0) \color{red} \put(1.95,0.65){\makebox(0,0){\tikz{\draw(0,0)--(0.5,0.25);}}} @@ -395,7 +396,9 @@ Beim Bilden von Differenzquotienten\\ verliert man notwendigerweise an Präzision!\\ \textarrow\ Die Differenzen sehr sorgfältig auswählen.\\ - \textarrow\ Am besten gar nicht ableiten, sondern integrieren. + \textarrow\ Am besten gar nicht ableiten, sondern integrieren.\\ + \pause + (Trick: Ableiten über Fourier-Transformationen) \end{itemize} \end{frame} diff --git a/20231123/hp-musterloesung-20231123.pdf b/20231123/hp-musterloesung-20231123.pdf index 94f0e422f0917d55a875b58ff437e692bec61a86..1782abc389d59c3de4999c95356c99baf45cd738 100644 Binary files a/20231123/hp-musterloesung-20231123.pdf and b/20231123/hp-musterloesung-20231123.pdf differ diff --git a/20231123/hp-uebung-20231123.pdf b/20231123/hp-uebung-20231123.pdf index 6beb192a0a95fd8864f56b5dac454eb0f06a3e18..87e567d5d1807689d3b6054057c15e9b6781cb3a 100644 Binary files a/20231123/hp-uebung-20231123.pdf and b/20231123/hp-uebung-20231123.pdf differ diff --git a/20231123/hp-uebung-20231123.tex b/20231123/hp-uebung-20231123.tex index 5ec4c23a85d0cc054e38ed08b2d28df9af5104cc..4c1804b5946ddb605bb6ade266c19fdee173a58a 100644 --- a/20231123/hp-uebung-20231123.tex +++ b/20231123/hp-uebung-20231123.tex @@ -147,7 +147,7 @@ \exercise{Hexdumps} - Das folgende Programm (\gitfile{hp}{2023ws/20231123}{aufgabe-4.c}) liest + Das folgende Programm (\gitfile{hp}{2023ws/20231123}{aufgabe-3.c}) liest einen String ein und gibt die ASCII-Werte der Buchstaben hexadezimal aus. (Anders als z.\,B.\ \lstinline{scanf()} akzeptiert die Funktion \lstinline{fgets()} zum Lesen von Strings auch Leerzeichen,