Informatik für Nebenfächler

Größe: px
Ab Seite anzeigen:

Download "Informatik für Nebenfächler"

Transkript

1 Informatik für Nebenfächler Priv.-Doz. Dr. Frank Huch Institut für Informatik, Technische Fakultät, Christian-Albrechts-Universität zu Kiel. Skript zur Vorlesung im Wintersemester 2010/11.

2 Stand vom: 7. Februar 2011 Erstellt durch Jana Bork. Anmerkungen und Korrekturen bitte an Mit freundlichem Dank an Torsten Krause für die Titelseite.

3 Inhaltsverzeichnis 1 Einleitung 4 2 Technische Grundlagen der Informatik Rechnerarchitektur Zahlensysteme und binäre Arithmetik Umwandlung von Dezimalzahlen in Binärzahlen Rechnen mit Binärzahlen Einerkomplement/Stellenkomplement Zweierkomplement Multiplikation von Binärzahlen Brüche (rationale Zahlen) Gleitpunktzahlen (floating point numbers) Grundbegriffe Programmierung Ausdrücke (Erweiterte) Backus-Naur-Form (BNF und EBNF) Termdarstellungen Anweisungen while-schleife: Der Euklidische Algorithmus for-schleife Objektorientierte Programmierung Zeichenketten Abstraktion durch Prozeduren Rekursion Reguläre Ausdrücke Backtracking Objekte und ihre Identität Datenstrukturen und Algorithmen Lese- und Schreibzugriff auf Dateiinhalten Lese- und Schreibzugriff auf Dateiinhalten Internet und HTML Sortieren Minsort Analyse von Algorithmen Abstraktion und Modularisierung

4 1 Einleitung Die Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere die automatische Verarbeitung mit Rechenanlagen (Computer). Ursprünge Mathematik Berechnen von Folgen, Lösung von Gleichungssystemen Elektrotechnik Computer als Weiterentwicklung von Schaltkreisen Nachrichtentechnik Datenübertragung im Rechner oder im www Disziplinen der Informatik Theoretische Informatik Grundlagen, z.b. Komplexitätstheorie, Berechenbarkeit, Graphentheorie Technische Informatik Hardwarenahe Aspekte, z.b. Mikroprozessortechnik, Rechnerarchitekturen, Netzwerksysteme Praktische Informatik Lösen von konkreten Problemen durch Algorithmen/Programme hierbei wichtige Aspekte: Effizienz, Softwaretechnik, Programmiersprachen, Datenbanken 4

5 2 Technische Grundlagen der Informatik Erste Computer wurden von Konrad Zuse 1937 konstruiert: Z1 - mechanisches Rechenwerk - Kontrolleinheit, Speicher, Mikrobefehle, Fließkommaberechnung Erster elektronischer Rechner 1941: Z3 - Trennung von Befehls- und Datenspeicher - Ein- / Ausgabepult Parallel fanden Entwicklungen in Großbritannien und den USA statt. Wichtigster Akteur hierbei: John von Neumann der die prinzipiell heute noch verwendete Von- Neumann-Architektur von Computern entwarf. Zu Beginn der 60er Jahre lösten Transistoren die Röhrentechnik ab, wodurch die Leistungsfähigkeit extrem erhöht wurde. Die Mikroprozessortechnik auf Siliziumbasis ermöglichte dann in den 70er Jahren eine zunehmende Miniaturisierung der Computer. Heutzutage werden Prozessoren nicht nur in herkömmlichen PCs oder Großrechnern eingesetzt, sondern zunehmend als integrierte Schaltkreise in z.b. Waschmaschinen, Aufzügen oder Autos (mehr als 100 Prozessoren möglich), sogenannte eingebettete Systeme. 2.1 Rechnerarchitektur Die meisten Computer basieren auf der Von-Neumann-Architektur, welche in den 40er Jahren entwickelt wurde. Komponenten: - Zentralprozessor (CPU) Steuerwerk: Abarbeitung der Maschinenbefehle Rechenwerk (ALU - Arithmetic Logical Unit) Register: Speichern einzelner Werte - Arbeitsspeicher (beliebige Daten, die unterschiedlich interpretiert werden können) auszuführende Programme in Maschinencode Festwertspeicher (ROM) mit wichtigen Basisroutinen Datenspeicher zur Speicherung von Datenstrukturen einzelner Programme - Bus (Verbindung zwischen Speicher und Prozessor) Datenbus zum Abgleich/Rechnen zwischen Registern/Datenspeicher 5

6 2 Technische Grundlagen der Informatik Adressbus zum Finden eines Wertes im Speicher Steuerbus zum Finden des nächsten auszuführenden Befehls Genereller Aufbau: Weitere Komponenten: Tastatur, Grafik- und Soundkarte, externe Speichermedien In der Regel auch über Bussysteme an Hauptsystem angeschlossen, so dass ebenfalls Werte adressiert und ausgelesen werden können. In der Regel aber nur Adress- und Datenbus, kein Steuerbus. Beachte aber, dass das Bussystem zu Massenspeichermedien in der Regel um ein Vielfaches langsamer ist, als zum Speicher. Zugriff geregelt über das Betriebssystem, so dass unterschiedliche Komponenten gleich angesprochen werden können (Treiber). Grafik- und Soundkarten sind eigentlich wieder eigene Computer z.t. mit Prozessor und Speicher, oder auch in CPU/Mainboard integriert. Weitere Aspekte: - Taktfrequenz (z.b. 200 MHz) gibt an, wie viele Operationen ein Computer pro Sekunde ausführen kann. Allerdings benötigen viele Maschinenbefehle mehrere Schritte. Zur Zeit wenig Verbesserungen wegen physikalischen Grenzen. Moores Law: Verdopplung der Rechenleistung alle Jahre (gilt seit 1940!) Heute Performancesteigerung durch mehrere Prozessorkerne 6

7 2.2 Zahlensysteme und binäre Arithmetik - Cache: Schneller in den Prozessor integrierter Speicher, der Teile des Hauptspeichers spiegelt. Ermöglicht nicht immer Beschleunigung (Betriebssystem, Anwendung) - Multitasking: Mehrere Programme können gleichzeitig auf einem Computer ausgeführt werden. Verteilung der Prozessorzeit durch Scheduler auf BS-Ebene sehr wichtig bei graphischen Benutzeroberflächen - Multicore-Architektur: Mehrere Prozessoren (meist 2 oder 4) können über Bus auf Speicher zugreifen. Ausnutzung für eine Anwendung schwer parallele Algorithmen 2.2 Zahlensysteme und binäre Arithmetik In Digitalrechnern werden eigentlich nur zwei Werte (Ziffern) kodiert: 0 = kein Strom 1 = Strom } Dieser Wert wird auch Bit (binary digit) genannt. Aufbauend hierauf können kompliziertere Werte, wie allgemeine Zahlen, Zeichen oder auch Prozessorbefehle kodiert werden. Das Dezimalsystem (dekadisches Ziffernsystem, natürliche Zahlen): Zahlen des Dezimalsystems können dargestellt werden als n = z k 10 k z z mit Ziffern z i {0, 1,...,9} für 0 i k Beispiel: 1278 = Um eine eindeutige Darstellung zu haben, lässt man führende Nullen in der Regel weg (z k 0) außer z 0 = 0. Betrachtet man nur die Ziffern 0 und 1, so kann man ganz analog Zahlen des binären Ziffernsystems oder Binärsystems definieren: Binärsystem n = z k 2 k z z mit Ziffern z i {0, 1} für 0 i k Beispiel: 330 = ( = = 330) 7

8 2 Technische Grundlagen der Informatik Binärzahlen können natürlich auch kompakt wie Dezimalzahlen notiert werden: 330 dez = bin Um Verwechslungen auszuschließen. Bei Dezimalzahlen meist weggelassen. Neben dem Dezimal- und dem Binärsystem können beliebige weitere n-adische Ziffernsysteme definiert werden. Wichtig ist noch das Hexadezimalsystem (16-adisches Ziffernsystem): Hexadezimalsystem Als Ziffern verwendet man in der Regel {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }. Beispiel: 1278 dez = = 4FE hex ( = = = 1278) NR: 1278 : 16 = 79 R14 = E 79 : 16 = 4 R15 = F 4 : 16 = 0 R 4 = 4 Warum ist dieses Zahlensystem wichtig? Da 16 eine Zweierpotenz ist und damit ein Vielfaches von 2, können Ziffernblöcke des Binärsystems eindeutig auf Hexadezimalziffern abgebildet werden: Binär Hexadezimal Binär Hexadezimal A B C D E F Somit können Binärzahlen sehr einfach in Hexadezimalzahlen umgewandelt werden und umgekehrt. Beispiel: 330 dez = }{{} }{{} 1010 }{{} bin = 14A hex 1 4 A 1278 dez = 4FE hex = }{{} }{{} 1110 }{{} 4 F E bin 8

9 2.2 Zahlensysteme und binäre Arithmetik Umwandlung von Dezimalzahlen in Binärzahlen Beispiel: Also 276 dez = }{{} }{{} bin = 8A hex. 8 A 276 = = = = = 4 = 2 2 Unschön: Man benötigt alle 2er-Potenzen und muss diese schrittweise (beginnend mit der grössten passenden) abziehen. Alternative: Horner-Schema Horner-Schema n = z k 2 k z z = (z k 2 k z ) 2 + z 0 = ((z k 2 k z ) 2 + z 1 ) 2 + z 0 =... = ((...((z k 2 + z k 1 ) 2 + z k 2 ) ) + z 2 ) 2 + z 1 ) 2 + z 0 Als Beispiel können wir schreiben: 330 dez = ((...( ) 2 + 1) 2 + 0) 2 + 0) 2 + 1) 2 + 1) 2 + 1) D.h. um diese 1 zu erhalten müssen wir umgekehrt 8 mal durch 2 dividieren, Der Rest ergibt jeweils die 1 oder die : 2 = 165 R0 165 : 2 = 82 R1 82 : 2 = 41 R0 41 : 2 = 20 R1 20 : 2 = 10 R0 10 : 2 = 5 R0 5 : 2 = 2 R1 2 : 2 = 1 R0 1 : 2 = 0 R1 höchstes Bit Entsprechend können wir auch ins Hexadezimalsystem umrechnen: 330 : 16 = 20 R10 20 : 16 = 1 R4 1 : 16 = 0 R1 Also 14A hex Dieser Algorithmus läßt sich für beliebige n-adische Zahlensysteme verallgemeinern. 9

10 2 Technische Grundlagen der Informatik Rechnen mit Binärzahlen Das Prinzip ist identisch mit dem im Dezimalsystem: Addition: = = = = 10(oder 0 mit 1 Übertrag) Bem.: Für die Stelle entspricht + also dem booleschen XOR und der Übertrag dem AND Dann: 1278 dez bin dez bin 1608 dez }{{} }{{} 1000 }{{} bin hex Probe: 1608 : 16 = 100 R8 100 : 16 = 6 R4 6 : 16 = 0 R6 = 648 hex Subtraktion: 0 0 = = 1 Übertrag = = 0 Dann: 1278 dez bin 330 dez bin 948 dez }{{} }{{} 0100 }{{} bin 3 4 hex = 3B4 hex 11=B Probe: 948 : 16 = 59 R4 59 : 16 = 3 R11 3 : 16 = 0 R3 = 3B4 hex ab hier nur 8 ECTS Das hier vorgestellte Verfahren zur Addition/Subtraktion durchläuft beide Zahlen schrittweise von hinten nach vorne. Im Prozessor wird dies parallelisiert. Hierzu in der Regel Verwendung von Zahlen fester Stelligkeit (früher 8 Bit = 1 Byte, heute eher 16 32, 64 Bit) (Datenwort). =1DOUBLE WORD =1Quadrupelword 10 =1WORD,

11 2.2 Zahlensysteme und binäre Arithmetik Mit 8 Bit können die Zahlen von 0 dez bis 255 dez kodiert werden: 0 dez = bin 128 dez = bin 255 dez = bin Wie können dann auch negative Zahlen dargestellt werden? Erste Idee: verwende erstes Bit als Vorzeichen, also 32 dez = bin 48 dez = bin } bin = 80 dez Dann können negative Zahlen aber leider nicht so einfach addiert werden. Betrachte eine einfache Aufgabe (hier Datenwörter mit 4 Bit): 1 + ( 2) = ( 1) also 0001 bin bin 1011 bin = 3 dez 1 + ( 1) = 0 also 0001 bin bin 1010 bin = 2 dez Es wäre also besser, wenn die negativen Zahlen anders herum sortiert wären: Einerkomplement/Stellenkomplement Also: 7 = = = = = = = = 1111? Beachte: Negative Zahlen durch Inverses der Positiven. kleinste negative Zahl ( 7) = 1000 und größte negative Zahl ( 1) = ( 7) = ( 6) also = 6 dez 1 + ( 2) = ( 1) also = 1 dez 6 + ( 2) = 4 also shift around carry

12 2 Technische Grundlagen der Informatik Beachte: Es kann auch ein Übertrag auftreten Übung 1 + ( 1) = ( 1) aber = 0 Aber nicht D.h. wir haben zwei Darstellungen für die Null, was unschön ist. Lösung: Verschiebe negative Zahlen um eins (Zweierkomplement) Zweierkomplement 7 = = = = = = = = 0000 Beachte: hierdurch wird die 1000 frei und kann als 8 interpretiert werden. Dann: 1 + ( 7) = ( 6) also = 6 dez 1 + ( 1) = 0 also = 0 dez Übertrag wird verworfen Somit kann bei Verwendung des Zweierkomplements die Subtraktion auf die Addition zurückgeführt werden. Beachte: bei Bereichsüberschreitung gibt es einen Überlauf: 6 dez + 6 dez = 12 dez, was mit 4 Bit mit Vorzeichen nicht darstellbar ist: Negieren einer Zahl im Zweierkomplement: = 4 dez Einerkomplement (Inverses) + 1! Gilt in beide Richtungen: Allgemein gilt: mit n Stellen können mit dem Zahlen 2 n 1 bis 2 n 1 1 dargestellt werden. { + + Beachte, dass dieses Verfahren auch in anderen Zahlensystemen funktioniert: Beispiel: 493 hat das Stellenkomplement = 506 (Datenwort von 3 Dezimalziffern). Das Zehnerkomplement ergibt sich dann als =

13 2.2 Zahlensysteme und binäre Arithmetik Aufgabe: = ( 493) = 108 Rechnung mit Zehnerkomplement: Beachte: , also negativ. Das Ergebnis 108 hat das Stellenkomplement = 891. Also im Zehnerkomplement = 892 Oder anders herum: = 108, also 892 = 108. Übung: Umwandlung Zweierkomplement/Zehnerkomplement in wirkliche negative Zahl. Stellenkomplement bis hier nur 8 ECTS Multiplikation von Binärzahlen Beispiel: Implementierbar durch schrittweises Addieren und Shiften ( = Verdoppeln). Im Beispiel: shift shift shift Division auch einfach möglich: 13

14 2 Technische Grundlagen der Informatik : = Bem: Das kleine 1 1 ist hier sehr übersichtlich: 0 0 = = = = 1 ab hier nur 8 ECTS Brüche (rationale Zahlen) Häufig verwendet man zum Rechnen Dezimalbrüche (z.b. 1, 56 oder 2, 3462). Diese können nach dem gleichen Schema wie bisher in andere Zahlensysteme übertragen werden. Beispiel: 0, 6875 dez = = 0, 1011 bin Berechnung mit Horner-Schema: 0, = 1, ,375 2 = 0,75 0 0,75 2 = 1,5 1 0,5 2 = 1,0 1 Bem: 0, = 11 dez 11 dez = B (kein Rest!) = ( ) : = (( ) : ) = (((1 2 4 ) : ) : ) : , 01 = = (1 2 1 ) : , 011 = = ( ) : = ((1 2 1 ) : ) :

15 2.2 Zahlensysteme und binäre Arithmetik Nachteil dieser Darstellung: 0,2 dez 2 = 0, 4 0 0, 4 2 = 0, 8 0 0, 8 2 = 1, 6 1 0, 6 2 = 1, 2 1 0,2 0, 2 dez = 0, 0011 D.h. endliche Dezimalbrüche werden als Binärbruch periodisch. Weiteres Problem, wie kann man Binärbrüche in feste Datenwortgröße packen? Lösung: Gleitpunktzahlen (floating point numbers) Gleitpunktzahlen (floating point numbers) Idee: Man beschränkt sich auf Zahlen einer bestimmten Genauigkeit, d.h. unterscheidbarer Stellen. Beispiel: Genauigkeit vier Stellen: , , Beachte: alle Zahlen könnten auch Zahlen einer größeren Genauigkeit sein. Für eine klarere Darstellung der Genauigkeit schreibt man besser: oder 0, , , , Analog für Binärzahlen (Float, 4 Byte) Lichtgeschwindigkeit e = 2, m/s = 2, e8m/s Beachte: Durch Rechnen mit Genauigkeit können Rundungsfehler auftreten 15

16 2 Technische Grundlagen der Informatik Beispiel: = = Somit Floats niemals auf Gleichheit, Ungleichheit testen! Wofür werden im Rechner alles Zahlen verwendet? - Zum Rechnen: positive Zahlen fester Stelligkeit ganze Zahlen fester Stelligkeit (Zweierkomplement) Floating Point Zahlen (als Näherung für rationale Zahlen) - Als Adressen: positive Zahlen Speicherplätze sind durchnummeriert von bis maximal Bei 32 Bit-Architekturen also maximal Speicherzellen 4, 3 Milliarden Bytes = 4 GigaByte (GB) - Als Maschinencode: z.b. Sprung- oder Ladebefehle. bis hier nur 8 ECTS Grundbegriffe Algorithmus ist die Beschreibung einer Vorgehensweise zur Lösung von Problemen. Beispiele Kochrezept, Berechnung der Quadratwurzel, Dekodierung von DNA-Sequenzen, Berechnung von π, Verwaltungsvorschriften Beachte dabei: - in der Regel löst ein Algorithmus eine Klasse von Problemen (d.h. er ist parameterisiert), z.b. Quadratwurzel für beliebige Zahlen, Verwaltungsvorschrift für Hausbau. Parameter legt konkretes Problem der Klasse fest. - die Vorgehensweise kann unterschiedlich detailliert formuliert werden, z.b. beim Kochrezept: Eiweiß steif schlagen oder Schüssel holen, Eiweiß und Eigelb trennen, Schneebesen nehmen,... Es ist eine Kunst den richtigen Grad an Genauigkeit zu finden. Wichtig hierbei: von Details abstrahieren. Abstraktion ist eines der wichtigsten Konzepte der Informatik. Beispiel Zählen von Weizenkörnern (alle gleich schwer), Apothekerwaage (ohne Gewichte), Papier, Bleistift Algorithmus - Teile Körner in zwei gleichschwere Haufen - Ist dies nicht möglich lege ein Korn zur Seite. Danach kannst Du sie aufteilen. { 1, falls du ein Korn zur Seite gelegt hast - Beschrifte den Zettel nach und nach wie folgt: 0, sonst 16

17 2.2 Zahlensysteme und binäre Arithmetik - Wenn kein Korn mehr übrig ist, drehe die Zahl auf dem Zettel um und lies das Ergebnis als Binärzahl ab. Ggf. kannst du diese Zahl mit Horner-Schema in eine Dezimalzahl wandeln - sonst verfahre mit einem der beiden Haufen wie zuvor. Beispiel 13 : 2 = 6 R 1 6 : 2 = 3 R 0 3 : 2 = 1 R 1 1 : 2 = 0 R b = 13d Algorithmen werden in der Informatik häufig mit Hilfe von Programmiersprachen programmiert, so dass sie auf Rechnern/Computern ausgeführt werden können. Hierbei ist zunächst keine Abstraktion mehr möglich. Ein Programm muss so konkret sein, dass ein Prozessor (winziger Befehlssatz) den Algorithmus ausführen kann. Programmierung zunächst nur in Maschinensprache. Feste Abstraktionen der höheren Programmiersprachen ermöglichen elegantere Programmierung auf abstrakterem Niveau. (In dieser Vorlesung werden wir die Sprache Ruby kennenlernen.) Weitere Abstraktion durch Programmiertechniken (Softwaretechnik) möglich. Programmierung ist heute die Kunst ein Problem und seine Lösung in Teile zu zerlegen, so dass sich ein kompositionelles System ergibt, welches leicht zu verstehen, zu ändern und zu konfigurieren ist. Programmiersprachen ermöglichen die Kommunikation mit dem Rechner auf möglichst natürliche Weise. Programme werden entweder mit Hilfe eines Compilers in Maschinensprache übersetzt (z.b. C) oder durch ein spezielles Programm (Interpreter) interpretiert (z.b. Ruby). Mischformen sind ebenfalls möglich. Bei der Programmierung unterscheidet man drei Bereiche: - Syntax beschreibt die zulässigen Zeichenfolgen der Programme - Semantik beschreibt, wie die Programme ausgeführt werden, also die Bedeutung der Sprachkonstrukte - Pragmatik beschreibt die Idee, wie die Programmiersprache verwendet werden soll (viele Wege führen nach Rom, aber welche sind gut). Hier spielt auch das Programmieren als Kunst hinein. Beachte, dass bisher wenig über die Effizienz von Programmen gesagt wurde. Diese ist in der Regel unwichtig! Wenige Ausnahmen: zeitkritische Algorithmen Wichtiger meist: Verständlichkeit, Wartbarkeit, Entwicklungszeit 17

18 3 Programmierung Algorithmus: abstrakte Beschreibung zur Lösung von Problemen Die meisten Algorithmen können automatisch durch Computer ausgeführt werden. Hierzu muss der Algorithmus in einer konkreten Programmiersprache implementiert werden. Zunächst wollen wir ein paar grundlegende Konzepte kennenlernen, die in vielen Programmiersprachen verwendet werden. 3.1 Ausdrücke Aus der Mathematik kennt man Ausdrücke Woraus bestehen Ausdrücke? Basiselemente: - Werte (Konstanten) z.b. 3, 4 N oder π R x 2 + 2x + 1 (x + 1) 2 - Variablen z.b. x, y repräsentieren beliebige Werte und können später mit konkreten Werten belegt werden. Zusammengesetzte Ausdrücke erhält man durch die Anwendung von Funktionen, z.b. +,, ( in der Informatik) auf bereits gebildete Ausdrücke. Diese Funktionen (auch Operatoren genannt) sind zweistellig und verknüpfen zwei Ausdrücke zu einem neuen Ausdruck: Was ist aber mit x 2 +1 x? Auch hier finden wir mehrere Funktionsanwendungen, die aber ungewöhnlich notiert werden. Der Computer (die Programmiersprache) erwartet genormte Darstellung solcher Ausdrücke, deshalb x 2 statt x 2 sqrt(x) statt x a a/b statt b somit können wir x 2 +1 x schreiben als: sqrt(x 2 + 1)/x 18

19 3.1 Ausdrücke Vergleiche dies mit sqrt(x (2 + 1))/x Gibt es einen Unterschied? Ja, da die Funktion stärker bindet als +. Legt man also Präzedenzen (z.b. Punktvor-Strich-Rechnung: und / binden stärker als + und!) für die Funktionen fest, kann man auf Klammern verzichten. Wenn man solche man Klammern wegläßt, werden durch den Computer (z.b. in der Programmiersprache oder Tabellenkalkulation) in der Regel die fehlenden Klammern hinzugefügt. Die vollständig geklammerte Schreibweise für unseren Ausdruck wäre also: (sqrt(((x 2) + 1))/x) Als nächstes wollen wir einen Formalismus kennen lernen, mit welchen Sprachen formal beschrieben werden können und welchen wir im weiteren Verlauf der Vorlesung verwenden werden um die Syntax unserer Programmiersprache Ruby zu verstehen (Erweiterte) Backus-Naur-Form (BNF und EBNF) Wir unterscheiden Nichtterminalsymbole (beginnen mit Großbuchstaben) und Terminalsymbole (Zeichen in ). Nichtterminalsymbole stellen keine Elemente der zu definierenden Sprache dar. Vielemehr sind sie Strukturelemente, welche weiter verfeinert und letzendlich zu einer Folge von Terminalsymbolen abgeleitet werden müssen. Die BNF für vollständig geklammerte Ausdrücke Exp sieht wie folgt aus: Exp ::= V ar V al ( Exp Op Exp ) Fun ( Exps ) Exps ::= Exp Exp, Exps Op ::= + / Fun ::= sqrt V al ::= Num if then else Num Num ::= Digit Digit Num Digit ::= V ar ::= x y z Aus einer BNF kann man gültige Wörter schrittweise ableiten. Hierbei beginnt man mit dem Nichtterminalsymbol, aus dem man ein Wort ableiten möchte. Wir wollen zeigen, dass obiges Wort ein vollständig geklammeter Ausdruck ist, d.h. wir beginnen mit Exp. In jedem Ableitungsschritt darf nun ein Nichtterminalsymbol durch eine seiner rechten Seiten ersetzt werden. Kommen keine Nichtterminalsymbole mehr vor, hat man ein 19

20 3 Programmierung gültiges Wort der beschriebenen Sprache abgeleitet: Exp (Exp Op Exp) (Exp / Exp) (Exp / V ar) (Exp / x) (Fun(Exps) / x) (Fun(Exp) / x) (sqrt(exp)/x) (sqrt((expopexp))/x) (sqrt((exp + Exp))/x) (sqrt((exp + V al))/x) (sqrt((exp + Num))/x) (sqrt((exp + Digit))/x) (sqrt((exp + 1))/x) (sqrt(((expopexp) + 1))/x) (sqrt(((v aropexp) + 1))/x) (sqrt(((xopexp) + 1))/x) (sqrt(((x Exp) + 1))/x) (sqrt(((x V al) + 1))/x) (sqrt(((x Num) + 1))/x) (sqrt(((x Digit) + 1))/x) (sqrt(((x 2) + 1))/x) oder als Ableitungsbaum (hier für EBNF): Hierbei treten einige Dinge immer wieder auf und es wurden spezielle Notationen als Vereinfachung definiert (EBNF): optionales Vorkommen eines Wertes: [e] Dann für unsere Definition von Audrücken: V al ::= [ ] Num V ar Optionale Wiederholung {e}, d.h.e kann 0-mal, 1-mal, 2-mal,...vorkommen. Außerdem besteht noch die Möglichkeit die Alternative ( ) auch in Gruppierungen zu verwenden. Ein Beispiel hierzu ist mit abd und acd aus S ableitbar. S ::= a ( b c ) d 20

21 3.1 Ausdrücke Mit diesen Abkürzungen können wir unsere BNF an einigen Stellen kompakter hinschreiben: Exp ::= V ar V al ( Exp Op Exp ) Fun ( Exp {, Exp } ) Num ::= Digit { Digit } ab hier nur 8 ECTS Stellt diese Erweiterung eine echte Erweiterung dar, d.h. können Sprachen/Eigenschaften beschrieben werden, welche vorher nicht möglich waren? Nein, denn jede EBNF kann in eine BNF übersetzt werden, welche die gleiche Sprache beschreibt. Gehe hierzu wie folgt vor: Falls es eine Regel gibt mit N ::= α [ β ] γ Dann ersetze diese durch Falls es eine Regel gibt mit Dann ersetze diese durch N ::= α γ α β γ N ::= α { β } γ N ::= α M γ M ::= β M ε, wobei M ein neues Nichtterminalsymbol der EBNF ist, also noch nicht in der aktuellen EBNF verwendet worden sein darf Termdarstellungen Wie verfährt der Compiler nun weiter mit dem Ableitungsbaum? Er wird weiter vereinfacht zu einem Term-Baum. Hierbei steht die Funktion bzw. der Operator jeweils oberhalb seiner Argumente. Nichtterminalsymbole kommen nicht mehr vor: Bsp.: 3 + sqrt(x 2 + 1) 21

22 3 Programmierung Räpresentiert exakt die Termstruktur, aber enthält nicht die Informationen aus der (E)BNF. Beachte: Es kommen keine Klammern mehr vor! Termstruktur = Baumstruktur (Klammerung) Gibt es noch andere Darstellungen für Terme? Bisher: f(g(x, y), 3) und Infixoperatoren (3 + 4). Ist die Stelligkeit aller Funktionen bekannt, ist es auch möglich die Klammern und Kommata wegzulassen. Als schreibweise dafür, dass eine Funktion f n ARgumente erwartet, also n-stellig ist verwenden wir: f/n. Man erhält die klammerfreie Präfixnotation: f g x y 3 mitf/2, g/ x = +(3, (4, x)) = (3 + (4 x)) +sqrt x 1 / 4 2 = (+(sqrt(x), 1), /(4, 2)) = (sqrt(x) + 1) (4/2) Entsprechend gibt es auch die klammerfreie Postfixnotation, bei der alle Funktionsanwendungen nach den Argumenten folgen: Wozu sind diese Termdarstellungen gut? x y g 3 f 3 4 x + x sqrt / Insbesondere die Postfixnotation kann gut zur automatischen Auswertung des Ausdrucks verwendet werden. Man verwendet hierzu eine sogenannte Stackmaschine. Ein Stack (oder Keller, Stapelspeicher) ist eine Struktur, in der beliebig viele Werte abgelegt und wieder herausgenommen werden können. Die Werte liegen hierbei übereinander, so dass immer nur oben auf die Werte zugegriffen werden kann. Operationen: push v, schiebt v auf den Stack pop, holt oberstes Element vom Stack Bsp.: push 3, push 4, pop, push 7, pop, pop 22

23 3.1 Ausdrücke Es werden also der Reihe nach die Werte 4,7 und 3 mittels vom Stack gepopt. Im folgenden werden wir Stacks auch horizontal notieren. Wichtig ist aber die Beachtung des LIFO-Prinzips (last-in-first-out) Einschub Es gibt auch das FIFO-Prinzip (f irst-in-f irst-out). Diese Struktur nennt man Queue (oder Schlange). Bei obigem Beispiel ergäbe sich: Also die Werte: 3, 4, 7 Später mehr zu Queues. Wie kann nun der Stack in der Stackmaschine verwendet werden, um den Wert eines Ausdrucks zu berechnen? Hierzu verwendet man am besten die Postfixnotation: Bsp.: (3 + 4) sqrt(2 2) Postfix: sqrt Startkonfiguration: leerer Keller ε sqrt sqrt sqrt sqrt sqrt sqrt 7 4 sqrt Ergebnis տ leere Eingabe Allgemein lässt sich dies mit folgenden Regeln beschreiben: Eine Konfiguration der Stackmaschine besteht aus einem Stack S und einer Eingabe p (einem Teil eines Postfixausdrucks). 23

24 3 Programmierung Die Startkonfiguration besteht aus einem leeren Stack und dem auszuwertenden Term in Postfixnotation p 0 : leerer Stack ց initialer, zu berechnender Term in Postfixnotation ւ ε p 0 Die Konfigurationsübergänge sind wie folgt definiert: S v p mit v ein Wert (z.b. Zahl, true, false) S v p S v 1...v n f p mit f eine n-stellige Funktion und f die Semantik von f S f(v 1...v n ) p Die Endkonfiguration hat die Form: v nur ein! Element auf Stack Das Ergebnis der Auswertung ist v leere Eingabe (Term komplett abgearbeitet) Weiteres Bsp.: i f x>0 then x+1 e l s e x 1 end +1 Term-Baum: Postfix-Notation: x 0 > x 1 + x 1 if then else 1 + Wir betrachten die Belegung: x = 40 24

25 3.1 Ausdrücke Auswertung mit Stack-Maschine: 40 0 > if then else > if then else > if then else 1 + true if then else 1 + true if then else 1 + true if then else 1 + true if then else true if then else 1 + true if then else Beachte im Vergleich die Auswertung als Term: if 40 > 0 then else 40 1 end + 1 if true then else 40 1 end + 1 (40 + 1) Die Berechnung von 40 1 wurde gespart. Das if then else kann auch schon ausgewertet werden, bevor das zweite und dritte Argument ausgewertet wurden, man sagt if then else ist nicht strikt im 2. und 3. Argument. Im Gegensatz zu z.b. +, welches strikt im 1. und 2. Argument ist. if then else ist auch strikt im 1. Argument. Da if then else entweder das zweite oder das dritte Argument liefert ist es sinnvoll, diese vor der if then else-auswertung nicht zu berechnen. Hierzu sind kompliziertere Stack-Maschinen notwendig Informatik-Studium Es können so auch Fehler verhindert werden: if b == 0 then 0 else a/b end verhindert Division durch Null und liefert in diesem Fall das Ergebnis 0. bis hier nur 8 ECTS Nachdem wir nun gesehen haben, wie Ausdrücke formal definiert werden können, wollen wir uns nun die Verwendung von Ausdrücken zur Programmierung von Algorithmen genauer anschauen: Zur Beschreibung der korrekten Syntax von formalen Sprachen verwendet man in der Informatik Syntaxdiagramme, welche wir am Beispiel der Ausdrücke betrachten: 25

26 3 Programmierung Betrachte folgendes Problem: Gegeben: Radius r Aufgabe: Bestimme die Fläche eines Kreises mit Radius r Ausdruck: π ( r 2 ) Wie kann dieser Ausdruck nun für konkrete Radien ausgewertet werden? Bei gegebener Belegung von r können wir im Ausdruck r durch die Belegung ersetzen und dann ausrechnen: Bsp: r 4 dann ergibt sich π (4 2) = π 16 50, 264 r 1 dann π (1 2) = π 1 3, In Ruby können wir diese Funktion wie folgt definieren: def flaeche ( r ) return (3.14 ( r 2)) end wobei def, return und end in Ruby Schlüsselworter für die Funktionsdefinition sind. Dann können wir beispielsweise folgende Anwendungen der Funktion flaeche berechnen: flaeche(1) return(3.14 (1 2)) return(3.14) Hierbei wir im ersten Schritt jedes Vorkommen des Parameters r durch 1 ersetzt. Im zweiten Schritt wird der Term dann unter Berücksichtigung der Semantik der vordefinierten Funktionen ausgerechnet. Nun betrachten wir folgendes Problem: Gegeben: Zwei Zahlen x und y Aufgabe: Bestimme das Maximum von x und y Diese Aufgabe können wir mit den bisherigen Funktionen nicht lösen. Wir benötigen neue Funktionen: Erste Möglichkeit max als genau die gesuchte Funktion, aber das geht so natürlich nicht immer. Alternative: Entwicklung des folgenden Algorithmus: Vergleiche x mit y Falls x < y ist, dann ist y das Maximum Sonst ist x das Maximum. Welche neuen Funktionen benötigen wir hierfür? Zunächst den Vergleich <, aber was ist das Ergebnis von x < y? Eine Möglichkeit: (So z.b. in C) 0 für nicht kleiner 1 für kleiner Bessere Lösung: spezielle boolesche Werte: false für nicht kleiner und true für kleiner 26

Informatik für Nebenfächler

Informatik für Nebenfächler Informatik für Nebenfächler Priv.-Doz. Dr. Frank Huch Institut für Informatik, Technische Fakultät, Christian-Albrechts-Universität zu Kiel. Skript zur Vorlesung im Wintersemester 2011/12. Stand vom: 10.

Mehr

Zahlensysteme Seite -1- Zahlensysteme

Zahlensysteme Seite -1- Zahlensysteme Zahlensysteme Seite -- Zahlensysteme Inhaltsverzeichnis Dezimalsystem... Binärsystem... Umrechnen Bin Dez...2 Umrechnung Dez Bin...2 Rechnen im Binärsystem Addition...3 Die negativen ganzen Zahlen im Binärsystem...4

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. 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

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

21.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

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 15.11.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Review / Organisatorisches o Probleme bei Foliendownload?

Mehr

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren: Daten und ihre Codierung Seite: 1 Zur Universalität der Informatik Gott ist ein Informatiker Die Grundordnung der Welt läßt sich mathematisch formulieren: Naturgesetze, wie wir sie in der Physik, Chemie

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

1. 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

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Einführung in die Informatik I

Einfü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

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: 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,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität Carolo Wilhelmina zu Brauschweig Institut für rechnergestützte Modellierung im Bauingenierwesen Prof. Dr.-Ing. habil. Manfred Krafczyk Pockelsstraße 3, 38106 Braunschweig http://www.irmb.tu-bs.de

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch 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

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

1. 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,

Mehr

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 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

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.

Logische 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

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Technische Informatik - Eine Einführung

Technische 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

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Daten, Informationen, Kodierung. Binärkodierung

Daten, Informationen, Kodierung. Binärkodierung Binärkodierung Besondere Bedeutung der Binärkodierung in der Informatik Abbildung auf Alphabet mit zwei Zeichen, in der Regel B = {0, 1} Entspricht den zwei möglichen Schaltzuständen in der Elektronik:

Mehr

Information in einem Computer ist ein

Information 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.

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Computergrundlagen 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,

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5 Personal Computer in Betrieb nehmen 1/6 Weltweit setzen die Menschen alltäglich das Zehnersystem für Zählen und Rechnen ein. Die ursprüngliche Orientierung stammt vom Zählen mit unseren 10 Fingern. Für

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Numerische Datentypen. Simon Weidmann

Numerische 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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester 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.

Mehr

2 Darstellung von Zahlen und Zeichen

2 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

Mehr

4. Digitale Datendarstellung

4. Digitale Datendarstellung 4 Digitale Datendarstellung Daten und Codierung Textcodierung Codierung natürlicher Zahlen - Stellenwertsysteme - Konvertierung - Elementare Rechenoperationen Codierung ganzer Zahlen - Komplementdarstellung

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Zahlensysteme. von Christian Bartl

Zahlensysteme. von Christian Bartl von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Umrechnungen... 3 2.1. Dezimalsystem Binärsystem... 3 2.2. Binärsystem Dezimalsystem... 3 2.3. Binärsystem Hexadezimalsystem... 3 2.4.

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Technische Informatik I

Technische 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,

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Reprä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

Mehr

Leitung 1 Leitung 2 0 0 0 1 1 0 1 1

Leitung 1 Leitung 2 0 0 0 1 1 0 1 1 1 1 Vorbetrachtungen Wie könnte eine Codierung von Zeichen im Computer realisiert werden? Der Computer arbeitet mit elektrischem Strom, d. h. er kann lediglich zwischen den beiden Zuständen Strom an und

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Binärsystem Im Original veränderbare Word-Dateien Prinzipien der Datenverarbeitung Wie du weißt, führen wir normalerweise Berechnungen mit dem Dezimalsystem durch. Das Dezimalsystem verwendet die Grundzahl

Mehr

Mathematische 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 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............................

Mehr

Ein bisschen Theorie Dezimal, hexadezimal, oktal und binär.

Ein bisschen Theorie Dezimal, hexadezimal, oktal und binär. Seite 1 von 9 Ein bisschen Theorie Dezimal, hexadezimal, oktal und binär. Wenn man als Neuling in die Digitalelektronik einsteigt, wird man am Anfang vielleicht etwas unsicher, da man viele Bezeichnungen

Mehr

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert Binäre Repräsentation von Information Bits und Bytes Binärzahlen ASCII Ganze Zahlen Rationale Zahlen Gleitkommazahlen Motivation Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

D A T E N... 1 Daten Micheuz Peter

D 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

Mehr

Binär- und Hexadezimal-Zahl Arithmetik.

Binär- und Hexadezimal-Zahl Arithmetik. Binär- und Hexadezimal-Zahl Arithmetik. Prof. Dr. Dörte Haftendorn, MuPAD 4, http://haftendorn.uni-lueneburg.de Aug.06 Automatische Übersetzung aus MuPAD 3.11, 24.04.02 Version vom 12.10.05 Web: http://haftendorn.uni-lueneburg.de

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Das Maschinenmodell Datenrepräsentation

Das 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 =

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Leseprobe. 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-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-

Mehr

Einstieg in die Informatik mit Java

Einstieg 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,

Mehr

Primitive Datentypen

Primitive 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.

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring www.leichsenring-homepage.de

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring www.leichsenring-homepage.de BSZ für Elektrotechnik Dresden Zahlenformate Dr.-Ing. Uwe Heiner Leichsenring www.leichsenring-homepage.de Gliederung 1 Überblick 2 Grundaufbau der Zahlensysteme 2.1 Dezimalzahlen 2.2 Binärzahlen = Dualzahlen

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

DIGITALTECHNIK 02 ZAHLENSYSTEME

DIGITALTECHNIK 02 ZAHLENSYSTEME Seite 1 von 15 DIGITALTECHNIK 02 ZAHLENSYSTEME Inhalt Seite 2 von 15 1 ALLGEMEINES ZU ZAHLENSYSTEMEN... 3 1.1 ZAHLENSYSTEME... 3 1.2 KENNZEICHEN VON ZAHLENSYSTEMEN... 4 1.3 BILDUNGSGESETZE... 4 1.4 STELLENWERTSYSTEM...

Mehr

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Helmar Burkhart Departement Informatik Universität Basel Helmar.Burkhart@unibas.ch Helmar Burkhart Werkzeuge der Informatik Lektion 1:

Mehr

1 Vom Problem zum Programm

1 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

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Programmierung mit NQC: Kommunikation zwischen zwei RCX Programmierung mit NQC: Kommunikation zwischen zwei RCX Teil : Grundlagen Martin Schmidt 7. Februar 24 Teil : Grundlagen Zahlensysteme : Binärsystem Ziffern: und Bit = binary digit (Binärziffer) Einfach

Mehr

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Themen heute Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Besprechung des 3. Übungsblattes Aufgabe 3 Speicherplätze für Mikrocode-Anweisungen

Mehr

Darstellung von Informationen

Darstellung von Informationen Darstellung von Informationen Bit, Byte, Speicherzelle und rbeitsspeicher Boolesche Operationen, Gatter, Schaltkreis Bit Speicher (Flipflop) Binär- Hexadezimal und Dezimalzahlensystem, Umrechnungen Zweierkomplement

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Fehler in numerischen Rechnungen

Fehler 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

Mehr

Lösung 1. Übungsblatt

Lösung 1. Übungsblatt Fakultät Informatik, Technische Informatik, Professur für Mikrorechner Lösung 1. Übungsblatt Konvertierung von Zahlendarstellungen verschiedener Alphabete und Darstellung negativer Zahlen Stoffverteilung

Mehr

OO Programmierung in Java

OO Programmierung in Java OO Programmierung in Java Einführung WS 212/213 Prof. Dr. Margarita Esponda M. Esponda-Argüero 1 Homepage Homepage http://www.esponda.de/ws_12_13/jbk Vorlesungsfolien Literaturliste Übungen Zusätzliches

Mehr

Teilbarkeit von natürlichen Zahlen

Teilbarkeit von natürlichen Zahlen Teilbarkeit von natürlichen Zahlen Teilbarkeitsregeln: Die Teilbarkeitsregeln beruhen alle darauf, dass man von einer Zahl einen grossen Teil wegschneiden kann, von dem man weiss, dass er sicher durch

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

3 Berechnungen und Variablen

3 Berechnungen und Variablen 3 Berechnungen und Variablen Du hast Python installiert und weißt, wie man die Python-Shell startet. Jetzt kannst Du etwas damit machen. Wir fangen mit ein paar einfachen Berechnungen an und wenden uns

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. Zahlensysteme Definition: Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. In der Informatik spricht man auch von Stellenwertsystem,

Mehr

Binäre Gleitkommazahlen

Binä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

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten

Mehr

Werkstatt Multiplikation Posten: 8-Bit Multiplikation. Informationsblatt für die Lehrkraft. 8-Bit Multiplikation

Werkstatt Multiplikation Posten: 8-Bit Multiplikation. Informationsblatt für die Lehrkraft. 8-Bit Multiplikation Informationsblatt für die Lehrkraft 8-Bit Multiplikation Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: 8-Bit Multiplikation (im Binärsystem) Mittelschule, technische

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

Binärdarstellung von Fliesskommazahlen

Binä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

Mehr

N Bit binäre Zahlen (signed)

N Bit binäre Zahlen (signed) N Bit binäre Zahlen (signed) n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl 0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101

Mehr

TEAM GENESYS. Wie arbeitet ein PC? Sein Aufbau und die Verarbeitung von Zahlen. Intel Leibnitz Challenge 08. Aufgabe

TEAM GENESYS. Wie arbeitet ein PC? Sein Aufbau und die Verarbeitung von Zahlen. Intel Leibnitz Challenge 08. Aufgabe TEAM GENESYS Aufgabe Intel Leibnitz Challenge 08 Wie arbeitet ein PC? Sein Aufbau und die Verarbeitung von Zahlen Inhalt INHALT... AUFGABE A: EVA-PRINZIP... 3 A) Beschreibung des EVA-Prinzips... 3 A) Beispiele

Mehr

Daten verarbeiten. Binärzahlen

Daten verarbeiten. Binärzahlen Daten verarbeiten Binärzahlen In Digitalrechnern werden (fast) ausschließlich nur Binärzahlen eingesetzt. Das Binärzahlensystem ist das Stellenwertsystem mit der geringsten Anzahl von Ziffern. Es kennt

Mehr