Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In diesem Beispiel wird eine Gleitkommazahl $a$ wie folgt durch das Vorzeichen $s$, die Mantisse $m$ umd den Exponenten $e$ abgebildet:\n",
"In diesem Beispiel wird eine Gleitkommazahl $a$ wie folgt durch das Vorzeichen $s$, die Mantisse $m$ um den Exponenten $e$ abgebildet:\n",
"$a = (-1)^{s} \\cdot (1.0+m) \\cdot 2^{e-3}$"
]
},
Expand Down Expand Up @@ -536,7 +536,7 @@
"* 0.2 zu 0.20000000298 und\n",
"* 0.3 zu 0.30000001192\n",
"\n",
"angenäht werden. Hinweis: Nützlich für diese Betrachtung ist ein Gleitkommazahlkonverter, wie dieser [Gleitkommazahlkonverter](https://www.h-schmidt.net/FloatConverter/IEEE754de.html).\n",
"angenähert werden. Hinweis: Nützlich für diese Betrachtung ist ein Gleitkommazahlkonverter, wie dieser [Gleitkommazahlkonverter](https://www.h-schmidt.net/FloatConverter/IEEE754de.html).\n",
"\n",
"Addiert man nun die binären Repräsentationen von 0.1 und 0.2, ergibt das \n",
"\n",
Expand Down
8 changes: 4 additions & 4 deletions book/content/Exercises/01_computer/05_ggt/ggt.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Der größte gemeinsamer Teiler (ggT) ist ein mathematischer Begriff und bezeichnet die gemeinsame größte natürliche Zahl, durch welche sich zwei Zahlen ohne Rest teilen lassen. In dieser Aufgabe wird ein Algorithmus zum finden des ggT vorgestellt und angewandt. So ist bspw. der ggT von $12$ und $18$, die Zahl $6$. Der ggT wird unter anderem in der Bruchrechnung verwendet, beim Kürzen eines Bruches. \n",
"Der größte gemeinsamer Teiler (ggT) ist ein mathematischer Begriff und bezeichnet die gemeinsame größte natürliche Zahl, durch welche sich zwei Zahlen ohne Rest teilen lassen. In dieser Aufgabe wird ein Algorithmus zum Finden des ggTs vorgestellt und angewandt. So ist bspw. der ggT von $12$ und $18$, die Zahl $6$. Der ggT wird unter anderem in der Bruchrechnung beim Kürzen eines Bruches verwendet. \n",
"\n",
"Die Bestimmung des ggT kann durch eine Primfaktorzerlegung oder durch den euklidischen Algorithmus erfolgen. Nachfolgend wird die Primfaktorzerlegung genutzt. Bei der Primfaktorzerlegung werden, wie der Name schon sagt, die Zahl in ein Produkt aus Primzahlen zerlegt.\n",
"Die Bestimmung des ggTs kann durch eine Primfaktorzerlegung oder durch den euklidischen Algorithmus erfolgen. Nachfolgend wird die Primfaktorzerlegung genutzt. Bei der Primfaktorzerlegung werden, wie der Name schon sagt, die Zahl in ein Produkt aus Primzahlen zerlegt.\n",
"\n",
"Bsp.:\n",
"\n",
Expand All @@ -29,7 +29,7 @@
"\n",
"Mit Hilfe der Primfaktorzerlegung lässt sich nun einfach ablesen, was der ggT von $12$ und $18$ ist, indem man die Primfaktoren miteinander multipliziert, die in beiden Zerlegungen vorkommen. In diesem Fall kommen sowohl $2$ als auch $3$ einmal in beiden Zerlegungen vor und damit ist der ggT $2^{\\color{green}1} \\cdot 3^{\\color{red}1} = 6$. Nachfolgend ist ein Algorithmus aufgeführt, der die Bestimmung des ggT formalisiert.\n",
"\n",
"## Algorithmus zur Bestimmung des ggT:\n",
"## Algorithmus zur Bestimmung des ggT\n",
"\n",
"1. Bestimme die Primfaktorzerlegung für beide Zahlen.<br>\n",
" A. Starte mit der kleinsten Primzahl.<br>\n",
Expand Down Expand Up @@ -74,7 +74,7 @@
"\n",
"A. p = 2<br>\n",
"B. x (20) ist durch p (2) zweimal ohne Rest teilbar, das neue x ist jetzt $x = 20 / 2 / 2 = 5$<br>\n",
"C. Wechsel zur nächsten Primzahl p = 3\n",
"C. Wechsel zur nächsten Primzahl p = 3<br>\n",
"D. x (5) ist nicht 1, also Schritt B und C wiederholen<br>\n",
"\n",
"B. x (5) ist durch p (3) keinmal ohne Rest teilbar, x bleibt 5<br>\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@
"1. Preis des Betriebssystems: Linux ist kostenfrei. Windows-Lizenzen sind kostenpflichtig.\n",
"1. Installation von Software: Die meisten Linux-Distributionen bieten Softwareverzeichnisse an um schnell und einfach neue Software zu installieren (und zu löschen). Software wird primär über Pakete bereitgestellt und ihre Installation erfolgt über Paketmanager. Windows verfolgt eher individuelle Installationsmethoden.\n",
"1. Softwarelizenzen: Software für Linux ist meist frei, jedoch nur bedingt konkurrenzfähig zu bestimmten Softwareprodukten für Windows.\n",
"1. Hardwareunterstützung: Windows unterstützt nahezu jede erdenklich Hardware als verbreitestes Betriebssystem. Bei Linux ist die Unterstützung noch nicht optimal.\n",
"1. Hardwareunterstützung: Windows unterstützt nahezu jede erdenkliche Hardware als verbreitestes Betriebssystem. Bei Linux ist die Unterstützung noch nicht optimal.\n",
":::"
]
}
Expand Down
4 changes: 2 additions & 2 deletions book/content/Exercises/01_computer/uebersicht.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"source": [
"**[1.2 – Darstellung von Zeichen](./02_zeichendarstellung/zeichendarstellung)**\n",
"\n",
"Zur Speicherung und Darstellung von Text sind Zeichen notwendig. Diese Umfassen die Buchstaben des Alphabets, Ziffern als auch Sonderzeichen. In dieser Aufgabe wird der Umgang mit der Zeichendarstellung vertieft."
"Zur Speicherung und Darstellung von Text sind Zeichen notwendig. Diese Umfassen die Buchstaben des Alphabets, Ziffern und auch Sonderzeichen. In dieser Aufgabe wird der Umgang mit der Zeichendarstellung vertieft."
]
},
{
Expand Down Expand Up @@ -58,7 +58,7 @@
"source": [
"**[1.6 - Prozessorarchitekturen](./06_architekturen/architekturen)**\n",
"\n",
"In heutigen elektronischen geräten kommen häufig x86 und ARM Prozessoren zum Einsatz. Wir möchten in dieser Aufgabe mehr über diese beiden prominentesten Prozessorarchitekturen herausfinden."
"In heutigen elektronischen Geräten kommen häufig x86 und ARM Prozessoren zum Einsatz. Wir möchten in dieser Aufgabe mehr über diese beiden prominentesten Prozessorarchitekturen herausfinden."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@
"source": [
"### Lösungsvorschlag\n",
":::{toggle} \n",
"- Ein Algorithmus ist eine Kette eindeutiger Anweisungen, die ein Problem oder eine Gruppe von Problemen lösen.\n",
"- Ein Algortithmus hat erstmal nichts mit Programmieren zu tun sondern beschreibt formal den Lösungsweg zum Lösen eines Problems. Ein Programm ist jedoch, in der Regel, eine für den Computer lesbare Implementierung eines oder mehrer Algorithmen.\n",
"- Ein Algorithmus ist eine Kette eindeutiger Anweisungen, die ein Problem oder eine Gruppe von Problemen löst.\n",
"- Ein Algortithmus hat erstmal nichts mit dem Programmieren zu tun sondern beschreibt formal den Lösungsweg zum Lösen eines Problems. Ein Programm ist jedoch, in der Regel, eine für den Computer lesbare Implementierung eines oder mehrer Algorithmen.\n",
"- Ein Flussdiagramm ist eine graphische Darstellung eines Algorithmus oder eines Programmflusses. Je komplexer Algorithmen werden, desto schwieriger und unübersichtlicher wird es, diese nur mit Worten zu definieren. Ein Flussdiagramm bietet die Möglichkeit einer formalen, übersichtlichen Beschreibung.\n",
"- Der worst case ist der Fall, bei dem ein Algorithmus die maximale Anzahl an Wiederholungen durchläuft, bevor er terminiert. Im Fall von Bubblesort ist dies eine absteigend sortierte Liste, da die zusätzliche Abbruchbedingung, dass keine Vertauschungen in der letzten Iteration der inneren Schleife durchgeführt wurden, nie erreicht wird.\n",
"- Selectionsort hat immer mehr oder, im worst case, gleich viele Schleifendurchläufe wie Bubblesort.\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"source": [
"## Aufgabenstellung\n",
"\n",
"Wozu dient \"Hardwarebeschleunigung\", e.g. Grafikkarten? Was sind Vor- und Nachteile?"
"Wozu dient die \"Hardwarebeschleunigung\", e.g. Grafikkarten? Was sind Vor- und Nachteile?"
]
},
{
Expand All @@ -54,8 +54,8 @@
"### Lösungsvorschlag\n",
":::{toggle} \n",
"Für Hardwarebeschleunigung werden Hardwarekomponenten für die Bearbeitung einer bestimmten Art von Aufgabe ausgelegt. Beispiele sind Grafikkarten oder Soundkarten.\n",
"Durch die Spezialisierung kann eine Aufgabe deutlich schneller und effizienter bearbeitet werden, als es in dem allgemeinen Design einer CPU möglich wäre. Allerdings erhöhen sich die Zugriffszeiten durch das Auslagern der Prozesse von der CPU. Daher wird versucht mehr Komponenten in die CPU zu integrieren, beispielsweise mathematischer Koprozessor oder Cache.\n",
"Wenn man andere Aufgaben entsprechend formulieren kann, lässt sich die Leistungsfähigkeite der Beschleunigerkarten auch für andere Aufgaben nutzen, siehe Zusammenspiel von Grafikkarten und neuronalen Netzen oder Cryptomining. Allerdings kann es auch hier sinnvoll sein gezielt Hardware für die Aufgabe zu entwickeln, siehe Tesla Full Self Driving Computer für das neuronale Netz. \n",
"Durch die Spezialisierung kann eine Aufgabe deutlich schneller und effizienter bearbeitet werden, als es in dem allgemeinen Design einer CPU möglich wäre. Allerdings erhöhen sich die Zugriffszeiten durch das Auslagern der Prozesse von der CPU. Daher wird versucht mehr Komponenten in die CPU zu integrieren, beispielsweise ein mathematischer Koprozessor oder ein Cache.\n",
"Wenn man andere Aufgaben entsprechend formulieren kann, lässt sich die Leistungsfähigkeite der Beschleunigerkarten auch für andere Aufgaben nutzen, siehe Zusammenspiel von Grafikkarten und neuronalen Netzen oder Cryptomining. Allerdings kann es auch hier sinnvoll sein gezielt Hardware für die Aufgabe zu entwickeln, siehe Teslas Full Self Driving Computer für das neuronale Netz. \n",
":::"
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@
"source": [
"## Aufgabenstellung\n",
"\n",
"- Was is Virtuelle Maschine (VM)?\n",
"- Was ist die Virtuelle Maschine (VM)?\n",
"- Welche Typen von VM gibt es?\n",
"- Was ist ein Hypervisor und wie hängt er mit einer vm zusammen?\n",
"- Beispiele von Virtuelle Maschine?"
"- Was ist ein Hypervisor und wie hängt er mit einer VM zusammen?\n",
"- Was sind Beispiele von Virtuellen Maschinen?"
]
},
{
Expand All @@ -60,13 +60,13 @@
"\n",
"- Es gibt zwei Typen von VM:\n",
"1. Systembasierte virtuelle Maschinen stellen einen Ersatz für eine reale Maschine dar. Sie stellen die Funktionalität bereit, die zur Ausführung ganzer Betriebssysteme benötigt wird.\n",
"2. Prozessbasierte virtuelle Maschinensind für die Ausführung von Computerprogrammen in einer plattformunabhängigen Umgebung konzipiert.\n",
"2. Prozessbasierte virtuelle Maschinen sind für die Ausführung von Computerprogrammen in einer plattformunabhängigen Umgebung konzipiert.\n",
" \n",
"- Hypervisor (oder Virtual Machine Monitor, VMM, Virtualizer) ist eine Art Computersoftware, Firmware oder Hardware, die virtuelle Maschinen erstellt und ausführt. Ein Computer, auf dem ein Hypervisor eine oder mehrere virtuelle Maschinen ausführt, wird als Host-Maschine bezeichnet, und jede virtuelle Maschine wird als Gast-Maschine bezeichnet.\n",
"- Der Hypervisor (oder Virtual Machine Monitor, VMM, Virtualizer) ist eine Art Computersoftware, Firmware oder Hardware, die virtuelle Maschinen erstellt und ausführt. Ein Computer, auf dem ein Hypervisor eine oder mehrere virtuelle Maschinen ausführt, wird als Host-Maschine bezeichnet, und jede virtuelle Maschine wird als Gast-Maschine bezeichnet.\n",
"\n",
"- Beispiele:\n",
" Systembasierte virtuelle Maschine: Oracles VirtualBox\n",
" Prozessbasierte virtuelle Maschine: Java-Laufzeitumgebung als Teil der Java-Plattform \n",
"1. Systembasierte virtuelle Maschine: Oracles VirtualBox\n",
"2. Prozessbasierte virtuelle Maschine: Java-Laufzeitumgebung als Teil der Java-Plattform \n",
":::"
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
"source": [
"### Lösung\n",
":::{toggle}\n",
"1: Um die Schnittpunkte zweier Funktionen zu finden muss die Gleichung $f(x) = g(x)$ gelöst werden, was äquivalent zum Lösen der Gleichung $f(x) - g(x) = 0$ ist. Da sich das Problem nun darauf reduziert, die Nullstellen einer Kurve zu finden, können wir Intervallschachtelung verwenden:\n",
"1: Um die Schnittpunkte zweier Funktionen zu finden muss die Gleichung $f(x) = g(x)$ gelöst werden, was äquivalent zum Lösen der Gleichung $f(x) - g(x) = 0$ ist. Da sich das Problem nun darauf reduziert, die Nullstellen einer Kurve zu finden, können wir die Intervallschachtelung verwenden:\n",
"\n",
" a = 0 b = 1.5707\n",
"\ta = 0 b = 0.7894\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Logikgatter können zur digitalen Signalverarbeitung genutzt werden. In dieser Aufgabe wird die Kombination mehrerer Gatter zur Lösung eines Problem verwendet.\n",
"Logikgatter können zur digitalen Signalverarbeitung genutzt werden. In dieser Aufgabe wird die Kombination mehrerer Gatter zur Lösung eines Problems verwendet.\n",
"\n",
"Wenn Abstimmungen im Bundestag nicht mehr auf Papier, sondern elektronish erfolgen würden, so könnte beispielsweise jeder Politiker seine Stimme mit Hilfe eines Schalters an seinem Platz abgeben. Falls es eine absolute Mehrheit gibt, also die Majorität aller Abstimmungen gilt, würde das Ergebnis gegebenenfalls mit einem Lichtsignal bekannt gegeben.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"source": [
"## Aufgabenstellung\n",
"\n",
"Eine perfekte (vollkommene) Zahl ist eine natürliche Zahl, die gleich der Summe aller ihrer (positiven) Teiler, <u>ausgenommen sich selbst</u> ist. Entsprechend ist sie auch eine Zahl, die halb so groß ist wie die Summe aller ihrer positiven Teiler (<u>sie selbst eingeschlossen</u>). Beispielsweise ist $28 = 1 + 2 + 4 + 7 + 14$ eine vollkommene Zahl.\n",
"Eine perfekte (vollkommene) Zahl ist eine natürliche Zahl, die gleich der Summe aller ihrer (positiven) Teiler, <u>ausgenommen sich selbst</u> ist. Entsprechend ist sie auch eine Zahl, die halb so groß wie die Summe aller ihrer positiven Teiler (<u>sie selbst eingeschlossen</u>) ist. Beispielsweise ist $28 = 1 + 2 + 4 + 7 + 14$ eine vollkommene Zahl.\n",
"\n",
"\n",
"Entwickeln Sie einen einen Algorithmus, welcher für eine gegebene Zahl $n$ überprüft, ob sie vollkommen ist. Bearbeiten Sie dabei folgende Aufgabenstellungen:\n",
Expand All @@ -56,7 +56,7 @@
"source": [
"### Lösungshinweise\n",
":::{toggle} \n",
"1. Definieren sie zunächst eine Variable $x$ welche die Summe ihrer eigenen Teiler darstellt. In einer Schleife von 1 bis $n$ kann über eine Modulofunktion geprüft werden, ob der Zähler $k$ ein echter Teiler von $n$ ($n \\bmod k = 0$) ist. Wenn dies der Fall ist, wird der Zähler $k$ zu $x$ addiert.\n",
"1. Definieren sie zunächst eine Variable $x$ welche die Summe ihrer eigenen Teiler darstellt. In einer Schleife von 1 bis $n$ kann über eine Modulfunktion geprüft werden, ob der Zähler $k$ ein echter Teiler von $n$ ($n \\bmod k = 0$) ist. Wenn dies der Fall ist, wird der Zähler $k$ zu $x$ addiert.\n",
"2. Durchlaufen Sie den Algorithmus für verschiedene Werte von $n$.\n",
"3. $n(k) = 2^{k-1}(2^k - 1)$ wenn $2^k - 1$ eine Primzahl ergibt. \n",
":::"
Expand Down