Künstliche Intelligenz Expertensysteme Wissensbasierte Systeme

Größe: px
Ab Seite anzeigen:

Download "Künstliche Intelligenz Expertensysteme Wissensbasierte Systeme"

Transkript

1 Künstliche Intelligenz Expertensysteme Wissensbasierte Systeme Referat Semester 2001/2002 Vorlesung Theoretische Informatik Fachhochschule Aachen Fachbereich Elektrotechnik Frank Moos Bohn Patrick Michael Reiher

2 Inhaltsverzeichnis Künstliche Intelligenz KI... Seite 03 Expertensystem EXS... Seite 03 Wissensbasierte Systeme KBS... Seite 03 Programmbeispiel... Seite 04 Anwendungen der KI... Seite 06 Verarbeitung natürlicher Sprache... Seite 06 Bildverarbeitung... Seite 07 Robotik... Seite 08 Merkmale von Expertensystemen... Seite 09 Eigenschaften von Experten und EXS... Seite 09 Komponenten eines EXS... Seite 10 Darstellung und Auswertung des Wissens... Seite 11 Semantische Netze... Seite 12 Objektorientierte Wissensrepräsentation... Seite 13 Frames... Seite 14 Literaturverzeichnis... Seite 15 2

3 Ein Fachgebiet der Informationstechnik ist die Nachbildung des menschlichen Verhaltens beziehungsweise der Versuch Intelligenz nachzubilden. Computeranwendungen die Wissen speichern, verarbeiten und sich intelligent verhalten, nennt man Künstliche Intelligenz. Zwei wesendliche Ziele werden derzeit auf diesem Fachgebiet verfolgt. Künstliche Intelligenz soll Menschen bei der Problembewältigung unterstützen (technische Wissenschaft). Das Problemlösungsverhalten von Menschen besser verstehen zu lernen (Geisteswissenschaften). Im Anschluss befinden sich Begriffserläuterungen zur Künstlichen Intelligenz. In einem Beispielprogramm wird der Unterschied zwischen einem Wissens- und Expertensystemen erläutert. Künstliche Intelligenz KI Versuch mit Programmen die Funktionen des menschlichen Gehirns (Verhalten, Verstand) nachzubilden. Aufgrund weitgehender Erfolglosigkeit dieser Arbeiten ging man dazu über, KI Programme für stark eingeschränkte Wissensbereiche zu entwickeln, sogenannte Expertensysteme. Expertensystem EXS Expertensysteme lösen Probleme wie Experten auf einem eng definierten Problemkreis, ihrem eigenen Fachbereich (Kompetenzbereich) überdurchschnittlich effizient. EXS sind jedoch genau wie Experten nicht unfehlbar! Wissensbasierte Systeme KBS Ein KBS ist ein Softwaresystem, bei dem das Fachwissen über ein Anwendungsgebiet unabhängig vom allgemeinen Problemlösungswissen und vom Wissen über die spezifische Systemimplementation dargestellt ist. KI-Programme KBS EXS Einordnung von Expertensystemen 3

4 Programmbeispiel // Programm zur Funktionsweise von Wissensystemen und Expertensystemen. // (c) Bohn Partick, Moos Frank, Reiher Michael // Es sollen zwei Zahlen eingegeben und Multipliziert werden. // Im Wissensystem wird zur Lösung des Problems eine "Wissenstabelle" durchsucht. // Expertensysteme Lösen dieses Problem durch ein zuvor beigebrachen Verfahlen (Formel). // Einbinden der Header Files #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> // Neuen Variablentyp erstellen, der unsere Daten des Wissensystems Speichern kann typedef struct { char zeichen[4]; int Erg; }tabelle; // Funktionsprototypen int KBS(int zahl1, int zahl2); int EXS(int zahl1, int zahl2); // Hauptprogramm inkl. des Menus int main (void) { int Auswahl, x, y, Fehler=0; do{ system("cls"); printf("einlesen der Werte, die multipliziert werden sollen:\n\n"); printf("wert 1: "); scanf("%d", &x); printf("wert 2: "); scanf("%d", &y); printf("\n\n(1) Wissenbasiertes System\n"); printf("(2) Expertensystem\n"); printf("(0) ENDE\n"); Auswahl=getch(); switch(auswahl) { case '1': Fehler=KBS(x, y);getch(); break; case '2': Fehler=EXS(x, y);getch(); break; } // Wenn keine Lösung oder Fehler, dann Ausgabe: if(fehler){ printf("\n\ndas gewaehlte System konnte keine Loesung finden!\n\n"); getch(); } }while(auswahl!='0'); return 0; } // Funktion des Expertensystems // Lösung anhand eines zuvor beigebrachten Verfahrens int EXS(int zahl1, int zahl2) { int i,wert=0; 4

5 } printf("\nberechnung des Ergebnis mittels Rechenregel:\n\n"); for (i=1; i<=zahl1; i++) { if (i<zahl1) printf("%d + ", zahl2); else printf("%d ", zahl2); wert=wert+zahl2; } printf("= %d\n\n\n", wert); return 0; // Funktion des Wissenssystems // Hierbei wird in einem zuvor angelegten "Wissen" nachgeschaut. // Suchalgorithmen spielen hierbei eine grosse Rolle! int KBS(int zahl1, int zahl2) { tabelle tab[10]; int i; char multi[4]; // "Wissen" tab[1].zeichen[0]='1'; tab[1].zeichen[1]='*'; tab[1].zeichen[2]='1'; tab[1].zeichen[3]='\0'; tab[1].erg=1; tab[2].zeichen[0]='2'; tab[2].zeichen[1]='*'; tab[2].zeichen[2]='2'; tab[2].zeichen[3]='\0'; tab[2].erg=4; tab[3].zeichen[0]='3'; tab[3].zeichen[1]='*'; tab[3].zeichen[2]='3'; tab[3].zeichen[3]='\0'; tab[3].erg=9; tab[4].zeichen[0]='4'; tab[4].zeichen[1]='*'; tab[4].zeichen[2]='4'; tab[4].zeichen[3]='\0'; tab[4].erg=16; tab[5].zeichen[0]='5'; tab[5].zeichen[1]='*'; tab[5].zeichen[2]='5'; tab[5].zeichen[3]='\0'; tab[5].erg=25; tab[6].zeichen[0]='6'; tab[6].zeichen[1]='*'; tab[6].zeichen[2]='6'; tab[6].zeichen[3]='\0'; tab[6].erg=36; tab[7].zeichen[0]='7'; tab[7].zeichen[1]='*'; tab[7].zeichen[2]='7'; tab[7].zeichen[3]='\0'; tab[7].erg=49; tab[8].zeichen[0]='8'; tab[8].zeichen[1]='*'; tab[8].zeichen[2]='8'; tab[8].zeichen[3]='\0'; tab[8].erg=64; tab[9].zeichen[0]='9'; tab[9].zeichen[1]='*'; tab[9].zeichen[2]='9'; tab[9].zeichen[3]='\0'; tab[9].erg=81; // Zahlen in Zeichenketten umwandeln. multi[0]=zahl1+48; multi[1]='*'; multi[2]=zahl2+48; multi[3]='\0'; // Suchen und ausgeben der aktuell durchsuchten Zeichenkette. printf("\ndie zu suchende Zeichenkette: %s\n", multi); } for(i=1;i<=9;i++) { printf("\ndie Tabelle wird nach %s durchsucht...", tab[i].zeichen); if(strcmp((tab[i].zeichen),multi)==0) { printf("\neintrag gefunden!\n"); printf("\nloesung: %d\n\n", tab[i].erg); return 0; } } return 1; 5

6 Anwendungen der KI In den folgenden Bereichen findet die Künstliche Intelligenz Anwendung. 1. Folgerungssysteme und Automatische Programmierung 2. KI Sprachen 3. Expertensysteme 4. Intelligent Computer Aided Instruction ICAI 5. Verarbeitung natürlicher Sprache 6. Bildverarbeitung / Bild erkennen Bild verstehen 7. Robotik Auf die letzten drei Punkte der Aufzählung werden wir auf den nun folgenden Seiten, auch anhand einiger Beispiele genauer eingehen. Beispiel 1: Verarbeitung natürlicher Sprache Die Verarbeitung von Sprache ist eines der komplexesten Phänomene menschlicher Intelligenz überhaupt und ist daher ein Schlüsselgebiet der KI. In der 1. Phase werden mittels Signalanalyse, Segmentierung und anschließender lexikalischer und morphologischer Analyse aus geschriebenem bzw. gesprochenen Wörtern computerlesbare Daten. Eine Texterkennungssoftware, die dies bei geschriebenem Text leistet, gehört heutzutage zur Standardsoftware eines Scanners. In der 2. Phase werden die eingelesen Sätze anhand einer Syntax auf deren grammatikalische Korrektheit überprüft. Der Satz >Hans isst Liebe< wäre nach dieser Überprüfung syntaktisch korrekt. In der nächsten Phase wird ein syntaktisch korrekter Satz semantisch analysiert, damit unsinnige Sätze erkannt werden. Die Semantik eines Wortes besteht zunächst aus der Bedeutung, die im Lexikon mit dem Wort abgespeichert ist. Eine starke Semantik erhält ein Wort erst aus dem Zusammenhang mit anderen Wörtern. Die semantische Auflösung des Beispiels >Hans isst Liebe< ergibt die Aktion >essen< und als deren Objekt >Liebe<, was einen logischen Fehler bedeutet. Der Satz >Hans isst Salat< weist die gleiche syntaktische Struktur auf, ist aber zudem auch semantisch korrekt. 6

7 Beispiel 2: Bildverarbeitung Die Bildverarbeitung beinhaltet viele sehr komplexe Prozesse. Sie sind viel aufwendiger als das Führen von mathematischen Beweisen. Beim Menschen sind diese Prozesse sozusagen hart verdrahtet in der biologischen Hardware und werden nicht bewusst erlebt. Die vier verschiedenen Leistungsstufen 1. Bilddarstellung Pixel, Helligkeit, Farbe 2. Segmentierung Konturen erkennen; Was gehört zusammen? Wo beginnt etwas Neues? Wo endet etwas? 3. Objekterkennung (Mustervergleich) Mit welchen in der Wissensbasis vorhandenen Objekten können bestimmte Konturen am ehesten identifiziert werden? (Beispiel OCR Schrifterkennungsprogramme) 4. Szenenanalyse In welcher Beziehung stehen die Objekte? (Beispiel Kegel steht auf Würfel. Mann steht vor der Türe.) rein algorithmisch möglich erfordern Wissen (verdeckte Teile, Beleuchtungsverhältnis, Schatten, Perspektiven, bewegte Bilder) Die ersten beiden Punkte der Aufzählung sind rein algorithmisch lösbar und werden auch von den meisten Bildbearbeitungsprogrammen auf dem heutigen Markt beherrscht. Funktionen wären zum Beispiel das Kopieren von Pixel oder das Aufhellen eines Bildes. Um Konturen an einem Bild zu erkennen muss das Programm erkennen, wo etwas beginnt oder endet. Nur so sind beispielsweise die Stärkelinien in einem Bild zu erkennen. Sehr viel schwerer ist die Objekterkennung. Hierzu muss schon eine Wissensbasis mit vorhandenen Objekten bestehen. Mit Hilfe mathematischer Formeln und geeigneter Algorithmen müssen viele Vergleiche durchgeführt werden. Ein Beispiel hierzu wäre eine scheinbar einfache Schriftenerkennung. Hierbei wird der eingelesene Text (noch in Bild-/ Pixelform) mit dem im Rechner vorhandenen Wissen verglichen. Als letzten Punkt haben wir die Szenenanalyse aufgeführt. Hierbei ist nicht nur das Wissen Voraussetzung, sondern die Bilder müssen vom Rechner noch interpretiert werden. Es wird beispielsweise erkannt, wenn ein Kegel auf einem Würfel steht. Eine weitere Aussage könnte beispielsweise Mann steht vor der Türe. lauten. Entfernt sind wir noch von der Interpretation von bewegten Bildern. Hierzu möchten wir ein letztes Beispiel nennen. Es wäre also möglich einen Rechner mit dem Ansehen eines Filmes zu beauftragen. Danach könnten wir uns die vom Rechner erstellte Zusammenfassung durchlesen. 7

8 Beispiel 3: Robotik Bisherige Industrieroboter werden programmiert In Zukunft werden KI-Roboter eingesetzt, die nicht programmiert, sondern trainiert werden Bis heute werden die Industrieroboter programmiert und sind somit nicht in der Lage ihre Fähigkeiten zu erweitern oder zu verbessern. Doch dank der KI-Roboter, wird dies wohl bald zur Vergangenheit gehören, denn die KI-Roboter müssen dann nicht mehr programmiert werden, sondern trainiert, d.h. sie lernen, genau wie ein Mensch diese Tätigkeit lernen müsste. Und genau wie der Mensch, machen auch KI-Roboter Fehler während ihres Lernprozesses, allerdings machen sie mit der Zeit immer weniger Fehler. Was besonders wichtig und interessant ist, ist, dass bei einem KI-Roboter, im Gegensatz zum Menschen, die Fehlerrate für eine gleichbleibende Aufgabe stetig abnimmt, und niemals wieder zunimmt. Beispiel Ein KI-Roboter der am Fließband arbeitet, muss also nicht darauf programmiert werden wo er ein Paket aufheben muss, sondern er bringt es sich selber bei indem er ständig versucht, meist mittels Sensoren, ein Paket vom Fließband aufzuheben. Bei dem Versuch das Paket zu finden und aufzuheben, wird der KI-Roboter oft ins Leere fassen, doch niemals zweimal an dieselbe Stelle. Wenn er schließlich das Paket findet, kann er es beiseite legen. Anschließend wird der KI-Roboter nie mehr danebenfassen, solange seine Aufgabe gleich bleibt, d.h. sich der Ort oder die Größe des Pakets nicht ändert. Wenn das doch der Fall sein sollte, muss der Lernprozess einfach wiederholt werden. 8

9 Merkmale von Expertensystemen verwenden KI Methoden, z.b. können sie Folgerungen ziehen und enthalten eine explizite Wissensdarstellung. verwenden Heuristiken, d.h. Regeln, die Experten aus ihrer eigenen Erfahrung als brauchbar einstufen. können Schlussfolgerungen, d.h. Lösungen (Antworten) erklären(begründen). können einfach mit neuem Wissen ergänzt werden. lösen Probleme nicht nach vorgezeichneten Lösungswegen sondern wie ein Experte, d.h. durch die Anwendung bestimmter Regeln, Verifizierung von Hypothesen und durch das Einholen fehlender Informationen. dadurch können EXS völlig anderen Anforderungen gerecht werden als konventionelle Programme Eigenschaften von Experten und EXS In der unten aufgeführten Tabelle sind Unterschiede zwischen einem Expertensystem und einem Experten. EXS Spezialwissen enge Fachkompetenz Experte Spezialwissen enge Fachkompetenz + gesunder Menschenverstand hilft weiter wo das Spezialwissen endet weiss nicht, was es nicht weiss weiss, was er nicht weiss weiss, wie gut er es weiss, hat Selbsteinschätzung, kann Regeln brechen ahnt, was andere Experten wissen / meinen (Expertenstreit) Gegenüberstellung eines Expertensystems und eines Experten 9

10 Komponenten eines EXS Grundsätzlich besteht ein Expertensystem aus den folgenden Komponenten. Wissensaquisitionskomponente Problemlösungskomponente Dialogkomponente Erklärungskomponente Komponenten eines Expertensystems Wissensbasis Wissensaquisitionskomponente Einbringen, Verändern oder Löschen von Wissenskomponenten. Die meisten Expertensysteme verfügen nicht über solche Komponenten. Sie stellen für diesen Zweck spezielle Editoren für die vom System vorgesehene Wissensdarstellung vor. Beispiele: Regel-, Objekt-, Attribut- und Funktionseditoren Dialogkomponente Dient als Schnittstelle zwischen dem Menschen und dem EXS. Die systemintere Wissensdarstellung ist im Allgemeinen zu abstrakt als dass sie für den Standardanwender verständlich wäre. Darum müssen Fragen und Antworten entweder in natürlicher Sprache oder in anwendungsorientierten Masken über eine Dialogschnittstelle erfolgen. Problemlösungskomponenten Das neue Wissen wird ausgehend von einer gestellten Hypothese ausgewertet, indem von einander abhängige Wissenselemente nach einer bestimmten Abarbeitungsstrategie (Kombination) angesteuert und überprüft werden. Die Abarbeitungsstrategie kann dynamisch, d.h. in Abhängigkeit von Ereignissen gesteuert werden. Man spricht dann auch von Kontrollstrategien. Erklärungskomponente Sie ist für Expertensysteme eine typische und wichtige Komponente die in klassischen Computeranwendungen fehlt. Sie gibt darüber Aufschluss, wie eine Lösung gefunden wurde. Im einsetzbaren Expertensystem fördert Sie das Vertrauen der Anwender in die vorgeschlagen Lösungen. Wissensbasis Enthält das Fachwissen des / der Experten über das Anwendungsgebiet Für die Darstellung des Fachwissens existieren verschiedene Methoden der Wissensrepräsentation (später in Rahmen, Objekten usw. erklärt). 10

11 Darstellung und Auswertung des Wissens Um das Wissen später auswerten zu können ist eine gut überlegte und konsequente durchgesetzte Speicherung notwendig. Semantische Netze Objektorientierte Wissenspräsentation Frames Logik Regelbasierte Wissenspräsentation Auf die Darstellung/ Speicherung in Semantischen Netzen, objektorientierte Wissenspräsentation und in Frames möchten wir nun noch einmal genauer eingehen. 11

12 Beispiel 1: Semantische Netze Ein Semantisches Netz ist ein Graph bestehend aus einer Menge von Knoten und Kanten. Die Kanten von Graphen können gerichtet sein. In semantischen Netzen wird das Wissen netzwerkartig, d.h. in Baumstruktur dargestellt. Knoten Sie stellen beliebige Sachverhalte dar, wie z.b. Objekte, Ereignisse, usw. Kanten Sie dienen dazu die Beziehungen zwischen den Knoten herzustellen Am einfachsten lässt sich dies an der...ist ein... und...hat... Beziehung erklären. Die...ist ein... Beziehung dient z.b. zur Unter- bzw. Zuordnung eines Begriffes zu einem Oberbegriff. Die...hat... Beziehungen hingegen dient dazu einem Objekt Eigenschaften oder andere Objekte zuzuordnen. Diese Beziehungen werden am folgenden Beispiel gut erklärt: Beispiel eines semantischen Netzes Diese Art der Wissensdarstellung erlaubt eine einfache Verwaltung der Informationen, da die Teile ohne Informationswert bei dieser Verwaltung weggelassen werden können,und sie bietet zudem noch freie Hand zur Einrichtung von Vererbungsmechanismen entlang der gerichteten Beziehungen. So können bestimmte Eigenschaften oder Fähigkeiten an übergeordneter Stelle vereinbart werden, und sämtliche, in Pfeilrichtung nachgelagerten Knoten können diese bei Bedarf erben, bzw. konsultieren. 12

13 Beispiel 2: Objektorientierte Wissenspräsentation Objektorientierte Wissenspräsentation lehnt sich an die objektorientierte Programmierung an: Dort wurde das Objekt als Verallgemeinerung des abstrakten Datentyps erfunden: Im Prinzip handelt es sich bei Objekten um streng verkapselte Datenstrukturen. Objekte kommunizieren untereinander durch Mitteilungen, die beim Adressaten etwas auslösen. Was eine Mitteilung konkret auslöst, hängt einerseits von den mitgelieferten genaueren Angaben ab (spezifizierten Parametern) und andererseits von der Weise, wie das Empfängerobjekt die Mitteilung interpretiert. Für die Interpretation verfügt jedes Objekt über Methoden (Prozeduren). Dies können eigene, nur ihm selbst bekannte Methoden sein, oder aber Methoden, welche von Übergeordneten geerbt werden. Grundlegend für das Verständnis eines objektorientierten Systems sind die Begriffe Klasse und Instanz. Klasse mit 3 Attributen und 2 Methoden Eine Klasse kann als Schablone für ein Objekt aufgefasst werden. Die Klasse steht für ein abstraktes Grundmuster, nach dem Objekte erzeugt werden können. Sie definiert die Merkmale und das Verhalten (die Fähigkeiten) der zu der Klasse gehörenden Objekte. Die einzelnen Ausprägungen einer Klasse nennt man Instanzen. Sie werden in einem gesonderten Vorgang, der Instanzierung, erzeugt. Instanzen erhalten grundsätzlich die gleichen Merkmale (Attribute) und Fähigkeiten (Methoden) wie die Klasse. Zu einer Klasse können Unterklassen gebildet werden. Sie erben von der übergeordneten Klasse deren Merkmale und Fähigkeiten. Auf diese Weise können ganze Hierarchien von Klassen entstehen. Innerhalb einer zusammenhängenden Hierarchie kann von oben nach unten vererbt werden. Dies verringert die Redundanz in der Wissensdarstellung, da gleiche (gemeinsame) Merkmale oder Fähigkeiten nicht bei jeder Instanz, sondern nur bei einer der übergeordneten Klassen gespeichert und verwaltet werden müssen. 13

14 Beispiel 3: Frames (Rahmen) Eine spezielle Form der objektorientierten Wissensdarstellung sind die Frames. Bei den Frames wurde im Gegensatz zum Objekt auf die Kapselung verzichtet. Die in einem Frame definierten Datenelemente haben also globalen Charakter! Frames sind, wiederum im Gegensatz zu Objekten stärker strukturiert: Die Methoden sind den Attributen zugeordnet und bilden zusammen mit diesen so genannte Slots. Ein Slot beschreibt den Zustand eines Attributs sowie die Prozedur, die besagt, was zu geschehen hat, falls das Attribut einen neuen Wert zugewiesen erhält, falls sein Wert gelöscht wird oder falls sein Wert abgefragt (benötigt, gelesen) wird. Alle Slots eines Frames zusammen eignen sich deshalb vorzüglich zur Beschreibung einer Szene beziehungsweise von Szenenwechseln. Da auch zu jedem Frame Prozeduren vereinbart werden können, die beschreiben, was beim Betreten und Verlassen des Frames zu geschehen hat, eignen sich Frames zur regieartigen Wissensdarstellung von komplexen Prozessen. Im Gegensatz zur Regie von Filmen oder Theaterstücken lässt die Regie mittels Frames viel mehr Freiraum für den Handlungsablauf offen. Struktur eines Frames Frames können wie im objektorientierten Ansatz Frameklassen bilden, Frameklassen können in eine Klassenhierarchie eingeordnet werden, innerhalb derer Slots vererbt werden. In jeder Frameklasse können beliebig viele Frame Instanzen erzeugt werden. Sie beschreiben Handlungen und Situationen einer Szene, der Aufruf einer Instanz eines anderen Frames zu einem Szenenwechsel. Frames können auch als Darstellungsform für die Knoten in semantischen Netzen gebraucht werden. Kaufvertrag1 Firmen Produkt Datum Eifel-Online PC1 ist ein Preis FH Aachen IBM PC DM Beispiel für ein Frame/ Subframe Vor- und Nachteile der Frames + Frames werden in Zukunft eine bedeutende Rolle in der Wissensverarbeitung spielen + Erlauben eine vielseitige Präsentation von Wissen (aus diesem Grunde Komplex) - Frames werden schnell sehr komplex - schwierig zu entwickeln (Programmierung in LISP/ PROLOG) 14

15 Literaturverzeichnis Künstliche Intelligenz Allgemeine Prinzipien und Modelle B.I. Taschen Buch Verlag Künstliche Intelligenz und Expertensysteme R. Oldenbourg Verlag Künstliche Intelligenz Einführung und technische Anwendung Wissenssysteme Verlag Technik Berlin KI/ Expertensysteme Konzepte- Entwicklung- Anwendung SYBEX Verlad Praxis der Digitalen Bildverarbeitung und Mustererkennung HANSER Verlag 15

Entwicklung und Einsatz von Expertensystemen

Entwicklung und Einsatz von Expertensystemen Karl Kurbel Entwicklung und Einsatz von Expertensystemen Eine anwendungsorientierte Einführung in wissensbasierte Systeme Mit 46 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris Tokyo

Mehr

Expertensysteme / XPS

Expertensysteme / XPS Expertensysteme / XPS Alexander Pentzlin und Thiemo Bannasch KI II Claes Neuefeind 27.06.2012 1 Inhalt Was ist ein Expertensystem Geschichtlicher Hintergrund Prinzip eines XPS Komponenten Realisierungsprinzipien

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Objektorientierte Bildverarbeitung Methodische Grundlagen

Objektorientierte Bildverarbeitung Methodische Grundlagen ARC GmbH Objektorientierte Bildverarbeitung Methodische Grundlagen Klaus Steinnocher, Florian Kressler klaus.steinnocher@arcs.ac.at Geschäftsfeld Umweltplanung ARC http://www.arcs.ac.at/s 1 ARC GmbH Einleitung!

Mehr

Einführung Grundbegriffe

Einführung Grundbegriffe Einführung Grundbegriffe 1.1 Der Modellbegriff Broy: Informatik 1, Springer 1998 (2) Die Modellbildung der Informatik zielt auf die Darstellung der unter dem Gesichtspunkt einer gegebenen Aufgabenstellung

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

Was ist Informatik? Alexander Lange

Was ist Informatik? Alexander Lange Was ist Informatik? Was ist Informatik? Alexander Lange 12.11.2003 Was ist Informatik? Inhalt 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Das Wort»Informatik«Die Idee Teilgebiete der Informatik Technische Informatik

Mehr

Teil 111. Chart-Parsing

Teil 111. Chart-Parsing Teil 111 Chart-Parsing 102 Die im ersten Teil des Buches behandelten einfachen Parsingalgorithmen sind, anders als die meisten vor allem im Compilerbau verwendeten Algorithmen (z.b. die LLoder LR-Parsingalgorithmen),

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

D1: Relationale Datenstrukturen (14)

D1: Relationale Datenstrukturen (14) D1: Relationale Datenstrukturen (14) Die Schüler entwickeln ein Verständnis dafür, dass zum Verwalten größerer Datenmengen die bisherigen Werkzeuge nicht ausreichen. Dabei erlernen sie die Grundbegriffe

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

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

Mehr

Case-Based Reasoning und anderen Inferenzmechanismen

Case-Based Reasoning und anderen Inferenzmechanismen Case-Based Reasoning und anderen Inferenzmechanismen Daniel Müller 21 April 2006 DM () CBR und Inferenz 21 April 2006 1 / 31 Contents 1 Einleitung 2 Inferenzmechanismen Statistische Verfahren Data Mining

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

Motivation und Geschichte. Geschichte der Logik Logik und Informatik

Motivation und Geschichte. Geschichte der Logik Logik und Informatik Motivation und Geschichte Geschichte der Logik Logik und Informatik Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 2.1 Motivation und Geschichte Geschichte der Logik 13 Aufgaben der Logik

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

1. Aufgabe (6 Punkte)

1. Aufgabe (6 Punkte) Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 1.2.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 30. Oktober 2013 ZÜ DS ZÜ

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher

Mehr

Geoinformation I Datenmodellierung

Geoinformation I Datenmodellierung Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung

Mehr

Lösung Übungszettel 6 Aufgabe 1-4

Lösung Übungszettel 6 Aufgabe 1-4 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 Aufgabe 1-4 1 Aufgabe 1 und 2 1.1 Die Bibliothek

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2

Nachname:... Vorname:... MatrNr.:... Klausur PR2 Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 6.7.2007 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Künstliche Intelligenz für Ingenieure

Künstliche Intelligenz für Ingenieure Künstliche Intelligenz für Ingenieure von Prof. Dr.-Ing. Jan Lunze 2., völlig überarbeitete Auflage Oldenbourg Verlag München Verzeichnis der Anwendungsbeispiele Hinweise zum Gebrauch des Buches xvii xxiii

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

C- Kurs 09 Dynamische Datenstrukturen

C- Kurs 09 Dynamische Datenstrukturen C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für

Mehr

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Programmieren Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda Peter Klingebiel, HS Fulda, DVZ Zur Vorlesung Wer bin ich? Peter Klingebiel Dipl.-Ing.

Mehr

Motivation und Geschichte. Geschichte der Logik Logik und Informatik

Motivation und Geschichte. Geschichte der Logik Logik und Informatik Motivation und Geschichte Geschichte der Logik Logik und Informatik Logik für Informatiker, M. Lange, IFI/LMU: Motivation und Geschichte Geschichte der Logik 12 Aufgaben der Logik Logik (aus Griechischem)

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

Mehr

Prof. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353)

Prof. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Prof. Dr. Uwe Schmidt 17. August 2010 Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre

Mehr

Hochschule München, FK 03 FA SS Ingenieurinformatik

Hochschule München, FK 03 FA SS Ingenieurinformatik Hochschule München, FK 03 FA SS 2011 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Programmierung 2 Studiengang MI / WI

Programmierung 2 Studiengang MI / WI Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 Fachbereich Automatisierung

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Feedback Vielen Dank für das Feedback auf Moodle! Bitte

Mehr

Ontologiesprachen. 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic

Ontologiesprachen. 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic Ontologiesprachen 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic 1.Was ist eine Ontologie Der Begriff leitet sich vom griechischen onta (das Seiende)

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Wissensrepräsentation

Wissensrepräsentation Wissensrepräsentation Vorlesung Sommersemester 2008 12. Sitzung Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Übersicht Rückblick, Zusammenhänge Mysterien 2 Inhalte im abstrakten Überblick Künstliche

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Zusammenfassung KI (von Marco Piroth)

Zusammenfassung KI (von Marco Piroth) Zusammenfassung KI (von Marco Piroth) Definition: KI ist das Teilgebiet der Informatik, das sich damit beschäftigt, menschliche, intelligente Verhaltensweisen auf einer Maschine nachzuvollziehen. Softwaretechnische

Mehr

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

Abschnitt 10: Datenstrukturen

Abschnitt 10: Datenstrukturen Abschnitt 10: Datenstrukturen 10. Datenstrukturen 10.1Einleitung 10.2 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 829 / 867 Einleitung Überblick 10. Datenstrukturen 10.1Einleitung

Mehr

Künstliche Intelligenz

Künstliche Intelligenz George F. Luger 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Künstliche Intelligenz Strategien zur Lösung komplexer

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Einführung in die AI

Einführung in die AI 1 Einführung in die AI Prof. Georg Gottlob Institut für Informationssysteme Technische Universität Wien Folien zur Vorlesung Konzepte der Artificial Intelligence 3 Zum Begriff Artificial Intelligence AI:

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Woher Methoden der KI stammen Gebiete der Künstlichen Intelligenz wissensbasierte Systeme

Woher Methoden der KI stammen Gebiete der Künstlichen Intelligenz wissensbasierte Systeme Woher Methoden der KI stammen Gebiete der Künstlichen Intelligenz (induktives) Lernen Aus einer anwendungsorientierten Sicht spielen in der Künstlichen Intelligenz insbesondere folgende Gebiete eine Rolle:

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

Algorithmen und Datenstrukturen ITS(B)-B 2016

Algorithmen und Datenstrukturen ITS(B)-B 2016 Einführung Was ist (die) Informatik? Die Informatik und ihre Geschichte sowie ihre Abgrenzung von anderen Wissenschaften darzulegen gestaltet sich nicht ganz einfach (siehe dazu unter vielen Anderen ((GI)

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen Agenda für heute, 26. März, 2009 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative

Mehr

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik Grundbegriffe aus Logik und Mengenlehre Prädikatenlogik wohlverstandene Grundlagen, eine formale Sprache zur Beschreibung statischer und dynamischer Gesichtspunkte eines Unternehmens syntaktisch und semantisch

Mehr

Teil II: Einstieg in Expertensysteme

Teil II: Einstieg in Expertensysteme Teil II: Einstieg in Expertensysteme Begriffsbestimmung: Was sind wissensbasierte Systeme? Die beiden Begriffe Expertensystem und wissensbasiertes System werden weitgehend synonym verwendet für Softwaresysteme,

Mehr

Einführung: Zustandsdiagramme Stand:

Einführung: Zustandsdiagramme Stand: Einführung: Zustandsdiagramme Stand: 01.06.2006 Josef Hübl (Triple-S GmbH) 1. Grundlagen Zustandsdiagramme Zustände, Ereignisse, Bedingungen, Aktionen 2. Verkürzte Darstellungen Pseudozustände 3. Hierarchische

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdarstellungen Maike Buchin 0.6.017 Graphen Motivation: Graphen treten häufig als Abstraktion von Objekten (Knoten) und ihren Beziehungen (Kanten) auf. Beispiele: soziale

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1 Fundamentals of Software Engineering 1 Inhaltsverzeichnis 1. Einführung 2. Allgemeine Modellbildung - Klassische Konzepte des Software Engineering- 2.1 Das Kontextmodell 2.2 Entscheidungstabellen 2.3 Zustandsmodelle

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

Mehr

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Übungsbesprechung (Wiederholung) Wie

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

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

Mehr

Information und Produktion. Rolland Brunec Seminar Wissen

Information und Produktion. Rolland Brunec Seminar Wissen Information und Produktion Rolland Brunec Seminar Wissen Einführung Informationssystem Einfluss des Internets auf Organisation Wissens-Ko-Produktion Informationssystem (IS) Soziotechnisches System Dient

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr