Browse Source

ASCII-Tabelle in C angefangen; Kapitel Programmiersprachen hinzugefügt; erste Definitionen

Martin Thoma 11 years ago
parent
commit
ff14701ccf

+ 2 - 0
documents/Programmierparadigmen/Abkuerzungen.tex

@@ -7,6 +7,8 @@
     \acro{ca.}{circa}
     \acro{d. h.}{das heißt}
     \acro{etc.}{et cetera}
+    \acro{ggf.}{gegebenenfalls}
+    \acro{sog.}{sogneannte}
     \acro{Vor.}{Voraussetzung}
     \acro{z. B.}{zum Beispiel}
     \acro{z. z.}{zu zeigen}

+ 1 - 0
documents/Programmierparadigmen/Arbeitszeit.md

@@ -4,4 +4,5 @@ in dem Erstellen dieses Skripts steckt:
 |Datum      | Uhrzeit       | Autor | Bemerkung
 |-----------|---------------|----------------------------------------
 |01.02.2014 | 13:30 - 13:45 | Thoma | Initialisierung; Grobe Struktur
+|01.02.2014 | 14:00 - 14:45 | Thoma | ASCII-Tabelle in C angefangen; Kapitel "Programmiersprachen" hinzugefügt; erste Definitionen
 

+ 68 - 0
documents/Programmierparadigmen/C.tex

@@ -1,7 +1,75 @@
 \chapter{C}
 \index{C|(}
+C ist eine imperative Programmiersprache.
+
+\section{Datentypen}\xindex{Datentypen}
+Die grundlegenden C-Datentypen sind
+\begin{table}[htp]
+    \centering
+    \begin{tabular}{|l|l|}
+    \hline
+    \textbf{Typ}    & \textbf{Größe}   \\ \hline\hline
+    char   & 1 Byte  \\ \hline
+    int    & 4 Bytes \\ \hline
+    float  & 4 Bytes \\ \hline
+    double & 8 Bytes \\ \hline
+    void   & 0 Bytes \\ \hline
+    \end{tabular}
+\end{table}
+
+zusätzlich kann man \texttt{char}\xindex{char} und \texttt{int}\xindex{int}
+noch in \texttt{signed}\xindex{signed} und \texttt{unsigned}\xindex{unsigned}
+unterscheiden.
+
+\section{ASCII-Tabelle}
+\begin{table}[htp]
+    \centering
+    \begin{tabular}{|l|l||l|l||l|l||l|l|}
+    \hline
+    \textbf{Dez.} & \textbf{Zeichen} & \textbf{Dez.} & \textbf{Zeichen} & \textbf{Dez.} & \textbf{Zeichen} & \textbf{Dez.} & \textbf{Zeichen} \\ \hline\hline
+    0    & ~       & 31   & ~       & 64   & @       & 96   & '       \\ \hline
+    1    & ~       & ~    & ~       & 65   & A       & 97   & a       \\ \hline
+    2    & ~       & ~    & ~       & 66   & B       & 98   & b       \\ \hline
+    3    & ~       & ~    & ~       & ~    & C       & 99   & c       \\ \hline
+    4    & ~       & ~    & ~       & ~    & D       & 100  & d       \\ \hline
+    5    & ~       & ~    & ~       & ~    & E       & ~    & ~       \\ \hline
+    6    & ~       & ~    & ~       & ~    & F       & ~    & ~       \\ \hline
+    7    & ~       & ~    & ~       & ~    & G       & ~    & ~       \\ \hline
+    8    & ~       & ~    & ~       & ~    & H       & ~    & ~       \\ \hline
+    9    & ~       & ~    & ~       & ~    & I       & ~    & ~       \\ \hline
+    10   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    11   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    12   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    13   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    14   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    15   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    16   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    17   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    18   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    19   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    20   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    21   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    22   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    23   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    24   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    25   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    26   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    27   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    28   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    29   & ~       & ~    & ~       & ~    & ~       & ~    & ~       \\ \hline
+    31   & ~       & ~    & ~       & ~    & ~       & 127  & ~       \\ \hline\hline
+    \end{tabular}
+\end{table}
+
 \section{Syntax}
 \section{Beispiele}
+\subsection{Hello World}
+Speichere den folgenden Text als \texttt{hello-world.c}:
+
+\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=hello-world.c]{c}{scripts/c/hello-world.c}
+
+Compiliere ihn mit \texttt{gcc hello-world.c}. Es wird eine ausführbare
+Datei namens \texttt{a.out} erzeugt.
 
 \index{C|)}
 

+ 2 - 0
documents/Programmierparadigmen/Haskell.tex

@@ -1,5 +1,7 @@
 \chapter{Haskell}
 \index{Haskell|(}
+Haskell ist eine funktionale Programmiersprache.
+
 \section{Syntax}
 \section{Beispiele}
 \inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=fibonacci.hs]{haskell}{scripts/haskell/fibonacci.hs}

+ 12 - 0
documents/Programmierparadigmen/MPI.tex

@@ -0,0 +1,12 @@
+\chapter{MPI}
+\index{MPI|(}
+
+Message Passing Interface (kurz: MPI) ist ein Standard, 
+der den Nachrichtenaustausch bei parallelen Berechnungen auf 
+verteilten Computersystemen beschreibt.
+
+\section{Syntax}
+\section{Beispiele}
+
+\index{MPI|)}
+

+ 2 - 0
documents/Programmierparadigmen/Programmierparadigmen.tex

@@ -88,10 +88,12 @@
 
 \pagenumbering{arabic}
 \setcounter{page}{1}
+\input{Programmiersprachen}
 \input{Haskell}
 \input{Scala}
 \input{X10}
 \input{C}
+\input{MPI}
 
 \appendix
 \input{Bildquellen}

+ 42 - 0
documents/Programmierparadigmen/Programmiersprachen.tex

@@ -0,0 +1,42 @@
+\chapter{Programmiersprachen}
+Im folgenden werden einige Begriffe definiert anhand derer
+Programmiersprachen unterschieden werden können.
+
+\section{Paradigmen}
+Die grundlegendste Art, wie man Programmiersprachen unterscheiden
+kann ist das sog. \enquote{Programmierparadigma}, also die Art wie
+man Probleme löst.
+
+\begin{definition}[Imperatives Paradigma]\xindex{Programmierung!imperative}
+    In der imperativen Programmierung betrachtet man Programme als
+    eine folge von Anweisungen, die vorgibt auf welche Art etwas 
+    Schritt für Schritt gemacht werden soll.
+\end{definition}
+
+\begin{definition}[Prozedurales Paradigma]\xindex{Programmierung!prozedurale}
+    Die prozeduralen Programmierung ist eine Erweiterung des imperativen
+    Programmierparadigmas, bei dem man versucht die Probleme in 
+    kleinere Teilprobleme zu zerlegen.
+\end{definition}
+
+\begin{definition}[Funktionales Paradigma]\xindex{Programmierung!funktionale}
+    In der funktionalen Programmierung baut man auf Funktionen und
+    ggf. Funktionen höherer Ordnung, die eine Aufgabe ohne Nebeneffekte
+    lösen.
+\end{definition}
+
+\section{Typisierung}
+Eine weitere Art, Programmiersprachen zu unterscheiden ist die stärke
+ihrer Typisierung.
+
+\begin{definition}[Dynamische Typisierung]\xindex{Typisierung!dynamische}
+    Bei dynamisch typisierten Sprachen kann eine Variable ihren Typ ändern.
+\end{definition}
+
+Beispiele sind Python und PHP.
+
+\begin{definition}[Statische Typisierung]\xindex{Typisierung!statische}
+    Bei statisch typisierten Sprachen kann eine niemals ihren Typ ändern.
+\end{definition}
+
+Beispiele sind C, Haskell und Java.

+ 4 - 0
documents/Programmierparadigmen/Scala.tex

@@ -1,5 +1,9 @@
 \chapter{Scala}
 \index{Scala|(}
+
+Scala ist eine funktionale Programmiersprache, die auf der JVM aufbaut
+und in Java Bytecode kompiliert wird.
+
 \section{Syntax}
 \section{Beispiele}
 

+ 7 - 0
documents/Programmierparadigmen/scripts/c/hello-world.c

@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main(void)
+{
+    printf("Hello, World\n");
+    return 0;
+}