travel(valmont,paris,go(valmont,metz,go(metz,paris))) die Antwort yes ausgeben. Fragt man dein Programm nach

Größe: px
Ab Seite anzeigen:

Download "travel(valmont,paris,go(valmont,metz,go(metz,paris))) die Antwort yes ausgeben. Fragt man dein Programm nach"

Transkript

1 Info 13 LK (GA) Bearbeitungszeit: 180 min Seite 1 Aufgabe 1: Du kennst vielleicht diese russischen Holzpüppchen, in denen immer noch eine kleinere drin steckt. Rechts ist eine schematische Abbildung von solchen ineinandersteckenden russischen Puppen: a) Stelle die drei direkten Lagebeziehungen in Form von Fakten in Prolog dar: direktin(...,...). b) Definiere ein Prädikat in/2 (d. h. ein Prädikat mit zwei Parametern), dass uns sagt welche Puppe (direkt oder indirekt) in welcher anderen Puppe steckt. Die Anfrage in(katarina,natasha) z.b. sollte wahr sein, während in(olga,katarina) fehlschlagen sollte. Hinweis: Nutze dabei auch das Prädikat aus Teilaufg. a). c) Welche Ausgabe erhältst du bei der Anfrage in(x,katarina)? d) Welche Ausgabe erhältst du bei der Anfrage in(x,y), wenn alle Lösungen angefordert werden? e) Stelle das Backtracking beim Aufruf in(katarina,irina) grafisch dar. Aufgabe 2: Folgende Reisemöglichkeiten stehen zur Auswahl: bycar(auckland,hamilton). /* Dies bedeutet: Man kommt mit dem */ bycar(hamilton,raglan). /* Auto von Auckland nach Hamilton. */ bycar(valmont,saarbruecken). /* Die anderen Prädikate sind eben- */ bycar(valmont,metz). /* falls so zu lesen. */ bytrain(metz,frankfurt). bytrain(saarbruecken,frankfurt). bytrain(metz,paris). bytrain(saarbruecken,paris). byplane(frankfurt,bangkok). byplane(frankfurt,singapore). byplane(paris,losangeles). byplane(bangkok,auckland). byplane(losangeles,auckland). a) Schreibe ein Prädikat travel/2, welches herausfindet, ob es möglich ist, von einer Stadt zu einer anderen Stadt zu reisen. Die Wahl des Verkehrsmittels soll dabei keine Rolle spielen. Beispiel: Dein Programm sollte die Anfrage travel(valmont,raglan) mit yes beantworten. b) Plant man seine Reise etwas genauer, so ist es interessant zu wissen, über welche Stadt man zum Ziel gelangt. Schreibe deshalb ein Prädikat travel/3, welches dir ausgibt, über welche Zwischenpunkte du von der einen Stadt zur anderen gekommen bist. Beispiel: Dein Programm sollte bei der Anfrage travel(valmont,paris,go(valmont,metz,go(metz,paris))) die Antwort yes ausgeben. Fragt man dein Programm nach travel(valmont,losangeles,x) so sollte es X = go(valmont,metz,go(metz,paris,go(paris,losangeles))) ausgeben. c) Zur noch besseren Routenplanung ist auch eine Ausgabe des Verkehrsmittels zweckmäßig. Erweitere dein Prädikat travel/3, so dass es dir nicht nur mitteilt, über welche Zwischenpunkte die Reise geht, sondern auch sagt, mit welchem Verkehrsmittel die einzelnen Teilstücke zurückgelegt wurden. Beispiel: die Anfrage travel(valmont,losangeles,x) sollte X = car(valmont, metz, train(metz, paris, plane(paris, losangeles))) ausgeben. Bitte wenden katarina olga natasha irina

2 Info 13 LK (GA) Bearbeitungszeit: 180 min Seite 2 Aufgabe 3: Im Zusammenhang mit Listen haben wir im Unterricht bereits einige Prädikate kennen gelernt. Hier sollen nun neue Prädikate entwickelt und analysiert werden: a) Betrachte das folgende Prädikat wti/4: wti(_, _, [], []). wti(x, Y, [X Rest], [Y Rest]). wti(z1, Z2, [X Rest], [X NeuerRest]):- Z1 \= X, wti(z1, Z2, Rest, NeuerRest). I) Welche Ausgabe wird bei der Anfrage wti(3,9,[1,2,3,4,5],x) produziert? II) Notiere die Ausgabe zur Anfrage wti(1,2,[0,1,1,0,0,0,1,0],y). III) Beschreibe allgemein die Wirkung des Prädikats wti/4. b) Erweitere das oben angegebene Prädikat, so dass die unter a.iii) beschriebene Aktion auf die ganze Liste ausgeweitet wird. c) Schreibe ein Prädikat restliste/3, welches von einer Liste die Restliste nach dem ersten Auftreten eines Elements zurück gibt. Beispiel: restliste([1,2,3,4,5],3,x) wird mit X = [4,5] beantwortet. d) Gegeben ist das folgende Programm: wti( [], Liste, Liste ). wti([head Tail], SListe, X ) :- split( Head, Tail, Kleiner, Groesser), wti(groesser, Rest, X ), wti(kleiner, SListe, [Head Rest]). /* split(x,liste,kleine,grosse) teilt die Liste */ /* bezüglich des Vergleichselements X in die zwei */ /* Listen Kleine und Grosse. */ Im ersten Aufruf sollte das dritte Argument immer eine leere Liste sein. Beispiel: wti([4,3,8,7,1,5,4,8],ergebnis,[]). I) Welche Ausgabe wird bei obigem Beispiel getätigt? II) Gib dem Prädikat einen aus Informatikersicht sinnvollen Namen. III) Beschreibe die Unterschiede zu dem aus dem Unterricht bekannten ähnlichen Verfahren. e) In der folgenden Routine split/4 aus obigen Programm haben sich Fehler eingeschlichen. Kommentiere jeden Fehler, indem du angibst, inwiefern sich dieser Fehler äußert (Compilerfehler, Laufzeitfehler). Korrigiere jeden Fehler einzeln oder gib das gesamte Teilprogramm in korrekter Form an. split(_, [], K, G). Head <= Element, split(element, Tail, hilfkleiner, Groesser), append(head, hilfkleiner, Kleiner). split(element, [Head Tail], Kleiner, Groesser):= Head > Element, split(element, Tail, Kleiner, Groesser), append(head, Groesser, Groesser). Bitte wenden

3 Info 13 LK (GA) Bearbeitungszeit: 180 min Seite 3 Aufgabe 4: Aus dem Unterricht kennst du die Baumstruktur. Ein Baum konnte entweder leer (nil) oder eine Wurzel mit zwei Teilbäumen 6 (baum(w,l,r)) sein. a) Stelle den rechts abgebildeten Baum mit Hilfe des Prädikats baum/3 3 9 dar. b) Zeichne den zum folgenden Ausdruck zugehörigen Baum: baum(2, baum(1, nil, nil), baum(7, baum(3, nil, baum(6, nil, nil)), baum(8, nil, nil))) 8 c) Implementiere ein Prädikat knotenanzahl/2, welches als Input einen Baum und als Output die Anzahl der Knoten des Baumes enthält. Beispiel: knotenanzahl(baum(3,baum(2,nil,nil),baum(5,baum(4,nil,nil),nil)),x) würde X = 4 ausgeben. d) Implementiere ein Prädikat baumhoehe/2, welches die Anzahl der Ebenen also die Baumhöhe eines Baumes ausgibt. Hinweis: Der Baum aus Teilaufgabe a) hat übrigens die Höhe 4! Ich wünsche dir viel Erfolg!

4 Info 13 LK (GA) Bearbeitungszeit: 180 min Seite 4 LÖSUNGEN: Aufgabe 1: a) Eine Möglichkeit ist die folgende: direktin(katarina,olga). direktin(olga,natasha). direktin(natasha,irina). b) in(x,y):- direktin(x,y). in(x,y):- direktin(z,y), in(x,z). c) Ausgabe no d) Ausgabe: X = katarina Y = olga ; X = olga Y = natasha ; X = natasha Y = irina ; X = katarina Y = natasha ; X = olga Y = irina ; X = katarina Y = irina e) in(katarina, irina) direktin(katarina, irina) schlägt fehl direktin(natascha, irina), in(katarina,natasha) direktin(katarina, natasha) schlägt fehl direktin(olga, natasha), in(katarina,olga) direktin(katarina, olga) Aufgabe 2: a) Eine Möglichkeit ist: traveldirekt(x,y):- bycar(x,y); bytrain(x,y); byplane(x,y). travel(x,y):- traveldirekt(x,y). travel(x,y):- traveldirekt(x,z),travel(z,y). b) Die Erweiterung könnte wie folgt aussehen: traveldirekt(x,y):- bycar(x,y); bytrain(x,y); byplane(x,y). travel(x,y,go(x,y)):- traveldirekt(x,y). travel(x,y,go(x,z,f)):- traveldirekt(x,z),travel(z,y,f). c) Mit Fahrzeugangabe: travel(x,y,car(x,y)):- bycar(x,y). travel(x,y,train(x,y)):- bytrain(x,y). travel(x,y,plane(x,y)):- byplane(x,y). travel(x,y,car(x,z,f)):- bycar(x,z),travel(z,y,f). travel(x,y,train(x,z,f)):- bytrain(x,z),travel(z,y,f). travel(x,y,plane(x,z,f)):- byplane(x,z),travel(z,y,f). Aufgabe 3: a) I) X = [1,2,9,4,5] II) X = [0,2,1,0,0,0,1,0] III) Das erste vorkommende Element der Liste, welches mit dem ersten Argument des Prädikats wti übereinstimmt, wird durch das zweite Argument ersetzt. Die so gewonnene Liste wird im 4. Argument zurückgegeben.

5 Info 13 LK (GA) Bearbeitungszeit: 180 min Seite 5 b) wti(_, _, [], []). wti(x, Y, [X Rest], [Y NeuerRest]):- wti(x,y,rest,neuerrest). wti(z1, Z2, [X Rest], [X NeuerRest]):- Z1 \= X, wti(z1, Z2, Rest, NeuerRest). c) restliste([x Rest], X, Rest). restliste([_ End], X, Rest):- restliste(end, X, Rest). d) I) Ergebnis = [1,3,4,4,5,7,8,8] II) Ein sinnvoller Name wäre Quicksort. III) Der wesentliche Unterschied ist der, dass das Prädikat keinen append- Befehl benötigt. Dies gelingt, indem immer eine Liste mitgeschleppt wird, in der sofort die Vereinigung der beiden Teillisten gespeichert wird. Deshalb muss allerdings auch am Anfang eine leere Liste mitgegeben werden, da diese am Schluss wieder hinten angefügt wird. e) Die richtige Prozedur müsste wie folgt aussehen: split(_, [], [], []). Head =< Element, split(element, Tail, Kleiner1, Groesser), append([head],kleiner1,kleiner). Head > Element, split(element, Tail, Kleiner, Groesser1), append([head],groesser1,groesser). Die Fehler im einzelnen: 1. Zeile: bei einer leeren Liste sollte sowohl die Kleiner- als auch die Groesser-Liste leer sein. In der falschen Version sind K und G undefiniert. (Laufzeitfehler). 3. Zeile: <= ist falsch. Richtig: =< (Compilerfehler) 4. Zeile: hilfkleiner muss HilfKleiner heißen, da eine Variable benötigt wird. (Compilerfehler) 5. Zeile: append benötigt 3 Listen. Head ist aber nur ein Element. Besser: [Head]. (Compilerfehler). 6. Zeile: := ist falsch. Richtig :- (Compilerfehler). 9. Zeile: Groesser ist sowohl Input- als auch Outputvariable. (Laufzeitfehler). Aufgabe 4: a) baum(6,baum(3,nil,baum(4,nil,nil)), baum(9,baum(7,nil,baum(8,nil,nil)), baum(10,nil,nil))) b) Wie rechts abgebildet. c) knotenanzahl(nil,0). knotenanzahl(baum(w,l,r),anz):- knotenanzahl(l,anzl), knotenanzahl(r,anzr), Anz is 1+AnzL+AnzR. d) baumhoehe(nil,0). baumhoehe(baum(w,l,r),h):- baumhoehe(l,h1), baumhoehe(r,h2), H1>H2, H is H1+1. baumhoehe(baum(w,l,r),h):- baumhoehe(l,h1), baumhoehe(r,h2), H1=<H2, H is H

Einführung in PROLOG III Rekursion

Einführung in PROLOG III Rekursion Einführung in PROLOG III Rekursion Betrachten wir die folgende Knowledge Base: teurer(x,y):- kostet_etwas_mehr(x,y). teurer(x,y):- kostet_etwas_mehr(x,z), teurer(z,y). kostet_etwas_mehr(big_mac,pommes).

Mehr

Tutoraufgabe 1 (Programmieren in Prolog):

Tutoraufgabe 1 (Programmieren in Prolog): Prof. aa Dr. J. Giesl S. Dollase, M. Hark, D. Korzeniewski Tutoraufgabe 1 (Programmieren in Prolog): In dieser Aufgabe sollen einige Abhängigkeiten im Übungsbetrieb Programmierung in Prolog modelliert

Mehr

Teil 4: Rekursion und Listen

Teil 4: Rekursion und Listen Einführung in das Programmieren Prolog Sommersemester 2006 Teil 4: Rekursion und Listen Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln,

Mehr

Künstliche Intelligenz Einführung in Prolog

Künstliche Intelligenz Einführung in Prolog Künstliche Intelligenz Einführung in Prolog Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik versität zu Köln Backtracking Backtracking uninformiertes, universelles

