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

kleinere Korrekturen im Skript

parent 77c2780e
No related branches found
No related tags found
No related merge requests found
No preview for this file type
...@@ -71,8 +71,8 @@ ...@@ -71,8 +71,8 @@
\begin{document} \begin{document}
\thispagestyle{empty} \thispagestyle{empty}
\strut\hfill \makebox(0,0)[tl]{\includegraphics[scale=0.798]{logo-hochschule-bochum-cvh-text.pdf}}\hfill
\includegraphics[height=1.5cm]{logo-hochschule-bochum.pdf} \makebox(0,0)[tr]{\includegraphics[scale=0.7]{logo-hochschule-bochum.pdf}}
\vfill \vfill
\begin{center} \begin{center}
{\Huge\textbf{Hardwarenahe Programmierung}\par} {\Huge\textbf{Hardwarenahe Programmierung}\par}
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
Bitte nutzen Sie die Gelegenheit, in diesem Rahmen Ihre Programmierkenntnisse zu trainieren, Bitte nutzen Sie die Gelegenheit, in diesem Rahmen Ihre Programmierkenntnisse zu trainieren,
damit Sie später in Ihrer beruflichen Praxis, damit Sie später in Ihrer beruflichen Praxis,
wenn durch ein fehlerhaftes Programm ernsthafter Schaden entstehen könnte, wenn durch ein fehlerhaftes Programm ernsthafter Schaden entstehen kann,
wissen, was Sie tun. wissen, was Sie tun.
\section{Einführung in C} \section{Einführung in C}
...@@ -351,7 +351,7 @@ ...@@ -351,7 +351,7 @@
Das Zeichen \lstinline[style=terminal]{$} steht für die \newterm{Eingabeaufforderung\/} Das Zeichen \lstinline[style=terminal]{$} steht für die \newterm{Eingabeaufforderung\/}
(oder das \newterm{Prompt\/}) der Unix-Shell. Es kann auch anders aussehen, z.\,B.\ (oder das \newterm{Prompt\/}) der Unix-Shell. Es kann auch anders aussehen, z.\,B.\
\lstinline[style=terminal]{nb42:~$} oder auch \lstinline[style=terminal]{pc42:~$} oder auch
\lstinline[style=terminal]{voyager2/home/peter/bo/2012ws/ainf/script/examples>}. \lstinline[style=terminal]{voyager2/home/peter/bo/2012ws/ainf/script/examples>}.
Die Eingabeaufforderung wird vom Computer ausgegeben; Die Eingabeaufforderung wird vom Computer ausgegeben;
die Kommandozeile rechts daneben müssen wir eingeben und mit der Eingabetaste (Enter) bestätigen. die Kommandozeile rechts daneben müssen wir eingeben und mit der Eingabetaste (Enter) bestätigen.
...@@ -505,7 +505,7 @@ ...@@ -505,7 +505,7 @@
\breath \breath
Wie man nun tatsächlich in C Zahlenwerte ausgibt, Wie man nun tatsächlich in C Zahlenwerte ausgibt,
illustriert das Beispielprogramm \file{output-1.c}: illustriert das Beispielprogramm \file{output-2.c}:
\begin{lstlisting} \begin{lstlisting}
#include <stdio.h> #include <stdio.h>
...@@ -586,7 +586,7 @@ ...@@ -586,7 +586,7 @@
Wenn mehrere Werte ausgegeben werden sollen, Wenn mehrere Werte ausgegeben werden sollen,
verwendet man in \lstinline{printf()} mehrere Formatspezifikationen verwendet man in \lstinline{printf()} mehrere Formatspezifikationen
und gibt mehrere Werte als Parameter an (Datei: \file{output-2.c}): und gibt mehrere Werte als Parameter an (Datei: \file{output-3.c}):
\begin{lstlisting} \begin{lstlisting}
#include <stdio.h> #include <stdio.h>
...@@ -597,14 +597,14 @@ ...@@ -597,14 +597,14 @@
} }
\end{lstlisting} \end{lstlisting}
\begin{lstlisting}[style=terminal] \begin{lstlisting}[style=terminal]
$ ¡gcc output-2.c -o output-2¿ $ ¡gcc output-3.c -o output-3¿
$ ¡./output-2¿ $ ¡./output-3¿
Richtige Antworten wären 1 oder 2 oder sonstige. Richtige Antworten wären 1 oder 2 oder sonstige.
$ $
\end{lstlisting} \end{lstlisting}
Achtung: Zu viele oder zu wenige Werte in der Parameterliste Achtung: Zu viele oder zu wenige Werte in der Parameterliste
ergeben trotzdem ein gültiges, wenn auch fehlerhaftes C-Programm ergeben trotzdem ein gültiges, wenn auch fehlerhaftes C-Programm
(Datei: \file{output-3.c}): (Datei: \file{output-4.c}):
\begin{lstlisting} \begin{lstlisting}
#include <stdio.h> #include <stdio.h>
...@@ -620,16 +620,16 @@ ...@@ -620,16 +620,16 @@
für das der Zahlenwert 1 eingesetzt wird, für das der Zahlenwert 1 eingesetzt wird,
und alles, was nach der 1 kommt, wird schlichtweg ignoriert. und alles, was nach der 1 kommt, wird schlichtweg ignoriert.
\begin{lstlisting}[style=terminal] \begin{lstlisting}[style=terminal]
$ ¡gcc output-3.c -o output-3¿ $ ¡gcc output-4.c -o output-4¿
$ ¡./output-3¿ $ ¡./output-4¿
Richtige Antworten wären 1$ Richtige Antworten wären 1$
\end{lstlisting} \end{lstlisting}
Bei Verwendung der Option \lstinline[style=cmd]{-Wall} Bei Verwendung der Option \lstinline[style=cmd]{-Wall}
erhalten wir auch hier eine Warnung: erhalten wir auch hier eine Warnung:
\begin{lstlisting}[style=terminal] \begin{lstlisting}[style=terminal]
$ ¡gcc -Wall output-3.c -o output-3¿ $ ¡gcc -Wall output-4.c -o output-4¿
output-3.c: In function 'main': output-4.c: In function 'main':
output-3.c:5: warning: too many arguments for format output-4.c:5: warning: too many arguments for format
\end{lstlisting} \end{lstlisting}
Das Einlesen von Werten erfolgt in C mit der Funktion \lstinline{scanf()}. Das Einlesen von Werten erfolgt in C mit der Funktion \lstinline{scanf()}.
...@@ -2218,6 +2218,7 @@ ...@@ -2218,6 +2218,7 @@
ergänzen wir noch die Ausnahme, daß durch 100 teilbare Jahre keine Schaltjahre sind, 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 sowie die Ausnahme von der Ausnahme, daß durch 400 teilbare Jahre
(z.\,B.\ das Jahr 2000) eben doch Schaltjahre sind (Datei: \file{incdate-9.c}): (z.\,B.\ das Jahr 2000) eben doch Schaltjahre sind (Datei: \file{incdate-9.c}):
\filbreak
\begin{lstlisting} \begin{lstlisting}
int is_leap_year = 0; int is_leap_year = 0;
if (d->year % 4 == 0) if (d->year % 4 == 0)
...@@ -2235,6 +2236,7 @@ ...@@ -2235,6 +2236,7 @@
else else
days_in_month = 28; days_in_month = 28;
\end{lstlisting} \end{lstlisting}
\filbreak
Damit ist die Aufgabe gelöst. Damit ist die Aufgabe gelöst.
Der vollständige Quelltext der Lösung (Datei: \file{incdate-9.c}) lautet: Der vollständige Quelltext der Lösung (Datei: \file{incdate-9.c}) lautet:
\begin{lstlisting} \begin{lstlisting}
...@@ -2301,6 +2303,12 @@ ...@@ -2301,6 +2303,12 @@
\end{lstlisting} \end{lstlisting}
Bemerkungen: Bemerkungen:
\begin{itemize} \begin{itemize}
\item
Anstatt die Anzahl der Tage in einem Monat
innerhalb der Funktion \lstinline{set_date()} zu berechnen,
ist es sinnvoll, hierfür eine eigene Funktion zu schreiben.
Dasselbe gilt für die Berechnung,
ob es sich bei einem gegebenem Jahr um ein Schaltjahr handelt.
\item \item
Der Top-Down-Ansatz ist eine bewährte Methode, Der Top-Down-Ansatz ist eine bewährte Methode,
um eine zunächst komplexe Aufgabe in handhabbare Teilaufgaben zu zerlegen. um eine zunächst komplexe Aufgabe in handhabbare Teilaufgaben zu zerlegen.
...@@ -2432,6 +2440,7 @@ ...@@ -2432,6 +2440,7 @@
\subsection{String-Operationen} \subsection{String-Operationen}
\underconstruction \underconstruction
\vspace*{3cm}
\section{Bibliotheken} \section{Bibliotheken}
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
int main (void) int main (void)
{ {
printf ("Richtige Antworten wären %d oder %d oder sonstige.\n", 1, 2); printf ("Die Antwort lautet: %d\n", 42);
return 0; return 0;
} }
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
int main (void) int main (void)
{ {
printf ("Richtige Antworten wären %d", 1, " oder %d", 2, " oder sonstige.\n"); printf ("Richtige Antworten wären %d oder %d oder sonstige.\n", 1, 2);
return 0; return 0;
} }
#include <stdio.h>
int main (void)
{
printf ("Richtige Antworten wären %d", 1, " oder %d", 2, " oder sonstige.\n");
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment