Wie rechnet ein Rechner? Werner Struckmann Vorkurs Wintersemester 2014/2015
|
|
- Kora Böhm
- vor 7 Jahren
- Abrufe
Transkript
1 Wie rechnet ein Rechner? Werner Struckmann Vorkurs Wintersemester 2014/2015
2 Was machen wir? Warum sollte man wissen, wie ein Rechner rechnet? Wie rechnet ein Rechner? Speicherung von Zahlen Verarbeitung von Zahlen Fazit Etwas zum Algorithmusbegriff Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 2
3 Wie rechnet ein Rechner? Warum sollte man es wissen, wenn man mit ihm rechnet? Das wollen wir uns ansehen! Ein bisschen rechnen wir erstmal selbst. Dann sehen wir uns an, wie er rechnet. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 3
4 Beispiel: Multiplikation zweier Zahlen =?
5 Beispiel: Multiplikation zweier Zahlen =? 2 7 6
6 Beispiel: Multiplikation zweier Zahlen =?
7 Beispiel: Multiplikation zweier Zahlen =? = (1 10+2) (2 10+3) = ( ) = = 276
8 Beweis der abessinischen Bauernmethode zur Multipliaktion Gegeben: x, y N mit x, y 1. Es gilt die Gleichung: y falls x = 1, x x y = (y + y) falls x > 1 und x gerade ist, 2 y + x 1 (y + y) falls x > 1 und x ungerade ist. 2 Durch diese Gleichung und die Rekursion wird die Multiplikation auf die Addition, Verdoppelung und Halbierung zurückgeführt. Das Einmaleins brauchen wir nicht. Dieses Verfahren war schon im Altertum bekannt. In Deutschland wurde es wohl bis ins Mittelalter verwendet. Wir können also auf mehrere Arten und Weisen multiplizieren. Jetzt sehen wir uns Rechner an. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 5
9 Beispiel: Multiplikation zweier Zahlen
10 Beispiel: Multiplikation zweier Zahlen Mit einem Java-Programm kontrollieren wir unsere Ergebnisse und berechnen außerdem
11 Beispiel: Multiplikation zweier Zahlen public class Mult01 { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( 1 * 1 ) ; System. out. p r i n t l n ( 1 2 * 1 2 ) ; System. out. p r i n t l n (123*123); System. out. p r i n t l n (1234*1234); System. out. p r i n t l n (12345*12345); System. out. p r i n t l n (123456*123456); } }
12 Beispiel: Multiplikation zweier Zahlen public class Mult01 { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( 1 * 1 ) ; System. out. p r i n t l n ( 1 2 * 1 2 ) ; System. out. p r i n t l n (123*123); System. out. p r i n t l n (1234*1234); System. out. p r i n t l n (12345*12345); System. out. p r i n t l n (123456*123456); } } Ausgabe:
13 Beispiel: Multiplikation zweier Zahlen public class Mult01 { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( 1 * 1 ) ; System. out. p r i n t l n ( 1 2 * 1 2 ) ; System. out. p r i n t l n (123*123); System. out. p r i n t l n (1234*1234); System. out. p r i n t l n (12345*12345); System. out. p r i n t l n (123456*123456); } } Ausgabe: Das Quadrat einer Zahl ist nicht negativ. Hat sich der Rechner verrechnet?
14 Ein zweites Beispiel Wir sehen uns noch ein Beispiel in Java an: public class Mult02 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t z = 256*256*256* ; System. out. p r i n t l n ( z * z ) ; } } Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 8
15 Ein zweites Beispiel Wir sehen uns noch ein Beispiel in Java an: public class Mult02 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t z = 256*256*256* ; System. out. p r i n t l n ( z * z ) ; } } Ausgabe: 1 Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 8
16 Ein zweites Beispiel Wir sehen uns noch ein Beispiel in Java an: public class Mult02 { public s t a t i c void main ( S t r i n g [ ] args ) { i n t z = 256*256*256* ; System. out. p r i n t l n ( z * z ) ; } } Ausgabe: 1 Hat sich der Rechner schon wieder verrechnet? Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 8
17 Ariane-Rakete Der Film zeigte den Start bzw. Absturz einer Ariane-Rakete. Wikipedia: The launch ended in failure due to an error in the software design caused by inadequate protection from integer overflow. This resulted in the rocket veering off its flight path 37 seconds after launch, beginning to disintegrate under high aerodynamic forces, and finally self-destructing by its automated flight termination system. The failure has become known as one of the most infamous software bugs in history. The failure resulted in a loss of more than US $ 370 million. Es war also im Prinzip der gleiche Fehler, den wir eben zweimal gesehen hatten. Jetzt sehen wir uns an, wie es zu solchen Fehlern kommen kann! Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 9
18 Dualzahlen: Darstellung 12 = = = = (1100) = = = = ( ) 2 Außer zur Basis 2 werden auch andere Basen verwendet. Beispiel: 60 = (74) 8 = (3, C) 16 (Oktal- und Hexadezimalzahlen) Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 10
19 Dualzahlen: Speicherung Computer speichern Zahlen meistens als Dualzahlen. Jede Null und jede Eins wird durch ein eigenes Bit repräsentiert. Java: Der Datentyp int soll zum Rechnen mit ganzen Zahlen, d. h. mit einigen Elementen der Menge Z = {..., 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5,...} verwendet werden. Eine Zahl vom Typ int wird durch 32 Bits gespeichert. Deshalb können höchstens 2 32 = Zahlen zum Typ int gehören. Java deckt damit den Bereich von 2 31 = bis = ab. Die Zahl wird maxint genannt. Das Ergebnis der Multiplikation ist Diese Zahl ist größer als maxint und kann daher nicht verarbeitet werden. Das obige Programm hat sich also schon bei einer einzigen Multiplikation um ( ) = , d. h. um 17 Milliarden 179 Millionen 869 Tausend 184, verrechnet.
20 Dualzahlen: Speicherung Es gibt verschiedene Möglichkeiten, ganze Zahlen als Dualzahlen zu speichern. Eine sehen wir uns an, das. sog. Zweierkomplement: maxint: = minint: = Es geht bei los. In jedem Schritt geht es um eins weiter. So macht es zum Beispiel Java. Für den Datentyp int werden 32 Bits benutzt.
21 Dualzahlen: Speicherung Zugegeben: In Java gibt es den Datentyp long, der größere Zahlen verarbeiten kann. Der Typ nimmt 64 Bits. Aber auch für diesen Datentyp gibt es eine Maximalzahl. Warum verwenden viele Rechner nicht ein Bit als Vorzeichen? Dann hätte die Zahl 0 zwei Darstellungen. Dann müssten viel mehr Prüfungen durchgeführt werden. Nicht alle Programmiersprachen behandeln Zahlen gleich. Es kommt sogar vor, dass eine Programmiersprache Zahlen auf verschiedenen Rechnern unterschiedlich bearbeitet. Computeralgebrasysteme, zum Beispiel Maple, behandeln Zahlen anders:» *123456; » z:=256*256*256* ; z:= » z*z;
22 Wertebereiche Die folgende Tabelle gibt die Wertebereiche der ganzahligen Typen int und long sowie der Gleitkommatypen float und double an: Typ: Wertebereich: int: = long: = float: ± double: ± Gleitkommatypen können also viel größere Zahlen bearbeiten. Jetzt sehen wir uns einen Gleitkommatypen an. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 14
23 Gleitkommazahlen können größere Werte verarbeiten! Ein Java-Beispiel: double a = 1. 0 / 3. 0, b = a 10.0, c ; i f ( a == b ) c = 0; else c = 1 / ( a b ) ; System. out. p r i n t f ( " %20.5 f%n ", c ) ; Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 15
24 Gleitkommazahlen können größere Werte verarbeiten! Ein Java-Beispiel: double a = 1. 0 / 3. 0, b = a 10.0, c ; i f ( a == b ) c = 0; else c = 1 / ( a b ) ; System. out. p r i n t f ( " %20.5 f%n ", c ) ; Ausgabe: Java sagt also: - 1 Billiarde 637 Billionen 672 Milliarden 591 Millionen 771 Tausend und 89,5 Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 15
25 Gleitkommazahlen können größere Werte verarbeiten! Ein Java-Beispiel: double a = 1. 0 / 3. 0, b = a 10.0, c ; i f ( a == b ) c = 0; else c = 1 / ( a b ) ; System. out. p r i n t f ( " %20.5 f%n ", c ) ; Ausgabe: Java sagt also: - 1 Billiarde 637 Billionen 672 Milliarden 591 Millionen 771 Tausend und 89,5 korrekter Wert: 0 Kann der Rechner schon wieder nicht rechnen? Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 15
26 Dezimalzahlen: Rationale Zahlen Die Dezimalbruchentwicklung von rationalen Zahlen, d. h. von Elementen aus Q, ist periodisch: 17 4 = 4, = 4,250 = 4, = 2, = 2, Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 16
27 Dezimalzahlen: Rationale Zahlen Die Dezimalbruchentwicklung von rationalen Zahlen, d. h. von Elementen aus Q, ist periodisch: 17 4 = 4, = 4,250 = 4, = 2, = 2, Die Dezimalbruchentwicklung von irrationalen Zahlen, d. h. von Elementen aus R Q, ist nicht periodisch: 2 = 1, π = 3, e = 2, Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 16
28 Dualzahlen: Rationale Zahlen Die gleichen Aussagen gelten für Dualzahlen: 1 2 = 0, = 0,50 = (0,10) 2 = (0,1) = 3, = 3,750 = (11,110) 2 = (11,11) = 0,1 = (0, ) 2 = (0,00011) = 0,2 = (0, ) 2 = (0,0011) 2 2 = 1, = (10, )2 π = 3, = (11, ) 2 e = 2, = (10, ) 2 Wenn also endlich viele Bits zur Speicherung von rationalen Zahlen in der Dualzahldarstellung benutzt werden, dann kann also nicht einmal die Zahl 0,1 korrekt gespeichert werden.
29 Wie werden rationale Zahlen gespeichert? Die Gleitkommadarstellung ist eine Methode zur näherungsweisen Darstellung von reellen Zahlen auf Rechenanlagen. Man spricht von Pseudoarithmetik: Es lassen sich nur endlich viele Zahlen darstellen. Für sie gelten die bekannten Rechenregeln im Allgemeinen nicht. Inbesondere gibt es Probleme bei der Summe von Zahlen unterschiedlicher Größenordnung (x + y = x, falls x >> y, y muss nicht 0 sein), der Differenz von nahezu gleich großen Zahlen (Auslöschung, s. obiges Beispiel) und dem Test von Zahlen auf Gleichheit (ein Beispiel sehen wir gleich). Bei fast jeder Operation einlesen, berechnen,... entstehen Rundungsfehler. Die Gleitkommadarstellung sehen wir uns kurz an. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 18
30 Gleitkommadarstellung 234, 5678 = 0, Vorzeichen: Mantisse: Exponent: 3 Für Dualzahlen wird es analog gemacht. Als Vorkommastelle wird aber typisch die erste 1 verwendet. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 19
31 Gleitkommadarstellung Wir betrachten ein Beispiel für Dualzahlen: Die Zahl +0,2 hat die Darstellung +0, = +0,0011. Normalisiert ergibt dies: +0, = +0, oder +1, = +1, Vorzeichen: + Mantisse: Exponent: -3 Auf 6 Nachkommastellen gerundet ergibt dies: 0, Zurückkonvertiert: 0, = = 0, Der Test 0,2 = 0, wird daher bei einer Speicherung von nur 6 binären Nachkommastellen leider den Wert true liefern. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 20
32 Gleitkommadarstellung: Speicherung von Werten Java verwendet die beiden IEEE-754-Fließkommatypen für seine Datentypen float und double. float-zahlen werden durch 32 Bits dargestellt. double-zahlen werden durch 64 Bits dargestellt. Die Aufteilung erfolgt folgendermaßen: float double Vorzeichenbit 1 1 Exponent 8 11 Mantisse Anzahl der Bits Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 21
33 Gleitkommadarstellung: Speicherung von float-werten Die interne Darstellung einer Gleitkommazahl vom Typ float in einem 32-Bit-Wort nach dem IEEE-Standard sieht wie folgt aus: V E M Das Vorzeichen V wird durch 1 Bit gespeichert. Der Exponententeil E wird durch 8 Bits dargestellt und liegt im Bereich von 0 bis 255. Die Werte E = 0 und E = 255 sind für spezielle Zahlen (Null, denormalisierte Werte, Unendlich, Not-a-Number) reserviert. Der Mantissenteil M beansprucht 23 Bits. Im Normalfall, das heißt mit Ausnahme der speziellen Zahlen, ist M der Anteil der Mantisse nach dem Dezimalpunkt. Vor dem Dezimalpunkt steht eine 1, die nicht abgespeichert wird. Man sagt, die Mantisse sei normalisiert. Im normalisierten Fall, das heißt 1 E 254, besitzt eine Gleitkommazahl mit dem Vorzeichen V, dem Exponententeil E und dem Mantissenteil M den folgenden Wert: ( 1) V 1.M 2 E 127 Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 22
34 Gleitkommadarstellung: Speicherung von float-werten Durch den Ausdruck wird die Zahl ( 1) V 1.M 2 E 127 0, 2 = +1, als float-wert also wie folgt gespeichert: Vorzeichen: 1 Bit: 0 ( 1) 0 = 1 Exponent: 8 Bits: = Mantisse: 23 Bits: s. oben So sehen die 32 Bits aus: Das letzte Bit wurde aufgerundet: Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 23
35 Gleitkommadarstellung: Speicherung von Werten Gleitkommazahlen sind nicht gleichverteilt. So kann man es sich vorstellen: 0 Es gibt also eine kleinste positive und eine größte negative Gleitkommazahl. Wir haben gesehen, wie ganze Zahlen und rationale Zahlen typischerweise gespeichert werden. Durch die Einschränkung auf größte und kleinste Werte sowie die Genauigkeit kann es zu großen Rechenfehlern führen. Typischerweise bieten Programmiersprachen die Möglichkeit an, die Darstellung auszugeben. Gleich sehen wir es uns etwas an, wie mit diesen Speicherungen gerechnet wird. Andere Systeme, zum Beispiel Computer-Algebra-Systeme, können genauer rechnen als viele Programmiersprachen. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 24
36 Addition Wieviel ist 53+91? 53 = = (110101) 2 91 = = ( ) ( ) 2 = = 144 Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 25
37 Addition Diese Seite habe ich aus dem Informatik-Handbuch von P. Rechenberg und G. Pomberger abgeschrieben: Die Summe zweier einstelliger Dualzahlen kann durch ein Schaltnetz mit logischen Operationen implementiert werden: Summe: Übertrag: a b a XOR b a UND b Solch ein Schaltnetz heißt Halbaddierer. Sollen zwei mehrstellige Dualzahlen addiert werden, wird der Halbaddierer für die letzte Stelle verwendet. Bei den anderen Stellen muss evtl. ein Übertrag berücksichtigt werden. Die Subtraktion, die Multiplikation und die Division lassen sich mithilfe der Addition realisieren.
38 Subtraktion Wie kann man die Subtraktion a b auf die Addition zurückführen? ergänzen die Ziffern von 14 auf (Komplement von 14) Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 27
39 Subtraktion Wie kann man die Subtraktion a b auf die Addition zurückführen? ergänzen die Ziffern von 14 auf (Komplement von 14) Beweis: Komplement: b = 10 k 1 b, 10 k > b, das kleinste solche k. b = 10 k 1 b a b = a (10 k 1 b) = a + b 10 k + 1 (s. obiges Beispiel) Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 27
40 Subtraktion Diesen Algorithmus darf man auch für Dualzahlen verwenden: = 21: ist das Komplement von Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 28
41 Subtraktion Diesen Algorithmus darf man auch für Dualzahlen verwenden: = 21: ist das Komplement von Die Subtraktion von Dualzahlen kann also auf die Addition und das Umwandeln von Bits (logisches NOT) zurückgeführt werden. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 28
42 Was haben wir bis jetzt gesehen? Computer können etliche Rechenaufgaben lösen. Sie speichern Zahlen als Dualzahlen. Die Addition kann auf logische Operationen zurückgeführt werden. Andere Operationen, z. B. die Subtraktion, kann auf die Addition, also auch auf logische Operationen zurückgeführt werden. Dabei können es Probleme geben: Größte, kleinste Zahlen, Genauigkeit, Vergleich, Operationen,... Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 29
43 Multiplikation Wie vorhin gesehen gilt: ( ) 2 = = = 144 Die Verdoppelung und Halbierung ist für Dualzahlen einfach. Eine 0 muss angefügt bzw. gelöscht werden: 1 Bit-Shift nach links bzw. rechts. Die Multiplikation kann also auf Bit-Shifts und die Addition zurückgeführt werden.
44 Division 13 8 = = = (1,101) 2 = 1, = (1101) 2 8 = (1000) : = 1, Die Subtraktion bei der Division kann auf die Addition zurückgeführt werden.
45 Fazit Wir haben also gesehen, dass die Bedienung von Rechnern zu schlimmen Fehlern führen kann. Wenn man mit einem Rechner arbeitet, sollte man sich also die Sprache und die Rechnung genau anschauen erschien das Buch: Christian Hesse: Wer falsch rechnet, den bestraft das Leben. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 32
46 Gibt es weitere Möglichkeiten für Fehler? Ja, dafür gibt es viele. Nur ein Beispiel: Ein Seitenairbag darf nicht eingeschaltet werden, wenn ein Baby auf dem Beifahrersitz sitzt. Richtige Reihenfolge: airbag = ein; if (kindersitz == belegt) { airbag = aus; } Falsche Reihenfolge: if (kindersitz == belegt) { airbag = aus; } airbag = ein; Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 33
47 Gibt es weitere Möglichkeiten für Fehler? Ja, dafür gibt es viele. Nur ein Beispiel: Ein Seitenairbag darf nicht eingeschaltet werden, wenn ein Baby auf dem Beifahrersitz sitzt. Richtige Reihenfolge: airbag = ein; if (kindersitz == belegt) { airbag = aus; } Falsche Reihenfolge: if (kindersitz == belegt) { airbag = aus; } airbag = ein; 1999 wurde dieser Fehler gemacht und führte zum Tode von einem Baby. Der Fehler trat nur in der Software eines speziellen Fahrzeugmodells auf. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 33
48 Der intuitive Algorithmusbegriff Gegeben sei ein Problem. Eine Handlungsvorschrift, deren mechanisches Befolgen ohne Verständnis des Problems zur Lösung des Problems führt, wird Algorithmus genannt. Etwas präziser: Ein Algorithmus ist eine wohldefinierte Rechenvorschrift, die eine (evtl. leere) Menge von Größen als Eingabe verwendet und eine Menge von Größen als Ausgabe erzeugt. Ein Algorithmus ist also eine Abfolge von Rechenschritten, die die (evtl. leere) Eingabe in eine Ausgabe umwandelt. Der Algorithmus muss durch einen endlichen Text in einer wohldefinierten Sprache beschrieben sein. Die Objekte der Berechnung müssen klar sein. Die Operationen müssen mechanisch ausführbar sein. Die Reihenfolge der Operationen muss feststehen. Ein Problem, für dessen Lösung ein Algorithmus existiert, heißt berechenbar. In der Definition wird nicht gefordert, dass die Abfolge der Rechenschritte stets terminiert (Halteproblem). intuitiv = nicht erlernt
49 Churchsche These Gibt es für das Problem einen Algorithmus? Berechenbarkeit/Entscheidbarkeit. Zur Beantwortung dieser Frage wird eine formale Definition des Algorithmenbegriffs benötigt. Alonzo Church stellte 1936 die folgende These auf, die bisher nicht widerlegt wurde. Church sche These: Der intuitive Algorithmenbegriff wird durch das Modell der Turing-Maschine adäquat definiert. Die Church sche These kann natürlich nicht bewiesen werden, da sie den intuitiven Algorithmenbegriff verwendet. Über intuitive Dinge können keine formalen Beweise geführt werden. Es wurde gezeigt, dass viele formale Algorithmusdefinitionen äquivalent sind. Daher könnte in der Church schen These die Turing-Maschine durch etliche andere formale Definitionen des Algorithmus ersetzt werden. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 35
50 Einige formale Definitionen Es gibt formale Definitionen für den Algorithmus. Einige sind: Turing-Maschine λ-kalkül Markov-Algorithmus Sprache der While-Programme partiell-rekursive (µ-rekursive) Funktionen Registermaschine Post-Kalkül... Man kann beweisen, dass diese Begriffe gleichmächtig sind. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 36
51 Eine formale Definition: Markov-Algorithmus Ein Markov-Algorithmus M = (Σ, P ) besteht aus einem endlichen Alphabet Σ und einer endlichen Menge P von sortierten Ableitungsregeln für Wörter über Σ. Ein Alphabet ist eine Menge von Zeichen. Die Menge der Wörter über Σ bezeichnet man mit Σ. Eine Ableitungsregel v w ist ein Paar (v, w) P Σ Σ. Außerdem ist eine Teilmenge P t P von terminalen Ableitungsregeln gegeben. Die Teilmenge P t der terminalen Ableitungsregeln kann auch leer sein. Ein Markov-Algorithmus sieht die Eingabe e eines Algorithmus als Wort über Σ an, d. h. e Σ. Die Ausgabe wird folgendermaßen durch Anwendungen von Ableitungsregeln berechnet: Es wird die erste Ableitungsregel v w der sortierten Menge P ausgewählt, deren Wort v ein Teilwort des zu bearbeitenden Wortes ist. Das am weitesten links stehende Vorkommen von v wird durch w ersetzt. Dieser Schritt wird wiederholt, bis eine Regel aus P t angewendet wird oder keine Regel aus P mehr anwendbar ist. Das Wort, das nicht mehr verändert wird, ist die Ausgabe a der Eingabe e. Ein Ableitungsschritt wird mit bezeichnet. λ ist das leere Wort. Im folgenden Beispiel zeigen wir, dass ein Markov-Algorithmus zwei Zahlen multiplizieren kann.
52 Ein Beispiel für den Markov-Algorithmus: Multiplikation Gegeben sei der Markov-Algorithmus M = (Σ, P ) mit Σ = {a, A, B, #} und der folgenden Menge der Ableitungsregeln: P Ba ab Aa aba A λ a# #A #a # # λ B a Zudem setzen wir P t =. M übersetzt das Eingabewort a i #a j mit i, j N in das Ausgabewort a k mit k = i j. Als Beispiel berechnen wir das Produkt 2 3: aa#aaa a#aaaa a#abaaa a#ababaa a#aabbaa a#aabbaba a#aababba a#aaabbba a#aaabbb... #aaabbbbbb... #BBBBBB BBBBBB abbbbb... aaaaaa Es gilt also 2 3 = 6. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 38
53 Berechenbarkeit: Satz von Rice Es sei M 0, M 1, M 2,... eine Aufzählung aller Algorithmen. ϕ 0, ϕ 1, ϕ 2,... seien die zugehörigen berechneten Funktionen. Definition: Eine Menge von Indizes J N respektiert Funktionen, wenn für alle i, j N die Aussage i J, ϕ i = ϕ j j J gilt. Satz: (Henry Gordon Rice, 1953) Es sei J N eine Menge von Indizes, die Funktionen respektiert. Dann gilt J ist entscheidbar J = oder J = N. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 39
54 Satz von Rice: Beispiele Offenbar respektieren die folgenden Indexmengen Funktionen. 1. A = {i 7 liegt im Wertebereich von ϕ i }, 2. B = {i ϕ i ist total}, 3. C = {i ϕ i ist überall undefiniert}, 4. D = {i ϕ i = ξ} für eine gegebene partielle Funktion ξ N N. Da die Mengen A, B, C und D nicht leer und ungleich N sind sowie Funktionen respektieren, sind die folgenden Probleme nicht entscheidbar. 1. Gibt ein beliebiger Algorithmus für eine geeignete Eingabe die Zahl 7 aus? 2. Hält ein beliebiger Algorithmus bei jeder Eingabe? 3. Hält ein beliebiger Algorithmus bei keiner Eingabe? 4. Berechnet ein beliebiger Algorithmus die gegebene partielle Funktion ξ N N? Die Definition und der Satz können auf n-stellige Indexmengen J N n, n 2, übertragen werden. Man erhält beispielsweise, dass die Menge {(i, j) ϕ i = ϕ j } Funktionen respektiert und daher nicht entscheidbar ist. Also ist das Äquivalenzproblem für Algorithmen nicht entscheidbar. Es ist also so gut wie kein Problem algorithmisch lösbar.
55 Dirk W. Hoffmann: Grenzen der Mathematik Die Tragweite des Satzes von Rice ist enorm! In einem Rundumschlag macht er die Hoffnung zunichte, irgendeine nichttriviale funktionale Eigenschaft über Turing-Maschinen algorithmisch entscheiden zu können. Die Grenzen, die uns dieser Satz auferlegt, reichen tief in die Praxis der realen Software-Entwicklung hinein. So folgt daraus unmittelbar, dass es keinen Algorithmus geben kann, der für ein beliebiges Programm verifiziert, ob es sich entsprechend seiner Spezifikation verhält. Selbst so einfache Probleme wie die Frage nach der Existenz von Endlosschleifen entziehen sich einer algorithmischen Lösung. Seine Allgemeinheit macht den Satz von Rice zu einer der wertvollsten Aussagen der Berechenbarkeitstheorie. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 41
56 Kann ein Rechner wenigstens jede Rechenaufgabe lösen? Definition Eine lineare diophantische Gleichung mit zwei Unbekannten x und y ist eine Gleichung der Form ax + by = c (*) für gegebene ganze Zahlen a, b, c. Gesucht werden ganze Zahlen x und y, die die Gleichung erfüllen. Satz Die Gleichung (*) besitzt genau dann eine Lösung, wenn ggt(a, b) c gilt. Beispiel Zum Beispiel besitzt die Gleichung 36x + 52y = 24 eine ganzzahlige Lösung, weil ggt(36, 52) = 4 ein Teiler von 24 ist: = 24. Den größten gemeinsamen Teiler zu berechnen ist einfach: Der euklidsche Algorithmus. Wie solch eine Lösung gefunden wird, lernen Sie im 1. Semester.
57 Kann ein Rechner jede Rechenaufgabe lösen? Definition Eine allgemeine diophantische Gleichung mit den Unbekannten x 1, x 2,..., x n ist eine Gleichung der Form p(x 1, x 2,..., x n ) = 0, wobei p ein ganzzahliges Polynom mit n Variablen ist. Problem Gibt es einen Algorithmus, der entscheiden kann, ob eine allgemeine diophantische Gleichung ganzzahlige Lösungen besitzt? Dies ist das berühmte zehnte Hilbertsche Problem aus dem Jahr Fakt Solch einen Algorithmus gibt es nicht bewies dies Yuri Matijasevič. Es gibt also sehr sehr... sehr viele Probleme, die mit keinem Computer gelöst werden können!
58 Rechnen mit einem Rechner Wir wissen jetzt also: Computer können etliche Rechenaufgaben lösen. Können dabei aber auch Probleme haben: Größte, kleinste Zahlen, Genauigkeit, Vergleich, Operationen,... Es gibt auch Rechenaufgaben, die nicht algorithmisch gelöst werden können. Es gibt auch sehr viele andere Aufgaben, für die kein Algorithmus existiert. Wer mit einem Computer arbeitet, sollte sich also ansehen, wie er arbeitet. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 44
59 Beispiel: Der euklidische Algorithmus in fünf Programmiersprachen Java (objektorientierte Sprache) C-Shell (Skriptsprache) s t a t i c i n t ggt ( i n t a, i n t b ) { i n t r ; while ( b!= 0) { r = a % b ; a = b ; b = r ; } return a ; } Prolog (logische Sprache) ggt (A, 0,A ). ggt (A, B, Z ) : U is A mod B, ggt (B,U, Z ). Haskell (funktionale Sprache) ggt : : Integer > Integer > Integer ggt a b b == 0 = a otherwise = ggt b ( a mod b ) set a =... ; set b =... while ( $b!= r = $a % $b set a = $b set b = $r end echo $a C (imperative Sprache) i n t ggt ( i n t a, i n t b ) { i n t r ; while ( b!= 0) { r = a % b ; a = b ; b = r ; } return a ; }
60 Herzlichen Dank für Ihre Aufmerksamkeit! Wir freuen uns, dass Sie sich für Braunschweig als Studienort entschieden haben und begrüßen Sie als neue Student(inn)en. Für Ihr Studium wünschen wir Ihnen viel Erfolg. Vorkurs WS 2014/2015 Werner Struckmann Wie rechnet ein Rechner? Seite 46
Das Studium der Informatik in Braunschweig
Das Studium der Informatik in Braunschweig Vorkurs SS 2012 W. Struckmann, Ch. Peltz, 23. März 2012 Berufsbild des Informatikers Bologna-Prozess Informatik-Studium in Braunschweig Etwas Informatik aus den
MehrRechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013
Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013 Im folgenden soll ein Überblick über die in Computersystemen bzw. Programmiersprachen verwendeten Zahlen inklusive ausgewählter Algorithmen (in
MehrGrundstrukturen: Speicherorganisation und Zahlenmengen
Zahlendarstellung Zahlen und ihre Darstellung in Digitalrechnern Grundstrukturen: Speicherorganisation und Zahlenmengen Linear organisierter Speicher zu einer Adresse gehört ein Speicher mit 3 Bit-Zellen
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
Mehr1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
MehrAlgebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen
Algebra und Diskrete Mathematik, PS3 Sommersemester 2016 Prüfungsfragen Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper). Wodurch
MehrTeil II. Schaltfunktionen
Teil II Schaltfunktionen 1 Teil II.1 Zahlendarstellung 2 b-adische Systeme Sei b IN mit b > 1 und E b = {0, 1,..., b 1} (Alphabet). Dann ist jede Fixpunktzahl z (mit n Vorkomma und k Nachkommastellen)
MehrTechnische Informatik I
Technische Informatik I Vorlesung 2: Zahldarstellung Joachim Schmidt jschmidt@techfak.uni-bielefeld.de Übersicht Geschichte der Zahlen Zahlensysteme Basis / Basis-Umwandlung Zahlsysteme im Computer Binärsystem,
MehrLösungen: zu 1. a.) 0 0 1 1 b.) 1 1 1 1 c.) 0 1 1 0 + 1 1 0 0 + 0 0 1 1 + 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1
Lösungen: zu 1. a.) 0 0 1 1 b.) 1 1 1 1 c.) 0 1 1 0 + 1 1 0 0 + 0 0 1 1 + 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 vorzeichenlose Zahl: 15 vorzeichenlose Zahl: 18 vorzeichenlose Zahl: 13 Zweierkomplement: - 1
Mehr2 Darstellung von Zahlen und Zeichen
2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f
MehrZahlen in Haskell Kapitel 3
Einführung in die Funktionale Programmiersprache Haskell Zahlen in Haskell Kapitel 3 FH Wedel IT-Seminar: WS 2003/04 Dozent: Prof. Dr. Schmidt Autor: Timo Wlecke (wi3309) Vortrag am: 04.11.2003 - Kapitel
MehrZahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär
Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrRepräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen
Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung
MehrDas Rechnermodell - Funktion
Darstellung von Zahlen und Zeichen im Rechner Darstellung von Zeichen ASCII-Kodierung Zahlensysteme Dezimalsystem, Dualsystem, Hexadezimalsystem Darstellung von Zahlen im Rechner Natürliche Zahlen Ganze
MehrComputerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
MehrKapitel 2. Zahlensysteme, Darstellung von Informationen
Kapitel 2 Zahlensysteme, Darstellung von Informationen 1 , Darstellung von Informationen Ein Computer speichert und verarbeitet mehr oder weniger große Informationsmengen, je nach Anwendung und Leistungsfähigkeit.
MehrGrundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
MehrZahlensysteme: Oktal- und Hexadezimalsystem
20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Zahldarstellung und Rundungsfehler Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Überblick 2 Darstellung ganzer Zahlen,
Mehr2 Rechnen auf einem Computer
2 Rechnen auf einem Computer 2.1 Binär, Dezimal und Hexadezimaldarstellung reeller Zahlen Jede positive reelle Zahl r besitzt eine Darstellung der Gestalt r = r n r n 1... r 1 r 0. r 1 r 2... (1) := (
MehrErzeugende Funktionen
Hallo! Erzeugende Funktionen sind ein Mittel um lineare Rekursionen schneller ausrechnen zu können. Es soll die Funktion nicht mehr als Rekursion angeschrieben werden, sondern so, dass man nur n einsetzen
MehrLösung zur Klausur zu Krypographie Sommersemester 2005
Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrWie viel Mathematik kann ein Computer?
Wie viel Mathematik kann ein Computer? Die Grenzen der Berechenbarkeit Dr. Daniel Borchmann 2015-02-05 Wie viel Mathematik kann ein Computer? 2015-02-05 1 / 1 Mathematik und Computer Computer sind schon
MehrMathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens
Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................
MehrEinführung in die Informatik I
Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik
MehrTechnische Informatik - Eine Einführung
Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine
MehrDas Maschinenmodell Datenrepräsentation
Das Maschinenmodell Datenrepräsentation Darstellung von Zahlen/Zeichen in der Maschine Bit (0/1) ist die kleinste Informationseinheit Größere Einheiten durch Zusammenfassen mehrerer Bits, z.b. 8 Bit =
MehrProf. S. Krauter Dezimalbruchdarstellung rationaler Zahlen DezDarst.doc. Über die Darstellung von rationalen Zahlen als Dezimalbrüche.
1 Prof. S. Krauter Dezimalbruchdarstellung rationaler Zahlen DezDarst.doc Über die Darstellung von rationalen Zahlen als Dezimalbrüche. Anmerkung: Die Beschränkung auf die Dezimaldarstellung ist unnötig.
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
Mehr1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:
Zahlensysteme. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis darstellen: n n n n z a a... a a a Dabei sind die Koeffizienten a, a, a,... aus der
MehrBinäre Gleitkommazahlen
Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72
MehrRepräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen
Großübung 1: Zahlensysteme Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Lehrender: Dr. Klaus Richter, Institut für Informatik; E-Mail: richter@informatik.tu-freiberg.de
MehrDifferenzengleichungen. und Polynome
Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung Mit linearen Differenzengleichungen
MehrInformation in einem Computer ist ein
4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.
MehrComputergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik
Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Institut für Computerphysik Universität Stuttgart Wintersemester 2012/13 Wie rechnet ein Computer? Ein Mikroprozessor ist ein Netz von Transistoren,
Mehr21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?
Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
Mehr9.2 Invertierbare Matrizen
34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Mehr1 Vom Problem zum Programm
1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist
MehrNumerisches Programmieren, Übungen
Technische Universität München SoSe 0 Institut für Informatik Prof Dr Thomas Huckle Dipl-Math Jürgen Bräckle Nikola Tchipev, MSc Numerisches Programmieren, Übungen Musterlösung Übungsblatt: Zahlendarstellung,
Mehr2. Negative Dualzahlen darstellen
2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt
Mehr2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen
2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen Ziele dieses Kapitels Kennenlernen wesentlicher Zahlensysteme und die Konvertierung von Zahlen zwischen unterschiedlichen
MehrLogische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.
Logische Verknüpfungen. while-schleifen. Zahlarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen In der letzten Sitzung haben wir kennengelernt, wie wir Zahlen mit Operationen
Mehr4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04
4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten
MehrD A T E N... 1 Daten Micheuz Peter
D A T E N.....! Symbole, Alphabete, Codierung! Universalität binärcodierter Daten! Elementare Datentypen! Speicherung binärcodierter Daten! Befehle und Programme! Form und Bedeutung 1 Daten Micheuz Peter
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrGleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/10. 14.
Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Wintersemester 2009/0 4. Januar 200 Instabilitäten
MehrRechnerstrukturen WS 2012/13
Rechnerstrukturen WS 2012/13 Repräsentation von Daten Repräsentation natürlicher Zahlen (Wiederholung) Repräsentation von Texten Repräsentation ganzer Zahlen Repräsentation rationaler Zahlen Repräsentation
MehrReferat rekursive Mengen vs. rekursiv-aufzählbare Mengen
Kapitel 1: rekursive Mengen 1 rekursive Mengen 1.1 Definition 1.1.1 informal Eine Menge heißt rekursiv oder entscheidbar, wenn ihre charakteristische Funktion berechenbar ist. 1.1.2 formal Eine Menge A
MehrKapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 2 Grundlegende Konzepte 1 2.1 Zahlensysteme Römisches System Grundziffern I 1 erhobener Zeigefinger V 5 Hand mit 5 Fingern X 10 steht für zwei Hände L 50 C 100 Centum heißt Hundert D 500 M 1000
MehrVorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Lösungen Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Kapitel I: Mengen Aufgabe
MehrLeseprobe. Taschenbuch Mikroprozessortechnik. Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN: 978-3-446-42331-2
Leseprobe Taschenbuch Mikroprozessortechnik Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN: 978-3-446-4331- Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-4331-
MehrNumerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
MehrRichtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit.
Fliesskommazahlen Richtig Rechnen // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit. #include int main() { // Input std::cout
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!
Mehr1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14
Zahlensysteme Inhalt: 1 Dualsystem 1 1.1 Dualzahlen mit Vorzeichen 4 2 Hexadezimalsystem 8 2.1 Hexadezimalzahlen mit Vorzeichen 10 3 Oktalsystem 13 4 Zahlenring 14 Definition: Ein polyadisches Zahlensystem
MehrInformationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10
Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754 Berechnung von Gleitkommazahlen aus Dezimalzahlen Die wissenschaftliche Darstellung einer Zahl ist wie folgt definiert: n = f * 10 e. f ist
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...
MehrLineare Abhängigkeit
Lineare Abhängigkeit Vorbemerkung. Es sei X eine Menge. Eine Familie von Elementen von X ist eine Abbildung I X, i x i. I heißt dabei Indexmenge. Man verwendet dabei oft die Schreibweise (x i ) oder (x
MehrWozu wird ein Rechensystem genutzt? Informationsverarbeitung Information. Information. Interpretation, Abstraktion. Repräsentation.
Wozu wird ein Rechensystem genutzt? Wunsch: Informationsverarbeitung Information Repräsentation Daten Informationsverarbeitung Datenverarbeitung Wirklichkeit: Datenverarbeitung Information Daten Interpretation,
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
MehrFehler in numerischen Rechnungen
Kapitel 1 Fehler in numerischen Rechnungen Analyse numerischer Rechnungen: - Welche möglichen Fehler? - Einfluss auf Endergebnis? - Nicht alles in der Comp.Phys./Numerical Analysis dreht sich um Fehler
MehrPrimitive Datentypen und Felder (Arrays)
Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrKapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik
Kapitel 1 Zahlendarstellung Prof. Dr. Dirk W. Hoffmann Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik Zahlensystemkonvertierung Motivation Jede nichtnegative Zahl z lässt
MehrZur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:
Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine
MehrTechnische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt
Technische Grundlagen der Informatik Kapitel 8 Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt Kapitel 8: Themen Zahlensysteme - Dezimal - Binär Vorzeichen und Betrag Zweierkomplement Zahlen
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrBrückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 1 Logik,, Doris Bohnet Universität Hamburg - Department Mathematik Mo 6.10.2008 Zeitplan Tagesablauf: 9:15-11:45 Vorlesung Audimax I 13:00-14:30 Übung Übungsräume
MehrZahlensysteme. Formale Methoden der Informatik WiSe 2010/2011 Folie 1 (von 71)
Zahlensysteme Formale Methoden der Informatik WiSe / Folie (von 7) Teil I: Zahlensysteme. Einführung und Zahlensysteme. Zahlensysteme / Algorithmik. Zahlendarstellung im Rechner. Gleitkommazahlen / Fließpunktzahlen
MehrEinführung in die Programmierung
Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrMathematik 1 für Informatik Inhalt Grundbegrie
Mathematik 1 für Informatik Inhalt Grundbegrie Mengen, speziell Zahlenmengen Aussagenlogik, Beweistechniken Funktionen, Relationen Kombinatorik Abzählverfahren Binomialkoezienten Komplexität von Algorithmen
MehrGrundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme
Grundlagen der Informatik 2 Grundlagen der Digitaltechnik 1. Zahlensysteme Prof. Dr.-Ing. Jürgen Teich Dr.-Ing. Christian Haubelt Lehrstuhl für Hardware-Software Software-Co-Design Grundlagen der Digitaltechnik
MehrKapitel 3. Natürliche Zahlen und vollständige Induktion
Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine
Mehr1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung
1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Algorithmen,
MehrBinärdarstellung von Fliesskommazahlen
Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M
MehrGleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124
Gleitkommaarithmetik Erhöhen der Genauigkeit Grundlagen der Rechnerarchitektur Logik und Arithmetik 124 Guard Bit, Round Bit und Sticky Bit Bei der Darstellung der Addition und Multiplikation haben wir
MehrBrückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 3 Geometrie Doris Bohnet Universität Hamburg - Department Mathematik Mi 8.10.2008 1 Geometrie des Dreiecks 2 Vektoren Länge eines Vektors Skalarprodukt Kreuzprodukt
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrCorinne Schenka Vorkurs Mathematik WiSe 2012/13. Die kleineren Zahlbereiche sind jeweils Teilmengen von größeren Zahlbereichen:
2. Zahlbereiche Besonderheiten und Rechengesetze Die kleineren Zahlbereiche sind jeweils Teilmengen von größeren Zahlbereichen: 2.1. Die natürlichen Zahlen * + besitzt abzählbar unendlich viele Elemente
MehrAusgewählte unentscheidbare Sprachen
Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrMengenlehre. Spezielle Mengen
Mengenlehre Die Mengenlehre ist wie die Logik eine sehr wichtige mathematische Grundlage der Informatik und ist wie wir sehen werden auch eng verbunden mit dieser. Eine Menge ist eine Zusammenfassung von
Mehr