Mehr

Rekursive Listenverarbeitung

Rekursive Listenverarbeitung Rekursive Listenverarbeitung Übersicht Rekursion ist die wichtigste Programmiertechnik in Prolog! Rekursive Datenstrukturen Einfache und rekursiv gebildete Strukturen Rekursive Datenstrukturen und rekursive

Mehr

Vorlesung Künstliche Intelligenz Alexander Manecke Oliver Schneider Andreas Stoffel 9. Mai 2006

Vorlesung Künstliche Intelligenz Alexander Manecke Oliver Schneider Andreas Stoffel 9. Mai 2006 Vorlesung Künstliche Intelligenz 9. Mai 2006 Aufgabe 1: Listen in Prolog a) Den Fall der leeren Liste müssen wir hier nicht betrachten, denn eine leere Liste besitzt kein Maximum. Also ist Standardantwort

Mehr

ABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

1. Beweisbäume: Der folgende Text enthält Fakten zur Familie des Dichters JOHANN WOLFGANG VON GOETHE ( ):

1. Beweisbäume: Der folgende Text enthält Fakten zur Familie des Dichters JOHANN WOLFGANG VON GOETHE ( ): 1. Beweisbäume: Der folgende Text enthält Fakten zur Familie des Dichters JOHANN WOLFGANG VON GOETHE (1749-1832): Die männlichen Mitglieder der Familie Goethe sind Johann Kaspar, Johann Wolfgang, August,

Mehr

Übungen zu Kognitive Systeme I

Übungen zu Kognitive Systeme I Übungen zu Kognitive Systeme I Kognitive Systeme / WIAI / Uni Bamberg 14. Oktober 2005 Inhalt 1 2 3 4 5 6 Ablauf der Übungen Ablauf SWI-Prolog Ab nächster Woche wird es Übungszettel geben Ablauf der Übungen

Mehr

Übungen zu Kognitive Systeme I

Übungen zu Kognitive Systeme I Übungen zu Kognitive Systeme I Stephan Weller (Stephan.Weller@wiai.uni-bamberg.de) Kognitive Systeme / WIAI / Uni Bamberg 19. Oktober 2005 Inhalt Intro Was ist Prolog? Wie funktioniert Prolog? Rekursion

Mehr

Liste: beliebig lange, geordnete Sequenz von Termen. Kopf ist erstes Listenelement, Schwanz die restliche Liste

Liste: beliebig lange, geordnete Sequenz von Termen. Kopf ist erstes Listenelement, Schwanz die restliche Liste Listen Liste: beliebig lange, geordnete Sequenz von Termen.(Kopf, Schwanz) Kopf ist erstes Listenelement, Schwanz die restliche Liste leere Liste [] Ende der Liste wird durch [] gekennzeichnet Beispiel:

Mehr

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Kurs 1663 Datenstrukturen Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur

Mehr

= a) Berechnen Sie die fehlenden Funktionswerte der Wertetabelle. n

= a) Berechnen Sie die fehlenden Funktionswerte der Wertetabelle. n Info 12 IF1 GK (GA) Bearbeitungszeit: 135 min Seite 1 Aufgabe 1: rekursive Funktionen Die Hofstadter-Funktion ist definiert durch: hof ( n hof ( n 1)) + hof ( n hof ( n 2)) hof ( n) = 1 a) Berechnen Sie

Mehr

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Prolog - Rekursion, Backtracking Claes Neuefeind Sprachliche Informationsverarbeitung Universität zu Köln 14. Dezember 2011 Wiederholung Backtracking Praxis Hausaufgaben & Seminarplan

Mehr

LISTEN. Programmierkurs Prolog p.1

LISTEN. Programmierkurs Prolog p.1 LISTEN Programmierkurs Prolog p.1 Liste Listen sind rekursive Datenstrukturen, die dazu dienen geordnete Mengen von Elementen zu beschreiben. Man kann sich Listen in Prolog als Behälter vorstellen, die

Mehr

ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

Künstliche Intelligenz Unifikation, Backtracking, Rekursion und Listen in Prolog

Künstliche Intelligenz Unifikation, Backtracking, Rekursion und Listen in Prolog Künstliche Intelligenz fikation, Backtracking, Rekursion und Listen in Prolog Stephan Schwiebert WS 2008/2009 Sprachliche Informationsverarbeitung Institut für Linguistik versität zu Köln Aufgabe: Stammbaum

Mehr

pue08 December 9, 2016

pue08 December 9, 2016 pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe

Mehr

Einführung in die Programmierung für Computerlinguisten

Einführung in die Programmierung für Computerlinguisten EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN Dr. Maximilian Hadersbeck Leonie Weißweiler LMU Geschwister-Scholl-Platz 1 80539 München Anrede Name Straße Lösung zur 3. Übung zur Vorlesung Ludwig-Maximilians-Universität

Mehr

ABITURPRÜFUNG 2004 GRUNDFACH INFORMATIK (HAUPTTERMIN)

ABITURPRÜFUNG 2004 GRUNDFACH INFORMATIK (HAUPTTERMIN) ABITURPRÜFUNG 2004 GRUNDFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: Hilfsmittel: 210 Minuten Formeln und Tabellen für die Sekundarstufen I und II Berlin: Paetec, Ges für Bildung und Technik mbh oder Das

Mehr

Übung zu Grundlagen der Logik und Logik-Programmierung

Übung zu Grundlagen der Logik und Logik-Programmierung Übung zu Grundlagen der Logik und Logik-Programmierung Übungsblatt 4 (5.Übung) Florian Wittmann Uni Erlangen, Informatik 8 Inhalt 1 Aufgabe 4-1: Tiefensuche 2 Aufgabe 4-2: Listen in Prolog 3 Aufgabe 4-3:

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

(Logik und) Logikprogrammierung

(Logik und) Logikprogrammierung Übungsaufgaben zur Lehrveranstaltung (Logik und) Logikprogrammierung im Studiengang Informatik Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Künstliche Intelligenz

Mehr

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

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

Thüringer Kultusministerium

Thüringer Kultusministerium Thüringer Kultusministerium Abiturprüfung 1999 Informatik als Grundfach (Haupttermin) Arbeitszeit: Hilfsmittel: 210 Minuten Formeln und Tabellen für die Sekundarstufen I und II/ Paetec, Gesellschaft für

Mehr

Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.

Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21. Name, Vorname: Matrikel-Nr.: Studiengang: Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008 Jun.-Prof. Dr. B. Beckert 21. Februar 2008 Informatik (Diplom) Computervisualistik

Mehr

Mehr Listen und noch ein bisschen Arithmetik

Mehr Listen und noch ein bisschen Arithmetik Mehr Listen und noch ein bisschen Arithmetik append und was man damit machen kann Arithmetik in Prolog Restrekursive Prädikate Programmierkurs Prolog p.1 Listen konkatenieren?- append([1,2,3],[a,b,c],x).

Mehr

Informatik I. 11. Prozeduren als Daten. 9. Dezember Albert-Ludwigs-Universität Freiburg. Informatik I. Jan-Georg Smaus. Prozeduren als Eingabe

Informatik I. 11. Prozeduren als Daten. 9. Dezember Albert-Ludwigs-Universität Freiburg. Informatik I. Jan-Georg Smaus. Prozeduren als Eingabe 11. Daten Albert-Ludwigs-Universität Freiburg 9. Dezember 2010 1 / 37 Daten? Prozeduren rechnen auf Daten, d.h., sie haben Daten als Einund Ausgabe. Was sind Daten? 2 / 37 Daten? Prozeduren rechnen auf

Mehr

Logische Programmierung & Deduktive Datenbanken Klausur

Logische Programmierung & Deduktive Datenbanken Klausur Prof. Dr. Stefan Brass 22. September 2011 Institut für Informatik MLU Halle-Wittenberg Logische Programmierung & Deduktive Datenbanken Klausur Name: Matrikelnummer: Studiengang: Aufgabe Punkte Max. Punkte

Mehr

Programmiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor

Programmiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor Programmiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 9 2 12 3 12 4 15 48 5 23 6 13 7 20 8 16 Summe 120 Note Prof. Dr. O.

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Aufgabe 2 (Unendliche Listen in Haskell):

Aufgabe 2 (Unendliche Listen in Haskell): Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine ˆ Die Hausaufgaben sollen in Gruppen von je Studierenden aus der gleichen Kleingruppenübung (Tutorium)

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Das Programm ist deterministisch: es gibt für jedes Ziel höchstens eine Klausel, die zur erfolgreichen Ableitung des Zieles

Das Programm ist deterministisch: es gibt für jedes Ziel höchstens eine Klausel, die zur erfolgreichen Ableitung des Zieles Green Cuts Klauseln zum Mischen zweier geordneten Listen: merge ( [X Xs ], [Y Ys ], [X Zs ] ) : X < Y, merge ( Xs, [ Y Ys ], Zs ). (1) merge ( [X Xs ], [Y Ys ], [ X,Y Zs ] ) : X =:= Y, merge (Xs, Ys, Zs

Mehr

1 Berechnung von Summen (ca = 10 Punkte)

1 Berechnung von Summen (ca = 10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 10: Prolog - Das Prädikat CUT Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 12. Dezember 2016 1/38 UNTERBINDEN

Mehr

Übungen zu Informatik 1

Übungen zu Informatik 1 Übungen zu Informatik 1 Technische Grundlagen der Informatik - Übung 9 Ausgabedatum: 11. November 2013 Besprechung: Übungsstunden in der Woche 47 (18.11. - 22.11.2013) 1) Normal- und Minimalformen Communication

Mehr

Informatik I Einführung in die Informatik und Programmierung. Klausur

Informatik I Einführung in die Informatik und Programmierung. Klausur Angewandte Informatik Algorithmik Informatik I Einführung in die Informatik und Programmierung (Vorlesung vom WS 2004/2005) Klausur Datum: 24.02.2005 Beginn: 10.00 Uhr s.t. Bearbeitungszeit: 120 Minuten

Mehr

Programmiertechnik II Klausur WS 2017/18 Angewandte Informatik Bachelor

Programmiertechnik II Klausur WS 2017/18 Angewandte Informatik Bachelor Programmiertechnik II Klausur WS 2017/18 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 10 2 8 3 12 4 20 5 8 58 6 14 7 20 8 12 9 16 Summe 120 Note Prof.

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03.

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Fachbereich Informatik Technische Universität Kaiserslautern Übungsblatt 2 Für die Übungen in der Woche vom 29. April bis 03. Mai 2013 Aufgabe

Mehr

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int Informatik Eph IFG1/2 (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Kniffel Modellierung und Implementierung Im Folgenden sollen Teile eines kleinen "Kniffel"-Spiels modelliert, analysiert und implementiert

Mehr

Auswahl von Klauseln und Atomen in Prolog

Auswahl von Klauseln und Atomen in Prolog 5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten

Mehr

Wiederholungsklausur "ADP" WS 2016/2017

Wiederholungsklausur ADP WS 2016/2017 PD Dr. J. Reischer 23.02.2017 Wiederholungsklausur "ADP" WS 2016/2017 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes

Mehr

Einführung in Prolog. Simon Bischof. IPD Snelting

Einführung in Prolog.   Simon Bischof. IPD Snelting Einführung in Prolog Simon Bischof IPD Snelting KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Terme id := [a-z][a-za-z0-9]*

Mehr

Prolog: Listen und Cut. Mark Ugarov

Prolog: Listen und Cut. Mark Ugarov Prolog: Listen und Cut Mark Ugarov Übersicht Wiederholung und Anwendung Wie nutzt man? Listen Cut Anwendungsbeispiele immer parallel Wiederholung: Aufruf von Prolog-Programmen Notwendige Software: SWI

Mehr

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,

Mehr

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen Gliederung Programmierparadigmen Programmieren in Prolog D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 26. April

Mehr

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13. November 2015 13. November 2015 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 18. März

Mehr

Programmiersprache Prolog

Programmiersprache Prolog Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 6.2 Logikprogrammierung Prolog 240 Programmiersprache Prolog Prolog-Programm ist Liste von Fakten (einelementige Hornklausel) und Regeln (mehrelementige

Mehr

Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich

Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich Inhalt Vom deklarativen Wissen zum prozeduralen Programm Vom Programm zur Berechnung Elemente eines Prolog-Programms Zugverbindungen

Mehr

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 17. November 2017 17. November 2017 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

Cut und Negation. Heute: if-then-else. Negation. Programmierkurs Prolog p.1

Cut und Negation. Heute: if-then-else. Negation. Programmierkurs Prolog p.1 Cut und Negation Heute: der Cut if-then-else Negation Programmierkurs Prolog p.1 Zur Erinnerung: Suchbäume p(x) :- a(x). p(x) :- b(x),c(x),d(x). p(x) :- f(x). a(1). p(i1) b(1). c(1). a(i1) b(i1), c(i1),

Mehr

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2016/17 Prüfung Algorithmen und Datenstrukturen I Datum : 23.01.2017, 08:30 Uhr

Mehr

8 Prozeduren als Daten

8 Prozeduren als Daten 8 Prozeduren als Daten Prozeduren als Parameter Prozeduren als Ergebnisse Prozeduren höherer Ordnung (higher-order procedures) Programmierung höherer Ordnung Verwendung als Abstraktionsmittel 8.1 Prozeduren

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

Aufgabe: Platz-effiziente Kompression von Textdaten

Aufgabe: Platz-effiziente Kompression von Textdaten 7.3 Huffman-Bäume Anwendung von Binärbäumen Aufgabe: Platz-effiziente Kompression von Textdaten Standardcodierungen von Textdaten ISO-8859-1: 8 Bit pro Zeichen UTF-16: 16 Bit pro Zeichen Codierungen mit

Mehr

Structure Sharing vs. Structure Copying

Structure Sharing vs. Structure Copying a, b, c, d?-a. a, e, f CP a a, g b, c, d b, g, h g, h, c, d c, k, g h, c, d g c, d h k, g, d backtracking SLD-Ableitungen a :- b,c,d. a :- e,f. a :- g. b :- g,h. c :- k,g. g. h. CP a e, f a g { } backtracking

Mehr

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen Listen bersicht Listen allgemein Listen in Prolog Schreibweise Listen als rekursive Datenstruktur Unifikation Programmiertechniken mit Listen Zweck rekursive Suche Abbilden Erstellen von Prolog-Programmen

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am 1 Aufgabe 1 a) Die erste Variante (Verkettungsänderung) ist vorzuziehen. Sie hat zwei wesentliche Vorteile: Zunächst ist eine solche Implementierung universell einsetzbar, unabhängig davon, wieviele Informationen

Mehr

Algorithmen und Datenstrukturen 1 VL Übungstest WS Jänner 2009

Algorithmen und Datenstrukturen 1 VL Übungstest WS Jänner 2009 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 2. Übungstest WS 2008 16. Jänner

Mehr

Teil 1: Ein motivierendes Beispiel

Teil 1: Ein motivierendes Beispiel Einführung in das Programmieren Prolog Sommersemester 2006 Teil 1: Ein motivierendes Beispiel Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax,

Mehr

Übung Datenstrukturen. Bäume

Übung Datenstrukturen. Bäume Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 3 5 9 34 8 7 11 13 17 7 25 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! Übung Binärbaum Aufgabe

Mehr

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Boolsche Algebra 3.3 Induktion und Rekursion

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Boolsche Algebra 3.3 Induktion und Rekursion Überblick 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Boolsche Algebra 3.3 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 92 / 708 Beweisprinzip der vollständigen Induktion

Mehr

Prüfung Informatik D-MATH/D-PHYS :00 17:00

Prüfung Informatik D-MATH/D-PHYS :00 17:00 Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen

Mehr

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 18. April 2012

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 18. April 2012 Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek

Mehr

Übungsblatt zu Teil 2 (Einführung und Grundkonzepte)

Übungsblatt zu Teil 2 (Einführung und Grundkonzepte) Einführung in das Programmieren Prolog SS2006 Dr. Gunter Grieser Übungsblatt zu Teil 2 (Einführung und Grundkonzepte) Version 1.1 Aufgabe 2.1 (Schwierigkeitsgrad 1) a. Erstellen Sie ein Prolog-Programm,

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den

Mehr

368 4 Algorithmen und Datenstrukturen

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

Mehr

Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG

Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS 00 30. Juli 00 Bearbeitungszeit: 10 Minuten BEISPIELLÖSUNG Name: Vorname: Matrikelnummer: Aufgabe Punkte Bewertung 1 8 a) b) 6 8 3 8

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2008/2009 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Tom Kamphans Nils Schweer Klausur Algorithmen und Datenstrukturen 23.02.2009 Name:.....................................

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

Ein fundamentales mathematisches Beweisprinzip p ist die vollständige Induktion: Sei p : Falls

Ein fundamentales mathematisches Beweisprinzip p ist die vollständige Induktion: Sei p : Falls Beweisprinzip der vollständigen Induktion Ein fundamentales mathematisches Beweisprinzip p ist die vollständige Induktion: Sei p : Falls ein totales Prädikat. 1. p(0) (Induktionsanfang) und 2. für beliebiges

Mehr

Path Finding with Prolog. AAI Projekt Thien-An Bui und Marlene Wittwer FHNW Brugg-Windisch, HS 2014

Path Finding with Prolog. AAI Projekt Thien-An Bui und Marlene Wittwer FHNW Brugg-Windisch, HS 2014 Path Finding with Prolog AAI Projekt Thien-An Bui und Marlene Wittwer FHNW Brugg-Windisch, HS 2014 Ziel Grundlagen von Prolog vermitteln Beispiel Path Finding Zugstrecken erklären Ablauf 1. Allgemeines

Mehr

Schleifen in Javascript

Schleifen in Javascript Schleifen in Javascript Jobst-Hartmut Lüddecke 3. April 2013 Zusammenfassung In dieser Lektion geht es um Schleifen (engl. loop). Diese Schleifen sind in jeder Programmiersprache das beste Werkzeug für

Mehr

Thüringer Kultusministerium

Thüringer Kultusministerium Thüringer Kultusministerium Abiturprüfung 1998 Informatik als Grundfach (Haupttermin) Arbeitszeit: Einlesezeit: Hilfsmittel: 180 Minuten 30 Minuten Formeln und Tabellen für die Sekundarstufen I und II:

Mehr

Prolog. Maximilian Ronniger

Prolog. Maximilian Ronniger Prolog Autor: E-Mail: Maximilian Ronniger e0426625@student.tuwien.ac.at Basierend auf dem Artikel Describing Prolog by its interpretation and compilation von Jacques Cohen. Abstrakt Dieser Artikel bietet

Mehr

Übungen zu Programmierung I - Blatt 8

Übungen zu Programmierung I - Blatt 8 Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail

Mehr

Übungspaket 22 Rekursive Funktionsaufrufe

Übungspaket 22 Rekursive Funktionsaufrufe Übungspaket 22 Rekursive Funktionsaufrufe Übungsziele: Skript: 1. Technische Voraussetzungen für rekursive Funktionsaufrufe 2. Umsetzung mathematisch definierter Rekursionen in entsprechende C-Programme

Mehr

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik 18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik A. Fachbezogene Hinweise Grundlage für die schriftliche Abiturprüfung 2021 in Niedersachsen sind die Einheitlichen Prüfungsanforderungen

Mehr

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester

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

Name: 2. INFORMATIK-KLAUSUR

Name: 2. INFORMATIK-KLAUSUR Info 13 LK (GA) Bearbeitungszeit: 225 min Seite 1 Aufgabe 1: Logische Programmierung Prolog a) Gegeben ist folgendes Prolog-Programm, welches eine Liste Liste sortiert und in ListeS zurückgibt. sortiert([],[]).

Mehr

Semantik von Programmiersprachen SS 2017

Semantik von Programmiersprachen SS 2017 Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen

Mehr

PROLOG Syntax. Einführung in PROLOG II. Atome. Variablen. Es gibt vier Arten von Termen: Atome. Zahlen. Variablen. Komplexe Terme

PROLOG Syntax. Einführung in PROLOG II. Atome. Variablen. Es gibt vier Arten von Termen: Atome. Zahlen. Variablen. Komplexe Terme PROLOG Syntax Es gibt vier Arten von Termen: Atome Variablen Atome Zahlen Variablen Komplexe Terme 1. uni, uni_hannover 2. KI Kurs, $ % 45 3. @=, ====> 1. X, Y 2. Variable, Output 3. _tag, _head 4. X_256

Mehr

Übung: Quicksort. Erster Schritt zu Quicksort: Felder "partitionieren"

Übung: Quicksort. Erster Schritt zu Quicksort: Felder partitionieren Übung: Quicksort In der Vorlesung haben wir zum Sortieren die Prozedur mergesort kennen gelernt. Heute besprechen wir einen weiteren berühmten Sortieralgorithmus: quicksort Im Gegensatz zu mergesort, lässt

Mehr

Wiederholung zur SLD-Resolution (1)

Wiederholung zur SLD-Resolution (1) 8. Korrektheit und Vollständigkeit der SLD-Resolution 8-1 Wiederholung zur SLD-Resolution (1) SLD-Resolution: Selektionsfunktion: Wählt Atom der Anfrage. Nächstes zu bearbeitendes Atom. Normalerweise einfach

Mehr

Eine kleine Anleitung zum Programmieren mit MATLAB

Eine kleine Anleitung zum Programmieren mit MATLAB Eine kleine Anleitung zum Programmieren mit MATLAB Kathrin Smetana 4. Oktober 2011 Dies ist eine (stetig erweiterbare) Liste der Dinge, die man beachten sollte, wenn man mit Matlab programmieren, sprich

Mehr

Teil XI.3. Rekursive Regeln

Teil XI.3. Rekursive Regeln Teil XI.3 Rekursive Regeln 1 Beispiel Fakten: elternteil(heike, robert). elternteil(thomas, robert). elternteil(thomas, lisa). elternteil(robert, anna). elternteil(robert, petra). elternteil(petra, jakob).?-

Mehr

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung

Mehr

Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen

Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen Technische Universität München März 2013 Institut für Informatik Dr. rer. nat. Tobias Weinzierl Kaveh Rahnema Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen Lernziele Mehrfache

Mehr

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife? 05 For-Schleifen For-Schleifen 1/7 Was ist eine Schleife? Programmieren kann harte Arbeit bedeuten. Und manchmal ist es noch zäher, das gleiche immer und immer wieder erledigen zu müssen. Nehmen wir an,

Mehr