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

Beispielprogramme 26.11.2020, Korrekturen in Übung vom 5.11.2020 und in Praktikumsversuch 1

parent c1ff0029
Branches
No related tags found
Loading
Showing
with 181 additions and 9 deletions
No preview for this file type
...@@ -68,7 +68,8 @@ ...@@ -68,7 +68,8 @@
\begin{lstlisting}[style=cmd] \begin{lstlisting}[style=cmd]
gcc -Wall -O hello.c -o hello gcc -Wall -O hello.c -o hello
./hello ./hello
gcc -Wall -O hello-gtk.c $(pkg-config --cflags --libs gtk+-3.0) -o hello-gtk gcc -Wall -O $(pkg-config --cflags gtk+-3.0) hello-gtk.c \
$(pkg-config --libs gtk+-3.0) -o hello-gtk
./hello-gtk ./hello-gtk
\end{lstlisting} \end{lstlisting}
......
No preview for this file type
...@@ -136,13 +136,22 @@ ...@@ -136,13 +136,22 @@
beruht die Sicherheit der RSA-Verschlüsselung.) beruht die Sicherheit der RSA-Verschlüsselung.)
\textbf{Hinweis 1:} \textbf{Hinweis 1:}
Wenn Sie ein Programm per Kommandozeile mit \lstinline[style=cmd]{time ./programm} starten, % Wenn Sie ein Programm per Kommandozeile mit \lstinline[style=cmd]{time ./programm} starten,
wird Ihnen angezeigt, wieviel Rechenzeit das Programm benötigt hat. % wird Ihnen angezeigt, wieviel Rechenzeit das Programm benötigt hat.
Die drei angezeigten Werte stehen hierbei für die % Die drei angezeigten Werte stehen hierbei für die
tatsächlich verstrichene Gesamtzeit (\lstinline[style=terminal]{real}), % tatsächlich verstrichene Gesamtzeit (\lstinline[style=terminal]{real}),
für die mit Rechnen verbrachte Zeit (\lstinline[style=terminal]{user}) % für die mit Rechnen verbrachte Zeit (\lstinline[style=terminal]{user})
und für die mit Systemaufrufen (z.\,B.\ Ein- und Ausgabe) % und für die mit Systemaufrufen (z.\,B.\ Ein- und Ausgabe)
verbrachte Zeit (\lstinline[style=terminal]{sys}). % verbrachte Zeit (\lstinline[style=terminal]{sys}).
Ein einfacher Weg, die von Ihrem Programm benötigte Rechenzeit zu messen,
ist die Verwendung der Funktion \lstinline{clock()}.
Diese gibt zurück, wieviel Rechenzeit seit Programmstart aufgewendet wurde.
Der Typ dieses Rückgabewerts ist ein ganzzahliger Typ, \lstinline{clock_t},
mit dem man rechnen und den man mit \lstinline{%ld} ausgeben kann.
Pro Sekunde wächst der Zähler um \lstinline{CLOCKS_PER_SEC} Einheiten.
Typischerweise hat \lstinline{CLOCKS_PER_SEC} den Wert \lstinline{1000000}
oder \lstinline{1000}, die Zeiteinheit ist also eine Mikrosekunde
bzw.\ eine Millisekunde.
\textbf{Hinweis 2:} \textbf{Hinweis 2:}
Die mit der o.\,a.\ Methode meßbaren Zeiten sind eigentlich zu ungenau, Die mit der o.\,a.\ Methode meßbaren Zeiten sind eigentlich zu ungenau,
...@@ -172,7 +181,7 @@ ...@@ -172,7 +181,7 @@
\setlength{\leftskip}{3cm} \setlength{\leftskip}{3cm}
Stand: 12.\ November 2020 Stand: 26.\ November 2020
% Soweit nicht anders angegeben:\\ % Soweit nicht anders angegeben:\\
Copyright \copyright\ 2014, 2015, 2016, 2017, 2018, 2019, 2020\quad Peter Gerwinski\\ Copyright \copyright\ 2014, 2015, 2016, 2017, 2018, 2019, 2020\quad Peter Gerwinski\\
......
Hello, world!
#include <stdio.h>
int main (void)
{
char ch = 'f';
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
char ch = 'f';
ch -= 32;
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
char ch = 'f';
ch = ch - 'f' + 'F';
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
char ch = 'f';
ch += 'F' - 'f';
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
char ch = 'f';
ch += 'A' - 'a';
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
char ch = 'G';
ch += 'a' - 'A';
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
#include <ctype.h>
int main (void)
{
char ch = 'G';
ch = tolower (ch);
printf ("%c\n", ch);
return 0;
}
#include <stdio.h>
int main (void)
{
FILE *f = fopen ("fhello.txt", "w");
fprintf (f, "Hello, world!\n");
fclose (f);
return 0;
}
#include <stdio.h>
#include <errno.h>
#include <error.h>
int main (void)
{
FILE *f = fopen ("/bin/bash", "w");
if (!f)
error (errno, errno, "cannot open file");
fprintf (f, "Hello, world!\n");
fclose (f);
return 0;
}
#include <stdio.h>
int main (void)
{
FILE *f = fopen ("fhello.txt", "a"); /* "a" = "append", "w" = "(over)write" */
fprintf (f, "Hello, world!\n");
fclose (f);
return 0;
}
#include <stdio.h>
int main (void)
{
FILE *f = fopen ("!\"§$%&/().txt", "w");
fprintf (f, "Hello, world!\n");
fclose (f);
return 0;
}
#include <stdio.h>
int main (void)
{
FILE *f = fopen ("!\"§$%&/().txt", "w");
if (f != NULL)
{
fprintf (f, "Hello, world!\n");
fclose (f);
}
return 0;
}
#include <stdio.h>
int main (void)
{
FILE *f = fopen ("!\"§$%&/().txt", "w");
if (f)
{
fprintf (f, "Hello, world!\n");
fclose (f);
}
return 0;
}
#include <stdio.h>
#include <errno.h>
int main (void)
{
FILE *f = fopen ("!\"§$%&/().txt", "w");
if (f)
{
fprintf (f, "Hello, world!\n");
fclose (f);
}
else
fprintf (stderr, "error #%d\n", errno);
return 0;
}
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main (void)
{
FILE *f = fopen ("!\"§$%&/().txt", "w");
if (f)
{
fprintf (f, "Hello, world!\n");
fclose (f);
}
else
{
char *msg = strerror (errno);
fprintf (stderr, "%s\n", msg);
}
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment