V 9 Computer Algorithmus Programm

Größe: px
Ab Seite anzeigen:

Download "V 9 Computer Algorithmus Programm"

Transkript

1 Vorlesung 9 Inhalt 1 Computer Was ist ein Computer? Analogrechner Die Ausführungsvarianten moderner Computer Die Leistungsfähigkeit (Performance) moderner Computer 6 2 Zur Geschichte des Computers Die grundlegenden Eigenschaften eines Computers Die Entwicklungen bis Entwicklung ab Der moderne Computer 13 3 Modelle des Computers Turingmaschinen Registermaschinen Minimalmaschinen 18 4 Algorithmen Der Begriff Algorithmus Formulierung von Algorithmen Der Euklidische Algorithmus 21 5 Programme Die historische Entwicklung der Programmiersprachen Programmiersprachenparadigmen Compiler versus Interpreter Virtuelle Maschinen 33

2 Vorlesung 9 V 9 Computer Algorithmus Programm Ziel dieser Vorlesung ist die Klärung von drei grundlegenden Begriffen: Computer, Algorithmus und Programm. Der geschichtliche Hintergrund wird kurz behandelt und die Begriffe versucht zu erläutern und zu diskutieren. Ausführliche historische Betrachtungen wurden in einen Anhang verbannt (und ist auch noch nicht vollständig). Für eine Grundlagenvorlesung ist er viel zu umfangreich geworden, aber für die eine oder andere LeserIn vielleicht interessant. 1 Computer Bisher gingen wir bei allen Betrachtungen davon aus, dass die den Programmen zugrunde liegenden Rechenmaschinen vorgegeben sind. Computer sind selbstverständlich geworden in der heutigen Welt aber was sind eigentlich Computer? In einem Satz sei dies nach heutigem Verständnis formuliert: Ein Computer ist eine (digitalelektronische) Maschine zur Speicherung und automatischen Verarbeitung von Daten, respektive Informationen (z.b. für mathematische Berechnungen oder allgemeiner Zeichenersetzungen) durch Angabe einer programmierbaren (flexiblen, veränderbaren) (Rechen-)vorschrift.. Dies ist vielleicht richtig, aber ist es auch vollständig? Informatikerinnen und Informatiker sollten es schon etwas genauer wissen: Wir wollen dies in diesem Kapitel näher untersuchen. 1.1 Was ist ein Computer? Zwar behauptete der bekannte Informatiker Edsger Dijkstra, In der Informatik geht es genauso wenig um Computer wie in der Astronomie um Teleskope.., aber, wenn wir nicht alle zu Zauberlehrlingen werden wollen, die Rituale anwenden, aber sie nicht beherrschen, dann müssen wir auch unser Hauptgerät verstehen: In allen Informatik-Curricula ist die technische Informatik (auch wenn sie heute in die Systeminformatik eingegliedert wird) essentieller Bestandteil: Elektronik, Rechnertechnologien, Digitale Schaltungen, Rechnerarchitekturen ( in Ihrem Studium mindestens durch die Module Hardware und das Hardwarepraktikum vertreten). Vieles, was in der Software (den Programmen) möglich und üblich ist, ist durch die benutze Hardware (die Rechnertechnik) bedingt. Ändert sich unsere Hardwarebasis, so ändern sich auch die Sprachelemente, um sie zu bedienen. Der Begriff Computer steht für Rechner oder Rechenanlage und lässt sich aus 1

3 dem lateinischen computare (zählen, rechnen) herleiten. Im modernen Deutsch wurde es aber eher aus dem Englischen computer abgeleitet, was eine meist unbekannte Vorgeschichte hat. Der englische Begriff computer, abgeleitet vom Verb to compute (rechnen), bezeichnete Menschen, die beginnend im späten Mittelalter für Astronomen die quälend langwierigen Berechnungen vornahmen. Zunächst wurden die Hilfskräfte, die dies von Hand ausführten oder einfache Rechenhilfen bedienten, als Computer bezeichnet, später wurde der Begriff Computer auch für diese Maschinen benutzt. Noch Ende der 40er und Anfang der 50er Jahren untersagte der damalige Geschäftsführer der IBM (International Business Machines) Thomas J. Watson (Senior) die Benutzung des Begriffs Computer für die IBM- Systeme. Man nannte die Maschinen dann Calculator. Der Hauptgrund soll gewesen sein, dass er bei den Bedienern der damals üblichen Rechenmaschinen, den Computern, keine Angst bezüglich ihres Ersatzes und Arbeitsplatzverlustes hat aufkommen lassen wollen. Zu Anfang war die Informationsverarbeitung mit Computern meist auf die Verarbeitung von Zahlen beschränkt (es waren flexible Rechenhilfen!) mit Ausnahme von Colossus, siehe unten. Mit zunehmender Leistungsfähigkeit eröffneten sich viele neue Einsatzbereiche, so dass Computer heute aus unserem modernen Leben nicht mehr wegzudenken sind. 1.2 Analogrechner Wir haben uns in unserer Definition eingeschränkt auf Digitalrechner, also solche Rechner, die mit diskreten endlichen Zahlenmengen oder Zeichenmengen arbeiten. Historisch gibt es eine andere Art: die Analogcomputer oder Analogrechner: Diese führen ihre Berechnungen auf der Basis kontinuierlicher Zustandsübergänge durch. Sie repräsentieren ihre Daten nicht als diskrete Werte (wie die Digitalcomputer), sondern als kontinuierliche eben analoge Größen, zum Beispiel in Form von geometrischen Längen oder Winkeln (mechanisch, z.b. Rechenschieber, Planimeter) oder elektrischen Spannungen oder Strömen. Abgesehen von den frühen Rechenhilfsmitteln wurden elektronische Analogrechner insbesondere in den 1930/40er (bis 60er)Jahren entwickelt, vor allem zur Lösung Gewöhnlicher Differentialgleichungen (das war mit Digitalrechnern zu der Zeit noch nicht realisierbar). Angewendet wurden diese Rechner zum Beispiel zur Simulation von Flugbahnen von Artilleriegeschossen und vor allem in der Regelungstechnik. Elementare Bausteine des Programmierens eines Analogrechners sind damit mathematische Operationen wie z. B. Integratoren, Summierer, Multiplizierer, Funktionssignalerzeuger (Sinus, Sprung, Impuls, etc.), Koeffizientenpotentiometer zur Eingabe von Parametern k (realisiert durch Spannungsteiler mit der Beziehung U a = k*u i ) mit denen insbesondere gewöhnliche Differenzialgleichungssysteme nachgebildet werden können. Die Ergebnisse stehen als physikalische Messwerte sofort (nach kurzem Stabilisieren) zur Verfügung und werden mittels Messgeräten, z. B. Voltmeter oder Oszillograph, angezeigt. In Abbildung 1a) ist ein solcher Aufbau gezeigt. Ein Beispielproblem, die Simulation eines Räuber-Beute-Systems, ist als Schaltung in Abbildung 1b) abgebildet. Die Messergebnisse, der zeitliche Verlauf der Signale, ist in Abbildung 1c) vorhanden. Näheres dazu ist in Anhang 1 beschrieben. 2

4 b) Grundsätzlich ist deshalb jeder Rechner einem Digitalcomputer vorzuziehen, der die für ein Problem notwendigen Operationen direkt mit Hilfe physikalischer Effekte umsetzen kann. Beispielsweise sind einfache Mustererkennungsoperationen ultraschnell in Hardware implementierbar, so dass sie anstelle digitaler Rechner bei der Analyse von Elementarteilchenprozessen im CERN verwendet werden. Solche spezialisierten Computer, bei denen die Prozessoreinheit direkt aus physikalischen Prozessen bestehen, werden auch heute noch in Spezialfällen gebaut und eingesetzt. Ein Stichwort dafür sind Molekulare Compua) c) Abbildung 1: a) Typischer Aufbau eines Analog-(Tisch!)computers um 1970, hier mit einem Telefunken RA 741. b) zeigt ein Programmierschaltbild, hier für das Volterra -Differentialgleichungssystem, das die Populationsdynamik einer Räuber Beute Beziehung beschreibt. Näheres siehe Anhang 1. c) zeigt das charakteristische Ergebnis dieses Systems als Ausgabe auf dem Oszilloskop: Die Populationskurven bilden also stabile periodische Wellen mit zeitlich versetzten Maxima. Auf das Maximum der Beutepopulation erfolgt das Maximum der Räuberpopulation. Zur Ableitung des Schaltbilds siehe Anhang 1. [Quelle: Bernd Ullmann, Workshop Analog Computing, 19.April 2006 (siehe )]. Ein entscheidendes Problem analoger Rechner ist ihre Rechengenauigkeit. Selbst heute haben Messgeräte einen maximalen Arbeitsbereich von 6 7 Zehnerpotenzen, mehr ist technisch nicht realisierbar. Damit könnte man zwar das Gewicht eines Lkws auf wenige Milligramm genau messen, aber das reicht bei vielen Problemen nicht aus, beispielsweise für den Umsatz eines Großunternehmens in Cent (z.b Cent) oder die Berechnung einer Flugbahn zum Mars. Hinzu kommt das grundsätzliche Problem der physikalischen Genauigkeit der Signale (Rauschen) aller elektronischen Geräte. Generell ist damit auch eine Zeichenverarbeitung, z.b. Textverarbeitung, sehr schwierig zu realisieren. Heute spielen Analogrechner deshalb quasi keine Rolle mehr. Ende der sechziger Jahre hat man zwar versucht, mit so genannten Hybridrechnern (Kombinationen aus Digital- und Analogrechnern) Probleme lösbar zu machen, die digitaltechnisch schwierig zu lösen sind. Warum? Beachten Sie: Die Lösung schon eines einfachen Differentialgleichungssystems auf einem Digitalrechner ist wesentlich aufwendiger als auf einem Analogrechner, da Integrieren und Differenzieren nicht zu den elementaren Operationen eines Digitalrechners gehören. Hier muss ein erheblicher Grad algorithmischen und numerischen Wissens herangezogen werden (siehe Numerische Mathematik) um solche elementaren mathematischen Operationen zu simulieren. 3

5 ter auf Molekülbasis oder auch DNA-Computer auf Basis der biologischen Mechanismen der DNA-Stränge und Replikation. Allerdings haben sie sich als Spezialmaschinen nicht gegen die allgemeinen Rechner durchgesetzt und blieben bisher auf ihre Spezialanwendungen beschränkt. Heute verstehen wir unter Computer eigentlich nur noch Digitalcomputer, also solche Rechner, die auf diskreter Basis, in aller Regel der binären Basis, arbeiten. 1.3 Die Ausführungsvarianten moderner Computer Computer sind heute extrem vielgestaltig, z.b. als PDA: Personal Digital Assistant ist ein handflächengroßer tragbarer Computer (Handcomputer; Palmtop); seit 1993 verfügbar der Erste unter der Bezeichnung Newton Message- Pad von der US-amerikanischen Firma Apple. Laptop (= "auf dem Schoß"), oder Notebook (notebook = Notizbuch) ist ein tragbarer Personal-Computer (persönlicher Rechner) in der Größe eines Buches. Speziell für den Einssatz im Internet ist eine nur mit kleinem Bildschirm und geringen Ressourcen ausgestattete (Sub-)Notebook-Version vorgesehen, das Netbook. Personalcomputer oder PC: übersetzt "persönlicher Rechner", ist ursprünglich der Handelsname einer Reihe von Computersystemen, die von Firma IBM hergestellt wurden (Einführung 1981) Der Begriff PC wird heute aber auch als Gattungsbezeichnung benutzt. Es handelt sich um einen Rechner, der nur einer einzelnen Person zur Verfügung steht und auf deren Bedürfnisse anpasst ist oder werden kann. Davor war der Rechnerzugang für Menschen nur über mehrere so genannte Terminals möglich, die an größere Rechner angeschlossen waren: mehrere Nutzer teilten sich einen Rechner (multi-user Betrieb / Teilnehmerbetrieb). Ein Arbeitsplatzrechner (Workstation, Desktop/Deskside Computer, Arbeitsplatzsystem), ist seit Ende der 70er Jahre gebräuchlich (XEROX Star, Apple Lisa, PERQ, SUN, SGI, etc.). Hierunter versteht man Einbenutzersysteme (wie ein PC) direkt am Arbeitsplatz des Benutzers im Unterschied zu den großen Rechnern, die nur in klimatisierten Räumen laufen. Wünschenswert für Einbenutzersysteme sind gute ergonomische Eigenschaften, u.a. geringe Geräusch- und Wärmeentwicklung, keine oder sehr geringe Strahlung und geringer Energieverbrauch der sehr leistungsfähigen Bildschirme (ggf. auch Lautsprecher) sowie Netzwerkfähigkeit. Zumindest zur Zeit der Einführung des PCs war dieser wesentlich weniger leistungsfähig als die konkurrierenden Workstations heute aber verwischen sich die Grenzen zunehmend: Eine Unterscheidung zwischen PC und Workstation ist kaum noch sinnvoll! Workstations sind heute Kernelemente einer modernen Client-Server -Infrastruktur. Ein Server ist ein Rechner, "auf dem ein Serverprogramm läuft", der für sogenannte Clients, z.b. auf Arbeitsplatzsystemen spezifische Dienstleistungen anbietet: Print-Server (Zugriff auf Drucker), Mailserver ( -Server), Datenbankserver; Webserver; Dateiserver, etc. Die Hardware, auf der ein oder mehrere Serverprogramme laufen, bezeichnet man manchmal als Host. Ein Mainframe (Großrechner, ggf. Host) ist ein großes und umfangreiches Computersystem, das weit über die Kapazitäten eines Personal Computers und oft sogar über die typischer Serversysteme hinausgeht, und wird meist im kommerziellen und kaufmännischen 4

6 Bereich eingesetzt (z.b. für Buchungssysteme, etc.). Im Gegensatz zu Supercomputern, die auf hohe Rechenleistung ausgelegt sind, ist ein Großrechner auf Zuverlässigkeit und hohen Datendurchsatz optimiert, um tausende parallel auszuführende Transaktionen (z.b. Geldüberweisungen) durchzuführen. Eine Datensicherung und die Konsistenz der Daten ist auf einem Mainframe leichter zu gewährleisten als in einem Netzwerk verteilter Daten. Deshalb werden Mainframes gern im Bankenbereich eingesetzt. Supercomputer sind Hochleistungsrechner, die zum Zeitpunkt ihrer Einführung im obersten realisierbaren Leistungsbereich operieren, siehe (Vierteljährlich wird die Liste der 500 schnellsten Supercomputer veröffentlicht).ein typisches Merkmal eines heutigen Supercomputers ist seine große Anzahl an Prozessoren (einige Hundert bis mehr als Hunderttausend), die oft auf einen sehr großen Hauptspeicher zugreifen. Zum Vergleich: Sämtliche Berechnungen aller Computer weltweit, im Zeitraum on 1960 bis 1970 (innerhalb 10 Jahre) könnte ein heutiger Supercomputer in etwa 30 Minuten durchführen. Spezialrechner (also Hardware) für spezielle Anwendungsprobleme waren früher z.b. gebräuchlich für die Bildverarbeitung, Computergraphik, Sichtsimulation, etc heute eher selten, da diese vergleichsweise teuer wären. Die Leistungsfähigkeit moderner Universalrechner reicht oft aus; ggf. werden stattdessen Cluster, also mehrere Universalrechner, benutzt. Ein besonderer Fall von Spezialrechnern sind Spielkonsolen. Sie haben meist eine normale Systemstruktur, verfügen aber über spezielle Grafikprozessoren und spezielle Hardware, um den Spielern einen schnellen Spielverlauf zu präsentieren oder spezielle Eingabegeräte zu ermöglichen. Dies gilt auch für PCs, die als Spielcomputer genutzt werden. Sie enthalten meist sehr anspruchsvolle Hardware (schneller, großer Speicher, Multi-Prozessorkerne, schnelle Festplatten, schnelle Grafikkarten), so dass sie inzwischen die Vorreiter der PC-Entwicklung repräsentieren. Treibendes Element dieser Entwicklung ist die Notwendigkeit, die reale Welt für Spiele möglichst gut und schnell zu simulieren. Von dieser Entwicklung profitieren natürlich auch andere Simulationen, etwa in der Medizin oder bei Industrieprozessen. Ein Embedded (eingebettetes) System ist ein (voll-)integriertes Computersystem, häufig nicht sichtbar, in einem Gesamtgerät oder -system: Handy, Waschmaschine, Auto, etc. 90 % der heute hergestellten Prozessoren arbeiten bereits in eingebetteten Systemen. Der Wertanteil der Computersysteme am Endprodukt nimmt beständig zu. Man erwartet, dass dieser bis 2010 folgende Anteile annimmt: Industrieautomation 22%, Telekommunikation 37% Consumer Electronics and Intelligent Homes 41% Medizintechnik 33% Automobile 30% (heute schon ca. 20%) in Oberklasseautos sind heute schon bis zu 160 Prozessoren. Die embedded systems sind ein Aspekt des sog. ubiquitous Computing. Die Ubiquitäre Computertechnik (kurz UbiComp); ubiquitous = allgegenwärtig) bezeichnet die Allgegenwärtigkeit der Informationsverarbeitung im Alltag von Unternehmen und Menschen überhaupt. Der Begriff wurde von Mark Weiser in seinem Aufsatz The Computer for the 21st Century geprägt. Grundidee ist dabei, dass Computer immer kleiner werden, dann direkt in den Gegenständen wie Teppiche oder Kleidung integriert verschwinden bzw. durch "intelligente Gegenstände" ersetzt und dabei überall gegenwärtig werden. 5

7 1.4 Die Leistungsfähigkeit (Performance) moderner Computer Computer bestehen aus verschiedenen Komponenten. Schnelle Speicher oder Prozessoren sind nur eine Vorraussetzung für einen schnellen Computer, reichen aber nicht aus. Entscheidend ist das gut aufeinander abgestimmte Zusammenspiel der Komponenten. Aus diesem Grund wurden gerade für den kommerziellen Einsatz Vergleichsmaßstäbe gesucht, um die Leistungsfähigkeit des Gesamtsystems beurteilen zu können. Früher wurde die Leistungsfähigkeit (Performanz, performance) gemessen in MIPS (Millionen Instruktionen pro Sekunde) und/oder MFLOPS (Millionen Floating Point Operationen pro Sekunde) = Gleitkommaoperationen Diese Maße haben aber sehr weinig Aussagekraft für die Gesamtleistung eines Systems, da Rechenoperationen nicht den Hauptteil von Programmen ausmachen. In den frühen 80er- Jahren wurde deshalb eine Messung durch sogenannte Benchmarks definiert. Sie sind fest vereinbarte Test-Programme, die jeweils einen typischer Mix von Anweisungen für eine Anwendungsart aufweisen. Bei jedem ist die Anzahl der Operationen dieser Mischung angegeben. Whetstone (dt. Wetzstein) wurde schon 1976 in den National Physical Laboratories in Großbritannien entwickelt. Er verwendet Fließkomma-Operationen, aber auch Integer- Arithmetik und Zugriffe auf Array-Elemente: [KWIPS oder MWIPS] entsprechend den damals vorherrschenden numerischen Berechnungen. Dhrystone (von Reinhold Weicker 1984 entwickelt) enthält nur Integer-Operationen (Ganze Zahlen). Sein Name ist ein Wortspiel auf den damals sehr populären Gleitkomma- Benchmark Whetstone. Heute wird meist SPEC verwendet (seit 1989): Es handelt sich um eine Serie von Anwendungen (z.b. neuronale Netze, finite Elemente, Videoenkodierung usw.), die in Integer-bezogene (SpecInt) und Floating-point-bezogene (SpecFp)-Programme eingeteilt werden. Entsprechend bilden das Endergebnis der Tests immer zwei Zahlen, die die Leistung bezogen auf eine Referenzmaschine (benchmark) angeben. Bei Spec2000 ist dies z.b. eine Sun UltraSparcIIi/256MB. 2 Zur Geschichte des Computers In vielen einführenden Büchern zur Informatik findet man hier mehr oder weniger geistreiche Ausführungen zur Geschichte. Oft beginnt man beim Abakus, beleuchtet kurz die Leibnitzschen Rechenmaschinen, kommt dann je nach Herkunft auf die Z1 und Z3 zu sprechen (Zuses Entwicklungen in Deutschland) oder auf die ENIAC (mit Mauchly und Eckert in den USA) oder auf die Analytical Engine (Babbage) oder gar Collossus und den Entwicklungen in England. Wir haben dies in einen Anhang verbannt hier können Sie, wenn Sie Lust haben durchaus interessante Details nachlesen. Um uns nicht mitten in den plumpen Streit über den Erfinder des modernen Computers hineinzubegeben (Wer baute den erste Computer?), müssen wir uns kritisch mit den kennzeichnenden Attributen eines Computers auseinandersetzen, denn etwa ab Mitte der 30er Jahre des 20. Jahrhunderts gab es diverse Entwicklungen, die wegbereitend waren. Wir kehren also zu unserer eingangs vorgestellten Definition zurück: 6

8 2.1 Die grundlegenden Eigenschaften eines Computers Ein Computer ist eine (digitalelektronische) Maschine zur Speicherung und automatischen Verarbeitung von Daten, respektive Informationen (z.b. für mathematische Berechnungen oder allgemeiner Zeichenersetzungen) durch Angabe einer programmierbaren (flexiblen veränderbaren) (Rechen-)vorschrift. Die hieraus abzuleitenden Eigenschaften sind: 1. (digital-elektronisch) 2. Speicherung von Daten 3. automatische Verarbeitung von Daten 4. programmierbare (flexibel veränderbare) Rechenvorschrift. Zu 1.: Mit dieser Eigenschaft rein mechanische oder elektromechanische (auf Relais basierende) Lösungen auszuschließen ist nach heutigem Stand zwar kennzeichnend, aber dieses als ausschließende Eigenschaft zu betrachten ist schon sehr willkürlich und steht deshalb in Klammern! Zu 2.: Tatsächlich war die zuverlässige Speicherung von Daten zumindest in größerem Umfang (z.b zehnstellige Zahlen) anfangs ein erhebliches Problem, deren unvollkommene (weil unzuverlässige) Lösung einige frühe Ansätze (Z1, ABC) zum Scheitern brachten. Hier gab es also erhebliche technologische Probleme zu lösen. Aber auch die Repräsentation der Daten (anfangs nur Zahlen) war verschieden: Dezimal vs. Binär und Festkomma vs. Gleitkomma. Zu 3.: Was heißt automatisch? - Automatisch bedeutet selbsttätig ablaufend. Der Wortstamm ist aus zwei altgriechischen Stämmen zusammengesetzt und bedeutet etwa von selbst tun, sich selbst bewegend. (Wikipedia). Was soll der Computer selbst tun? Nach der Eingabe der Aufgabe (insbesondere der Eingabeparameter) soll das Ergebnis also ohne weitere menschliche Intervention ggf. schrittweise errechnet werden. Was braucht man dazu minimal? Eine Antwort hierauf liefert die Theorie: Alles was intuitiv berechenbar ist, kann mit einer Maschine schrittweise errechnet werden, welche die folgende Operationen ausführen und sich die Zwischenergebnis merken (speichern) kann: das Nullsetzen eines Wertes, das Inkrement bilden (um 1 erhöhen zählen) eines Wertes und eine datenabhängige Verzweigung:, z.b. der Form: Wenn ein (Zwischen-) Wert 0 ist, dann führe die Operationsfolge 1 aus, sonst die Operationsfolge 2. Eine solche Maschine nennt man Turing-vollständig (Turing-complete). Dies ist (erschreckend) wenig, aber auch wenig praktisch: die Anzahl der Schritte, selbst für einfache Aufgaben, wäre viel zu groß, die nötigen Operationsfolgen schwer zu finden und setzt auch einen theoretisch unendlich großen Speicher voraus, etc. Allerdings ist dies minimal, um alle (überhaupt) vom Menschen berechenbare Funktionen zu errechnen (Church-Turing-These). Zu 4.: Die Programmierbarkeit unterscheidet einen Computer von Rechenhilfsmitteln wie dem Abakus oder einer Rechenmaschine, die nur einige spezielle Rechenoperationen (entweder ein- 7

9 fache, wie Addition und Subtraktion, oder auch aufwendigere, wie die Division komplexer Zahlen) ausführen kann und ggf. darauf angewiesen ist, dass der Benutzer die benötigten Rechenschritte für eine kompliziertere Berechnung nacheinander veranlasst. Allerdings: Wie die Programmiermöglichkeit realisiert wurde ist prinzipiell unerheblich. Hier wurden durchaus verschiedene Varianten implementiert: durch Umlöten von elektrischen Verbindungen (z.b. noch 1957: Versandsystem für Quelle von Karl Steinbuch Preisänderung durch Lötkolben-Eingriff - 11 Jahre in Betrieb), durch Stecken von Schaltdrähten, durch Lochstreifen, durch Eingabe und Speicherung eines Programms (speicherprogrammierbare Rechenanlage, stored program computer). Ein im Computer gespeichertes Programm erlaubt prinzipiell, dass sich dieses Programm selbst modifiziert. Wenn man unterstellt, dass neben einer Verzweigung mindestens ein unbedingter Sprung realisiert ist, ergeben damit sich die Möglichkeit, bedingte Sprünge zu realisieren und auch das Programm im Speicher beliebig zu verschieben. Auf der Basis dieser knappen Diskussion und beim Betrachten der nachfolgenden Tabelle wird klar, dass es nicht möglich ist, den Erfinder des Computers zweifelsfrei auszumachen. Viele haben mit ihren Ideen und Entwicklungen zum heutigen Rechnerstand beigetragen. Das ist nicht selbstverständlich: Als klar wurde, dass die elektronischen Rechenmaschinen auch wirtschaftlich bedeutend wurden, war es unvermeidbar das Patentstreite entstanden, insbesondere in den USA von Eckert und Mauchly (vs. Atanasoff) betrieben und in Deutschland von Zuse. Auch wenn die Gerichte lange benötigten (bis fast 1970), so wurde (zum Glück!) kein Patent für die Erfindung des Computers vergeben. Je nachdem, welche Eigenschaften und Ideen man wie gewichtet: das Konzept oder die Realisierung die Technologie: Mechanik Relais Röhren (Transistoren) (oder gar integrierte Schaltkreise) die Programmierbarkeit und das Programmmedium die theoretische Turing-Vollständigkeit oder (praktische) Verfügbarkeit eines bedingten Sprungs oder weitere Kriterien, die von Zeit zu Zeit angeführt werden, wie Dezimal vs. Binär Repräsentationen, Festkomma vs. Gleitkomma Repräsentation, sequentielle oder parallele Arithmetik, usw. kommt man zu sehr verschiedenen Ergebnissen, was als erster Computer bezeichnet werden darf! Wer Lust hat, darf also weiter streiten! 2.2 Die Entwicklungen bis 1950 Nach Babbages wegweisender Entwicklung der Analytical Engine (die er allerdings nicht rea- 8

10 lisieren konnte) brauchte es einhundert Jahre, bis viele seiner Ideen neuentwickelt und umgesetzt wurden. Obwohl (die Mathematiker) Howard Aiken in Havard, Vannevar Bush. und Georg Stibitz an den Bell Laboratories seine Ideen kannten, war der direkte Einfluss vermutlich sehr beschränkt: Konrad Zuse kannte diese Ideen nach eigenem Bekunden nicht! Man muss auch feststellen, dass viele Entwicklungen im Zeitraum ihre Finanzierung aufgrund der Kriegsereignisse und der Einstufung als kriegswichtig erlangten, so insbesondere Colossus in England (zur Dechiffrierung der deutschen ENIGMA-Codes), Havard Mark 1 (ASCC) zum Berechnen von Tabellenwerken von ballistischen Kurven für die Marine, ENIAC (ballistische Geschoßbahnberechnung /Tafelwerke für die Army). Auch Zuse hat dem deutschen Militär seine Entwicklungen mehrfach angeboten, aber ohne Erfolg. Diese militärische Einflussnahme setzte sich in der Geschichte fort: Der Koreakrieg beflügelte die US- Computerindustrie enorm und später die Entwicklungen für den kalten Krieg. Bei den ersten Entwicklungen gab es sowohl tischgrosse Systeme (Z1, Z3, ABC) als auch mechanische Ungetüme wie die Havard Mark 1 (Gewicht 35 Tonnen sowie eine Frontlänge von 16 Metern), und auch elektronische Ungetüme. Die komplette ENIAC Anlage war in U-Form aufgebaut und beanspruchte eine Fläche von 10m 17m bei 27 Tonnen Gewicht. Bis 1948 hatte keines der realisierten Rechensysteme alle geforderten Qualitäten erfüllt, die einen richtigen Computer ausmachen, siehe nachfolgende Tabelle. Name Analytical Engine nicht realisiert Hauptentwickler Charles Babbage Jahr der Rechen- Fertigstellung Technologie ( ) Programmierbar? Turingvollständig Mechanik Lochstreifen Ja Z 1 Conrad Zuse 1938 Mechanik Lochstreifen Nein CNC 1 Complex Number Computer George Stibitz S.Williams Bell Labs 1940 Relais Nein Nein 1941 Nein Nein Harvard Mark I (ASCC) ENIAC Z 4 von Neumann Architektur Howard H. Aiken Havard Univ. IBM John Mauchley Presper Eckert U Pennsylvania Conrad Zuse Zuse AG 1944 Mechanik Lochstreifen Ja an ETH Atanasoff-Berry Computer (ABC) nicht voll John V. Atanasoff Clifford Berry funktionsfähig realisiert Iowa State Elektronenröhren Z 3 Konrad Zuse 1941 Relais Lochstreifen Ja Datenband M.H. Newman I.J. Elektronenröhren 1944 und Nein Bletchley Park Good Verkabelung Elektronenröhren Relais Verkabelung Lochstreifen John von Neumann Architekturkonzept Ja Ja (1950 bedingter Sprung ergänzt!) 9

11 Manchester Mark I Prototyp Baby SSEC EDVAC - Electronic Discreet Variable Computer EDSAC - Electronic Delay Storage Automatic Calculator UNIVAC I (1103) Universal Automatic Computer F. Williams U Manchester Ferranti Wallace Eckert IBM Eckert Mauchly von Neumann U Pennsylvania. Maurice Wilkes Alan Turing, U Cambridge UK) Relais (1949) Elektronenröhren Elektronenröhren Elektronenröhren 1951 Eckert Mauchly Elektronenröhren 1950 Prototyp ATLAS UNIVAC Whirlwind I MIT 1951 Elektronenröhren IBM 650 IBM 1953 Elektronenröhren stored program stored program stored program stored program stored program stored program stored program Ja Ja Ja Ja Ja Ja Ja Tabelle 1 Kerneigenschaften früher Rechensysteme der ersten Computer Ein entscheidender und bedenkenswerter Wendepunkt trat ein, als John von Neuman den First Draft of Report on the EDVAC vorlegte mit Datum vom , der Geburtstag der von Neumann-Architektur und des stored program computers, siehe Er war zu der Zeit militärischer Consultant (Manhattan Projekt, Target Group) und Mitglied des Teams um Eckert und Mauchly (Moore School an der University of Pennsylvania). Dieses Team stand kurz vor der Inbetriebnahme der ENIAC. Viele Mitglieder des Teams hatten Urlaub genommen und von Neuman machte wohl nicht mehr und nicht weniger, als die Ideen und Diskussionen zusammen zu fassen, die wohl maßgeblich von Eckert und Mauchly geführt worden waren so zumindest eine Anekdote. Es war lediglich als internes Memo gedacht, das einen Zwischenstand dokumentierte, nicht als Veröffentlichung. Das dieses Papier dann sehr weit bekannt wurde und seinen grundlegenden Einfluss auf die weitere Computerentwicklung ausübte, lag wohl daran, dass es viel Streit gab im Team von Eckert und Mauchly gab und diese auch im Frühjahr 1946 ausschieden (Sie gründeten eine Firma.) Nachdem das Papier fast ein Jahr herum gelegen hatte (als handschriftliche Notiz), entschloss Herman Hine Goldstine, es auf Maschine abschreiben zu lassen, setzte von Neumann als alleinigen Autor darauf und verschickte am mindestens 24 Kopien an Teammitglieder und viele Kollegen an Universitäten in den ganzen USA und auch nach England damit war es öffentlich und entwickelte seine bahnbrechende Wirkung! Dieses Papier war wohl den meisten Teilnehmers des Seminars an der Moore School der U Pennsylvania Theorie and Techniques of Electronic Digital Computers im Zeitraum 8.7. bis bekannt. Quasi alle bedeutenden Computerentwickler waren vertreten: Stibitz (Bell Labs), Eckert und Mauchly (früher Moore School), Aiken (Havard), von Neuman, Goldstine (Princeton), D.R. Hartree (UK), usw. Dabei spielte von Neumann eine Nebenrolle, aber hielt zumindest auch einen Vortrag. Die notwendige Neuorientierung vieler an zuvor militärischen Projekten beteiligten hat diese erste Computer-Konferenz ermöglicht und sicher zur Verbreitung der von Neumann Architektur entscheidend beigetragen. Ab 1948 basierten eigentlich alle Rechner auf den Ideen und Konzepten, die von Neumann zusammengefasst hatte. Das Papier selbst enthält keine Architekturzeichnung. Auch wenn die Prinzipien meist einheitlich beschrieben werden, so findet man in der Literatur doch sehr verschiedene Varianten. Nachfolgendes Bild illustriert die Kernideen und ist direkt mit Textauszügen aus dem Originalpapier beschriftet. 10

12 R outside recording medium... a stack of punch-cards, a teletype tape, etc.: information can be produced directly by human action and sensed directly by human organs I input: organs to transfer numerical (or other) information from R to M O output: organs to transfer numerical information from M to R M conciderable memory for at least the four following phases a) intermediate (partial) results must be remembered b) the instructions which govern the complicated problems c) specific functions, usually in form of a table d)... h) diverse other data... tempting to treat the entire memory as one organ instructions CC proper sequencing of the machines operations... a general / central organ functions: (1) receive orders from M (2) interpret them (3) carry them out or stimulate other organs to carry them out A very high speed automatic digital computing system I CA J CA (numerical) data CA + x perform the elementary operations of aritmetic: +,, x, O CA C Abbildung 2: Die Original von Neumann-Architektur. Extrahiert aus dem Text First Draft of Report on the EDVAC mit Datum (DK) Die Kernideen der von Neumann Architektur sind: 1. Ein Computer besteht aus 5 Funktionseinheiten: Speicher, Steuerwerk oder Leitwerk, Rechenwerk, Eingabe, Ausgabe (Steuerwerk und Rechenwerk bilden den Prozessor) 2. Im Speicher sind sowohl die zu bearbeitenden Daten als auch das Programm abgelegt. 3. Ein Befehls-Ausführungszyklus besteht aus der Folge: Befehl aus dem Speicher holen FETCH Befehl im Steuerwerk interpretieren DECODE Operanden holen FETCH OPERANDS Befehl ausführen (von einer der Funktionseinheiten) EXECUTE (Erhöhen des Befehlszählers UPDATE INSTRUCTION POINTER Das Konzept des Befehlszählers ist in dem Konzept nicht explizit erwähnt, aber notwenig.) Natürlich gab es Weiterentwicklungen oder Alternativkonzepte wie z.b. die sogenannte Harvard Architektur (Aiken) mit der Trennung von Daten und Programm in zwei verschiedene Speicher, die den so genannten von Neumann Flaschenhals vermeidet, aber das stored program Prinzip wurde allgegenwärtig. 2.3 Entwicklung ab 1950 Waren bis etwa 1950 alle Rechner Laborprototypen ggf. mit wenigen Kopien, z.b. Collossus oder one-of-a-kind Systeme, so entwickelte sich um diese Zeit die Kommerzialisierung der Rechnerentwicklung (und dabei auch die zum Teil hoffnungslos übertriebenen Erwartungen wie Elektronengehirn ) und es etablierten sich ab 1950 verschiedene Computerhersteller mit speziellen Rechnern für wissenschaftliche Zwecke, andere für kaufmännische Anwendungen sowie wieder andere für Militärzwecke: 11

13 In USA mit Starthilfe von Howard Aiken der Computerhersteller IBM sowie Eckert und Mauchly UNIVAC In England F. Williams ( U Manchester) Ferranti In Deutschland Konrad Zuse Zuse KG (AG) Während Zuse seine Z22 (ab 1957) für ihn sehr erfolgreich ca. 50 Mal weltweit verkaufte, arbeitete IBM in dieser Zeit in schon ganz anderen Dimensionen. Allein das Modell 650 wurde weltweit 800 Mal verkauft. Wenn man um 1960 in den USA über den Computermarkt sprach, so sprach man von IBM und den sieben Zwergen gemeint waren UNIVAC 12 % Marktanteil, Burroughs 3 %, NCR 3 %, CDC, RCA, Honeywell, GE mit kleineren Anteilen: IBM beherrschte 70% des US Marktes (und auch des Weltmarktes). Diese absolute Dominanz blieb bis weit in die 70er Jahre erhalten, etwas eingeschränkt durch das Aufkommen so genannter Minicomputer (z.b. von Digital Equipment DEC) ab Ende der 60er Jahre. Wirklich ändern sollte sich die Situation aber erst in den 80er Jahren, mit dem Aufkommen integrierten Schaltungen und damit der PCs, Workstations und des Internets. Wollte man die Geschichte der Computer weitererzählen, so müsste man ab den siebziger Jahren verschiedene Entwicklungslinien verfolgen, jede mit ihren eigenen Wurzeln und spezifischen Entwicklungen für Arbeitsplatzrechner (Workstations) Personalcomputer (PCs) und Laptops Server Hosts und Mainframes. Homecomputer Spielkonsolen PDAs: Personal Digital Assistant Spezialrechner Embedded (eingebettetes) System Rechnernetze Rechnertechnologie Diese verschiedenen Linien zu verfolgen, würde eindeutig zu weit führen und tragen kaum noch was zu Verständnis des Begriffs Computer bei. Vielleicht noch einige Quantitäten zum Schluss: 2005 wurden weltweit ca. 300 Millionen PCs und Laptops verkauft. Das sind nur 10% der verkauften Prozessoren, die übrigen 90% stecken im Wesentlichen in Embedded Systems! Vielleicht noch ein weiterer Aspekt: die heute üblichen Begriffe Software und Hardware traten erst relativ spät in Erscheinung. In der heutigen Bedeutung wurde der Begriff erstmalig 1958 von John W. Tukey benutzt. Software bezeichnet alle nichtphysischen Funktionsbestandteile eines Computers bzw. eines jeden technischen Gegenstandes, der mindestens einen Prozessor (in embedded systems) enthält. Dies umfasst vor allem Computerprogramme sowie die zur Verwendung mit Computerprogrammen bestimmten Daten und auch die technischen Beschreibungen hierzu. Also alles das, was nach damaligem Kenntnisstand das relativ einfach zu Ändernde war. Hardware hingegen ist der Oberbegriff für die maschinentechnische Ausrüstung eines Computersystems. Dazu gehören alle Baugruppen (Prozessor, Arbeitsspeicher etc.) und Peripheriegeräte, insbesondere also der Computer selbst. 12

14 Diese Begriffsbildung ist möglicherweise die Lebenslüge der Informatik, denn schon bald stellte sich heraus, das die Software das eigentlich beständige werden sollte Hardware kommt und geht: Viele Softwareprogramme aus den 60er Jahren laufen bis heute mehr oder weniger unverändert die Hardware hat sich, z.b. Emulation (Nachbildung von Systemen) ggf. in der Zwischenzeit mehrfach angepasst. 2.4 Der moderne Computer Bis heute hat sich trotzt vielfältiger Kritik, Überlegungen und Variantenbildung die von Neumann Architektur erhalten. Fast alle Computer enthalten die von Neumann Architektur. In den heutigen Computern sind die ALU (Arithmetisch-Logische Unit) und die Steuereinheit meistens in einem Baustein verschmolzen, der so genannten CPU (Central Processing Unit, zentraler Prozessor). Der Speicher ist eine Anzahl von ganzzahlig durchnummerierte Zellen, die heute in der Regel 8 bit (0 oder 1) umfassen. Die Nummer einer Zelle nennt man Adresse. Ein Charakteristikum der Von Neumann-Architektur ist, dass der Inhalt einer Speicherzelle entweder (als Teil) eines Datums (also zum Beispiel der Buchstabe A ), oder auch als (Teil eines) Befehls für die CPU ( Addiere... ) betrachtet werden kann. Das Steuerwerk ist dafür zuständig, den aktuell auszuführenden Befehl oder eher die Speicherzelle, in der dieser steht, zu kennen. Diese Adresse wird in einem speziellen Register, dem Befehlszähler (program counter) gehalten. Das Steuerwerk liest einen Befehl aus dem Speicher, erkennt zum Beispiel , erkennt dies als Springe zu und holt den Operanden, in diesem Fall die Sprungadresse (ein bis acht Byte lang). Dann setzt sie den Befehlszähler auf eben diese Speicherzelle, um dort wiederum ihren nächsten Befehl auszulesen; der Sprung ist vollzogen. Wenn der Befehl zum Beispiel Addiere lauten würde, dann würde sie aus der in der Folge angegebenen Adresse den Inhalt auslesen, um ihn dann beispielsweise an die ALU als Operanden weiterzuleiten. Operanden können in heutigen Prozessoren sehr verschieden adressiert werden: direkt (die vollständige Adresse folgt direkt dem Begfehl) oder indirekt, z. B. über ein weiteres spezielles Register, dem Indexregister., als Einadress-, Zweiadress oder Dreiadressbefehl, usw. Hier gibt es sehr viele Varianten. Die ALU hat neben der Logik zur Ausführung der Operationen in der Regel mindestens ein Register, den so genannten Akkumulator, meistens aber einen Registersatz, die als Zwischenspeicher für Operanden dienen. Aktuell ist nach wie vor die Diskussion um die Prozessorarchitekturen RISC (reduced instruction set computer) oder CISC ( complex instruction set computer) aktuell. Historisch hatten sich immer mehr und mächtige Befehlsarten entwickelt, was zwar einen erheblichen Dekodierungsaufwand bedeutete, aber für einen Befehl nur wenig des teuren Speicherplatzes belegte. Mit dem Aufkommen billigen Halbleiterspeichers kam die Idee auf, bei viel Codespeicher mit möglichst wenigen, einfachen Befehlen auszukommen und durch den geringen Dekodierungsaufwand pro Befehl den Prozessortakt und dadurch die Geschwindigkeit erheblich erhöhen zu können. Worin unterscheiden sich RISC- und CISC-Prozessoren besonders? 13

15 Eigenschaften CISC RISC Anzahl der Register Wenige ( ca. 20) Viele (bis zu 200) Befehlssatz Ca. 300 Befehle und mehr als Nur rund 100 meist Registerorientierte 50 Befehlstypen Befehle Adressierungsarten Viele, z.b. 12 unterschiedlicher Nur 3 bis 5 Arten, alle gleich Befehlscodelänge lang Speicher /Caches Gemeinsame Caches, aber Getrennte Daten und Befehls- heute auch getrennte Caches (nach Harvard) Taktzyklen zur Ausführung 1 bis 20, durchschnittlich z.b. 1 bei den meisten Befehlen, eines Befehls (CPI) 4 im Schnitt 1,5 Befehlssteuerung Mikrocode, z.t. auch hartverdrahtet Meistens hartverdrahtet Beispielprozessoren Intel x86 und AMD Sun UltraSparc und PowerPC Tabelle 2 Übersicht: Eigenschaften von CISC- und RISC-Prozessoren Die Eigenschaften sind durch die unterschiedlichen Architekturen bedingt. In Abbildung 3 sind beide Architekturen gegenüber gestellt. Abbildung 3 : Aufbau eines CISC und eines RISC-Prozessors Hierzu werden Sie noch viele weitere Details in der Veranstaltung Hardware im 2. Semester hören. 3 Modelle des Computers Insbesondere für theoretische Untersuchungen lassen sich konkrete Rechnerarchitekturen, die sich ja auch ständig ändern, wenig gebrauchen. Modellbildung ist eine der zentralen Methoden der Informatik und zwingend findet dies in verschiedenen Formen auch für die Subjekte der Informatik selbst statt. Ziel der Modellbildung und die Art der Abstraktion können dabei sehr verschieden sein. Wir wollen zwei Modelle kurz betrachten. 3.1 Turingmaschinen Die Turingmaschine ist ein von dem britischen Mathematiker Alan Turing schon 1936 entwickeltes Modell, um eine Klasse von berechenbaren Funktionen zu bilden. Sie wurde speziell 14

16 zur Lösung des so genannten Entscheidungsproblems (nach Hilbert) in der Schrift "On Computable Numbers, with an Application to the Entscheidungsproblem" vorgestellt. Alan Turing beabsichtigte mit der Turingmaschine, ein Modell des mathematisch arbeitenden Menschen zu schaffen. In der Theorie der Berechenbarkeit spielt dieses Modell eine große Rolle, für Sie erst im 4. Semester. Abbildung 4: Funktionsschema einer Turing Maschine Die so genannte deterministische Turing Maschine arbeitet auf Zuständen und benutzt Einund Ausgabezeichen, die zu Alphabeten zusammengefasst werden können. Formal besteht sie aus einem 7-Tupel: M = ( Q, Σ, Γ, δ, q, ε, F ) Q ist die endliche Zustandsme nge Σ ist das endliche Eingabealp habet Γ ist δ : Q x Γ Q x Γx 0 ε Γ \ Σ 0 das endliche Bandalphab et q ist der Anfangszu stand { links, unveränder t, rechts } steht für das leere Feld F Q ist die Menge der Endzuständ e ist die Überführun gsfunktion Die Turingmaschine führt eine Berechnung aus, indem sie schrittweise eine Eingabe in eine Ausgabe umwandelt. Ein-, Ausgabe und Zwischenergebnisse werden auf dem ggf. unendlich langen Band gespeichert. Zu Beginn steht ein Wort als Eingabe auf dem Band (pro Bandfeld ein Zeichen des Eingabewortes), der Rest des Bandes ist mit dem leeren Feld formatiert. Der Schreib-/Lesekopf steht auf dem ersten Zeichen der Eingabe und die TM befindet sich im (Start-)Zustand q 0. Die Überführungsfunktion gibt an, wie die Turingmaschine schrittweise den Bandinhalt, ihren Zustand und die Position des Schreib-/Lesekopfes ändert. Diese Funktion nimmt als Argument den aktuellen Zustand und das Zeichen, was sich im aktuellen Schritt unter dem Schreib- /Lesekopf befindet. Als Ergebnis liefert sie dann genau einen Zustand (dieses wird dann der Nachfolgezustand der Turingmaschine), ein Zeichen (mit diesem Zeichen wird dann der Inhalt des Feldes, auf das der Schreib-/Lesekopf weist, überschrieben) und entweder das Symbol links (in diesem Fall bewegt sich der Schreib-/Lesekopf um ein Feld nach links), ein rechts (in diesem Fall bewegt er sich ein Feld nach rechts) oder ein unverändert (dann verharrt er auf dem selben Feld). Damit hat die Turing Maschine einen Schritt ihres Arbeitsablaufs durchlaufen und steht für einen weiteren bereit. Erreicht die Turingmaschine einen Endzustand, also einen Zustand der Menge F, ist die Berechnung beendet. Die Ausgabe ist dann der Inhalt des Bandes. Je nach Bandalphabet können Ein-/Ausgaben und Zwischenspeicherungen ggf. unterschiedlich kenntlich gemacht werden. 15

17 Das Besondere an einer Turingmaschine ist ihre konstruktive Einfachheit und die Tatsache, dass man mit einer Turing Maschine alle Probleme lösen kann, die von einem Computer überhaupt gelöst werden könnten. Turing bewies dies, bevor echte Computer realisiert waren und zeigte damit das Potential, aber auch die Grenzen des Berechenbaren auf. Die Church-Turing- These stellt schließlich die Behauptung auf, (beweisen lässt sich das nicht,) dass eine Turingmaschine alle überhaupt von Menschen berechenbaren mathematischen Funktionen lösen kann. Umgekehrt aber kann der Mensch Probleme formulieren, so z.b. das sog. Halteproblem, die nicht von Menschen (und folglich auch nicht von einer Turingmaschine) berechnet werden können. Im Kern bedeutet das Halteproblem, ob es möglich ist, bei jedem beliebigen Programm anzugeben, ob es irgendeinmal anhalten (zu Ende gehen) wird. Die wichtigste Fragestellung bezüglich des Halteproblems ist, ob es entscheidbar ist, also ob eine Turingmaschine existiert, die für jedes Paar aus kodierter Turingmaschine und Eingabe berechnen kann, ob die kodierte Maschine auf dieser Eingabe anhält. In der praktisch/angewandten Informatik lautet dieselbe Frage: Kann man ein Programm entwickeln, das als Eingabe den Quelltext eines zweiten Programms sowie dessen Eingabewerte erhält und entscheiden kann, ob das zweite Programm terminiert, d. h. nicht endlos weiterläuft? Alan Turing bewies 1936, dass es einerseits keine Turingmaschine gibt, die das Halteproblem für alle Eingaben löst. Zum anderen zeigte Turing, dass auch andere Herangehensweisen, die menschliches Denken formalisieren, nicht erfolgreicher sein können. So wurde von Turing historisch zuerst die Äquivalenz von Churchs Lambdakalkül zur Turingmaschine bewiesen. Es folgten darauf viele weitere vorgeschlagene Algorithmenbegriffe (Rechenmodelle), die alle in ihrer Berechnungsfähigkeit nicht mehr leisteten als die Turingmaschine. Man bezeichnet diese Berechnungsmöglichkeiten demzufolge als Turingvollständig. Dies ließ vermuten, dass es keinen mächtigeren Formalismus als den der Turingmaschine hinsichtlich der Berechenbarkeit gebe und der Mensch ebenfalls algorithmisch arbeitend auch nicht mehr Funktionen ausrechnen könne: die Church-Turing-These. Setzt man nun die Churchsche-Turing-These als wahr voraus, so können Maschinen und letztlich Menschen das Halteproblem (und viele andere Probleme) grundsätzlich nicht lösen. Das führt zu der philosophisch weitreichenden Aussage, dass nicht jedes Problem lösbar ist, selbst dann nicht, wenn man eigentlich alle relevanten Informationen kennt und sich streng an einen mächtigen Formalismus hält. Für die Softwareentwicklung bedeutet die Nichtentscheidbarkeit des Halteproblems, dass im Allgemeinen eine automatisierte Überprüfung jeder beliebigen Programmlogik nicht möglich ist (siehe auch Verifikation). Insbesondere bedeutet das, dass es nicht möglich ist, automatisiert festzustellen, welche Programme jemals zu einem Ende finden werden, d. h. anhalten werden. 3.2 Registermaschinen Eine Modellbildung, die vor allem in der Komplexitätstheorie (2. und 3. Semster) in der Theorie benutzt wird, sind sog. Registermaschinen. Das Modell geht auf eine Arbeit von John C. Shepherdson und Howard E. Sturgis aus dem Jahr 1963 zurück. Diese Modelle sind sehr ähnlich zu RISC-Prozessoren, nur noch ein wenig mehr vereinfacht. Die Registermaschine besteht aus einem Programm. Dieses enthält endlich viele durchnummerierte Befehle (beginnend mit Nummer 1), einen Befehlszähler b, einen Akkumulator c(0) und 16

18 einen unendlich großem Speicher aus durchnummerierten Speicherzellen (hier Register genannt) c(1), c(2), c(3),... Alle Register inklusive b und c(0) enthalten beliebig große, natürliche Zahlen. Zu Beginn enthält der Befehlszähler b den Wert 1, der Akkumulator den Wert 0. Die Speicherzellen ab Nummer 1 enthalten zu Beginn die endliche Eingabe das Programm und die Daten. Die restlichen Speicherzellen enthalten den Wert 0. Die Registermaschine führt nacheinander die Befehle des Programms aus. Es wird immer der Befehl mit der Nummer b ausgeführt. Wie man aus der Tabelle entnehmen kann, erhöhen fast alle Befehle den Befehlszähler um 1, so dass der nächste Befehl ausgeführt werden kann. Die Registermaschine endet, sobald sie den Befehl END ausführt. Das Ergebnis der Berechnung steht dann in (zuvor) definierten Registern. Das Programm kann aus folgenden Befehlen bestehen. Befehl Wirkung auf Register Wirkung auf b LOAD i c(0):=c(i) b:=b+1 CLOAD i c(0):=i b:=b+1 INDLOAD i c(0):=c(c(i)) b:=b+1 STORE i c(i):=c(0) b:=b+1 INDSTORE i c(c(i)):=c(0) b:=b+1 ADD i c(0):=c(0)+c(i) b:=b+1 CADD i c(0):=c(0)+i b:=b+1 INDADD i c(0):=c(0)+c(c(i)) b:=b+1 SUB i c(0): = max(c(0) c(i),0) b:=b+1 CSUB i c(0): = max(c(0) i,0) b:=b+1 INDSUB i c(0): = max(c(0) c(c(i)),0) b:=b+1 MUL i c(0):=c(0)*c(i) b:=b+1 CMUL i c(0):=c(0)*i b:=b+1 INDMUL i c(0):=c(0)*c(c(i)) b:=b+1 DIV i ( 0) : c(0) / c( i) c = b:=b+1 CDIV i ( 0) : c (0) / i ) c = b:=b+1 INDDIV i ( 0) : c (0) / c( c( i )) c = b:=b+1 GOTO i IF c(0) op l GOTO i b:=i b:=i falls Bedin- 17

19 op { <,, =,, > } gung c(0) op l wahr, b:=b+1 sonst. END b:=b Tabelle 3 Die Befehle der Registermaschine Wir erkennen unter den Befehlen die vier Grundrechenarten, jeweils in drei Varianten: (Ein-) adressbefehl, Direkt (Konstante) und indirekt adressiert. Hinzu kommen Lade und Speicherbefehle sowie Sprungbefehle und ein END. Wenn man so will, ist die Registermaschine eine extreme RISC-Variante, gerade so komfortabel, dass man viele Algorithmen noch bequem notieren kann, aber mathematisch noch so übersichtlich, dass man sie gut formal fassen kann. Eine Registermaschine kann alles das berechnen, was auch ein realer Rechner kann. Da man auch beweisen kann, dass sich die Registermaschine und die Turingmaschine gegenseitig (mit polynomieller Laufzeit) simulieren können, gelten Aussagen, die man für die Turingmaschine beweisen kann, auch für die Registermaschine und damit auch für reale Rechner. 3.3 Minimalmaschinen Sind all diese Befehle wirklich nötig? Eindeutig nein: Es geht sogar nur mit einem Befehl. Mit dem ultimativen RISC ist es möglich ist, einen Prozessor zu kreieren, der genau einen Befehl kennt und doch alle Aufgaben erledigen kann, die jeder andere Prozessor auch kann. Dabei wird angenommen, dass dem Computer ein unendlich großer Speicher zur Verfügung steht. Des Weiteren wird angenommen, dass die Konstante 1 fest in der Hardware vorhanden ist, woraus alle anderen Ganzzahlen konstruiert werden können. Der einzige Befehl, der gegeben wird, ist der folgende: STJ x,y,z steht dabei für "Substract, Test and Jump". Folgendes wird durch den Befehl ausgeführt: Substract: <x>:= <x> - <y>; if x<=0 then goto z else goto next instruction x, y und z sind Adressen des Speichers Wenn man unbedingt (unverzweigt) in der Befehlsfolge weitergehen will, benutzt man für z die relative Adressangabe ".+1". 18

20 4 Algorithmen In der Informatik haben wir es meist mit Programmen zu tun. Grundlage eines Programms ist aber ein sog. Algorithmus. Was verstehen wir darunter? 4.1 Der Begriff Algorithmus Unter einem Algorithmus versteht man allgemein eine genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen. Im täglichen Leben lassen sich leicht Beispiele für Algorithmen finden: Zum Beispiel ist ein Koch- oder Backrezept ein Algorithmus zumindest dann, wenn alle Angaben genau genug sind und es ggf. für alle Teilaufgaben, wie Braten, Rühren, etc., ebenfalls (Teil-) Algorithmen gibt. Auch Reparatur- und Bedienungsanleitungen oder Hilfen zum Ausfüllen von Formularen sind prinzipiell Algorithmen. Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammad ibn Musa al-chwarizmi (* ca. 783, ca. 850), dem Autor des Buchs Hisab al-dschabr wa-lmuqabala (825, Regeln zur Wiederherstellung und Reduktion), durch das die Algebra im Westen verbreitet wurde. Die lateinische Fassung beginnt mit Dixit Algoritmi... (Algoritmus sprach...), womit der Autor gemeint war. 4.2 Formulierung von Algorithmen Für Algorithmen gibt es unterschiedliche Repräsentationen, umgangsprachig, graphisch, als Pseudo-Programmiersprache und in einer Programmiersprache, als Maschinenprogramm einer Turingmaschine, usw. Diese reichen vom Algorithmus als abstraktes Gegenstück zum konkret auf eine Maschine zugeschnittenen Programm (d. h., die Abstraktion erfolgt hier im Weglassen der Details der realen Maschine, das Programm ist eine konkrete Form des Algorithmus, angepasst an die Notwendigkeiten und Möglichkeiten der realen Maschine) bis zur Ansicht, Algorithmen seien gerade die Maschinenprogramme von Turingmaschinen (wobei hier die Abstraktion in der Verwendung der Turingmaschine an sich erfolgt, d. h., in einem mathematischen Modell). Der erste für einen Computer gedachte Algorithmus wurde 1842 von Ada Lovelace in ihren Notizen zu Charles Babbages Analytical Engine festgehalten. Sie gilt deshalb als die erste Programmiererin. Die mangelnde mathematische Genauigkeit des Begriffs Algorithmus störte aber viele Mathematiker und Logiker des 19. und 20. Jahrhunderts. Insbesondere steht die natürliche Sprache mit ihren Unschärfen und Widersprüchlichkeiten der Forderung nach Eindeutigkeit und Widerspruchsfreiheit im Wege; man betrachte zum Beispiel nur einmal ein Kochrezept oder eine Bedienungsanleitung. Wir benötigen für den Computer eine erheblich höhere Präzision der Anweisungen als für den Menschen, der noch über semantisches Zusatzwissen verfügt. Insbesondere in der ersten Hälfte des 20. Jahrhunderts wurde eine ganze Reihe von Ansätzen entwickelt, um zu einer genauen Definition zu kommen. Formalisierungen des Berechenbarkeitsbegriffs sind die Turing-Maschine (Alan Turing), das Lambda-Kalkül (Alonzo Church), rekursive Funktionen und Chomsky-Grammatiken viele dieser Formalismen werden Sie in Ihrem Studium noch kennenlernen. 19

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 22 September 2014 1 / 24 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte des Computers 4 Komponenten eines Computers 5 Aufbau eines

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

1. Übung - Einführung/Rechnerarchitektur

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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

Mehr

Computeria Urdorf. Treff vom 16. Januar 2013. Was ist ein Computer?

Computeria Urdorf. Treff vom 16. Januar 2013. Was ist ein Computer? Computeria Urdorf Treff vom 16. Januar 2013 Was ist ein Computer? Der Vater des Computers Charles Babbage (26.12.1791 18.10.1871) Erfinder der mechanische Rechenmaschine Die Entwicklung des Computers Karl

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Die Geschichte des Computers

Die Geschichte des Computers Inhaltsverzeichnis Der Vorbote des Computers... 3 Der Erfinder des ersten Computers... 3 Die Computer... 4 Der erste Computer Z1... 4 Der zweite Computer Z3... 5 Der Mark I... 6 Der ENIAC... 7 Der SSEC...

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Die Mikroprogrammebene eines Rechners

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

Mehr

HISTORISCHES INFORMATIK-MUSEUM DER UNIVERSIDAD POLITECNICA DE MADRID

HISTORISCHES INFORMATIK-MUSEUM DER UNIVERSIDAD POLITECNICA DE MADRID HISTORISCHES INFORMATIK-MUSEUM DER UNIVERSIDAD POLITECNICA DE MADRID Die Initiative, ein historisches Informatik-Museum zu gründen, ist Pionier im Rahmen der spanischen Universitäten. Sie hat das Sammeln

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

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

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

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden

Mehr

Facharbeit Informatik. Thema:

Facharbeit Informatik. Thema: Facharbeit Informatik Thema: Rechneraufbau Mit Locad 2002 1 Inhaltsangabe Inhalt: Seite: 1. Einleitung 3 2. Inbetriebnahme der Schaltung 3 3. Eingabe 4 4. CPU 5 5. RAM/HDD 8 6. Ausgabe 10 7. Auf einer

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Kann ein Computer denken?

Kann ein Computer denken? Kann ein Computer denken? Fachbereich Betriebswirtschaft FH www.fh-koblenz.de/bw/komus www.komus.de www.fh-koblenz.de/bw/komus www.fh-koblenz.de/bw/komus 2 www.fh-koblenz.de/bw/komus 3 www.fh-koblenz.de/bw/komus

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

1 Informationelle Systeme begriffliche Abgrenzung

1 Informationelle Systeme begriffliche Abgrenzung 1 Informationelle Systeme begriffliche Abgrenzung Im Titel dieses Buches wurde das Wort Softwaresystem an den Anfang gestellt. Dies ist kein Zufall, denn es soll einen Hinweis darauf geben, dass dieser

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Eigene Dokumente, Fotos, Bilder etc. sichern

Eigene Dokumente, Fotos, Bilder etc. sichern Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik Projekt 2HEA 2005/06 Formelzettel Elektrotechnik Teilübung: Kondensator im Wechselspannunskreis Gruppenteilnehmer: Jakic, Topka Abgabedatum: 24.02.2006 Jakic, Topka Inhaltsverzeichnis 2HEA INHALTSVERZEICHNIS

Mehr

Daten verarbeiten. Binärzahlen

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

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Einführung in PHP. (mit Aufgaben)

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

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98 OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98 Neue Version: Outlook-Termine, Kontakte, Mails usw. ohne Exchange-Server auf mehreren Rechnern nutzen! Mit der neuesten Generation intelligenter

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Installation und Inbetriebnahme von SolidWorks

Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis FAKULTÄT FÜR INGENIEURWISSENSCHAFTEN I Prof. Dr.-Ing. Frank Lobeck Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis Inhaltsverzeichnis... I 1. Einleitung... 1 2. Installation...

Mehr

3. Ziel der Vorlesung

3. Ziel der Vorlesung 3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik Was ist Informatik? Begriff und Grundprobleme der Informatik Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik Was ist Informatik? Informatik = computer science? Nach R. Manthey, Vorlesung Informatik

Mehr

Informatik und Informationstechnik (IT)

Informatik und Informationstechnik (IT) Informatik und Informationstechnik (IT) Abgrenzung Zusammenspiel Übersicht Informatik als akademische Disziplin Informations- und Softwaretechnik Das Berufsbild des Informatikers in der Bibliothekswelt

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/20 Überblick Speicher Bit und Byte Speicher als Tabellen

Mehr

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund Prof. Dr. rer. nat. Christian Schröder Dipl.-Ing. Thomas Hilbig, Dipl.-Ing. Gerhard Hartmann Fachbereich Elektrotechnik und

Mehr

Elektromechanische Computer

Elektromechanische Computer Elektromechanische Computer Erfinder, ihre Biographien und Maschinen Konrad Zuse George Stibitz Howard Aiken Konrad Zuse: Biographie I Geburt: 22.06.1910 in Berlin 1928 Studium Maschinenbau (TH Berlin-Charl.),

Mehr

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

2.5.2 Primärschlüssel

2.5.2 Primärschlüssel Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110

Mehr

Zuschauer beim Berlin-Marathon

Zuschauer beim Berlin-Marathon Zuschauer beim Berlin-Marathon Stefan Hougardy, Stefan Kirchner und Mariano Zelke Jedes Computerprogramm, sei es ein Betriebssystem, eine Textverarbeitung oder ein Computerspiel, ist aus einer Vielzahl

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft. Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Was Sie bald kennen und können

Was Sie bald kennen und können Den Rechner verwenden 6 Heutzutage gehört auf jeden Schreibtisch auch ein Taschenrechner denn wer vertraut im Computer-Zeitalter noch seinen eigenen Rechenkünsten? Und da Microsoft mit Windows die Vision

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

10.1 Auflösung, Drucken und Scannen

10.1 Auflösung, Drucken und Scannen Um einige technische Erläuterungen kommen wir auch in diesem Buch nicht herum. Für Ihre Bildergebnisse sind diese technischen Zusammenhänge sehr wichtig, nehmen Sie sich also etwas Zeit und lesen Sie dieses

Mehr

Auszug aus der Auswertung der Befragung zur Ermittlung der IT-Basiskompetenz

Auszug aus der Auswertung der Befragung zur Ermittlung der IT-Basiskompetenz Auszug aus der Auswertung der Befragung zur Ermittlung der IT-Basiskompetenz Wir arbeiten in Strukturen von gestern mit Methoden von heute an Problemen von morgen, vorwiegend mit Menschen, die die Strukturen

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? In der gedruckten Version der Spielregeln steht: der Startspieler ist der Spieler, dessen Arena unmittelbar links neben dem Kaiser steht [im Uhrzeigersinn].

Mehr

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort: Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr