Kurs 1575, Klausur vom , Musterlösung

Größe: px
Ab Seite anzeigen:

Download "Kurs 1575, Klausur vom , Musterlösung"

Transkript

1 Kurs 1575, Klausur vom , Musterlösung Sie wollen die Tause von Büchern in Ihrem heimischen Bücherregal lich systematisch erfassen. Dazu schreiben Sie sich von jedem Buch Autorenname, Titel sowie ein beschreibes Schlagwort auf. Sie möchten nun Ihre Bücherliste unter drei Aspekten sortiert dargestellt haben jeweils in einer Liste - : nach Autorennamen, nach Titeln und nach Schlagworten. Als erfahrener Pascalprogrammierer wird das kein Problem für Sie sein. Sie treffen folge Entwurfsentscheidungen: Jeder der drei Begriffe kann jeweils in einer Zeichenkette der Länge 30 untergebracht werden. Da die Anzahl Ihrer Bücher sich im Laufe der Zeit ändern wird, ist zur Darstellung der Bücherliste in Ihrem Programm eine dynamische Datenstruktur angebracht. Da die Liste nach drei Kriterien sortiert werden soll, ist es sinnvoll, sie nach diesen drei Kriterien zu verketten. Es ergibt sich also als Datenstruktur eine dreifach verkettete lineare Liste (oder vielleicht besser: Knoten, die in drei einfach verketteten Listen verkettet sind). Ein Knoten in dieser Liste enthält also drei Zeichenkettenkomponenten, die die drei Begriffe Autorenname, Titel und Schlagwort aufnehmen, sowie drei (Vorwärts-) Zeigerkomponenten für die sortierte Verkettung bezüglich Autorenname, Titel und Schlagwort. Bei geschickter Wahl der Datenstruktur können die Prozeduren, die zum Aufbau der Liste sowie zu ihrer Ausgabe benötigt werden, so parametrisiert werden, daß sie für jede der drei gewünschten Sortierungen nur einmal geschrieben werden müssen. Dazu faßt man die Zeichenketten- und die Zeigerkomponenten eines Knotens jeweils in einem (dreielementigen) Array zusammen, deren Indextyp ein Aufzählungstyp mit den Ausprägungen Autor, Titel und Schlagwort ist (oder auf die feine englische Art: Author, Title und Keyword). Damit ergeben sich folge Pascal-Typenvereinbarungen: type Index = (Author, Title, Keyword); Text30 = packed array[1..30] of char; ListPointer = ^ListElement; ListElement = record Entry: array[index] of Text30; Next: array[index] of ListPointer ; ListStart = array[index] of ListPointer; Eine Variable vom Typ ListStart wird dazu dienen, auf den Kopf der Liste zu weisen. Die Eingabedaten für Ihr Programm sehen so aus, daß die drei Begriffe, die zu einem Buch gehören, jeweils in einer Eingabezeile stehen in der Reihenfolge Autor, Titel, Schlagwort, - und jeweils durch ein Komma (das nicht mehr zum Text gehört) beet werden. Beliebig viele Leerzeichen dürfen vor und nach den Begriffen stehen und sollen vom Programm überlesen werden. Also könnte die Eingabe z.b. so aussehen: 1

2 Conan-Doyle, Der Hund von Baskerville, Krimi, Marx, Das Kapital, Sachbuch, Zoller, Windows 95 im Detail, Sachbuch, Goethe, Die Wahlverwandtschaften, Roman, Heine, Deutschland-ein Wintermaerchen, Gedicht, Goethe, Goetz von Berlichingen, Drama, Die Ausgabe, die Sie sich wünschen, hätte ungefähr folges Aussehen: Autorenliste Conan-Doyle Der Hund von Baskerville Krimi Goethe Die Wahlverwandtschaften Roman Goethe Goetz von Berlichingen Drama Heine Deutschland-ein Wintermaerchen Gedicht Marx Das Kapital Sachbuch Zoller Windows 95 im Detail Sachbuch Titelliste Das Kapital Marx Sachbuch Der Hund von Baskerville Conan-Doyle Krimi Deutschland-ein Wintermaerchen Heine Gedicht Die Wahlverwandtschaften Goethe Roman Goetz von Berlichingen Goethe Drama Windows 95 im Detail Zoller Sachbuch Schlagwortliste Drama Goethe Goetz von Berlichingen Gedicht Heine Deutschland-ein Wintermaerchen Krimi Conan-Doyle Der Hund von Baskerville Roman Goethe Die Wahlverwandtschaften Sachbuch Marx Das Kapital Sachbuch Zoller Windows 95 im Detail Eine grafische Darstellung der gewünschten Datenstruktur finden Sie am Ende dieser Klausur. Das Programm wird Funktionen/Prozeduren benötigen : Funktion zum Erzeugen eines neuen Knotens function NewElement: ListPointer; Prozedur zum Aufbau der Liste(n) durch sortiertes Einfügen eines neuen Knotens hinter einem gefundenen Knoten procedure InsertAfter (var Start: ListStart; NewElem: ListPointer; TypeOfList: Index); Diese Prozedur benutzt (ruft auf) eine Prozedur zum Finden des Knotens, hinter dem eingefügt werden soll procedure FindPos (var PrevPointer: ListPointer; Start: ListStart; NewElem: ListPointer; TypeOfList: Index); Prozedur zum Ausdrucken der Liste: procedure PrintList ( StartPointer: ListPointer; TypeOfList: Index); 2

3 Aufgabe 1: Schreiben Sie das Hauptprogramm zum Aufbau sowie zur Ausgabe der verketteten Listen. Nehmen Sie an, daß die oben skizzierten Funktion und Prozeduren zur Verfügung ständen. (Benotung: Maximal 15 Punkte) program Literat(input,output); type Index = (Author, Title, Keyword); Text30 = packed array[1..30] of char; ListPointer = ^ListElement; ListElement = record Entry: array[index] of Text30; Next: array[index] of ListPointer ; ListStart = array[index] of ListPointer; var Start: ListStart; NewElem: ListPointer; function NewElement: ListPointer;... {NewElement}; procedure FindPos (var PrevPointer: ListPointer; Start: ListStart; NewElem: ListPointer; TypeOfList: Index);... {FindPos}; procedure InsertAfter (var Start: ListStart; NewElem: ListPointer; TypeOfList: Index);... {InsertAfter}; procedure PrintList ( StartPointer: ListPointer; TypeOfList: Index);... {PrintList}; {Hauptprogramm} reset(input); rewrite(output); writeln; Start[Author]:=nil; Start[Title]:=nil; Start[Keyword]:=nil; while not eof do NewElem:=NewElement; InsertAfter(Start, NewElem, Author); InsertAfter(Start, NewElem, Title); InsertAfter(Start, NewElem, Keyword); ; writeln('autorenliste'); writeln; Printlist (Start[Author], Author); writeln('titelliste'); writeln; Printlist (Start[Title], Title); writeln('schlagwortliste'); writeln; Printlist (Start[Keyword], Keyword); 3

4 . 4

5 Aufgabe 2: Schreiben Sie die Funktion function NewElement: ListPointer; Die Funktion erzeuge einen neuen Knoten für die Liste und lese die Daten für ein Buch in die entsprechen Zeichenkettenkomponenten des Knotens ein. (Benotung: Maximal 20 Punkte) function NewElement: ListPointer; var NewElem: ListPointer; procedure ReadText30 (var Text: Text30); var pos, i: integer; z: char; pos:=1; read(z); while (z=' ') do read(z); while (z<>',') do Text[pos]:=z; pos:=pos+1; read(z) ; for i:=pos to 30 do Text[i]:=' ' {ReadText30}; new(newelem); ReadText30(NewElem^.Entry[Author]); ReadText30(NewElem^.Entry[Title]); ReadText30(NewElem^.Entry[Keyword]); readln; NewElem^.Next[Author]:=nil; NewElem^.Next[Title]:=nil; NewElem^.Next[Keyword]:=nil; NewElement:=NewElem {NewElement}; 5

6 Aufgabe 3: Schreiben Sie die Prozedur procedure FindPos (var PrevPointer: ListPointer; Start: ListStart; NewElem: ListPointer; TypeOfList: Index); Die Prozedur finde n am Anfang Start der Liste von der Art TypeOfList den Knoten (auf den der Zeiger PrevPointer als Ergebnis zeigt), hinter dem der Knoten mit dem Zeiger NewElem einzufügen wäre. (Benotung: Maximal 20 Punkte) procedure FindPos (var PrevPointer: ListPointer; Start: ListStart; NewElem: ListPointer; TypeOfList: Index); var gefunden: boolean; Pointer: ListPointer; gefunden:=false; PrevPointer:=nil; Pointer:=Start[TypeOfList]; while ((Pointer<>nil) and (not gefunden)) do if Pointer^.Entry[TypeOfList] <= NewElem^.Entry[TypeOfList] then PrevPointer:=Pointer; Pointer:=PrevPointer^.Next[TypeOfList] else gefunden:=true {Suche nach Vorgaengerknoten} {FindPos}; 6

7 Aufgabe 4: Schreiben Sie die Prozedur procedure InsertAfter (var Start: ListStart; NewElem: ListPointer; TypeOfList: Index); Die Prozedur füge den Knoten, auf den Zeiger NewElem weist, in die Liste ein. Die Art der Liste (Autoren-, Titel- bzw. Schlagwortliste) ist durch TypeOfList parametrisiert. Die Prozedur bedient sich zum Auffinden der Einfügeposition der (global definierten) Prozedur FindPos (s. Aufgabe 3). Beachten Sie auch den Sonderfall der leeren Liste. (Benotung: Maximal 15 Punkte) procedure InsertAfter (var Start: ListStart; NewElem: ListPointer; TypeOfList: Index); var PrevPointer: ListPointer; FindPos(PrevPointer, Start, NewElem, TypeOfList); if PrevPointer=nil then {Einfuegen am Anfang der Liste} NewElem^.Next[TypeOfList]:=Start[TypeOfList]; Start[TypeOfList]:=NewElem else { Einfuegen im Innern oder am Ende der Liste} NewElem^.Next[TypeOfList]:=PrevPointer^.Next[TypeOfList]; PrevPointer^.Next[TypeOfList]:=NewElem {InsertAfter}; 7

8 Aufgabe 5: Schreiben Sie die Prozedur procedure PrintList ( StartPointer: ListPointer; TypeOfList: Index); zur Ausgabe der drei Listenarten Autorennamen, Titel, Schlagwort (sortiert nach Autorennamen) Titel, Autorennamen, Schlagwort (sortiert nach Titeln) Schlagwort, Titel, Autorenname (sortiert nach Schlagworten). Die Listenart ist parametrisiert durch TypeOfList. Das Layout der Ausgabe soll etwa dem Beispiel auf S.2 folgen. (Benotung: Maximal 10 Punkte) procedure PrintList ( StartPointer: ListPointer; TypeOfList: Index); while (StartPointer<>nil) do case TypeOfList of Author: write ( StartPointer^.Entry[Title],' ', Title: write (StartPointer^.Entry[Title],' ', Keyword:write (StartPointer^.Entry[Keyword],' ', StartPointer^.Entry[Title]) {case}; writeln; StartPointer:=StartPointer^.Next[TypeOfList] {PrintList}; 8

9 Aufgabe 6: Ihr Programm ist so erfolgreich, daß Sie es bis nach Australien exportieren wollen. Auf der südlichen Hälfte der Erdhalbkugel läuft aber alles, wie Sie wissen, anders herum. Deshalb müssen Sie Ihrem Programm noch eine Variante der Ausgabeprozedur PrintList hinzufügen. Diese Variante heiße PrintInvers und drucke die Listen in umgekehrter Reihenfolge. Sie erreicht das auf rekursive Art. procedure PrintInvers ( StartPointer: ListPointer; TypeOfList: Index); (Benotung: Maximal 20 Punkte) procedure PrintInvers ( StartPointer: ListPointer; TypeOfList: Index); if (StartPointer<>nil)then PrintInvers(StartPointer^.Next[TypeOfList], TypeOfList); case TypeOfList of Author: write ( StartPointer^.Entry[Title],' ', Title: write (StartPointer^.Entry[Title],' ', Keyword:write (StartPointer^.Entry[Keyword],' ', StartPointer^.Entry[Title]) {case}; writeln {PrintListInvers}; Das Hauptprogramm muß entsprech ergänzt werden:... writeln('autorenliste invers'); writeln; PrintInvers (Start[Author], Author); writeln('titelliste invers'); writeln; PrintInvers (Start[Title], Title); writeln('schlagwortliste invers'); writeln; PrintInvers (Start[Keyword], Keyword);. 9

10 Hier noch einmal das komplette Programm: program Literat(input,output); type Index = (Author, Title, Keyword); Text30 = packed array[1..30] of char; ListPointer = ^ListElement; ListElement = record Entry: array[index] of Text30; Next: array[index] of ListPointer ; ListStart = array[index] of ListPointer; var Start: ListStart; NewElem: ListPointer; function NewElement: ListPointer; var NewElem: ListPointer; procedure ReadText30 (var Text: Text30); var pos, i: integer; z: char; pos:=1; read(z); while (z=' ') do read(z); while (z<>',') do Text[pos]:=z; pos:=pos+1; read(z) ; for i:=pos to 30 do Text[i]:=' ' {ReadText30}; new(newelem); ReadText30(NewElem^.Entry[Author]); ReadText30(NewElem^.Entry[Title]); ReadText30(NewElem^.Entry[Keyword]); readln; NewElem^.Next[Author]:=nil; NewElem^.Next[Title]:=nil; NewElem^.Next[Keyword]:=nil; NewElement:=NewElem {NewElement}; procedure FindPos (var PrevPointer: ListPointer; Start: ListStart; NewElem: ListPointer; TypeOfList: Index); var gefunden: boolean; Pointer: ListPointer; gefunden:=false; PrevPointer:=nil; Pointer:=Start[TypeOfList]; while ((Pointer<>nil) and (not gefunden)) do if Pointer^.Entry[TypeOfList] <= NewElem^.Entry[TypeOfList] then PrevPointer:=Pointer; Pointer:=PrevPointer^.Next[TypeOfList] else gefunden:=true {Suche nach Vorgaengerknoten} {FindPos}; procedure InsertAfter (var Start: ListStart; NewElem: ListPointer; TypeOfList: Index); 10

11 var PrevPointer: ListPointer; FindPos(PrevPointer, Start, NewElem, TypeOfList); if PrevPointer=nil then {Einfuegen am Anfang der Liste} NewElem^.Next[TypeOfList]:=Start[TypeOfList]; Start[TypeOfList]:=NewElem else { Einfuegen im Innern oder am Ende der Liste} NewElem^.Next[TypeOfList]:=PrevPointer^.Next[TypeOfList]; PrevPointer^.Next[TypeOfList]:=NewElem {InsertAfter}; procedure PrintList ( StartPointer: ListPointer; TypeOfList: Index); while (StartPointer<>nil) do case TypeOfList of Author: write ( StartPointer^.Entry[Title],' ', Title: write (StartPointer^.Entry[Title],' ', Keyword:write (StartPointer^.Entry[Keyword],' ', StartPointer^.Entry[Title]) {case}; writeln; StartPointer:=StartPointer^.Next[TypeOfList] {PrintList}; procedure PrintInvers ( StartPointer: ListPointer; TypeOfList: Index); if (StartPointer<>nil)then PrintInvers(StartPointer^.Next[TypeOfList], TypeOfList); case TypeOfList of Author: write ( StartPointer^.Entry[Title],' ', Title: write (StartPointer^.Entry[Title],' ', Keyword:write (StartPointer^.Entry[Keyword],' ', StartPointer^.Entry[Title]) {case}; writeln {PrintListInvers}; {Hauptprogramm} assign(input,'d:\k1575\nklaus98\literat.dat'); assign(output,'d:\k1575\nklaus98\literat.out'); reset(input); rewrite(output); writeln; Start[Author]:=nil; Start[Title]:=nil; Start[Keyword]:=nil; while not eof do 11

12 NewElem:=NewElement; InsertAfter(Start, NewElem, Author); InsertAfter(Start, NewElem, Title); InsertAfter(Start, NewElem, Keyword); ; writeln('autorenliste'); writeln; Printlist (Start[Author], Author); writeln('titelliste'); writeln; Printlist (Start[Title], Title); writeln('schlagwortliste'); writeln; Printlist (Start[Keyword], Keyword); writeln('autorenliste invers'); writeln; PrintInvers (Start[Author], Author); writeln('titelliste invers'); writeln; PrintInvers (Start[Title], Title); writeln('schlagwortliste invers'); writeln; PrintInvers (Start[Keyword], Keyword);. 12

13 Versuch, die Datenstruktur grafisch darzustellen. Start Grafische Darstellung eines Knotens der Liste: [Author] [Title] [Keyword] Entry[Author] Entry[Title] Entry[Keyword] Next[Author] Next[Title] Next[Keyword] Conan-Doyle Marx Zoller Goethe Heine Goethe Der Hund von Baskerville Das Kapital Windows 95 im Detail Die Wahlverwandtschaften Deutschland-ein Wintermaerchen Goetz von Berlichingen Krimi Sachbuch Sachbuch Roman Gedicht Drama 13

Kurs 1575, Klausur vom

Kurs 1575, Klausur vom Kurs 1575, Klausur vom 7.2.1998 Sie wollen die Tausende von Büchern in Ihrem heimischen Bücherregal endlich systematisch erfassen. Dazu schreiben Sie sich von jedem Buch Autorenname, Titel sowie ein beschreibendes

Mehr

Syntax der Sprache PASCAL

Syntax der Sprache PASCAL Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2003/04

Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2003/04 1 Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Aufgabe 1: Römische Zahlen Wer kennt das Problem nicht: Sie stehen vor einer Inschrift,

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

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

6. Verkettete Strukturen: Listen

6. Verkettete Strukturen: Listen 6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten

Mehr

15 Der strukturierte Datentyp»set«(Mengen)

15 Der strukturierte Datentyp»set«(Mengen) Dr. K. Haller Turbo-Pascal Kap. 15: Mengen (Sets) 15-1 15 Der strukturierte Datentyp»set«(Mengen) Gliederung 15.1 Allgemeines zu Mengen...2 15.2 Mengen-Operatoren, Demo-Programm...3 15.3 Mengen-Prozeduren,

Mehr

Manipulation binärer Bäume Binäre Bäume II

Manipulation binärer Bäume Binäre Bäume II Fakultät Informatik Lehramt Seminar Algorithmierung Programmierung III Kay Strobach Manipulation binärer Bäume Binäre Bäume II Dresden, 26.10.2006 Gliederung Suchen in Bäumen Hinzufügen von Blättern und

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; unit sudoku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCvD_Sudoku = class(tform) Panel1: TPanel; Bevel1: TBevel; Bevel2:

Mehr

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) 4. Zur Struktur der PS PASCAL 4.1. Einleitende Bemerkungen 1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) Anfang 60er (USA) COBOL (Commercial Business

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung 1 Wintersemester 2002/2003 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur "Konzepte imperativer Programmierung". Lesen Sie sich

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

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

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); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Lineare Listen (1) Einfach verkettete Listen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 148 Wiederholung Felder Vorteil Der Zugriff auf ein beliebiges

Mehr

Kurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag

Kurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Wir wollen ein Programm schreiben, das die Ziehung der Lottozahlen vornimmt und zu den

Wir wollen ein Programm schreiben, das die Ziehung der Lottozahlen vornimmt und zu den 0 Aufgabe 1: Ziehung der Lottozahlen Wir wollen ein Programm schreiben, das die Ziehung der Lottozahlen vornimmt und zu den Tippscheinen den jeweiligen Gewinnrang bestimmt. Das Problem lat sich untergliedern

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Klausur zur Wirtschaftsinformatik II im Grundstudium

Klausur zur Wirtschaftsinformatik II im Grundstudium Prof. Dr. R. Gabriel Sommersemester 2005 Wirtschaftsinformatik 19. August 2005 Ruhr-Universität Bochum Klausur zur Wirtschaftsinformatik II im Grundstudium - Die Bearbeitungszeit der Klausur beträgt 90

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

{$MODE Delphi} // fuer Free Pascal unit UCd;

{$MODE Delphi} // fuer Free Pascal unit UCd; CD -Name -Identifikationsnummer -Beschaffungsdatum -Status +getname() +setname(in Name) +getid() +setid(in ID) +getbeschaffungsdatum() +setbeschaffungsdatum(in Datum) +getstatus() +setstatus(in Status)

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

Praxis der Programmierung

Praxis der Programmierung Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen

Mehr

Andere Arten von Listen. Vorlesung 4

Andere Arten von Listen. Vorlesung 4 Andere Arten von Listen Vorlesung 4 Listen Vorige Woche: Einfach verkettete Listen (singly linked lists) Doppelt verkettete Listen (doubly linked lists) Heute betrachten wir: Sortierte Listen (sorted list/

Mehr

Datenstrukturen Teil 1. Arrays, Listen, Stapel und Warteschlange. Arrays. Arrays. Array

Datenstrukturen Teil 1. Arrays, Listen, Stapel und Warteschlange. Arrays. Arrays. Array Datenstrukturen Teil 1,, und Sammelbegriff für Anordnung, Aufstellung, Reihe von gleichen Elementen in festgelegter Art und Weise Werden unterschieden in Standardarrays und assoziative Können ein- oder

Mehr

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) 4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 8./15. November 2005 Einordnung

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.

Mehr

Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung

Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Name: Matrikelnr.: Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur Einführung in die imperative Programmierung.

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

1. Allgemeine Datei (Binärdatei mit formatierten Inhalt)

1. Allgemeine Datei (Binärdatei mit formatierten Inhalt) Datei ein komplexer Datentyp, der primär zur dauerhaften (persistenten) Speicherung von Daten auf einen externen Datenträger dient die wichtigsten Operationen, die mit Dateien durchgeführt werden, sind

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

Schleifenprogrammierung in C/C++, Fortran und Pascal

Schleifenprogrammierung in C/C++, Fortran und Pascal Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht

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

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 Analysiert man das Verfahren anhand des angegebenen Beispiels, ist schnell zu erkennen, dass das erste Element von infeld2 nach outfeld an Index 2 kopiert wird, das zweite den Index 4 bekommt,

Mehr

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog Fachbericht DPR Name: René Wagener Klasse: CI3O1 Fachlehrer: Herr Balog Inhalt Der Anfang... 3 Was ist Delphi?... 3 Das erste Programm... 3 Delphi VCL-Formularanwendung... 4 Variablen... 5 Beispiel für

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

Kurs 1612 Konzepte imperativer Programmierung Kurs 1613 Einführung in die imperative Programmierung

Kurs 1612 Konzepte imperativer Programmierung Kurs 1613 Einführung in die imperative Programmierung Aufgaben Aufgabe 1 Schreiben Sie eine PASCAL-Prozedur transponierematrix, die als Parameter eine quadratische Matrix von integer-werten erhält und diese Matrix transponiert, also die Zeilen und Spalten

Mehr

Datentypen: integer, char, string, boolean

Datentypen: integer, char, string, boolean Agenda für heute, 13. April, 2006 Der Datentyp integer Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen Zusammengesetzte if-then-else-anweisungen Var i: integer; Teilbereich der ganzen Zahlen,

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Kurs 1613 Einführung in die imperative Programmierung 1 Wintersemester 2009/2010 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

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

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,

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

Studienseminar Koblenz - Fachseminar Informatik Visualisierung von Sortieralgorithmen

Studienseminar Koblenz - Fachseminar Informatik Visualisierung von Sortieralgorithmen Thema: Visualisieren von Sortieralgorithmen in Delphi (am Beispiel: Bubblesort und Quicksort) Ziel ist es, eine Animation des Bubblesort- und Quicksort-Algorithmus in Delphi für die Anwung im Unterricht

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Aufgabe (Schreibtischtest, Algorithmenanalyse) Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit

Mehr

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Teil X. Von Mini Pascal zu Pascal

Teil X. Von Mini Pascal zu Pascal Teil X Von Mini Pascal zu Pascal 1 Teil X.1 Pascal Datentypen 2 Begriffe Typ: Menge von Werten Beispiel: integer alle ganzen Zahlen zwischen - MaxInt und MaxInt Variable: Reserviert Speicherplatz für Werte

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

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

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

Mehr

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Aufgabe (Schreibtischtest, lexikographische Ordnung) Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem

Mehr

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

7. Organisation von Informationen

7. Organisation von Informationen Computeranwendung in der Chemie Informatik für Chemiker(innen) 7. Organisation von Informationen Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL7 Folie 1 Grundlagen Programme

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache Institut für Informatik Christian-Albrechts-Universität zu Kiel Borland Delphi Einführung in die Programmiersprache Geschichte Objective Pascal objektorienterte Programmiersprache Rapid Development schweizer

Mehr

13. Dynamische Datenstrukturen

13. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

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

Mehr

Schriftliche Reifeprüfung aus INFORMATIK: Klasse 8D Haupttermin 2002/03

Schriftliche Reifeprüfung aus INFORMATIK: Klasse 8D Haupttermin 2002/03 Schriftliche Reifeprüfung aus INFMATIK: Klasse 8D Haupttermin 2002/03 Name: 1. Programmieraufgabe: DELPHI a) Schreibe ein Delphi-Projekt CHARxxxx.DPR, das folgende Zeichenketten erzeugt: S 1 = A, S 2 =

Mehr

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung Name: Matrikelnr.: Hinweise zur Bearbeitung der Klausur zum Kurs 01613 Einführung in die imperative Programmierung 1. Prüfen Sie die Vollständigkeit Ihrer Unterlagen. Die Klausur umfasst: 2 Deckblätter

Mehr

Um mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.

Um mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle. TURBO-PASCAL Programmaufbau Jedes Pascal-Programm hat eine ganz bestimmte Struktur. Außerdem hat jeder Teil des Programms eine ähnliche Struktur. Man teilt ein Pascal-Programm in drei Abschnitte ein: 1.

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

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

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am 1 Lösung 1 ( 4+4 Punkte) a) procedure VerschiebeZyklisch ( iofeld : tfeld); { verschiebt die Werte innerhalb eines Feldes eine Position nach rechts; der Wert iofeld[max] wird nach iofeld[1] übertragen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

Mehr

Android-Apps Gegenüberstellung Delphi java

Android-Apps Gegenüberstellung Delphi java Android-Apps Gegenüberstellung 2/9 Grundsätzliches etc. Groß-/Kleinschreibung egal sensitiv! Zuweisung := = Kommentare // // { } /* */ Zeichenkettenbegrenzer: 'text' "text" Inkrementieren / Dekrementieren

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Informatik II Übung 5

Informatik II Übung 5 Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013

Mehr

Verbund/Struktur (record/struct)

Verbund/Struktur (record/struct) Arrays. Iteratoren. Verbund/Struktur (record/struct) Ein Verbund oder Struktur ist eine statische Datenstruktur Ein Verbund ist eine Menge von Elementen (meistens von unterschiedlichen Typen), die eine

Mehr

Algorithmen I - Tutorium 28 Nr. 11

Algorithmen I - Tutorium 28 Nr. 11 Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.

Mehr

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen? BUBBLE SORT Voraussetzungen der Schüler: Die Schüler besuchen bereits das zweite Jahr den Informatikunterricht und sollten den Umgang mit Feldern und Unterprogrammen mittlerweile beherrschen. Im ersten

Mehr

3. Grundlegende Sprachkonstruktionen imperativer Programme

3. Grundlegende Sprachkonstruktionen imperativer Programme 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

Buch-Add-Ons. Jürgen Bayer. Object Pascal-Tipps und Tricks. 1 Konvertieren und auf numerische Werte überprüfen 2

Buch-Add-Ons. Jürgen Bayer. Object Pascal-Tipps und Tricks. 1 Konvertieren und auf numerische Werte überprüfen 2 Buch-Add-Ons Jürgen Bayer Inhaltsverzeichnis Object Pascal-Tipps und Tricks 1 Konvertieren und auf numerische Werte überprüfen 2 1.1 Strings in Integerwerte konvertieren 2 1.2 Strings in Extended-Werte

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Typisierte Dateien von Martin Strohal. Einleitung. Der Record

Typisierte Dateien von Martin Strohal. Einleitung. Der Record Typisierte Dateien von Martin Strohal Einleitung Herzlich willkommen im Tutorial zum Erstellen und Verwenden sequenzieller Dateien! Als Allererstes: Was sind eigentlich "sequenzielle Dateien" und wozu

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung

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

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr