Informatik Grundlagen. Studiengang MM

Informatik Grundlagen Studiengang MM Wintersemester 2016/2017 Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University Fakultät...
Author: Robert Winkler
2 downloads 3 Views 2MB Size
Informatik Grundlagen Studiengang MM

Wintersemester 2016/2017

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Grundlagen Inhalt 1. Historische Entwicklung ................................................................................................... 3 2. Rechner-Architektur ......................................................................................................... 8 2.1. von-Neumann-Architektur .......................................................................................... 8 2.2. Harvard-Architektur .................................................................................................... 9 2.3. Schichtenarchitektur ................................................................................................ 10 3. Das binäre Zahlensystem .............................................................................................. 11 3.1. Zahlen mit und ohne Vorzeichen, Zweier-Komplement ........................................... 13 3.2. Rechnen im binären Zahlensystem.......................................................................... 14 3.3. BCD-Zahlen ............................................................................................................. 16 3.4. Gleitkommazahlen (Floating point decimals) ........................................................... 17 4. Weitere Zahlensysteme ................................................................................................. 18 4.1. Oktal ........................................................................................................................ 18 4.2. Hexadezimal ............................................................................................................ 18 4.3. Übersicht Zahlensysteme ........................................................................................ 19 4.4. Technische Umsetzung ........................................................................................... 19 5. Boolesche Algebra / Binäre Logik .................................................................................. 20 5.1. Grundschaltungen.................................................................................................... 21 5.1.1. UND-Verknüpfung (Konjunktion)........................................................................ 21 5.1.2. Negation ............................................................................................................ 22 5.1.3. ODER-Gatter (OR, Disjunktion) ......................................................................... 23 5.1.4. XOR/EXOR (Antivalenz) .................................................................................... 24 5.2. Zusammengesetzte Schaltungen............................................................................. 25 5.2.1. NAND-Gatter...................................................................................................... 25 5.2.2. NOR-Gatter ........................................................................................................ 26 5.3. Rechenregeln........................................................................................................... 27 5.4. Karnaugh-Veitch-Diagramm .................................................................................... 28 6. Entwicklung, Darstellung und Dokumentation von Programmen ................................... 30 6.1. V-Modell................................................................................................................... 31 6.2. Scrum-Methode ....................................................................................................... 32 6.3. ADAM & EVA ........................................................................................................... 35 6.4. Strukturen ................................................................................................................ 36 6.5. Programmablaufplan (Flussdiagramm) .................................................................... 37 6.6. Struktogramm nach Nassi-Shneidermann ............................................................... 39 7. ASCII-Code, ANSI-Code, Unicode ................................................................................ 41 7.1. ASCII-Zeichensatz (American Standard Code of Information Interchange) ............. 41 7.2. ANSI-Zeichensatz .................................................................................................... 42 7.3. Unicode.................................................................................................................... 44

Informatik, Grundlagen

2

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

1. Historische Entwicklung Seit Tausenden von Jahren ist das Zählen und Rechnen ein fester Bestandteil der menschlichen Kultur. Schon früh wurde versucht, das Rechnen allgemein zugänglich zu machen. Rechenmaschinen waren deshalb immer schon begehrte Geräte.

ca. 1100 v. Chr. China Abakus

1623

Wilhelm Schickard (1592 - 1635) Deutschland Erstes mechanisches Rechenwerk; wurde unter anderem von Johannes Kepler zur Berechnung von Planetenbahnen benutzt.

1642

Blaise Pascal (1623 -1662) Frankreich Entwicklung einer Rechenmaschine, der Pascaline; Herstellung und Verkauf wurde nach nur 50 Stück wieder eingestellt

1673

Gottfried Wilhelm Leibniz (1646 - 1716) Deutschland Einführen des dualen Zahlensystems, binäres Rechnen und Rechnen mit Bedingungen (Dissertatio de arte combinatoria), Entwicklung einer Rechenmaschine

Informatik, Grundlagen

3

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

1823

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Charles Babbage (1791 - 1871) England Erste programmierbare Rechenmaschine (Difference Engine, Analytical Engine) mit Rechenwerk, Programmwerk, Speicherwerk, Steuerung mit Lochkarten; hat wegen mechanischer Probleme nie funktioniert

1890

Hermann Hollerith (1860 - 1929) USA Einführung der Lochkarte zur Auswertung der amerikanischen Volkszählung von 1890; aus seiner damals gegründeten Firma ging IBM hervor

1936

Alan Turing (1912 -1954) England Beschreibung der Funktion eines Computers ("On Computable Numbers"; Turing-Maschine); später weitere theoretische Arbeiten über Computer und deren mathematische Grundlagen; "Turing-Test" (1950) als Test für künstliche Intelligenz

1941

Konrad Zuse (1910 - 1995) Deutschland Entwicklung programmgesteuerter Rechenmaschinen; erste funktionsfähige Anlage Z3 1941 (2600 elektromechanische Schalter); Programm auf gelochtem Kinofilmstreifen, Verwendung bistabiler Schaltelement und dualer Zahlen sowie logischer Verknüpfungen, Gleitkommadarstellung der Zahlen; viele theoretische Arbeiten

Informatik, Grundlagen

4

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

1943

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Howard Aiken (1900 - 1973) USA ASCC (Harvard MARK I), Relaisrechner, auf 23 Stellen genau, ca. 35 t schwer mit 800 km Kabel Addition: 6s Division: 12 s Basierte vom Aufbau her auf den Arbeiten von Charles Babbage

1945

John von Neumann (1903 – 1957) USA er schuf die noch heute übliche Rechnerarchitektur; entwickelte mit anderen den ENIAC Röhrenrechner:

1947

Brattain, Shockley, Bardeen USA Entwicklung des Transistors

1976

Apple Der Apple I läutet das Zeitalter der Massencomputer ein

1981

IBM IBM setzt mit seinem Personal Computer 5150 mit Intel 8086-Prozessor und Microsoft DOS einen Industriestandard

1984

Apple Der Macintosh erscheint mit seinem revolutionären MacDOS auf Basis des Motorola 68000: - graphische Benutzeroberfläche - Maus - Fenstertechnik - Plug & Play

Informatik, Grundlagen

5

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Geschichte der Halbleiter- und Prozessortechnologie 1955 1962 1965 1970 1970 1972 1974

1975 1978 1979 1982 1985 1989 1992 1995 1998 2000 2001 2006 2011

Einsatz von Transistoren in Rechnern Erste ICs der TTL-Familie Erste Bauteile in MOS-Technik Erste Bauteile in CMOS-Technik Entwicklung des 4004-Prozessors durch Intel (4-bit) 2300 Transistoren, 46 Befehle, 10,8 µs Zykluszeit (90 kHz) 8008-Prozessor (8-bit) 8080-Prozessor (8-bit) Urvater der Intel-Linie 80xxx und Pentium 64 KByte Adressraum, 2µs Zykluszeit (500 kHz) 6800-Prozessor (8-bit) von Motorola 8086-Prozessor (16-bit, 29000 Transistoren) 68000-Prozessor 80286-Prozessor (134000 Transistoren) 80386-Prozessor (32-bit) 80486-Prozessor (32-bit) mit integriertem math. Coprozessor und 8KByte Cache on Chip; 1,3 Mio. Transistoren Pentium-Prozessor (64-bit, 3,1 Mio. Transistoren) Pentium II-Prozessor (5,5 Mio. Transistoren) Pentium III-Prozessor (24 Mio. Transistoren) Pentium IV-Prozessor (42 Mio. Transistoren) Itanium Dual Core Itanium Xeon E7-8830 – Prozessor (2,3 Mrd. Transistoren)

Um die Rechenleistung zu erhöhen werden in einem Computer mehrere Prozessoren (Prozessorenkerne = Core) eingesetzt. So können mehrere Anweisungen gleichzeitig und parallel ausgeführt werden. Bei Supercomputern werden Massiv-Parallele-Strukturen verwendet. Hier werden mehrere Hundert bis Tausende Prozessoren miteinander vernetzt. Der Supercomputer Tianhe-2 in China verwendet z.B. 32 000 Intel Xeon-E5-Prozessoren und 48 000 Intel Xeon-Phi-CoProzessoren und erreicht damit eine Rechenleistung von 33 862 TeraFLOPS (FLOP = Floating Point Operation). Dazu muss er allerdings mit 17 808 kW an elektrischer Leistung versorgt werden.

Informatik, Grundlagen

6

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Die Entwicklung der Leistungsfähigkeit von Mikroprozessoren (Moore’s Gesetz)

(Quelle: Wikipedia)

1965 von Gordon Moore (Intel-Mitbegründer) formuliertes Gesetz, nach dem sich ca. alle 18 Monate die Anzahl der Transistoren pro Chipfläche verdoppelt; d.h. Verdoppelung der Geschwindigkeit von Computerprozessoren bei gleichbleibendem Preis in diesem Zeitraum.

Informatik, Grundlagen

7

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

2. Rechner-Architektur 2.1. von-Neumann-Architektur Der noch heute übliche Aufbau von Computern geht auf John von Neumann zurück. Danach besteht ein Computer aus den folgenden 4 Grundeinheiten: (Teil der CPU)

(Teil der CPU)

Das Rechenwerk (ALU = Arithmetic Logic Unit) ist der eigentliche Rechner im Computer. Er kann neue Daten nach einer Vorschrift (z.B. Addition, Subtraktion, logische Verknüpfungen) aus gegebenen Daten erzeugen. Diese neue Daten können dann auch Auswirkungen auf das Steuerwerk haben. Das Steuerwerk legt die Abfolge der von der CPU ausgeführten Befehle fest. Dabei sind auch bedingte Sprungbefehle möglich, die vom Ergebnis einer Berechnung der ALU abhängig sind. Ebenso können Ereignisse von außen den Programmablauf verändern (Interrupts). Das Steuerwerk setzt also die Struktur des programmierten Algorithmus um.

Schematische Darstellung der von-Neumann-Architektur Informatik, Grundlagen

8

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Der Adressbus gibt an, auf welche Adresse zugegriffen werden soll (lesen oder schreiben). Der Adressbus ist unidirektional, d. h. nur die CPU kann hier Änderungen vornehmen (beim Pentium III: 32-bit). Der Datenbus gibt die Daten von dieser angesprochenen Adresse zurück oder stellt sie zum Schreiben zur Verfügung. Der Datenbus ist bidirektional, d. h. die CPU kann sowohl senden als auch empfangen, ebenso die anderen Blöcke (beim Pentium III: 64-bit). Im System werden Adressen meist doppelt vergeben. Einmal kann eine Adresse eine Speicherzelle im RAM bezeichnen, gleichzeitig aber auch eine I/O-Port-Adresse sein. Der Steuerbus regelt über seine Leitungen, ob die verlangte Adresse im Speicher oder im I/OTeil angesprochen werden soll. Außerdem gibt er an, ob von dieser Adresse gelesen oder geschrieben wird. Aus dem obigen Schaubild läßt sich auch sehr gut ein Grundpfeiler der C-Philosophie herleiten. Da der Datenbus allen Elementen gleichermaßen zugänglich ist, spricht man in C von Datenströmen (Streams). Diese können dann mit ähnlichen Mitteln behandelt werden. Dabei ist es unerheblich, ob die Daten aus dem RAM-Speicher, der Tastatur oder der Festplatte kommen.

2.2. Harvard-Architektur Die Harvard-Architektur bezeichnet in der Informatik ein Schaltungskonzept zur Realisierung besonders schneller CPUs und Signalprozessoren. Der Befehlsspeicher ist logisch und physisch vom Datenspeicher getrennt. Die logische Trennung ergibt sich aus verschiedenen Adressräumen und verschiedenen Maschinenbefehlen zum Zugriff auf Befehl- und Datenspeicher. Die physische Trennung ist mit zwei getrennten Speichern realisiert, auf die der Zugriff über je einen eigenen Bus erfolgt. Der Vorteil dieser Architektur besteht darin, dass Befehle und Daten gleichzeitig geladen, bzw. geschrieben werden können. Bei einer klassischen von-Neumann-Architektur sind hierzu mindestens zwei aufeinander folgende Buszyklen notwendig. Zudem sorgt die physikalische Trennung von Daten und Programm dafür, dass eine Zugriffsrechtetrennung und Speicherschutz einfach realisierbar sind. Um z.B. zu verhindern, dass bei Softwarefehlern Programmcode überschrieben werden kann, wird für den Programmcode ein im Betrieb nur lesbarer Speicher (z.B. ROM, Lochkarten) verwendet, für die Daten schreib- und lesbarer Speicher (z.B. RAM, Ringkernspeicher). Nachteilig ist allerdings, dass nicht benötigter Datenspeicher nicht als Programmspeicher genutzt werden kann, also eine erhöhte Speicherfragmentierung auftritt.

Informatik, Grundlagen

9

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

CPU

Befehlsspeicher

Rechenwerk

Datenspeicher

Schematische Darstellung der HARVARD-Architektur

2.3. Schichtenarchitektur Die Verbindung zwischen Benutzer und den elektronischen Bauteilen lässt sich in verschiedene Stufen aufteilen:

Anwendungsprogramm und Betriebssystem sind hardwareunabhängig, d.h. sie müssen nicht individuell auf jeden Rechnertyp abgestimmt werden. Erst das BIOS ist hardwareabhängig und benötigt Informationen über die verwendeten Bauteile.

Informatik, Grundlagen

10

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

3. Das binäre Zahlensystem

Es gibt 10 Arten von Menschen. Diejenigen, die das binäre System verstehen, und die, die es nicht verstehen.

Im PC werden Daten grundsätzlich als Binärdaten verarbeitet. Die Bausteine, die die elektronische Hardware des Systems ausmachen, verarbeiten zwei Spannungspegel, um die jeweilige logische Funktion zu definieren. Dies entspricht der Funktion eines mechanischen Schalters, der ja auch in zwei Zuständen (Ein/Aus; High/Low; 1/0) sein kann. Die kleinste Informationseinheit ist damit 1 Bit (binary digit). Die Komplexität der Operationen eines Rechners wird dadurch möglich, dass viele Bits natürlich wesentlich mehr als nur die zwei Grundzustände definieren können. 8 Bit = 1 Byte

Grundeinheit der Datenverarbeitung

Bit-Nr.

7

Wert

6

5

4

3

2

1

0

128 64

32

16

8

4

2

1

Graphik MSB

Bezeichnung

LSB

MSB: most significant bit LSB: least significant bit Ein Byte kann 256 verschiedene Zustände annehmen (0-255). Dies entspricht den Zahlen von 00000000B = 0D bis 11111111B = 255D. Die Umwandlung ist dabei wie folgt 10101101B = 1 0 1 7 6 1x2 + 0x2 + 1x25 + 1x128+ 0x64 + 1x32 +

0 0x24 + 0x16 +

1 1 0 1 3 2 1 1x2 + 1x2 + 0x2 + 1x20 1x8 + 1x4 + 0x2 + 1x1 = 173D

Bei der Umwandlung von dezimal in binär wird die dezimale Zahl immer durch 2 geteilt und der verbleibende Rest von rechts nach links eingefügt (vgl. "Horner-Schema") 173D

=

173 / 2 86 / 2 43 / 2 21 / 2 10 / 2 5/2 2/2 1/2

= = = = = = = =

1 86 43 21 10 5 2 1 0

0

1

0

1

1

0

1

=10101101B

Rest 1 Rest 0 Rest 1 Rest 1 Rest 0 Rest 1 Rest 0 Rest 1

Informatik, Grundlagen

11

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Vielfache der Grundeinheit Byte werden üblicherweise in 2er Potenzen angegeben. Damit ergibt sich: 1 KByte 1 MByte 1 GByte

= = =

1024 Byte 1048576 Byte 1073741824 Byte

Um im folgenden binäre (duale) Zahlen von dezimalen unterscheiden zu können, werden binäre Zahlen immer mit einem nachfolgenden „B“ gekennzeichnet. Dezimalzahlen erhalten optional ein „D“. Alternativ kann auch die Zahlenbasis als Index angehängt werden.

Anmerkung: Im Dezember 1999 wurde auf Anregung des IEEE (Institute of Electrical and Electronics Engineers) von der IEC (International Electrotechnical Commission) mit dem "Amendment 2 to IEC International Standard IEC 60027-2: Letter symbols to be used in electrical technology - Part 2: Telecommunications and electronics" eine international verbindliche Regelung geschaffen, um die "1024er Bytes" zu kennzeichnen. Seit November 2000 ist der ehemalige Zusatz fest in die IEC 60027-2 integriert worden. Um dies zu erreichen werden andere Vorsilben (Präfixe) benutzt: Kibi (Ki), Mebi (Mi), Gibi (Gi) etc. Diese Kürzel wurden aus "Kilo Binary", "Mega Binary", "Giga Binary" gebildet. Ein Kilobyte (kB) umfasst damit 1000 Byte, ein KibiByte (KiB) dagegen 1024 Byte. Interessanterweise hat außerhalb dieser Kommission scheinbar noch niemand von diesem Standard gehört. Deshalb wir sich diese Schreibweise nach meiner Einschätzung auch nicht durchsetzen. In diesem Skript wird also ein Kilobyte immer 1024 Byte haben.

Abgeleitete und weniger gebräuchliche Einheiten 1 Word: 1 Nibble:

Größe entspricht der Datenbreite des verwendeten Systems, also 16 Bit bzw. 32 Bit bei älteren Windows-Systemen, 64 Bit bei modernen Anwendungen. 4 Bit oder ein halbes Byte; diese Einheit entspricht einer einzelnen hexadezimalen Ziffer (s. Kapitel 4.2)

Informatik, Grundlagen

12

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

3.1. Zahlen mit und ohne Vorzeichen, Zweier-Komplement Wie oben gezeigt sind binäre Zahlen zunächst nur positiv und starten bei 0 (UNSIGNED). Dies ist in manchen Fällen nicht erwünscht. Deshalb muss ein Weg gefunden werden, auch negative Zahlen darzustellen (SIGNED). a) Vorzeichen-Betragsdarstellung Das Vorzeichen wird in einem zusätzlichen Bit gespeichert 89D -89D

= =

0 0101 1001B 1 0101 1001B

Rechnungen müssen dann aber vorzeichenspezifisch ausgeführt werden b) Komplement-Darstellung (Einer-Komplement) Das MSB definiert das Vorzeichen, bei negativen Zahlen werden die restlichen Bits invertiert (komplementiert). 89D -89D

= =

0101 1001B 1010 0110B

Aber: In diesem Zahlensystem gibt es zwei Nullen! (+0D = 0000 0000B / -0D = 1111 1111B) c) Zweier-Komplement-Darstellung Nach dem Bilden des Komplements wird 1 addiert (Überlauf nicht berücksichtigen) 89D -89D

= =

0101 1001B 1010 0111B

Die Zweier-Komplement-Darstellung ist in Rechnern üblich, da sie auch vorzeichenrichtiges Rechnen mit Dualzahlen erlaubt. Der Zahlenbereich für eine 8-bitZahl geht damit von -128D bis +127D.

Informatik, Grundlagen

13

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

3.2. Rechnen im binären Zahlensystem Beim Rechnen kann es vorkommen, dass eine zusätzliche Stelle benötigt wird. Kommt man mit einer Berechnung über die Grenzen des von den vorhandenen Stellen vorgegebenen Wertebereichs hinaus, so wird eine neue Stelle angefügt und der Überlauf darin berücksichtigt. Der Überlauf wird auch "Carry" genannt.

Addition Rechenregeln für Dualzahlen:

0B + 0B = 0B 1B + 0B = 1B 0B + 1B = 1B 1B + 1B = 10B

Ein Übertrag (Carry) erfolgt, wenn das Additionsergebnis einer Spalte größer oder gleich der jeweiligen Zahlenbasis (hier: 2) ist. Beispiel: Dezimal

Dual

173 + 95

1010 1101B + 101 1111B

268

1 0000 1100B

Subtraktion Zur Vereinfachung des Rechenwerks wird die Subtraktion auf eine Addition einer Zahl mit umgekehrtem Vorzeichen zurückgeführt (im Zweier-Komplement). Beispiel: Dezimal

Dual

23 - 45

0001 0111B + 1101 0011B

-22

1110 1010B

Informatik, Grundlagen

14

-0010 1101B = + 1101 0011B

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Multiplikation Rechenregeln für Dualzahlen:

0B * 0B = 0B 1B * 0B = 0B 0B * 1B = 0B 1B * 1B = 1B

Wegen der einfachen Regeln benötigt man zur Durchführung der Multiplikation nur Addierund Schiebebefehle. Auch Zahlen im Zweierkomplement lassen sich problemlos vorzeichenrichtig multiplizieren. Beispiel: 0 7 * 1 3

0 1 1 1 * 1 1 0 1

2 1 0 7

0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1

9 1

1 0 1 1 0 1 1

B

B

Eine Multiplikation um den Faktor 2 kann durch einfaches Schieben der Dualzahl um eine Bitposition nach links erreicht werden. Dabei werden von rechts Nullen nachgeschoben.

Division Die Division kann im Dualsystem ähnlich dem bekannten Subtraktionsverfahren aus dem Dezimalsystem durchgeführt werden. Dies führt allerdings nur bei positiven Zahlen zum richtigen Ergebnis. Eine Division macht zudem bei ganzen Zahlen wenig Sinn, da das Ergebnis meist eine rationale Zahl oder Bruch ist, der sich nicht in dem seither verwendeten Schema für ganze Zahlen darstellen läßt. Beispiel: 2 1 0 : 6 = 3 5 - 1 8 3 0 - 3 0 0

Informatik, Grundlagen

1 1 0 1 0 0 1 0 : 1 1 0 = 1 0 0 0 1 1 B - 1 1 0 0 1 1 1 1 -

15

0 0 0 0 0 1 1 1 0 1 1 0 - 1 1 0 0

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Eine Division durch Potenzen von 2 kann durch Rechtsschieben der Zahl um eine entsprechende Stellenzahl erreicht werden. Dabei muss bei Zweier-Komplement-Zahlen von links her immer ein dem MSB entsprechendes Bit nachgeschoben werden, damit Vorzeichen erhalten bleibt.

Natürlich können die rationalen Zahlen auch im Dualsystem dargestellt werden. Dabei steht die erste Dezimale für 1/2, die zweite für 1/4, die dritte für 1/8, etc. 100011,1101B 11,1B

= =

35,8125D 3,5D

3.3. BCD-Zahlen In vielen Fällen kann das Rechnen im Dualsystem aber ungünstig sein. Speziell bei Registrierkassen oder Taschenrechnern ist nur eine feste Anzahl von Dezimalstellen hinter dem Komma erwünscht. Zum Beispiel ist es sehr schwierig, eine dem Wert 35,81D entsprechende Dualzahl zu erzeugen. 00100011,11001111010111000010B

=

35,80999947D

Deshalb wird hier eine andere Form der Codierung verwendet, die sogenannten BCDZahlen (Binary Coded Digits). Dabei wird jeder Dezimalziffer ein Block von 4 Bit zugeordnet. 1 Byte enthält damit genau 2 Ziffern. Die Rückumsetzung von binär in dezimal ist damit sehr einfach und immer genau. 00110101,10000001BCD

=

35,81D

Auch für BCD-Zahlen gelten die Rechenregeln der Addition und Subtraktion wie oben beschrieben. ACHTUNG! Um bei rationalen Zahlen das Zweier-Komplement zu bilden wird nicht 1 addiert, sondern das LSB um 1 erhöht (hier: +0,01). Viele Mikroprozessoren können neben der binären Arithmetik auch in einem Modus für BCD-Arithmetik arbeiten. Damit lassen sich dann entsprechende Aufgabenstellungen einfach lösen.

Informatik, Grundlagen

16

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

3.4. Gleitkommazahlen (Floating point decimals) Für viele Arten von Berechnungen kommt man wegen der notwendigen Wertebereiche mit ganzen oder gebrochenen Zahlen nicht aus. Man verwendet dann eine andere Art der Notation, die Gleitkommazahlen, auch Fließkommazahlen oder Zahlen in wissenschaftlicher Schreibweise („scientific notation“). Der Begriff „Gleitkommazahl“ ist eigentlich falsch, da das Prinzip dieser Zahlen eben gerade der ist, dass der Dezimalpunkt an einer festen Stelle der Zahl steht. Der notwendige Skalierungsfaktor wird als getrennte Zahl (Exponent) angegeben. Gleitkommazahl = Mantisse * 2Exponent Vom IEEE (Institute of Electrical and Electronical Engineers) wurde Anfang der 80er-Jahre ein Normungsvorschlag für die Darstellung von und Rechnung mit Gleitkommazahlen erarbeitet, der von den modernen Prozessoren/Co-Prozessoren voll unterstützt wird. Als Zahlentypen sind definiert: single precision (einfache Genauigkeit) (32-Bit-Format)

31

30

22

8-Bit-Exponent

0

23-Bit-Mantisse

Vorzeichen Mantisse

double precision (doppelte Genauigkeit) (64-Bit-Format)

63

62

51

11-Bit-Exponent

0

52-Bit-Mantisse

Vorzeichen Mantisse

Die Mantissen sind dabei als positive Zahl und normiert (1.xxxxxx) definiert. Dabei wird die 1 vor dem Dezimalpunkt nicht mit abgespeichert. Die Exponenten werden als Charakteristik gespeichert und sind somit immer positiv. Der kleinste vorkommende Exponent ist 0. Die Rechnung mit Gleitkommazahlen ist deutlich aufwändiger als mit ganzen oder gebrochenen Zahlen. Es muss mit Mantisse und Exponent gerechnet werden, normalisiert und denormalisiert werden. Es sind darüber hinaus bestimmte Rundungsvorschriften einzuhalten. Durch die Verwendung fertiger Softwarepakete und Co-Prozessoren ist die Gleitkommarechnung aber für den Anwender weitgehend unkompliziert einsetzbar.

Informatik, Grundlagen

17

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

4. Weitere Zahlensysteme Die folgenden Zahlensysteme sind im Wesentlichen zur Vereinfachung und besseren Übersichtlichkeit der Dualzahlen gedacht.

4.1. Oktal Im oktalen Zahlensystem stehen alle Ziffern von 0 bis 7 zur Verfügung. Die Zahlenbasis ist somit 8 (daher oktal). Im Wesentlichen werden 3 Stellen des dualen Zahlensystems zu einer neuen Ziffer zusammengefasst. 1 2 3 4 5 6 7 8 9 10

= = = = = = = = = =

18 28 38 48 58 68 78 108 118 128

= 1 x 81 + 2 x 80 = 1 x 8 + 2 x 1

4.2. Hexadezimal Das Hexadezimalsystem besitzt die Zahlenbasis 16. Leider stehen aus dem Dezimalsystem nur 10 Ziffern (0...9) zur Verfügung. Die restlichen Ziffern werden durch die Buchstaben A...F ersetzt. Als Zusatz für die Hexadezimalzahl wird der Buchstabe „H“ verwendet. In der Literatur wird auch sehr häufig die Schreibweise „&H...“ für Hexadezimalzahlen verwendet. In C werden diese Zahlen mit „0x“ am Anfang geschrieben (z. B. 0xC9 = C9H). 1D 2D 3D 4D 5D 6D 7D 8D 9D 10D 11D 12D 13D 14D 15D 16D 17D 18D

= = = = = = = = = = = = = = = = = =

1H 2H 3H 4H 5H 6H 7H 8H 9H AH BH CH DH EH FH 10H 11H 12H

= 1 x 161 + 2 x 160 = 1 x 16 + 2 x 1

Dieses Zahlensystem wird sehr häufig verwendet, da es 1 Byte mit genau 2 Zeichen darstellen kann (2 Ziffern zu je 4 Bit). 1 Byte kann damit 0H ... FFH annehmen. Informatik, Grundlagen

18

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

4.3. Übersicht Zahlensysteme Die folgende Tabelle zeigt die Umrechnung der möglichen Dualzahlen eines Nibbles in den verschiedenen Zahlensystemen. Da bei BCD-Zahlen nur dezimale Ziffern umgesetzt werden, gibt es einen Bereich, in dem keine Werte verfügbar sind (nur mit einer zusätzlichen Stelle). Dual 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 x x x x x x

Oktal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

Dezimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Hexadezimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

4.4. Technische Umsetzung Binäre Zahlen lassen sich sehr leicht als Spannungszustände darstellen und verarbeiten. Dabei unterscheidet man zwischen "positiver Logik" und "negativer Logik". Die physikalische Umsetzung kann dabei sehr unterschiedlich sein. Es gibt zum Beispiel verschiedene Spannungswerte (s. u.) oder auch verschiedene Frequenzen (z. B. Frequency Shift Key). Die sogenannten Pegeldiagramme für TTL-Logikbausteine und für die Signale der seriellen Schnittstelle (RS-232-Pegel) werden in der anschließenden Abbildung dargestellt.

TTL-Pegeldiagramm (links; positive Logik)

Informatik, Grundlagen

RS232-Schnittstellen-Pegel (rechts; negative Logik)

19

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Es gibt jeweils definierte Spannungsbereiche, in denen ein Logikeingang sicher einen entsprechenden Logikzustand erkennt. Die Übergangsbereiche dazwischen müssen beim Umschalten schnell durchlaufen werden. Aufgrund der technischen Realisierung von Logikschaltungen zeigen beispielsweise die CMOS-Schaltkreise einen erhöhten Stromund damit Leistungsbedarf, wenn die Eingangsspannung im undefinierten Zwischenbereich verweilt. Wegen ihres hohen Eingangswiderstands dürfen deshalb CMOS-Bauelemente nicht mit „offenen“ Eingängen eingesetzt werden, da sonst Leckströme die Eingangsspannung in den „verbotenen“ Bereich verschieben. Ein digitaler Computer kennt deshalb typischerweise nur zwei grundlegende Zustände (natürlich könnte man auch einen mit 10 bauen, aber er wäre störanfällig, teuer und überdimensional groß, das hat etwas mit der Physik der Schaltkreise zu tun). Die ganze Komplexität der Information wird ausschließlich über die Kombination großer Mengen von Bits dargestellt.

5. Boolesche Algebra / Binäre Logik Der Begriff der Booleschen Algebra geht auf den englischen Mathematiker George Boole (1815 - 1864) zurück. Sie geht davon aus, dass die Wahrheit nur zwei Zustände kennt, eine Aussage kann nur wahr oder nicht wahr (also falsch) sein. Wenn etwas falsch ist, kann es nicht wahr sein und umgekehrt. Nichts kann wahr und gleichzeitig falsch sein. „Es regnet“ und „es regnet nicht“ kann nicht gleichzeitig wahr sein. Deshalb gilt in dieser zweiwertigen Logik: Wenn etwas falsch ist, dann ist sein Gegenteil automatisch wahr. Das Gegenteil heißt übrigens „Negation“ (Verneinung) In der Logik kann man Aussagen verknüpfen und damit zu neuen Aussagen gelangen. Man nennt das „Schließen“ oder „Deduzieren“. Die einfachste logische Verknüpfung ist die sogenannte Implikation: „Wenn a wahr ist, ist auch b wahr“. Sie ist nicht zwingend umkehrbar: „Wenn ich ins Wasser falle, werde ich nass“ heißt nicht zwingend, dass ich zuvor ins Wasser gefallen war, wenn ich nass bin. Umkehrbar (aus a folgt b und aus b folgt a) ist die Äquivalenz, d.h. zwei Aussagen sind gleichwertig und sind zwingend entweder beide wahr oder beide falsch. Man kann auch zwei Aussagen miteinander verknüpfen. Mit der Behauptung „Die Aussage ‚C’ ist wahr, wenn die Aussage ‚A’ wahr ist und die Aussage ‚B’ wahr ist“, z.B. verknüpft man A und B derart, dass beide erfüllt sein müssen, damit auch C erfüllt ist.

Informatik, Grundlagen

20

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.1. Grundschaltungen 5.1.1. UND-Verknüpfung (Konjunktion) Eine grundlegende Verknüpfung (Operation) ist die UND (engl. AND)-Verknüpfung oder Konjunktion. Sie entspricht der Reihenschaltung zweier Schalter und besagt, dass der durch eine UND-Verknüpfung entstandene Ausdruck genau dann und nur dann wahr ist, wenn alle Teilausdrücke wahr sind. Notation: Y = X1  X2 alternativ: Y = X1 * X2 Hinweis: Beim Aufstellen einer Booleschen Gleichung sollte man jedoch darauf achten, dass konsequent nur eine Alternative verwendet wird.

X1

X2

X2

&

X2 Y

Y

0

0

0

0

1

0

1

0

0

1

1

1

X1 X1 Y X2 X2

Funktionstabelle / Wahrheitstabelle

&

X1 Y

Y

Y X2

Schaltzeichen nach DIN 40900 / IEC

X1

X2

Y

5V Reihenschaltung von zwei Schaltern X1

X1

Schaltzeichen nach ANSI / IEEE

1 0 1 0 1 0

t Timing-Diagramm der UND-Verknüpfung

Beispiel: Ein Aufzug fährt nur los (Y), wenn (X1) die Tür verriegelt ist und (X2) das Stockwerk gewählt ist. In einfacher festverdrahteter Technik kann man diese „UND“Verknüpfung durch die Reihenschaltung von zwei Schaltern realisieren. Die Spalten X1 und X2 bezeichnen den Wahrheitsgehalt der Eingangsaussagen, ’1’ steht für wahr (eingeschaltet, oder HIGH), ’0’ für falsch (ausgeschaltet, oder LOW). Bei zwei Eingangsaussagen (Dualzahl mit zwei Stellen!) gibt es vier Eingangskombinationen. Die Spalte Y steht für den Ausgang der Verknüpfung. Bei der UND-Verknüpfung ist Y nur ’1’, wenn beide Eingänge ’1’ sind. Bei der schaltungstechnischen Realisierung einer logischen Verknüpfung spricht man von einem Gatter mit Eingängen und Ausgängen. Informatik, Grundlagen

21

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Der Ausgang ist nur eingeschaltet, wenn beide Eingänge eingeschaltet sind. So lassen sich auch sehr komplexe digitale Logikschaltungen grafisch darstellen. Die Schaltzeichen können übrigens alternativ genutzt werden, aber bitte einheitlich! Selbstverständlich gibt es auch UND-Verknüpfungen mit drei oder mehr Eingängen, das Schaltsymbol hat dann entsprechend mehr Eingangsleitungen, die Funktionstabelle mehr Spalten (und damit natürlich auch Zeilen). In der algebraischen Formulierung ist dies eine Sequenz von UND-Verknüpfungen (X1 * X2 * X3…). Ähnlich wie bei Addition oder Multiplikation gilt hier das Assoziativ-Gesetz.

5.1.2. Negation Eine weitere elementare Verknüpfung ist die Negation (engl. NOT), die grundsätzlich nur einen Operanden hat (Eingang). Der Ausgang nimmt den Wert falsch (’0’) an, wenn der Eingang den Wert wahr (’1’) hat und umgekehrt. Im Schalterbild entspricht dies einem Öffner. Notation: alternativ: 𝑌 = 𝑋̅

Y = /X

X

Y

0V

5V Öffnerschaltung

X

1

X

Y

0 1

1 0

Funktionstabelle / Wahrheitstabelle

Y

X

Y

Schaltzeichen nach DIN 40900 / IEC

X

1 0

Y

1 0

Schaltzeichen nach ANSI / IEEE

Timing-Diagramm Dies bedeutet also: Die Aussage Y ist genau dann wahr, wenn die Aussage X falsch ist und umgekehrt. Selbstverständlich heben sich doppelte Negationen auf: //a =a, //1 = 1 usw. Informatik, Grundlagen

22

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Die Negation kann auch gekoppelt mit dem Schaltzeichen eines beliebigen Gatters verwendet werden, indem der Kreis (als Symbol der Negation) an einen Eingang oder Ausgang gesetzt wird. So entspricht die Hintereinanderschaltung von UND-Gatter und Negation einem NAND-Gatter (NOT-AND).

5.1.3. ODER-Gatter (OR, Disjunktion) Das ODER-Gatter (engl. OR) entspricht der Parallelschaltung zweier Schalter. Notation: Y = X1 v X2 X1

alternativ: Y = X1 + X2 Y

X2 0V

5V

X1

1 0

X2

1 0

Y

1 0

Parallelschaltung von zwei Schaltern X1

1

X1 Y

X2

Schaltzeichen nach DIN 40900 / IEC

0V

X1

1 0

X2

1 0

Y

1 0

X2

Y

0

0

0

0

1

1

1

0

1

1

1

1

Funktionstabelle / Wahrheitstabelle

X2

Y

X1

Y

Schaltzeichen nach ANSI / IEEE

Timing-Diagramm Ist einer der beiden Schalter betätigt, leuchtet die Lampe. Die Ausgangsvariable Y hat dann den logischen Wert 1, wenn mindestens eine Eingangsvariable Xi den logischen Wert 1 hat. Die Bezeichnung im Innern des durch DIN genormten Schaltzeichens leitet sich davon ab, dass mindestens ein Eingang eine logische 1 haben muss und damit die algebraische Summe der logischen Eingangswerte größer oder gleich 1 ist.

Informatik, Grundlagen

23

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.1.4. XOR/EXOR (Antivalenz) In unserem Sprachgebrauch unterscheidet man das alternative „Oder“, das durch das ORGatter realisiert wird und das exklusive „Oder“, das auch „entweder …oder…“ heißt. Schaltalgebraisch lautet die Definition: Die Ausgangsvariable Y hat dann den logischen Wert 1, wenn nur eine Eingangsvariable Xi den logischen Wert 1 hat. Beide Eingangssignale müssen dazu unterschiedlich sein: „Antivalenz“. Notation: Y = X1

X1

X2

X1

X2

X2

alternativ: Y = X1 # X2

Y

0V

5V

X1

1 0

X2

1 0

Y

1 0

Schaltung X1 X2

=1

0V

X2

Y

0

0

0

0

1

1

1

0

1

1

1

0

Funktionstabelle / Wahrheitstabelle X1

X1 Y

Y

X2

Schaltzeichen nach DIN 40900 / IEC

Y

X1

X1

1 0

X2

1 0

Y

1 0

X2

Y

Schaltzeichen nach ANSI / IEEE

Timing-Diagramm

Informatik, Grundlagen

24

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.2. Zusammengesetzte Schaltungen 5.2.1. NAND-Gatter Die Nacheinanderschaltung von AND und NOT ergibt das NAND-Gatter. X1 Y X2

Notation: ____________

Y  /( X 1  X 2)

Y  X1  X 2

Y  /( X 1 * X 2)

Y  X1 * X 2

X1

___________

Y

X1

X1

0

X2

X2

Y

0V

5V

Parallelschaltung von zwei Schaltern X1 X2

&

X1 X2

0V

X1

1 0

X2

1 0

Y

1 0

1

1

0

1

1

0 1 0 1 0

/(X1 * X2)

0

1

0

1

0

1

1

0

Funktionstabelle / Wahrheitstabelle X1

&

Y

X2

Y

Y X2

Schaltzeichen nach DIN 40900 / IEC

Y

0

0

X1

Y

X2 1 X1 * X2

Schaltzeichen nach ANSI / IEEE

Timing-Diagramm der UND-Verknüpfung

Informatik, Grundlagen

25

D. Hägele, Stand 20.08.2016

2

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.2.2. NOR-Gatter Das NOR-Gatter entsteht aus einem ODER-Gatter mit Negation. Notation: Y = /(X1 v X2)

Y = X1 v X2

Y = /(X1 + X2)

Y = X1 + X2

X1

X2

Y

0V

5V

X1

1 0

X2

1 0

Y

1 0

Parallelschaltung von zwei Schaltern X1

1

X1 Y

X2

Schaltzeichen nach DIN 40900 / IEC

0V

X1

1 0

X2

1 0

Y

1 0

X2

Y

0

0

1

0

1

0

1

0

0

1

1

0

Funktionstabelle / Wahrheitstabelle

X2

Y

X1

Y

Schaltzeichen nach ANSI / IEEE

Timing-Diagramm der UND-Verknüpfung

Informatik, Grundlagen

26

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.3. Rechenregeln 

 und  sind eindeutige Verknüpfungen, die Elemente aus einer Menge B={a, b,…,n} auf ein Element dieser Menge abbilden:  ,  : B x B → B



Ist A eine Aussage der Booleschen Algebra, so auch A*, die man durch Vertauschen von  gegen  und n gegen e erhält (Dualitätsprinzip)



Bezüglich der Grundoperationen  und  existiert je ein neutrales Element e bzw. n, so dass gilt: a  e=a (e = 1) a  n=a (n = 0)



Bezüglich der Grundoperationen  und  existiert je ein komplementäres __

__

Element: a  a  n bzw. a  a  e 

Ebenso gilt die Idempotenz: a  a = a bzw. a  a = a



Es gilt das Kommutativgesetz: (lat. commutare - vertauschen) a  b = b  a bzw. a  b = b  a

1. Es gilt das Assoziativgesetz: (lat. associare - vereinigen, verbinden) (a  b)  c = a  (b  c) bzw. (a  b)  c = a  (b  c) 2. Es gilt das Absorptionsgesetz: (lat. absorbere - saugen, absaugen, aufsaugen) a  (a  b) = a bzw. a  (a  b) = a 3. Es gilt das Distributivgesetz: (lat. distribuere - verteilen) a  (b  c) = (a  b)  (a  c) bzw. a  (b  c) = (a  b)  (a  c) 4. Die DeMorganschen Regeln erlauben das Vereinfachen von negierten Termen:

̅̅̅̅̅̅̅ 𝑎 ⋀ 𝑏 = 𝑎̅ ∨ 𝑏̅

bzw. ̅̅̅̅̅̅̅̅ 𝑎 ∨ 𝑏 = 𝑎̅ ⋀ 𝑏̅ Die DeMorganschen Regeln gelten auch für mehr als zwei logische Variable.

Daraus abgeleitet ergeben sich die folgenden Vereinfachungsregeln:

𝑎∧1=𝑎

𝑎∨1=1

𝑎 ⋅ 1=𝑎

𝑎+1=1

𝑎∧0=0

𝑎∨0=𝑎

𝑎 ⋅ 0=0

𝑎+0=𝑎

𝑎 ∨ (𝑎 ∧ 𝑏) = 𝑎

𝑎 + 𝑎𝑏 = 𝑎

𝑎 ∨ (𝑎̅ ∧ 𝑏) = 𝑎 ∨ 𝑏 (𝑎 ∧ 𝑏) ∨ (𝑎 ∧ 𝑏̅) = 𝑎

𝑎 + 𝑎̅𝑏 = 𝑎 + 𝑏 𝑎𝑏 + 𝑎𝑏̅ = 𝑎

𝑎 ∧ (𝑎 ∨ 𝑏) = 𝑎

𝑎(𝑎 + 𝑏) = 𝑎

𝑎 ∧ (𝑎̅ ∨ 𝑏) = 𝑎𝑏 (𝑎 ∨ 𝑏) ∧ (𝑎 ∨ 𝑏̅) = 𝑎

𝑎(𝑎̅ + 𝑏) = 𝑎𝑏

Informatik, Grundlagen

27

(𝑎 + 𝑏)(𝑎 + ̅̅̅̅ 𝑏) = 𝑎

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

5.4. Karnaugh-Veitch-Diagramm Das Karnaugh-Veitch-Diagramm, kurz KV-Diagramm, dient der übersichtlichen Darstellung und Vereinfachung Boolescher Funktionen in einen minimalen logischen Ausdruck. Es wurde 1952 von Edward W. Veitch entworfen und 1953 von Maurice Karnaugh zu seiner heutigen Form weiterentwickelt. Mittels eines KV-Diagramms lässt sich jede beliebige disjunktive Normalform (DNF) in einen minimalen disjunktiven logischen Ausdruck umwandeln. Der Vorteil gegenüber anderen Verfahren ist, dass der erzeugte Term (meist) minimal ist. Sollte der Term noch nicht minimal sein, ist eine weitere Vereinfachung durch Anwenden des Distributivgesetzes (Ausklammern) möglich. Das Umwandeln beginnt mit dem Erstellen einer Wahrheitstafel, aus der dann die DNF abgeleitet wird, die dann wiederum direkt in ein KV-Diagramm umgewandelt wird. Eine Formel der Aussagenlogik ist in disjunktiver Normalform, wenn sie eine Disjunktion von Konjunktionstermen ist. Ein Konjunktionsterm wird ausschließlich durch die konjunktive Verknüpfung von Literalen gebildet. Literale sind dabei nichtnegierte oder negierte Variablen.

Ein KV-Diagramm für n Eingangsvariablen hat 2n Felder. Das KV-Diagramm wird mit den Variablen an den Rändern beschriftet. Dabei kommt jede Variable in negierter und nichtnegierter Form vor. Die Zuordnung der Variablen zu den einzelnen Feldern kann dabei beliebig erfolgen, jedoch ist zu beachten, dass sich horizontal und vertikal benachbarte Felder nur in genau einer Variablen unterscheiden dürfen. Mit Hilfe der Wahrheitstabelle der zu optimierenden Funktion wird in die einzelnen Felder eine 1 eingetragen, wenn bei der entsprechenden Kombination in der Wahrheitstabelle eine 1 steht, andernfalls eine 0.

KV-Diagramm für 2 Variablen

Informatik, Grundlagen

KV-Diagramm für 3 Variablen

28

KV-Diagramm für 4 Variablen

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Minterm-Methode Man versucht, möglichst viele horizontal und vertikal benachbarte Felder, die eine 1 enthalten (Minterme) zu rechteckigen zusammenhängenden Blöcken (Päckchen) zusammenzufassen. Als Blockgröße sind alle Potenzen von 2 erlaubt (1, 2, 4, 8, 16, ...). Dabei sind alle 1-Felder mit Blöcken zu erfassen. 

Ein Block kann unter Umständen über den rechten bzw. unteren Rand des Diagramms fortgesetzt werden. Die Felder ganz links und ganz rechts bzw. oben und unten sind benachbart.



Von den ermittelten Blöcken sind so viele auszuwählen, dass alle 1-Felder überdeckt werden. Bei vielen Schaltfunktionen sind das alle zusammengefassten Blöcke, es kommt jedoch nicht selten vor, dass es Alternativen gibt. Dann besteht bei gleich großen Blöcken die freie Auswahl, andernfalls sind die größeren Blöcke zu wählen, da sie zu den kleineren (da stärker zusammengefassten) Termen führen.



Die gebildeten und ausgewählten Blöcke/Päckchen wandelt man nun in Konjunktionsterme um. Dabei werden Variablen innerhalb eines Blockes, die in negierter und nicht negierter Form auftreten, weggelassen.



Diese UND-Verknüpfungen werden durch ODER-Verknüpfungen zusammengefasst und ergeben eine disjunktive Minimalform.

Maxterm-Methode Die Maxterm-Methode unterscheidet sich von der Minterm-Methode lediglich in folgenden Punkten: 

Statt Einsen werden Nullen zu Päckchen zusammengefasst.



Ein Päckchen bildet einen Disjunktionsterm (ODER-Verknüpfungen, statt eines Konjunktionsterms).



Die Disjunktionsterme werden konjunktiv (mit UND) verknüpft.



Die Variablen werden zusätzlich einzeln negiert.

Informatik, Grundlagen

29

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6. Entwicklung, Darstellung und Dokumentation von Programmen Ein gutes Programm lässt sich bereits an seiner Struktur erkennen:  Übersichtlichkeit: Einrückung bei Funktionsblöcken; linearer Ablauf des Programms; keine Programmteile, die über mehrere Seiten gehen  Änderungsfreundlichkeit: Blöcke mit gleicher Funktion werden zu einem Unterprogramm zusammengefasst; Kommentierung im Code  Erweiterbarkeit: Variablen und Übergabeparameter sind klar definiert und erklärt  Speichereffizienz: Nur Variablen definieren, die auch benötigt werden; Code optimieren Um diese Punkte zu erreichen, empfiehlt es sich, Programme modular aufzubauen (Unterprogrammtechnik). Module sind:

 einzeln testbar.  wiederverwendbar.  getrennt voneinander zu entwickeln.

Bei den Strukturen ist darauf zu achten, dass Blöcke (Unterprogramme) mit je einem Eingang und einem Ausgang entstehen. Meistens sind Programme heutzutage jedoch so komplex, dass es kaum möglich ist, sie umfassend vor der Auslieferung zu testen. Oft werden dann Beta-Tests verwendet oder Fehler bei Nachfolgeversionen bereinigt (Bug-Fixes, Service-Packs).

Informatik, Grundlagen

30

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.1. V-Modell Zur Beschreibung von Aktivitäten bei dem Entwurf und der Implementierung von SoftwareApplikationen sind verschiedene Modelle entwickelt worden (bspw. Wasserfall-Modell, Spiralmodell). Ein bekanntes Modell ist das sogenannte V-Modell, welches seinen Namen aus der Anordnung der verschiedenen Phasen hat:

Abbildung 0-1: V-Modell (Quelle: Wikipedia)

Als Ausgangspunkt wird der Analyse der Anforderungen an das zu entwickelnde (Software-) System gesehen. Hier wird zunächst gesammelt, welche Anforderungen – das können Funktionen als auch Eigenschaften (z.B. Reaktionsgeschwindigkeit, Lokalisierbarkeit etc.) sein – und welche Randbedingungen (bspw. Zielgruppe) vorhanden sind. Die Anforderungen werden dann priorisiert. Hier wird bspw. festgelegt, welche Anforderungen zu welcher Produktversion umgesetzt sein müssen und welche Anforderungen optional sind. Alternativ kann das V-Modell auch mit den folgenden Aktionen beschrieben werden:        

Problemstellung (Pflichtenheft) Grobstrukturierung (Lastenheft) Feinstruktur Module entwickeln und testen Zusammenbinden der Module Schnittstellen testen Gesamtprogramm testen Dokumentation

Informatik, Grundlagen

31

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.2. Scrum-Methode [Quelle: Wikipedia]

Die Erfahrung hat gezeigt, dass viele Entwicklungsprojekte zu komplex sind, um in einen vollumfänglichen Plan gefasst werden zu können. Ein wesentlicher Teil der Anforderungen und der Lösungsansätze ist zu Beginn unklar. Dadurch kann auch kein konkretes Lastenheft erstellt werden. Deshalb werden Zwischenergebnisse oder Inkremente definiert. Dadurch lassen sich die fehlenden Anforderungen und Lösungstechniken effizienter finden als durch eine abstrakte Klärungsphase. Scrum verkörpert die Werte der agilen Software-Entwicklung, die 2001 im agilen Manifest von Ken Schwaber, Jeff Sutherland und anderen formuliert wurden: 1. Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. 2. Funktionierende Software ist wichtiger als umfassende Dokumentation. 3. Zusammenarbeit mit dem Kunden ist wichtiger als die ursprünglich formulierten Leistungsbeschreibungen. 4. Eingehen auf Veränderungen ist wichtiger als Festhalten an einem Plan. Scrum besteht nur aus wenigen Regeln. Diese Regeln definieren fünf Aktivitäten, drei Artefakte und drei Rollen, die den Kern von Scrum ausmachen. Die Umsetzung der Aktivitäten, Artefakte und Rollen sind nicht konkretisiert, um eine individuelle Ausgestaltung zuzulassen. Der zentrale Entwicklungsschritt innerhalb der Scrum-Methode ist der Sprint. Ein Sprint ist ein Arbeitsabschnitt, in dem ein Inkrement eines Produktes erstellt wird. Er beginnt mit einem Sprint Planning und endet mit Sprint Review und Sprint-Retrospektive. Sprints folgen unmittelbar aufeinander. Während eines Sprints sind keine Änderungen erlaubt, die das Sprintziel beeinflussen.

Task

Von Scrum_process.svg: Lakeworksderivative work: Sebastian Wallroth (talk) - Scrum_process.svg, CC BYSA 3.0, https://commons.wikimedia.org/w/index.php?curid=10772971

Informatik, Grundlagen

32

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Aktivitäten 1 - Sprint Planning Festlegung des Was (Product Owner und Entwicklungsteam gemeinsam):  Produkteigenschaften (Einträge im Product Backlog), die im nächsten Sprint entwickelt werden sollen, werden festgelegt  Kriterien werden definiert, die am Ende des Sprints entscheiden, ob eine Eigenschaft erfüllt ist (Definition of Done) Festlegung des Wie (Entwicklungsteam)  Planung der Aufgaben (Tasks)  Erstellung des Sprint Backlog 2 - Daily Scrum Der Daily Scrum ist ein kurzes, tägliches Meeting, das zum Informationsaustausch innerhalb des Entwicklungsteams dient. Scrum Master und Product Owner stehen für Fragen zur Verfügung. 3 - Sprint Review Das Sprint Review steht am Ende des Sprints. Hier überprüft das Scrum Team das Inkrement. Das Entwicklungsteam präsentiert die Ergebnisse dem Product Owner und den Stakeholdern und es wird überprüft, ob das zu Beginn gesteckte Ziel erreicht wurde. Das Scrum Team und die Stakeholder besprechen die Ergebnisse und die weiteren Schritte. 4 - Sprint Retrospektive Das Scrum Team diskutiert über seine Arbeitsweise während des vergangenen Sprints, um sie für die Zukunft zu verbessern. Hindernisse und gute Praktiken werden dokumentiert, Verbesserungsmaßnahmen für den nächsten Sprint eingeplant. 5 - Product Backlog Refinement Das Product Backlog Refinement ist ein fortlaufender Prozess, bei dem der Product Owner und das Entwicklungsteam gemeinsam das Product Backlog weiterentwickeln. Hierzu gehören:       

Ordnen der Einträge Löschen von Einträgen, die nicht mehr wichtig sind Hinzufügen von neuen Einträgen Detaillieren von Einträgen Zusammenfassen von Einträgen Schätzen von Einträgen Planung von Releases

Für die Gestaltung des Produkts und des Product Backlogs können Stakeholder wertvolle Informationen liefern, indem sie dem Scrum Team erklären, wie sie sich eine Funktionalität im alltäglichen Gebrauch wünschen. Daher gibt es meistens auch Product-BacklogRefinement-Treffen zusammen mit ausgewählten Stakeholdern.

Informatik, Grundlagen

33

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Artefakte Ein Artefakt ist das Erzeugnis, das Zwischen- oder Endergebnis einer Handlung (lat. von artis factum "das von Hand Gemachte"). In der Scrum-Methode sind es die grundlegenden Dokumente. 1 - Product Backlog Das Product Backlog ist eine geordnete Auflistung der Anforderungen an das Produkt. Das Product Backlog ist dynamisch und wird ständig weiterentwickelt. Alle Arbeit, die das Entwicklungsteam erledigt, muss ihren Ursprung im Product Backlog haben. Der Product Owner ist für die Pflege des Product Backlogs verantwortlich. Er verantwortet die Reihenfolge bzw. Priorisierung der Einträge. 2 - Sprint Backlog Das Sprint Backlog ist der aktuelle Plan der für einen Sprint zu erledigenden Aufgaben. Es umfasst die Product Backlog-Einträge, die für den Sprint ausgewählt wurden, und die dafür nötigen Aufgaben (z.B. Entwicklung, Test, Dokumentation). Das Sprint Backlog wird laufend aktualisiert. Dies dient zur Übersicht des aktuellen Bearbeitungsstands. 3 - Product Increment Das Inkrement ist die Summe aller Product-Backlog-Einträge, die während der bisherigen Sprints fertiggestellt wurden. Am Ende eines Sprints muss das neue Inkrement in einem nutzbaren Zustand sein und der Definition of Done entsprechen.

Rollen 1 - Product Owner  ist für den Erfolg des Produkts verantwortlich  definiert die Produkteigenschaften  erstellt Product Backlog und aktualisiert es im Product Backlog Refinement  priorisiert die Einträge im Product Backlog  stimmt die Entwicklungsergebnisse mit den Stakeholdern ab 2 - Entwicklungsteam  erstellt die geforderten Produktfunktionalitäten  setzt die Einträge aus dem Product Backlog in Tasks für einen Sprint um 3 - Scrum Master  überprüft deren Einhaltung  moderiert die Treffen von Product Owner und Entwicklungsteam  kümmert sich um die Behebung von Störungen und Hindernissen Stakeholder Die Stakeholder sind eigentlich außerhalb des Scrum-Prozesses. Hierzu gehören Kunden, Anwender und das Management.

Informatik, Grundlagen

34

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.3. ADAM & EVA Häufig ist für Beginner die Umsetzung des V-Modells oder der Scrum-Methode zu aufwendig oder zu kompliziert. Diese Modelle sind auch immer auf Entwicklungsteams und komplexere Projekte zugeschnitten. ADAM & EVA ist ein einfacher Ansatz, um kleine Einzelprojekte zu erstellen. Sie verdeutlicht die grundlegenden Schritte bei der Erstellung eines Programms.

ADAM

A D

A M

Aufgabe analysieren Was ist die Aufgabenstellung? Was sind die Randbedingungen? Datenelemente definieren Welche Daten sind gegeben? Welche Daten als Ergebnisse sind gefordert? Welche Datentypen sollten verwendet werden? Welche Hilfsvariablen sind notwendig? Algorithmus erstellen Ablauf festlegen: Welche Strukturen (Schleifen, Verzweigungen) sollen verwendet werden? Welche Aufgaben werden als Unterprogramme (Funktionen) realisiert? Machen Erst nachdem Daten und Algorithmen klar sind, wird das Programm erstellt

Für das "Machen" wird dann EVA verwendet. Sie ist die Grundstruktur eines Programms oder einer Funktion.

EVA

E V A

Eingabe Eingabe der Daten (über Tastatur, als übergebene Programmparameter oder fest definiert) Verarbeitung Der definierte Algorithmus wird verwendet, um das Ergebnis aus den gegebenen Daten zu berechnen. Ausgabe Die Daten werden als Ergebnis ausgegeben, gespeichert oder an andere Funktionen übergeben.

Die Abschnitte "Eingabe" und "Ausgabe" können in der Regel sehr schnell und einfach programmiert werden. Trotzdem kommt es immer wieder zu Fehlern, weil die Typen der Datenelemente nicht sauber umgesetzt werden. Die "Verarbeitung" kann nur gelingen, wenn der Algorithmus klar und korrekt ist. Im Idealfall kann der Code direkt aus dem Algorithmus abgeleitet werden. Auch hier ist wieder auf die Datentypen zu achten. Für jedes Programm ist ein Test unverzichtbar. Dabei ist darauf zu achten, dass möglichst viele der möglichen Programmpfade durchlaufen werden (Verzweigungen, Unterprogramme).

Informatik, Grundlagen

35

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.4. Strukturen 1966 verfassten Böhm und Jacopini das sogenannte Strukturtheorem mit dem Struktur einer Softwareapplikation leicht dargestellt werden kann: Um den Kontrollfluss eines Programms zu beschreiben reichen drei Arten von Strukturblöcken aus (Kontrollstrukturen eines Programms): -

Sequenz

-

Fallunterscheidung ( Selektion )

-

Schleife ( Iteration )

Zwei Jahre nach dem Strukturtheorem verfasste Dijkstra die Regeln der strukturierten Programmierung: 1. Ein Strukturblock hat genau einen Eingang und genau einen Ausgang 2. Aneinanderreihen und Ineinanderschachteln von Strukturblöcken ergibt wieder einen Strukturblock 3. Jeder Strukturblock muss mindestens einmal erreicht und verlassen werden 4. Elementare Strukturblöcke sind die Zuweisung (a := b) oder Unterprogrammaufrufe (Makroblöcke) Die bekannteste Konsequenz dieses Prinzips ist die Vermeidung oder – abhängig von der Programmiersprache – der eingeschränkte und standardisierte Einsatz der Sprunganweisung, des GOTO. Das Ergebnis der häufigen Verwendung dieser Anweisungen wird häufig abfällig als Spaghetticode bezeichnet. Durch die konsequente Implementierung von Teilprogrammen und von Kontrollstrukturen vermeiden strukturierte Programme Codewiederholungen, was Vorteile bei der Suche von Programmfehlern mit sich bringt, die Programme kürzer und übersichtlicher macht und daher die Wartung von Software vereinfacht. Strukturierte Programmierung ist heute in fast allen Bereichen, in denen professionell Software entwickelt wird, eine Selbstverständlichkeit. Die neueren Programmierparadigmen wie generative Programmierung, aspektorientierte Programmierung oder objektorientierte Programmierung bauen auf der strukturierten Programmierung auf und erweitern oder ergänzen diese.

Informatik, Grundlagen

36

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.5. Programmablaufplan (Flussdiagramm) Der Programmablaufplan (PAP), auch als Flussdiagramm oder Programmstrukturplan bezeichnet, kann bei der Planung des Programmablaufs verwendet werden. Die verwendeten Symbole sind nach DIN 66001 genormt und werden in den folgenden Abschnitten kurz erläutert: Symbol/Kontrollstruktur Erläuterung Operation Bei einer Operation erfolgt eine Verarbeitung der Daten ganz allgemein. Eine Innenbeschriftung ordnet die Operation eindeutig zu. Unterprogrammaufruf / Funktionsaufruf Der Programmierer sollte eine eindeutige Innenbeschriftung wählen. Der Programmablaufplan einer Funktion wird an anderer Stelle erstellt. Ein-/Ausgabe von Daten

Verzweigung (Selektion) Hier wird eine Bedingung überprüft und je nach Ergebnis wird der Programmablauf entsprechend fortgesetzt. Übergang oder Verbindungsstelle Grenzstelle / Terminator Zum korrekten Starten oder Stoppen verwendet man dieses Symbol. Ablauflinien Sie verbinden die verschiedenen anderen Symbole miteinander. Anfangs-Schleifenbegrenzung für zählergesteuerte Wiederholungen.

Ende-Schleifenbegrenzung für zählergesteuerte Wiederholungen.

Informatik, Grundlagen

37

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Weitere, wesentlich seltener verwendete Symbole des Programmablaufplans findet man unter der DIN 66001.

Abbildung 0-3 Zwei Beispiele eines Programmablaufplans (Zählschleife)

Als Vorteile eines Programmablaufplans kann man auf jeden Fall die Übersichtlichkeit, die Lesbarkeit sowie die Überprüfbarkeit und Korrektheit der Terminierung nennen. Außerdem kann man sehr leicht schrittweise Verbesserungen bzw. Verfeinerungen des Programmablaufs erreichen, da ja jede Kontrollstruktur eine Black Box ist. Allerdings hat das Verfahren des Programmablaufplans auch einige Nachteile: Schachtelstrukturen sind nicht gut zu erkennen und eine strukturierte Programmierung wird durch einen PAP nicht sichergestellt.

Informatik, Grundlagen

38

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

6.6. Struktogramm nach Nassi-Shneidermann I. Nassi und B. Shneidermann entwickelten in den Jahren 1972/73 einen Diagrammtyp, der den Entwurf eines strukturierten Programms sehr vereinfacht hat. Das NassiShneidermann-Diagramm, auch Struktogramm genannt, ist nach DIN 66261 standardisiert und umfasst folgende Struktogramme: Struktogramm

Erläuterung Linearer Ablauf (Sequenz) Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben. Die Strukturblöcke werden nacheinander von oben nach unten durchlaufen. Leere Strukturblöcke sind nur in Verzweigungen zulässig Zweifache Auswahl (alternative Verarbeitung) Nur wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen. Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Trifft die Bedingung nicht zu (falsch), wird der Anweisungsblock 2 durchlaufen. Austritt unten nach Abarbeitung des jeweiligen Anweisungsblocks. Es ist auch möglich, dass Anweisungsblock 1 oder Anweisungsblock 2 leer ist. Mehrfache Verzweigung (Fallauswahl) Besonders bei mehr als drei zu prüfenden Bedingungen geeignet. Der Wert von "Variable" kann bedingt auf Gleichheit wie auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden und der entsprechend zutreffende "Fall" mit dem zugehörigen Anweisungsblock wird durchlaufen. Eine Fallauswahl kann manchmal in eine Mehrfachauswahl umgewandelt werden. Eine Fallauswahl kann immer in mehrere Mehrfachauswahlen aufgeteilt werden. Häufig wird ein Anweisungsblock für den Default-Fall gewählt. Wiederholung mit vorausgehender Bedingungsprüfung Block wird solange wiederholt, wie Bedingungsprüfung wahr ergibt. Erste Bedingungsprüfung vor erster Blockbearbeitung. Null Block-Bearbeitungen möglich.

Informatik, Grundlagen

39

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Wiederholung mit nachfolgender Bedingungsprüfung Block wird solange wiederholt, wie Bedingungsprüfung wahr ergibt. Erste Bedingungsprüfung nach erster Blockbearbeitung, d.h. mindestens eine Block-Bearbeitungen. Wiederholung ohne Bedingungsprüfung Schleife wird nie verlassen. Kann nur verlassen werden mit Hilfe einer Abbruchanweisung.

Abbruchanweisung Der Aussprung (break) stellt die Beendigung eines Programmteils dar und sollte nicht als das verstanden werden, was Nassi und Shneiderman mit den Struktogrammen eigentlich vermeiden wollten: Die Sprunganweisung. Verweis auf Unterverarbeitung Symbolik zum Aufruf eines Unterprogramms bzw. Funktion. Nach Durchlauf dieser wird genau zu der aufrufenden Stelle zurückgesprungen und der nächstfolgende Strukturblock durchlaufen. Kein DIN 66261-Symbol. Eine Ineinanderschachtelung der unterschiedlichen Struktogramme kann in NassiShneidermann-Diagrammen erfolgen. Alle Elemente eines Nassi-ShneidermannDiagramms sind rechteckig, d. h. das gesamte Nassi-Shneidermann-Diagramm ist genau so breit wie sein breitestes Element.

Informatik, Grundlagen

40

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

7. ASCII-Code, ANSI-Code, Unicode 7.1. ASCII-Zeichensatz (American Standard Code of Information Interchange) Neben Zahlen können mit diesem Zeichensatz auch Buchstaben und Sonderzeichen verarbeitet werden. Allerdings fehlen Umlaute und andere länderspezifische Buchstaben. Der ASCII-Code umfasst nur 7 Bit, also 128 Zeichen. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

Null start of heading start of text end of text end of transmission Enquiry positive acknowledgement bell (hörbar) Backspace horizontal tabulation line feed vertical tabulation form feed carriage return shift out shift in

Informatik, Grundlagen

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

[space] ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL

data link escape device control 1 device control 2 device control 3 device control 4 negative acknowledgement synchronous idle end of transmission block cancel end of medium substitute escape file separator group separator record separator unit separator delete

41

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

7.2. ANSI-Zeichensatz Der erste Teil des ANSI-Zeichensatzes entspricht bis auf die Sonderzeichen dem ASCIIZeichensatz. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

* * * * * * * * ** ** ** * * ** * * * * * * * * * * * * * * * * * *

Informatik, Grundlagen

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

[space] ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

42

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ *

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

Ab Code 128 wird für Zeichen unter WINDOWS und dem traditionellen DOS eine unterschiedliche Zeichensatztabelle verwendet. In der Regel haben sogar Drucker wieder eine andere Belegung. Dies hängt hauptsächlich mit den länderspezifischen Zeichensätzen zusammen. Üblicherweise wird in Deutschland die Codepage 1252 (Latin 1) verwendet. Dieser Zeichensatz wurde auch für die unten stehende Tabelle verwendet. Im Einzelfall ist deshalb zu prüfen, welche Sonderzeichen tatsächlich auch angezeigt/gedruckt werden.

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

Win DOS * Ç * ü * é * â * ä * à * å * ç * ê * ë * è * ï * î * ì * Ä * Å * É * æ * Æ * ô * ö * ò * û * ù * ÿ * Ö * Ü * ø * £ * Ø * × * ƒ

Win DOS 160 [space] á 161 ¡ í 162 ¢ ó 163 £ ú 164 ¤ ñ 165 ¥ Ñ 166 ¦ ª 167 § º 168 ¨ ¿ 169 © ® 170 ª ¬ 171 « ½ 172 ¼ 173 ¡ 174 ® « 175 ¯ » 176 ° ¦ 177 ± ¦ 178 ² ¦ 179 ³ ¦ 180 ´ ¦ 181 µ Á 182 Â 183 · À 184 ¸ © 185 ¹ ¦ 186 º ¦ 187 » + 188 ¼ + 189 ½ ¢ 190 ¾ ¥ 191 ¿ +

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

Win DOS À + Á Â Ã + Ä Å + Æ ã Ç Ã È + É + Ê Ë Ì ¦ Í Î + Ï ¤ Ð ð Ñ Ð Ò Ê Ó Ë Ô È Õ i Ö Í × Î Ø Ï Ù + Ú + Û ¦ Ü _ Ý ¦ Þ Ì ß ¯

224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Win DOS à Ó á ß â Ô ã Ò ä õ å Õ æ µ ç þ è Þ é Ú ê Û ë Ù ì ý í Ý î ¯ ï ´ ð ñ ± ò = ó ¾ ô ¶ õ § ö ÷ ÷ ¸ ø ° ù ¨ ú · û ¹ ü ³ ý ² þ ¦ ÿ

* Diese Zeichen werden von Microsoft Windows nicht unterstützt. ** Die Werte 8, 9, 10 und 13 werden für backspace, tab, linefeed, und carriage return genutzt. Sie haben keine graphische Entsprechung, können aber die Formatierung der Ausgabe beeinflussen.

Informatik, Grundlagen

43

D. Hägele, Stand 20.08.2016

Hochschule Heilbronn Technik ● Wirtschaft ● Informatik Heilbronn University

Fakultät Mechanik und Elektronik Studiengang Mechatronik und Mikrosystemtechnik

7.3. Unicode Unicode ist ein Zeichenverschlüsselungsschema, das 2 Byte für jedes Zeichen verwendet. Die International Standards Organization (ISO) ordnet fast jedem Zeichen und jedem Symbol in jeder Sprache (und zusätzlich einigen zur späteren Verwendung reservierten Leerzeichen) eine Zahl von 0 bis 65.535 (216 - 1) zu. Unter allen 32-Bit-Versionen von Windows wird Unicode vom Component Object Model (COM), der Basis für OLE- und ActiveX-Techniken, verwendet. Unicode wird von Windows NT vollständig unterstützt. Obwohl Unicode wie DBCS aus Doppel-Byte-Zeichen besteht, sind ihre Verschlüsselungsschemata völlig verschieden. Beispiele für Zeichen-Codes: Die folgende Abbildung zeigt ein Beispiel für den Zeichen-Code in jedem Zeichensatz. Beachten Sie die unterschiedlichen Codes in jedem Byte der Doppel-Byte-Zeichen.

Informatik, Grundlagen

44

D. Hägele, Stand 20.08.2016