Mathematisches Praktikum - SoSe 2014

Größe: px
Ab Seite anzeigen:

Download "Mathematisches Praktikum - SoSe 2014"

Transkript

1 Mathematisches Praktikum - SoSe 2014 Prof. Dr. Wolfgang Dahmen Felix Gruber, M. Sc., Christian Löbbert, M. Sc., Yuanjun Zhang, M. Sc., Klaus Kaiser, M. Sc. Zusatzaufgabe 2 für Informatiker Bearbeitungszeit: zwei Wochen (bis Freitag, den 23. Mai 2014) Mathematischer Hintergrund: Boolesche Logik, Quine-McCluskey-Algorithmus Elemente von C ++ : Klassen, STL-Container Boolesche Funktionen spielen eine wichtige Rolle in vielen Bereichen der Mathematik und Informatik. Ein solcher Anwendungsbereich ist z. B. der Entwurf von Schaltkreisen, indem mithilfe von Transistoren die logischen Grundbausteine Und, Oder und Negation konstruiert werden, aus denen dann komplexere Schaltungen erstellt werden können. Diese Schaltungen lassen sich dann als Boolesche Funktionen auffassen. Beim Entwurf von logischen Schaltungen ist man daran interessiert, möglichst wenige Bauteile zu verwenden, um die Produktionskosten gering zu halten und um eine schnellere Auswertung des implementierten logischen Ausdrucks zu ermöglichen. Boolesche Funktionen mit bis zu vier Variablen lassen sich noch leicht per Hand über Karnaugh-Diagramme minimieren. Für logische Ausdrücke in vielen Variablen bietet sich hingegen der Algorithmus von Quine-McCluskey an, welcher im Folgenden vorgestellt wird. Aufgabenstellung Implementieren Sie den Algorithmus von Quine-McCluskey, um zu einer gegebenen Wahrheitstabelle eine äquivalente Boolesche Funktion mit kürzestmöglicher Sum-of-Products-Darstellung zu finden. Greifen Sie dazu auf die Standardcontainer aus der Standard Template Library (STL) zurück. Boolesche Funktionen Es sei F 2 := ({0, 1}, +,, ) die Boolesche Algebra mit den Verknüpfungen Oder +, Und, sowie Negation, welche über die Wahrheitstabellen in Tabelle 1 definiert sind. Dabei schreiben wir für die Negation statt x auch häufig x Tabelle 1: Die drei Booleschen Verknüfungen Oder (+), Und ( ) und Negation ( ). Eine Abbildung f : F n 2 F 2 heißt Boolesche Funkktion. Tupel der Form i = (i 1,..., i n ) F n 2 auch Indices. Ein Index i F n 2 so, dass f(i 1,..., i n ) = 1, heißt einschlägiger Index von f. Für einen gegebenen Index i F n 2, sei xi k k definiert als x i k k := { x k falls i k = 1, x k falls i k = 0. nennen wir 1

2 Dann nennen wir die Funktion m i : F n 2 F 2, m i (x) = den i-ten Minterm von f. Damit lässt sich f jetzt eindeutig in der disjunktiven Normalform (DNF) f(x) = i I m i (x) n k=1 x i k k darstellen, wobei I {0,..., 2 n 1} die Menge der einschlägigen Indices von f bezeichnet. Nun ist die disjunktive Normalform häufig recht lang und damit zeitaufwändig in der Auswertung. Deshalb würden wir gerne f in einer möglichst kurzen disjunktiven Form mit möglicherweise kürzeren Produkten f(x) = k M i (x), k 1 i=1 M i (x) = l i j=1 x α j i j, l i 1 darstellen. Der Algorithmus von Quine-McCluskey Um eine solche kürzest-mögliche disjunktive Form für eine gegebene Boolesche Funktion f zu finden, können wir den Algorithmus von Quine-McCluskey benutzen. Dieser Algorithmus wurde erstmals 1952 von W. V. Quine veröffentlicht und 1956 von E. J. McCluskey [2] verbessert. Für den Algorithmus von Quine-McCluskey benötigen wir die folgenden Definitionen: Ein Term M heißt Implikant der Funktion f : F n 2 F 2, wenn M(x) = 1 f(x) = 1 x F n 2. Insbesondere ist jeder Minterm zu einem einschlägigen Index von f ein Implikant von f. Falls durch keine Streichung von Variablen aus M mehr ein kürzerer Implikant von f entsteht, nennen wir M Primimplikant von f. Damit lässt sich der Algorithmus von Quine-McCluskey grob in zwei Schritte unterteilen, die wir in den folgenden Abschnitten vorstellen werden: a.) Finde alle Primimplikanten von f. b.) Wähle Primimplikanten aus, die zusammenaddiert f ergeben und dabei minimale Kosten haben. Um zu bewerten, welche Darstellung einer Booleschen Funktion f die kürzeste ist, zählen wir die Und- und Oder-Verknüpfungen der Darstellung. Somit ergibt sich die Kostenfunktion ( k ) C M i := k 1 + i=1 C(M i ) := l i 1. k C(M i ) Die Negationen verursachen hier keine zusätzlichen Kosten, weil beim Aufbau von logischen Schaltungen meistens die Eingangssignale bereits sowohl in negierter als auch in nicht-negierter Form vorliegen. Eventuell macht es Sinn, die Kostenfunktion in anderen Anwendungen leicht abzuändern. Als Eingabe für den Algorithmus von Quine-McCluskey verwenden wir eine Wahrheitstabelle, in der die einschlägigen Indices einer Booleschen Funktion f stehen. Zusätzlich kann die Wahrheitstabelle Indices zu i=1 2

3 sogenannten Don t-care-termen enthalten. Das sind Indices für die es uns egal ist, welchen Wert die Funktion dort annimmt. Don t-care-terme sind z. B. nützlich, um kürzere Darstellungen für Schaltungen zu erhalten, bei denen manche Eingaben nicht vorkommen können. Beispielsweise könnten wir eine Sieben-Segment- Anzeige für Dezimalziffern mit 4 binären Eingängen realisieren, jedoch haben wir nur 10 gültige Zustände für die Eingänge. Damit hätten wir für die Steuerungslogik für jedes Segment 6 Don t-care-terme, die wir nutzen können, um kürzere Primimplikanten zu finden. Generieren von Primimplikanten Zunächst suchen wir Minterme, die sich nur in einer Binärstelle unterscheiden und nutzen aus, dass x x = 1. Die Stelle, in der sich die beiden Minterme unterscheiden, können wir streichen und erhalten einen Implikanten für beide Minterme, der eine Variable weniger enthält. Um den Implikanten ähnlich zur Binärdarstellung der Minterme darstellen zu können, führen wir ein Platzhaltersymbol * ein, das wir für die entfernte Binärstelle einsetzen. Zum Beispiel unterscheiden sich die beiden Minterme A B C D = 1000 und A BC D = 1010 nur in einer Stelle und werden beide von A B D = 10*0 impliziert. Um die Anzahl der Minterme, die wir vergleichen müssen, zu minimieren, können wir ausnutzen, dass sich Minterme, auf die wir obige Regel anwenden können, in der Anzahl der Einsen um genau 1 unterscheiden. Somit bietet es sich an, die Minterme zunächst nach der Anzahl der Einsen zu sortiern, um dann nur noch Minterme zu vergleichen, die sich in der Anzahl der Einsen um 1 unterscheiden. Wir generieren nun alle Implikanten mit einem Platzhalter und merken uns welche Minterme wir nicht zu Implikanten verschmolzen haben. Nun fahren wir mit den Implikanten mit einem Platzhalter fort und suchen wieder Implikanten, die sich in nur einer Binärstelle unterscheiden. Um hierbei den Aufwand zu minimieren, können wir ausnutzen, dass die Position der Platzhaltersymbole in den beiden Implikanten übereinstimmen müssen. Wir merken uns wieder die Implikanten, auf die wir die Verschmelzungsregel nicht anwenden konnten und iterieren die Suche nach neuen Implikanten so lange, bis wir keine neuen mehr finden. Dann sind alle Implikanten, die wir uns zuvor gemerkt haben Primimplikanten von f. Zur Veranschaulichung betrachten wir das folgende Beispiel aus [2, Table V]: Gegeben sei eine Boolesche Funktion f in fünf Variablen mit einschlägigen Indices 0, 1, 2, 3, 7, 14, 15, 22, 23, 29, 31. In Tabelle 2 wenden wir darauf die Verschmelzungsregel an. Die linke Tabelle enthält die Indices der Minterme und ihre Binärdarstellung. Dabei sind diese schon nach der Anzahl der Einsen gruppiert. Indem wir nun Minterme aus benachbarten Gruppen verschmelzen erhalten wir die mittlere Tabelle. Nun hat jede Zeile zwei Indices, da durch Einsetzen von 0 oder 1 für das Platzhaltersymbol * zwei Indices impliziert werden. Die Tabelle ist diesmal nach der Position des Platzhaltersymbols gruppiert. Innerhalb dieser Gruppen wenden wir wieder die Verschmelzungsregel auf Implikanten an, die sich in nur einer Stelle unterscheiden und erhalten dadurch die rechte Tabelle. Implikanten, die dabei nicht weiter verschmolzen werden konnten, sind bereits Primimplikanten und wurden mit einem gekennzeichnet. In der rechten Tabelle können wir keine weitere Verschmelzung mehr durchführen, weshalb beide Implikanten markiert werden. Damit sind wir fertig und haben alle Primimplikanten von f gefunden. Suche Überdeckung mit minimalen Kosten Aus dem vorherigen Schritt des Quine-McCluskey-Algorithmus haben wir eine Liste mit allen Primimplikanten von f. Außerdem haben wir aus der Wahrheitstabelle von f eine Liste mit allen Mintermen zu einschlägigen Indices von f. Damit können wir folgende Matrix, bzw. Tabelle aufstellen: { 1 primeimplicant[i] impliziert Minterm j P ij := 0 sonst. 3

4 * * * * * * * * * * * * ** **111 Tabelle 2: Beispiel aus [2, Table V], Primimplikanten mit gekennzeichnet ( 3 7) 1 1 (14 15) 1 1 (22 23) 1 1 (29 31) 1 1 ( ) ( ) Tabelle 3: Primimplikantentabelle zum Beispiel aus [2, Table V] Die Primimplikantentabelle P zu dem Beispiel aus Tabelle 2, sieht dann wie in Tabelle 3 aus. Würde die Funktion Don t-care-terme enthalten, würden die zugehörigen Spalten in der Tabelle fehlen. Damit die Summe der Primimplikanten, die wir im Folgenden auswählen werden, die Funktion f darstellt, muss diese Summe jeden Minterm zu einschlägigen Indices von f implizieren. Das heißt die zu den ausgewählten Primimplikanten gehörigen Zeilen in der Tabelle P müssen eine Teilmatrix bilden, die in jeder Spalte mindestens eine 1 enthält. Diese Auswahl an Zeilen von P nennen wir auch eine Überdeckung der Spalten von P. Jeder Überdeckung weisen wir die Kosten der Summe der zu ihren Zeilen gehörigen Primimplikanten zu. Wir nennen eine Überdeckung minimal, wenn es keine andere Überdeckung gibt, die geringere Kosten hat. Die Summe der Primimplikanten aus einer minimalen Überdeckung ist dann eine der gesuchten minimalen disjunktiven Formen von f. Die Suche nach minimalen Überdeckungen können wir mit dem folgenden Algorithmus durchführen, der einfach alle Kandidaten für eine minimale Überdeckung auflistet und danach die Kosten dieser Kandidaten vergleicht. covers [] Generiere eine Liste aller Überdeckungen der Spalten von P for all i with P i1 = 1 do covers.append({i}) 5: for j 2,..., j max do Erstellen von Überdeckungen durch sukzessives hinzufügen von Spalten newcovers [] for all cover covers do for all i with P ij = 1 do newcover cover {i} 10: insert true for all cover newcovers do if newcover cover then newcovers newcovers cover else if newcover cover then 4

5 15: insert false end if if insert then newcovers.append(newcover) 20: end if covers newcovers 25: result [] Suche Überdeckungen mit minimalen Kosten in der vorher erstellten Liste mincost for all cover covers do if cost(cover) < mincost then mincost cost(cover) 30: result [] end if if cost(cover) mincost then result.append({primeimplicant[i] i cover}) end if 35: Um die Tabelle P möglichst klein zu halten, können wir vor dem Suchen nach Überdeckungen alle Zeilen löschen, für die es eine Spalte gibt, die nur von dieser einen Zeile überdeckt wird (diese Spalte kann dann natürlich auch gelöscht werden). Die zu diesen Zeilen gehörigen Primimplikanten nennen wir essentielle Primimplikanten, da sie in jeder minimalen disjunktiven Normalform zur gegebenen Wahrheitstabelle vorkommen müssen. Deshalb können wir diese in einer Liste speichern und später an jede der Lösungen anhängen, die wir mithilfe der verkleinerten Tabelle P erhalten. Für unser Beispiel aus Tabelle 3 erhalten wir nach Entfernen aller essentiellen Primimplikanten die deutlich kleinere Tabelle 4. 7 (3 7) 1 ( ) 1 Tabelle 4: Tabelle 3 nach Löschen aller essentiellen Primimplikanten Dateiformat für Wahrheitstabellen Für Wahrheitstabellen verwenden wir ein einfaches Textformat, das folgendermaßen aufgebaut ist. Die Datei besteht aus Blöcken, die jeweils mit einem Stichwort gefolgt von einem Doppelpunkt eingeleitet werden. Der erste Block beginnt mit dem Stichwort Variables und enthält danach einen einzelnen Integer, der die Anzahl der Variablen in der Wahrheitstabelle angibt. Danach kommt der Block Ones, der die Minterme mit f(m) = 1 angibt. Der Block fängt mit einem Integer n an, der die Anzahl der Minterme angibt. Danach folgen n Integer, die den Indices der Minterme entsprechen. Analog gibt es noch einen Block Don t Cares, der die Don t-care-terme im gleichen Format, wie der Block Ones angibt. Beispielsweise sieht die zur Verfügung gestellte Wahrheitstabelle truthtable1 folgendermaßen aus: Variables : 4 Ones :

6 Don t Cares : Aufbau des Programms Ihr Programm soll eine Wahrheitstabelle einlesen und mithilfe des Quine-McCluskey-Algorithmus alle kürzesten Sum-of-Products-Darstellungen zur Wahrheitstabelle finden. Die unit.{h,o} stellt die Funktion bool solution ( const char * examplename, const std :: vector < sumofproducts > & sops ); zur Verfügung, mit der Sie Ihr Ergebnis überprüfen können. Testdaten Im Ordner examples sind mehrere Wahrheitstabellen enthalten, deren minimalen Sum-of-Products-Darstellungen Sie mit der oben genannten Funktion solution überprüfen können. truthtable1 Beispiel aus dem Quine-McCluskey-Artikel der Wikipedia [1] truthtable2 Beispiel aus [2, Table V] 7segment? Logik für die Segmente einer 7-Segment-Anzeige (?=1,..., 7) true Konstante 1-Funktion false Konstante 0-Funktion (+ Don t-care-terme) Hinweise zur Implementierung Minterme lassen sich effizient als die Binärdarstellung ihrer Indices speichern. Dazu könnten wir den Datentyp std::bitset<n> verwenden. Dieser ist für unsere Anwendung jedoch zu unflexibel, da die Länge N des Bitsets schon zur Compile-Zeit festgelegt werden muss. Stattdessen bietet sich der Datentyp boost::dynamic_bitset<> an, der im Header boost/dynamic_bitset.hpp 1 definiert ist. Dieser Datentyp ist Teil der Boost-Bibliothek 2. Dabei handelt es sich um eine Sammlung von verschiedenen C ++ -Klassen, welche die Funktionalität der STL auf nützliche Weise erweitern. Diese Erweiterungen sind in der Vergangenheit aucht teilweise schon standartisiert und in die STL übernommen worden. Installieren kann man die Boost-Header bei den meisten Linux-Distributionen komfortabel über den Paketmanager. Unter Debian heißt das entsprechende Paket beispielsweise libboost-all-dev. Die Bitset-Klassen bieten mit dem Operator [] Zugriff auf einzelne Bits und bieten einige weitere nützliche Funktionen. So zählt die Methode count z. B. die Anzahl der Einsen in einem Bitset. Ein Blick in die Dokumentation liefert noch einige weitere Methoden, die beim Lösen dieser Aufgabe hilfreich sein könnten. Um jetzt zusätzlich noch die Platzhaltersymbole * speichern zu können, benutzen wir zusätzlich zu dem Bitset, das den Index enthält noch ein weiteres Bitset, in dem wir zu jeder Variable vermerken, ob diese im Implikanten enthalten ist. Um eine eindeutige Darstellung zu erhalten können wir zusätzlich an den Stellen mit Platzhaltersymbolen das Bit für die Verneinung der zugehörigen Variablen auf 0 setzen

7 Um eine Liste von Primimplikanten abzuspeichern bieten sich std::list und std::vector an. Ersteres erlaubt günstiges Einfügen und Löschen von Elementen, während Letzteres wahlfreien Zugriff auf Elemente bietet. Eventuell könnten auch die Datentypen std::set und std::map nützlich sein. Für alle diese Container-Klassen finden Sie im Header algorithms Funktionen zum Suchen nach Elementen und einige Mengen-Operationen, von denen Sie vor allem includes zur Überprüfung von Teilmengen gebrauchen können. In den vorgegebenen Quelltext-Gerüsten sind noch zu bearbeitende Stellen mit TODO-Kommentaren gekennzeichnet. Die Datei qmc.cpp enthält die main-funktion und die von Ihnen zu schreibende Funktion QuineMcCluskey, die den Algorithmus von Quine-McCluskey ausführen soll, um alle kostenminimalen disjunktiven Formen einer gegebenen Wahrheitstabelle zu finden. In den Dateien types.{h,cpp} finden Sie schon einige vordefinierte Datentypen, die Ihnen bei der Implementierung behilflich sein werden. Hier müssen Sie noch die Klasse primeimplicantchart vervollständigen die für die zweite Phase des Algorithmus von Quine-McCluskey benötigt wird. Literatur [1] Wikipedia-Artikel zum Quine McCluskey Algorithmus. McCluskey_algorithm. [2] McCluskey, E. J.: Minimization of Boolean Functions. Bell System Technical Journal, 35(6): , [3] Oberschelp, W. und G. Vossen: Rechneraufbau und Rechnerstrukturen. Oldenbourg Wissenschaftsverlag, Berlin, 10. Auflage,

Verwendung eines KV-Diagramms

Verwendung eines KV-Diagramms Verwendung eines KV-Diagramms Ermittlung einer disjunktiven Normalform einer Schaltfunktion Eine Disjunktion von Konjunktionen derart, dass jeder Konjunktion ein Block in dem KV-Diagramm entspricht, der

Mehr

Teil III. Schaltnetze und ihre Optimierung

Teil III. Schaltnetze und ihre Optimierung Teil III Schaltnetze und ihre Optimierung 1 Teil III.1 Schaltnetze 2 Beispiel 1 Schaltnetz für xor mit {+,, } x y x y 0 0 0 0 1 1 1 0 1 1 1 0 DNF: x y = xy + xy 3 Beispiel 2 xor mittels nand-verknüpfung;

Mehr

Bisher. minimale DNF. logischen Formeln Booleschen Funktionen Schaltungen

Bisher. minimale DNF. logischen Formeln Booleschen Funktionen Schaltungen Bisher Klassische Aussagenlogik (Syntax, Semantik) semantische Äquivalenz von Formeln äquivalentes Umformen von Formeln (syntaktisch) Normalformen: NNF, DNF, CNF, kanonische DNF und CNF Ablesen kanonischer

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Analoge und digitale Hardware bei

Mehr

Algorithmus von McClusky: Der Algorithmus von McCluskey liefert durch wiederholte Anwendung der ersten und zweiten Vereinfachungsregel:

Algorithmus von McClusky: Der Algorithmus von McCluskey liefert durch wiederholte Anwendung der ersten und zweiten Vereinfachungsregel: Seite 1 Aufgabe 1 Algorithmus von McClusky: Der Algorithmus von McCluskey liefert durch wiederholte Anwendung der ersten und zweiten Vereinfachungsregel: f 1 = a b c d + a b c d + a b c d + a b c d + a

Mehr

2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung

2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung 2.3 Logikoptimierung Logikoptimierung Überblick digitale Synthese Logikoptimierung Begriffe Mehrstufige Logik Zweistufige Logik:..Exakte Verfahen..Heuristische Verfahren..Expansion/ Reduktion..Streichen

Mehr

Darstellung von negativen binären Zahlen

Darstellung von negativen binären Zahlen Darstellung von negativen binären Zahlen Beobachtung für eine beliebige Binärzahl B, z.b. B=110010: B + NOT(B) ---------------------------------------------- = B + NOT(B) 1 + (Carry) ----------------------------------------------

Mehr

Minimierung von logischen Schaltungen

Minimierung von logischen Schaltungen Minimierung von logischen Schaltungen WAS SIND LOGISCHE SCHALTUNGEN Logische Verknüpfungszeichen: & = Logisches Und-Verknüpfung (Konjunktion). V = Logische Oder-Verknüpfung (Disjunktion). - = Nicht (Negation).

Mehr

Kapitel 4: Das Überdeckungsproblem

Kapitel 4: Das Überdeckungsproblem Kapitel : Das Überdeckungsproblem Kapitel Das Überdeckungsproblem Kapitel : Das Überdeckungsproblem Seite / 25 Kapitel : Das Überdeckungsproblem Inhaltsverzeichnis. Überdeckungsmatrizen.2 Minimalüberdeckungen.

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

Technische Informatik I

Technische Informatik I Rechnerstrukturen Dario Linsky Wintersemester 200 / 20 Teil 2: Grundlagen digitaler Schaltungen Überblick Logische Funktionen und Gatter Transistoren als elektronische Schalter Integrierte Schaltkreise

Mehr

Informationsverarbeitung auf Bitebene

Informationsverarbeitung auf Bitebene Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche

Mehr

Boolesche Algebra (1)

Boolesche Algebra (1) Boolesche Algebra (1) Definition 1: Sei B = Σ 2 = {0,1} das Alphabet mit den Elementen 0 und 1. Seien auf B die 3 Operatoren einer Algebra wie folgt definiert für x,y aus B: x+y := Max(x,y), x y := Min(x,y),

Mehr

Kapitel 6 Programmierbare Logik. Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage

Kapitel 6 Programmierbare Logik. Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage Kapitel 6 Programmierbare Logik Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage Kapitel 6: Programmierbare Logik und VLSI Seite Kapitel 6: Programmierbare Logik

Mehr

Eingebettete Systeme

Eingebettete Systeme Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de Prof. Bernd Finkbeiner, Ph.D. finkbeiner@cs.uni-saarland.de 1 Schaltfunktionen! Schaltfunktion:

Mehr

Übungsklausur - Beispiellösung

Übungsklausur - Beispiellösung Digitale Systeme Übungsklausur - Beispiellösung Aufgabe 1 (a) Benutzt man n Bit für die Darstellung im 2-Komplement, so deckt man den Wertebereich von 2 n 1 bis 2 n 1 1 ab. Also ergibt sich der abgedeckte

Mehr

C Beispiel: Siebensegmentanzeige. Typische Anzeige für Ziffern a. f g. e d. Gesucht: Schaltfunktion für die Ansteuerung des Segmentes d

C Beispiel: Siebensegmentanzeige. Typische Anzeige für Ziffern a. f g. e d. Gesucht: Schaltfunktion für die Ansteuerung des Segmentes d 6.3 Beispiel: Siebensegmentanzeige Typische Anzeige für Ziffern a f g b 0 1 2 3 4 5 6 7 8 9 e d c Schaltfunktionen zur Ansteuerung der Segmente Parameter: binär codierte Zahl bzw. Ziffer Gesucht: Schaltfunktion

Mehr

kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen

kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen 5.6 Normalformen (4) Noch mehr aber besonders wichtige Begriffe kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen Beispiel: KDNF zur Funktion f(,,,

Mehr

C.34 C Normalformen (4) 5.7 Hauptsatz der Schaltalgebra. 5.7 Hauptsatz der Schaltalgebra (2) 5.7 Hauptsatz der Schaltalgebra (3)

C.34 C Normalformen (4) 5.7 Hauptsatz der Schaltalgebra. 5.7 Hauptsatz der Schaltalgebra (2) 5.7 Hauptsatz der Schaltalgebra (3) 5.6 Normalformen (4) Noch mehr aber besonders wichtige Begriffe kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen Beispiel: KDNF zur Funktion f(,,,

Mehr

Übungsblatt 5 (Block B - 1) (17 Punkte)

Übungsblatt 5 (Block B - 1) (17 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de olaf.neugebauer [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 27 Übungsblatt 5 (Block B - ) (7 Punkte)

Mehr

Computersysteme. 2. Grundlagen Digitaler Schaltungen 2.10 Minimierung Boole scher Funktionen 2.11 CMOS Komplexgatter

Computersysteme. 2. Grundlagen Digitaler Schaltungen 2.10 Minimierung Boole scher Funktionen 2.11 CMOS Komplexgatter Computersysteme 2. Grundlagen Digitaler Schaltungen 2.10 Minimierung Boole scher Funktionen 2.11 CMOS Komplexgatter 1 Die Einsen im KV-Diagramm werden zu Blöcken maximaler Größe zusammengefasst. Dabei

Mehr

Rückblick. Erweiterte b-adische Darstellung von Kommazahlen. 7,1875 dargestellt mit l = 4 und m = 4 Bits. Informatik 1 / Kapitel 2: Grundlagen

Rückblick. Erweiterte b-adische Darstellung von Kommazahlen. 7,1875 dargestellt mit l = 4 und m = 4 Bits. Informatik 1 / Kapitel 2: Grundlagen Rückblick Erweiterte b-adische Darstellung von Kommazahlen 7,1875 dargestellt mit l = 4 und m = 4 Bits 66 Rückblick Gleitkommazahlen (IEEE Floating Point Standard 754) lassen das Komma bei der Darstellung

Mehr

Aussagenlogik. Aussagen und Aussagenverknüpfungen

Aussagenlogik. Aussagen und Aussagenverknüpfungen Aussagenlogik Aussagen und Aussagenverknüpfungen Aussagen sind Sätze, von denen sich sinnvollerweise sagen läßt, sie seien wahr oder falsch. Jede Aussage besitzt also einen von zwei möglichen Wahrheitswerten,

Mehr

Mathematisches Praktikum - SoSe 2015

Mathematisches Praktikum - SoSe 2015 Mathematisches Praktikum - SoSe 2015 Prof. Dr. Wolfgang Dahmen Felix Gruber, Igor Voulis Aufgabe 4 Bearbeitungszeit: drei Wochen (bis Freitag, 5. Juni 2015) Mathematischer Hintergrund: String-Matching-Algorithmen,

Mehr

8. Tutorium Digitaltechnik und Entwurfsverfahren

8. Tutorium Digitaltechnik und Entwurfsverfahren 8. Tutorium Digitaltechnik und Entwurfsverfahren Tutorium Nr. 9 Alexis Tobias Bernhard Fakultät für Informatik, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Rechnerstrukturen WS 2012/13

Rechnerstrukturen WS 2012/13 Rechnerstrukturen WS 202/3 Boolesche Funktionen und Schaltnetze Repräsentationen boolescher Funktionen (Wiederholung) Normalformen boolescher Funktionen (Wiederholung) Repräsentation boolescher Funktionen

Mehr

Allgemeingültige Aussagen

Allgemeingültige Aussagen Allgemeingültige Aussagen Definition 19 Eine (aussagenlogische) Formel p heißt allgemeingültig (oder auch eine Tautologie), falls p unter jeder Belegung wahr ist. Eine (aussagenlogische) Formel p heißt

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

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 Technische Informatik - Eine Einführung Boolesche Funktionen - Grundlagen

Mehr

Grundlagen der Informationverarbeitung

Grundlagen der Informationverarbeitung Grundlagen der Informationverarbeitung Information wird im Computer binär repräsentiert. Die binär dargestellten Daten sollen im Computer verarbeitet werden, d.h. es müssen Rechnerschaltungen existieren,

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik hristopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Logische Schaltungen System mit Eingängen usgängen interne Logik die Eingänge auf

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Logik (Teschl/Teschl 1.1 und 1.3)

Logik (Teschl/Teschl 1.1 und 1.3) Logik (Teschl/Teschl 1.1 und 1.3) Eine Aussage ist ein Satz, von dem man eindeutig entscheiden kann, ob er wahr (true, = 1) oder falsch (false, = 0) ist. Beispiele a: 1 + 1 = 2 b: Darmstadt liegt in Bayern.

Mehr

Lernen mit Queries. Hans Kleine Büning Institut für Informatik, Universität Paderborn Paderborn (Germany),

Lernen mit Queries. Hans Kleine Büning Institut für Informatik, Universität Paderborn Paderborn (Germany), Lernen mit Queries Hans Kleine Büning Institut für Informatik, Universität Paderborn 33095 Paderborn (Germany), E-mail: kbcsl @upb.de November 2007 1 Einführung In diesem Abschnitt beschreiben wir kurz,

Mehr

Normalformen von Schaltfunktionen

Normalformen von Schaltfunktionen Disjunktive Normalform (DNF) Vorgehen: 2. Aussuchen der Zeilen, in denen die Ausgangsvariable den Zustand 1 hat 3. Die Eingangsvariablen einer Zeile werden UND-verknüpft a. Variablen mit Zustand 1 werden

Mehr

Schriftliche Prüfung

Schriftliche Prüfung OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Schriftliche Prüfung im Fach: Technische Grundlagen der Informatik Studiengang: Bachelor (CV / CSE / IF / WIF) am: 19. Juli 2008 Bearbeitungszeit:

Mehr

Grundlagen der Technischen Informatik. 8. Übung

Grundlagen der Technischen Informatik. 8. Übung Grundlagen der Technischen Informatik 8. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 8. Übungsblatt Themen Aufgabe : Aufgabe : Aufgabe : Aufgabe : KMF, Nelson/Petrick-Verfahren Quine/McCluskey-Verfahren

Mehr

Technische Informatik I 4. Vorlesung. 2. Funktion digitaler Schaltungen... wertverlaufsgleiche Umformungen

Technische Informatik I 4. Vorlesung. 2. Funktion digitaler Schaltungen... wertverlaufsgleiche Umformungen Technische Informatik I 4. Vorlesung 2. Funktion digitaler Schaltungen... wertverlaufsgleiche Umformungen...... H.-D. Wuttke 09 Karnaugh-Veith Veith-Diagramme, 3. Struktur digitaler Schaltungen: Strukturdefinition,

Mehr

Störungen in Digitalsystemen

Störungen in Digitalsystemen Störungen in Digitalsystemen Eine Lernaufgabe von Jost Allmeling Betreuer: Markus Thaler Inhalt und Lernziel: Die Studenten erkennen, dass man durch Einfügen von zusätzlichen Gattern Hazards vermeiden

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Für eine

Mehr

Grundlagen der Technischen Informatik. 7. Übung

Grundlagen der Technischen Informatik. 7. Übung Grundlagen der Technischen Informatik 7. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 7. Übungsblatt Themen Aufgabe : Aufgabe : Aufgabe : Aufgabe : KMF, Nelson/Petrick-Verfahren Quine/McCluskey-Verfahren

Mehr

Satz von De Morgan A B A + B A + B A B A. Transistoren: A B U a A 0 0 Vcc Vcc Vcc V 0

Satz von De Morgan A B A + B A + B A B A. Transistoren: A B U a A 0 0 Vcc Vcc Vcc V 0 Satz von De Morgan A + = A A A + A + A A 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 Transistoren: A U a A 0 0 Vcc 1 0 1 Vcc 1 1 0 Vcc 1 1 1 0 V 0 eispiel: Schaltung zur Erkennung gültiger

Mehr

II. Grundlagen der Programmierung

II. Grundlagen der Programmierung II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123

Mehr

Aufgabe 1. Aufgabe 2. Abbildung 1: Schaltung für die Multiplikation mit 4

Aufgabe 1. Aufgabe 2. Abbildung 1: Schaltung für die Multiplikation mit 4 Aufgabe 1 Eine Zahl a ist mit 8 Bits vorzeichenlos (8 bit unsigned) dargestellt. Die Zahl y soll die Zahl a multipliziert mit 4 sein (y = a 4 D ). a) Wie viele Bits benötigen Sie für die Darstellung von

Mehr

Formelsammlung. Wahrscheinlichkeit und Information

Formelsammlung. Wahrscheinlichkeit und Information Formelsammlung Wahrscheinlichkeit und Information Ein Ereignis x trete mit der Wahrscheinlichkeit p(x) auf, dann ist das Auftreten dieses Ereignisses verbunden mit der Information I( x): mit log 2 (z)

Mehr

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008 Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 3. November 008 1 / 47 / 47 jede Boolesche Funktion lässt mit,, realisieren wir wollen wir uns jetzt in Richtung Elektrotechnik und

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Arithmetische und bitweise Operatoren im Binärsystem Prof. Dr. Nikolaus Wulff Operationen mit Binärzahlen Beim Rechnen mit Binärzahlen gibt es die ganz normalen arithmetischen

Mehr

Systemorientierte Informatik 1

Systemorientierte Informatik 1 Systemorientierte Informatik. Grundlagen Digitaler Schaltungen.8 Schaltnetze aus Gattern und Leitungen.9 Boole sche Algebra. Minimierung Boole scher Funktionen. CMOS Komplegatter Die nächste Funktion,

Mehr

Arbeitsblatt Logische Verknüpfungen Schaltnetzsynthese

Arbeitsblatt Logische Verknüpfungen Schaltnetzsynthese Einleitung Zur Aktivitätsanzeige der 3 Gehäuselüfter (Signale a - c) eines PC-Systems soll eine Logikschaltung entwickelt werden, die über drei Signalleuchten (LEDs) anzeigt, ob ein beliebiger (LED1 x),

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume) Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,

Mehr

Algorithmen & Programmierung. Logik

Algorithmen & Programmierung. Logik Algorithmen & Programmierung Logik Aussagenlogik Gegenstand der Untersuchung Es werden Verknüpfungen zwischen Aussagen untersucht. Aussagen Was eine Aussage ist, wird nicht betrachtet, aber jede Aussage

Mehr

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21 Vorwort... 11 1 Einführung in Power Query... 13 1.1 Power Query installieren und aktivieren... 13 1.2 Power Query aktivieren bzw. deaktivieren... 14 Was tun, wenn das Register nicht angezeigt wird... 16

Mehr

Informatik A (Autor: Max Willert)

Informatik A (Autor: Max Willert) 2. Aufgabenblatt Wintersemester 2012/2013 - Musterlösung Informatik A (Autor: Max Willert) 1. Logik im Alltag (a) Restaurant A wirbt mit dem Slogan Gutes Essen ist nicht billig!, das danebenliegende Restaurant

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

Mathematische Grundlagen I Logik und Algebra

Mathematische Grundlagen I Logik und Algebra Logik und Algebra Dr. Tim Haga 21. Oktober 2016 1 Aussagenlogik Erste Begriffe Logische Operatoren Disjunktive und Konjunktive Normalformen Logisches Schließen Dr. Tim Haga 1 / 21 Präliminarien Letzte

Mehr

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen DIGITALTECHNIK GD KLAUSUR VOM 16. 7. 2015 AUFGABEN UND MUSTERLÖSUNGEN SEITE 1 VON 7 FH Dortmund FB Informations- und Elektrotechnik Grundlagen der Digitaltechnik GD Klausur vom 16. 7. 2015 Aufgaben und

Mehr

Hier wird die Verwendung der Standard Template Library (kurz STL) kurz beschrieben. Inhalt 1.Verwendung der STL Grundlagen...

Hier wird die Verwendung der Standard Template Library (kurz STL) kurz beschrieben. Inhalt 1.Verwendung der STL Grundlagen... STL Die C++ Bibliothek ist eine Sammlung von standardisierten Klassen und Containern. Zu beachten ist, dass nicht jede C++ Implementierung den ganzen Umfang der Standardbibliothek realisiert hat. Hier

Mehr

Gran Turismo Cars - WS 11/12

Gran Turismo Cars - WS 11/12 WS 2011/2012 Stephan Gimbel Repetitorium PAD 1+2 Übungsblatt Gran Turismo Cars - WS 11/12 Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem

Mehr

Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen

Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen 09.10.2014 Herzlich Willkommen zum 2. Teil des Vorschaukurses für Mathematik! Organisatorisches Der Vorkurs besteht aus sechs Blöcken

Mehr

DIGITALTECHNIK 06 SCHALTUNGS- SYNTHESE UND ANALYSE

DIGITALTECHNIK 06 SCHALTUNGS- SYNTHESE UND ANALYSE Seite 1 von 23 DIGITALTECHNIK 06 SCHALTUNGS- SYNTHESE UND ANALYSE Inhalt Seite 2 von 23 1 SCHALTUNGS- SYNTHESE UND ANALYSE... 3 1.1 NORMALFORM... 5 1.2 UND NORMALFORM... 5 1.3 ODER NORMALFORM... 7 1.4

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

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

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren: Resolutionskalkül Ein Kalkül ist eine Kollektion von syntaktischen Umformungsregeln, die unter gegebenen Voraussetzungen aus bereits vorhandenen Formeln neue Formeln erzeugen. Der Resolutionskalkül besteht

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

183.580, WS2012 Übungsgruppen: Mo., 22.10.

183.580, WS2012 Übungsgruppen: Mo., 22.10. VU Grundlagen digitaler Systeme Übung 2: Numerik, Boolesche Algebra 183.580, WS2012 Übungsgruppen: Mo., 22.10. Aufgabe 1: Binäre Gleitpunkt-Arithmetik Addition & Subtraktion Gegeben sind die Zahlen: A

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es 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

Mehr

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Klausur zur Vorlesung Technische Informatik 1 im WS 06/07 Donnerstag, den von Uhr Uhr, HS 5

Klausur zur Vorlesung Technische Informatik 1 im WS 06/07 Donnerstag, den von Uhr Uhr, HS 5 Philipps-Universität Marburg Fachbereich Mathematik und Informatik AG Verteilte Systeme http://ds.informatik.uni-marburg.de Prof. Dr. Helmut Dohmann Prof. Dr. Bernd Freisleben Klausur zur Vorlesung Technische

Mehr

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler)

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2017 Aufgabenblatt Nr. 5A zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Laden Sie von der

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

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

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Technische Informatik I, SS03. Boole sche Algebra, Kombinatorische Logik

Technische Informatik I, SS03. Boole sche Algebra, Kombinatorische Logik Übung zur Vorlesung Technische Informatik I, SS03 Ergänzung Übungsblatt 1 Boole sche Algebra, Kombinatorische Logik Guenkova, Schmied, Bindhammer, Sauer {guenkova@vs., schmied@vs., bindhammer@vs., dietmar.sauer@}

Mehr

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Digitalelektronik - Inhalt

Digitalelektronik - Inhalt Digitalelektronik - Inhalt Grundlagen Signale und Werte Rechenregeln, Verknüpfungsregeln Boolesche Algebra, Funktionsdarstellungen Codes Schaltungsentwurf Kombinatorik Sequentielle Schaltungen Entwurfswerkzeuge

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) 5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.

Mehr

Grundlagen digitaler Systeme WS12

Grundlagen digitaler Systeme WS12 Grundlagen digitaler Systeme WS12 Binary Decision Diagrams Johann Blieberger 183.580, VU 2.0 Automation Systems Group E183-1 Institute of Computer Aided Automation Vienna University of Technology email:

Mehr

Programmieren lernen mit Visual Basic

Programmieren lernen mit Visual Basic Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden

Mehr

Physische Datenstrukturen

Physische Datenstrukturen Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr