Skip to content
Snippets Groups Projects
Commit 69b943a5 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Korrektur Übungsaufgaben 23.11.2023

parent 9fa3dcb1
No related branches found
No related tags found
No related merge requests found
#include <gtk/gtk.h> #include <stdio.h>
#define WIDTH 320 int main (void)
#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)
{ {
GdkRGBA blue = { 0.0, 0.5, 1.0, 1.0 }; char buffer[100];
fgets (buffer, 100, stdin);
gdk_cairo_set_source_rgba (c, &blue); for (char *p = buffer; *p; p++)
cairo_arc (c, x, y, r, 0, 2 * G_PI); printf ("%02x", *p);
cairo_fill (c); printf ("\n");
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;
} }
No preview for this file type
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
\color{medgreen} \color{medgreen}
\item[4.5] Byte-Reihenfolge -- Endianness \item[4.5] Byte-Reihenfolge -- Endianness
\item[4.6] Binärdarstellung negativer Zahlen \item[4.6] Binärdarstellung negativer Zahlen
\color{orange}
\item[4.7] Binärdarstellung von Gleitkommazahlen \item[4.7] Binärdarstellung von Gleitkommazahlen
\color{red} \color{red}
\item[4.8] Speicherausrichtung -- Alignment \item[4.8] Speicherausrichtung -- Alignment
...@@ -357,7 +358,7 @@ ...@@ -357,7 +358,7 @@
$m - e - 1$ Bits für die Mantisse. $m - e - 1$ Bits für die Mantisse.
\end{itemize} \end{itemize}
% \pause \pause
\begin{picture}(0,0) \begin{picture}(0,0)
\color{red} \color{red}
\put(1.95,0.65){\makebox(0,0){\tikz{\draw(0,0)--(0.5,0.25);}}} \put(1.95,0.65){\makebox(0,0){\tikz{\draw(0,0)--(0.5,0.25);}}}
...@@ -395,7 +396,9 @@ ...@@ -395,7 +396,9 @@
Beim Bilden von Differenzquotienten\\ Beim Bilden von Differenzquotienten\\
verliert man notwendigerweise an Präzision!\\ verliert man notwendigerweise an Präzision!\\
\textarrow\ Die Differenzen sehr sorgfältig auswählen.\\ \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{itemize}
\end{frame} \end{frame}
......
No preview for this file type
No preview for this file type
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
\exercise{Hexdumps} \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. einen String ein und gibt die ASCII-Werte der Buchstaben hexadezimal aus.
(Anders als z.\,B.\ \lstinline{scanf()} (Anders als z.\,B.\ \lstinline{scanf()}
akzeptiert die Funktion \lstinline{fgets()} zum Lesen von Strings auch Leerzeichen, akzeptiert die Funktion \lstinline{fgets()} zum Lesen von Strings auch Leerzeichen,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment