mirror of
https://github.com/vale981/TUD_MATH_BA
synced 2025-03-04 17:21:38 -05:00
Beginn PROG in Latex
This commit is contained in:
parent
1226dfb350
commit
05b8dd7010
16 changed files with 182 additions and 0 deletions
43
1. Semester/PROG/TeX_files/Allgemeines.tex
Normal file
43
1. Semester/PROG/TeX_files/Allgemeines.tex
Normal file
|
@ -0,0 +1,43 @@
|
|||
Eine Programmiersprache ist lexikalisch, syntaktisch und semantisch eindeutig definiert. Eine \begriff{Compiler} übersetzt die \begriff{Programmiersprache} in \begriff{Maschinensprache}. Ein \begriff{Interpreter} arbeitet das Programm dann ab. Ein \begriff{Laufzeitsystem} stellt grundlegende Operationen und Funktionen zur Verfügung.
|
||||
|
||||
\section{Bereiche der Informatik}
|
||||
|
||||
Die Informatik untergliedert sich in 4 Bereiche:
|
||||
\begin{itemize}
|
||||
\item Technische Informatik
|
||||
\item Praktische Informatik
|
||||
\item Theoretische Informatik
|
||||
\item Angewandte Informatik
|
||||
\end{itemize}
|
||||
|
||||
Die \begriff[Informatik!]{Technische Informatik} beschäftigt sich mit der Konstruktion der Hardware, zum Beispiel der Datenleitungen, um Informationen durch das Internet zu transportieren. Wichtige Firmen sind hier: Intel, Globalfoundries und Infineon.
|
||||
|
||||
Die \begriff[Informatik!]{Praktische Informatik} beschäftigt sich mit der Software, also Betriebssystem, Compiler, Interpreter und so weiter. In alltäglicher Software findet sich rund 1 Fehler in 100 Zeilen Quelltext. In wichtiger Software, also Raketen, Betriebssysteme, ..., ist es nur 1 Fehler pro 10.000 Zeilen Code.
|
||||
|
||||
Die \begriff[Informatik!]{Theoretische Informatik} beschäftigt sich mit Logik, formalen Sprachen, der Automatentheorie, Komplexität von Algorithmen, ...
|
||||
|
||||
Die \begriff[Informatik!]{Angewandte Informatik} beschäftigt sich mit der Praxis, dem Nutzer, der Interaktion zwischen Mensch und Maschine, ...
|
||||
|
||||
\section{Maßeinheiten und Größenordnungen}
|
||||
|
||||
Ein \begriff{bit} ist ein Kunstwort aus "'binary"' und "'digit"'. Es kann nur 2 Werte speichern: 0 und 1
|
||||
|
||||
Ein \begriff{nibble} ist eine Hexadezimalziffer, bündelt also 4 bits und kann damit 16 Werte annehmen: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E und F.
|
||||
|
||||
Ein \begriff{byte} bündelt 2 nibble, also 8 bit. Er ist die gebräuchlichste, direkt addressierbare, kleinste Speichereinheit. Weitere Speichergrößen sind:
|
||||
\begin{center}
|
||||
\begin{tabular}{c|c||c|c}
|
||||
\textbf{Name} & \textbf{Anzahl byte} & \textbf{Name} & \textbf{Anzahl byte} \\
|
||||
\hline
|
||||
1 KB & $10^3$ & 1 KiB & $2^{10}=1.024$ \\
|
||||
1 MB & $10^6$ & 1 MiB & $2^{20}=1.048.576$ \\
|
||||
1 GB & $10^9$ & 1 GiB & $2^{30}=1.073.741.824$ \\
|
||||
1 TB & $10^{12}$ & 1 TiB & $2^{40}$ \\
|
||||
1 PB & $10^{15}$ & 1 PiB & $2^{50}$ \\
|
||||
1 EB & $10^{18}$ & 1 EiB & $2^{60}$
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
Der \begriff{ROM} ("'read-only-memory"') speichert wichtige Informationen auch ohne Strom, wie zum Beispiel die Uhrzeit, Informationen über die Festplatte, ... Er ist nicht mehr änderbar, außer durch Belichtung.
|
||||
|
||||
Der \begriff{RAM} ("'random-access-memory"') ermöglicht den Zugriff auf alle Adressen, insbesondere im Hauptspeicher.
|
0
1. Semester/PROG/TeX_files/Ausdruecke.tex
Normal file
0
1. Semester/PROG/TeX_files/Ausdruecke.tex
Normal file
|
@ -0,0 +1,38 @@
|
|||
\section{Basis-Konvertierung ganzer Zahlen}
|
||||
|
||||
Die Notation $[9]_{10}$ bedeutet, dass man die Zahl 9 im Zehner-System betrachtet. Es gilt also $[9]_{10} = [1001]_2$ und $[10]_{10}=[1010]_2$.
|
||||
|
||||
Um eine Zahl von einer gegebenen Basis in eine Zielbasis $b$ zu konvertieren, so teilt man immer wieder durch $b$ und notiert den Rest als nächste Ziffer von hinten nach vorne. Am Beispiel von $[57]_{10}$ ins Zweier-System sieht das so aus:
|
||||
\begin{align}
|
||||
\frac{57}{2} &= 28\text{ Rest } 1 \Rightarrow\text{ letzte Ziffer der Binärdarstellung} \notag \\
|
||||
\frac{28}{2} &= 14\text{ Rest } 0 \Rightarrow\text{ vorletzte Ziffer der Binärdarstellung} \notag \\
|
||||
\frac{14}{2} &= 7\text{ Rest } 0 \notag \\
|
||||
\frac{7}{2} &= 3\text{ Rest } 1 \notag \\
|
||||
\frac{3}{2} &= 1\text{ Rest } 1 \notag \\
|
||||
\frac{1}{2} &= 0\text{ Rest } 1 \notag
|
||||
\end{align}
|
||||
Also gilt: $[57]_{10}=[111001]_2$.
|
||||
|
||||
Die umgekehrte Richtung verläuft ähnlich:
|
||||
\begin{center}
|
||||
\begin{tikzpicture}
|
||||
\node at (0,0) (a) {111001\quad :\quad 1010\quad =\quad 101\; R\; 111};
|
||||
\node at (-2.35,-0.4) (b) {-1010};
|
||||
\draw (-2.9,-0.6) -- (-1.5,-0.6);
|
||||
\node at (-2.2, -0.8) (c) {01000};
|
||||
\node at (-2.27, -1.2) (d) {-00000};
|
||||
\draw (-2.9,-1.4) -- (-1.5,-1.4);
|
||||
\node at (-2.03,-1.6) (e) {10001};
|
||||
\node at (-2.1,-1.95) (f) {-01010};
|
||||
\draw (-2.9,-2.15) -- (-1.5,-2.15);
|
||||
\node at (-1.85,-2.35) (g) {111};
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
Also $[111001]_2$ durch $[10]_{10}=[1010]_2$ gleich $[101\text{ Rest }111]_2=[5\text{ Rest }7]_{10}\Rightarrow [57]_{10}$.
|
||||
|
||||
Von Basis 2 in Basis 4, 8 oder 16 ist dann ganz einfach: $[111100101]_2$
|
||||
\begin{itemize}
|
||||
\item Zweiergruppen von hinten nach vorne zusammenzählen: $[13211]_4$
|
||||
\item Dreiergruppen von hinten nach vorne zusammenzählen: $[745]_8$
|
||||
\item Vierergruppen von hinten nach vorne zusammenzählen: $[1E5]_{16}$
|
||||
\end{itemize}
|
|
@ -0,0 +1,51 @@
|
|||
\section{Basis-Konversion gebrochener Zahlen}
|
||||
|
||||
Festkommadarstellung (nur Betrag der Zahl, ohne Vorzeichen):
|
||||
\begin{center}
|
||||
\begin{tabular}{rcccccccccc}
|
||||
Gewichte & $B^{k}$ & $B^{k-1}$ & ... & $B^1$ & $B^0$ & . & $B^{-1}$ & $B^{-2}$ & ... & $B^{-l}$ \\
|
||||
Ziffern & $m_k$ & $m_{k+1}$ & ... & $m_{-1}$ & $m_0$ & . & $m_{1}$ & $m_{2}$ & ... & $m_{l}$ \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
Also: $\sum\limits_{i=k}^l m_i\cdot B^{-i}$.
|
||||
|
||||
Die Konvertierung des ganzzahligen Anteils vor dem "'."' läuft wie gehabt. Um den gebrochenen Anteil zu konvertieren, multipliziert man wiederholt mit der Zielbasis $b$ und nimmt den jeweiligen ganzzahligen Anteil als Nachkommaziffern (von links nach rechts). Mit dem gebrochenen Anteil macht man weiter. Wir wollen die Zahl $[0.625]_{10}$ ins Zweiersystem konvertieren:
|
||||
\begin{align}
|
||||
0.625 \cdot 2 &= \textbf{1}.25 \notag \\
|
||||
0.25 \cdot 2 &= \textbf{0}.5 \notag \\
|
||||
0.5 \cdot 2 &= \textbf{1} \notag
|
||||
\end{align}
|
||||
Also gilt: $[0.625]_{10}=[0.101]_2$.
|
||||
|
||||
Wieder anders herum:
|
||||
\begin{align}
|
||||
0.101 \cdot 1010 &= \textbf{110}.010 \notag \\
|
||||
0.010 \cdot 1010 &= \textbf{10}.100 \notag \\
|
||||
0.100 \cdot 1010 &= \textbf{101}.0 \notag
|
||||
\end{align}
|
||||
Also gilt $[0.101]_2 = [0.110|10|101]_2 = [0.625]_{10}$.
|
||||
|
||||
Jetzt wollen wir $[0.1]_{10}$ ins Zweiersystem konvertieren:
|
||||
\begin{align}
|
||||
0.1 \cdot 2 &= \textbf{0}.2 \notag \\
|
||||
0.2 \cdot 2 &= \textbf{0}.4 \\
|
||||
0.4 \cdot 2 &= \textbf{0}.8 \notag \\
|
||||
0.8 \cdot 2 &= \textbf{1}.6 \notag \\
|
||||
0.6 \cdot 2 &= \textbf{1}.2 \notag \\
|
||||
0.2 \cdot 2 &= \textbf{0}.4
|
||||
\end{align}
|
||||
Wie man sieht, sind die Zeilen (1) und (2) gleich, das heißt, diese Konvertierung wird unendlich lange laufen. Also: $[0.1]_{10}=[0.0\overline{0011}]_2$. Aber es muss gelten: $[0.1]_{10}\cdot [10]_{10}=[1]_{10}$. Aber es stimmt: $[0.0\overline{0011}]_2\cdot [1010]_2=[0.\overline{1}]_2=[1]_2$.
|
||||
|
||||
Entsprechend gilt:
|
||||
\begin{align}
|
||||
[0.2]_{10} &= [0.\overline{0011}]_2 \notag \\
|
||||
[0.3]_{10} &= [0.01\overline{0011}]_2 \notag \\
|
||||
[0.4]_{10} &= [0.011\overline{0011}]_2 \notag \\
|
||||
[0.5]_{10} &= [0.1]_2 \notag \\
|
||||
[0.6]_{10} &= [0.1\overline{0011}]_2 \notag \\
|
||||
[0.7]_{10} &= [0.1011\overline{0011}]_2 \notag \\
|
||||
[0.8]_{10} &= [0.11\overline{0011}]_2 \notag \\
|
||||
[0.9]_{10} &= [0.111\overline{0011}]_2 \notag
|
||||
\end{align}
|
||||
|
||||
Problem: Rundungen schon bei $\frac{1}{10}\Rightarrow$ falsche Nachkommastellen. Die Lösung sind hier Gleitkommazahlen.
|
0
1. Semester/PROG/TeX_files/Benutzerdefinierte_Typen.tex
Normal file
0
1. Semester/PROG/TeX_files/Benutzerdefinierte_Typen.tex
Normal file
0
1. Semester/PROG/TeX_files/Dateiverwaltung.tex
Normal file
0
1. Semester/PROG/TeX_files/Dateiverwaltung.tex
Normal file
0
1. Semester/PROG/TeX_files/Datentypen.tex
Normal file
0
1. Semester/PROG/TeX_files/Datentypen.tex
Normal file
0
1. Semester/PROG/TeX_files/Ein_und_Ausgabe.tex
Normal file
0
1. Semester/PROG/TeX_files/Ein_und_Ausgabe.tex
Normal file
0
1. Semester/PROG/TeX_files/Einfache_Syntax.tex
Normal file
0
1. Semester/PROG/TeX_files/Einfache_Syntax.tex
Normal file
0
1. Semester/PROG/TeX_files/Felder.tex
Normal file
0
1. Semester/PROG/TeX_files/Felder.tex
Normal file
0
1. Semester/PROG/TeX_files/Gleitkommazahlen.tex
Normal file
0
1. Semester/PROG/TeX_files/Gleitkommazahlen.tex
Normal file
0
1. Semester/PROG/TeX_files/Unterprogramme.tex
Normal file
0
1. Semester/PROG/TeX_files/Unterprogramme.tex
Normal file
0
1. Semester/PROG/TeX_files/wichtige_Funktionen.tex
Normal file
0
1. Semester/PROG/TeX_files/wichtige_Funktionen.tex
Normal file
BIN
1. Semester/PROG/Vorlesung PROG alt.pdf
Normal file
BIN
1. Semester/PROG/Vorlesung PROG alt.pdf
Normal file
Binary file not shown.
Binary file not shown.
50
1. Semester/PROG/Vorlesung PROG.tex
Normal file
50
1. Semester/PROG/Vorlesung PROG.tex
Normal file
|
@ -0,0 +1,50 @@
|
|||
\documentclass[ngerman,a4paper,order=firstname]{../../texmf/tex/latex/mathscript/mathscript}
|
||||
\usepackage{../../texmf/tex/latex/mathoperators/mathoperators}
|
||||
|
||||
\title{\textbf{Programmieren für Mathematiker WS2017/18}}
|
||||
\author{Dozent: Prof. Dr. Wolfgang Walter}
|
||||
|
||||
\begin{document}
|
||||
\pagenumbering{roman}
|
||||
\pagestyle{plain}
|
||||
|
||||
\maketitle
|
||||
|
||||
\hypertarget{tocpage}{}
|
||||
\tableofcontents
|
||||
\bookmark[dest=tocpage,level=1]{Inhaltsverzeichnis}
|
||||
|
||||
\pagebreak
|
||||
\pagenumbering{arabic}
|
||||
\pagestyle{fancy}
|
||||
|
||||
\chapter{allgemeine Informationen}
|
||||
\input{./TeX_files/Allgemeines}
|
||||
|
||||
\chapter{Zahldarstellungen}
|
||||
\input{./TeX_files/Basis-Konversion_ganzer_Zahlen}
|
||||
\include{./TeX_files/Basis-Konversion_gebrochener_Zahlen}
|
||||
\include{./TeX_files/Gleitkommazahlen}
|
||||
|
||||
\chapter{Grundstrukturen von Algorithmen}
|
||||
\input{./TeX_files/Einfache_Syntax}
|
||||
\include{./TeX_files/Datentypen}
|
||||
\include{./TeX_files/wichtige_Funktionen}
|
||||
\include{./TeX_files/Ausdruecke}
|
||||
\include{./TeX_files/Unterprogramme}
|
||||
\include{./TeX_files/Benutzerdefinierte_Typen}
|
||||
\include{./TeX_files/Felder}
|
||||
|
||||
\chapter{Ein- und Ausgabe}
|
||||
\input{./TeX_files/Ein_und_Ausgabe}
|
||||
\include{./TeX_files/Dateiverwaltung}
|
||||
|
||||
\part*{Anhang}
|
||||
\addcontentsline{toc}{part}{Anhang}
|
||||
\appendix
|
||||
|
||||
%\printglossary[type=\acronymtype]
|
||||
|
||||
\printindex
|
||||
|
||||
\end{document}
|
Loading…
Add table
Reference in a new issue