An alle Teilnehmer(innen) des Kurses Einführung in die imperative Programmierung im Wintersemester 2008/2009. Klausur-Informationen

Größe: px
Ab Seite anzeigen:

Download "An alle Teilnehmer(innen) des Kurses Einführung in die imperative Programmierung im Wintersemester 2008/2009. Klausur-Informationen"

Transkript

1 Lehrgebiet Software Engineering Prof. Dr. H.-W. Six FernUniversität in Hagen Hagen An alle Teilnehmer(innen) des Kurses Einführung in die imperative Programmierung im Wintersemester 2008/2009 Ihr Zeichen: Ihre Nachricht vom: Mein Zeichen: Meine Nachricht vom: Auskunft erteilt: Kursbetreuung 1613 Telefon: (Sprechzeiten: vgl. OKB) Telefax: Hausanschrift: Universitätsstraße Hagen Datum Klausur-Informationen Liebe Fernstudentin, lieber Fernstudent, die Hauptklausur zu Kurs 1613 findet am Samstag, dem statt. Studierende, die an diesem Termin verhindert sind oder die Hauptklausur nicht bestehen, können am an der Nachklausur teilnehmen. Die Bearbeitungszeit für die Klausur beträgt 2 Stunden von Uhr bis Uhr. Um an den Klausuren teilnehmen zu können, müssen Sie sich anmelden. Einen entsprechenden Link finden Sie auf der OKB-Startseite: Eine Liste der Klausurorte liegt als Anlage bei. Falls Sie die Möglichkeit haben möchten, bei Nichtbestehen der Hauptklausur an der Nachklausur teilzunehmen, melden Sie sich bitte vorsorglich für beide Klausuren an! Eine Anmeldung zur Nachklausur verfällt automatisch bei Bestehen der Hauptklausur (auch wenn sie in der OKB weiterhin angezeigt wird). Anmeldeschluss für beide Klausuren ist Montag, der Bis zu diesem Termin können vorgenommene Anmeldungen auch noch online geändert oder gelöscht werden. Um den Belegern des Kurses 1613 einen Eindruck von der Art der Aufgabenstellung in den Klausuren zu vermitteln, haben wir diesem Schreiben die Aufgaben und Musterlösung der Hauptklausur des WS 01/02 als Probeklausur beigelegt. Versuchen Sie als Vorbereitung auf die Klausur, die Aufgaben unter Klausurbedingungen zu bearbeiten, und kontrollieren Sie erst dann Ihre Lösungen anhand der Musterlösung. Hinweise zur Klausurbearbeitung: Da Sie der Klausuraufsicht i.d.r. nicht persönlich bekannt sind, findet während der Klausur eine Ausweiskontrolle statt, zu der Sie Ihren Studentenausweis und einen Lichtbildausweis (Personalausweis oder Pass) vorlegen müssen. Halten Sie diese bitte bereit, so dass Sie sie nicht während der Klausur erst hervorholen müssen. Die Klausurexemplare enthalten bereits leere Seiten zur Bearbeitung der Aufgaben, so dass Sie nur noch einen Stift (keinen Bleistift!) benötigen. Der Platz reicht im Normalfall auch aus, mal einen Ansatz durchzustreichen und neu zu nen. Falls Sie zusätzlich eigenes Konzeptpapier verwenden möchten, stellen Sie sicher, dass Sie einen leeren Block ohne irgendwelche Eintragungen mitbringen und Telefonzentrale: Zentraler Telefaxeingang: Internet: Buslinie(n): 515, 527, 534 Haltestelle: FernUniversität

2 dieser von Anfang an (beim Austeilen der Klausuren und bei der Ausweiskontrolle) für die Aufsicht sichtbar ist und ggf. kontrolliert werden kann. Außer den Schreibutensilien sind keine weiteren Hilfsmittel zugelassen! So dürfen insbesondere weder der Kurstext noch Einsendeaufgaben oder handschriftliche Notizen verwendet werden. Die Muss-Regeln des Programmierstils finden Sie jedoch im Anhang Ihres Klausurexemplars. Die Klausur ist bestanden, wenn mindestens 50% der erreichbaren Punkte erzielt wurden. Sie müssen also nicht unbedingt alle Aufgaben bearbeiten. Wir empfehlen, sich zu Beginn einen Überblick über alle Aufgaben zu verschaffen und die Aufgaben, die Ihnen leichter erscheinen, zuerst zu bearbeiten. Weitere Informationen Ausgewählte Antworten auf häufig gestellte Fragen auch bezüglich der Klausurzulassung, An- und Abmeldung finden Sie online in den FAQ zum Kurs (in der OKB-Umgebung). Sollten Sie darüber hinaus noch Fragen haben, so wenden Sie sich bitte an die Newsgroup oder telefonisch innerhalb der bekannten Sprechzeiten an unser Lehrgebiet (Tel ). Mit freundlichen Grüßen, Ihre Kursbetreuer Anlagen: Liste der Klausurorte für die Haupt- und Nachklausur Hauptklausur WS 01/02 Musterlösung der Hauptklausur Seite 2 von 4

3 Liste der Orte für die Hauptklausur am von bis Uhr Ort Anschrift Raum Berlin Bochum Frankfurt Hamburg Karlsruhe Köln München Bern Bregenz Wien Humboldt-Universität zu Berlin Invalidenstr. 42 (Nordbau) Berlin Ruhr-Universität Bochum Hörsaalzentrum Ost Universitätsstraße Bochum Johann-Wolfgang-Goethe-Universität Frankfurt Mertonstr. 21 (Ecke Gräfstr.), Gebäudeteil D Frankfurt am Main Universität Hamburg Von-Melle-Park Hamburg FH Karlsruhe Technik und Wirtschaft Moltkestr Karlsruhe Universität zu Köln Hauptgebäude Albertus-Magnus-Platz Köln Ludwig-Maximilian-Universität München (LMU) Butenandtstr München Berner Fachhochschule Hallerstr. 8 CH-3012 Bern Studienzentrum Bregenz Belrupstr. 10 A-6900 Bregenz Studienzentrum Wien Strozzigasse 2 A-1080 Wien Hörsaal 7 * Hörsaal 10 * HZO 20 * HZO 40 * Hörsaal V Hörsaal A * Hörsaal D * Hörsaal E * Hörsaal HE * Hörsaal HB * Aula 1 * Aula 2 * Liebig-Hörsaal * Buchner-Hörsaal * Siehe Aushang im Gebäude Siehe Aushang im Studienzentrum Siehe Aushang im Studienzentrum Stand: , kurzfristige Änderungen vorbehalten. Änderungen werden ggf. in der Newsgroup angekündigt oder vor Ort durch Aushänge bekannt gegeben. *) Falls zu einem Klausurort mehrere Räume angegeben sind, so verteilen sich die an diesem Termin zu verschiedenen Kursen parallel stattfindenden Klausuren auf die genannten Räume. Informieren Sie sich bitte vor Ort, in welchem der genannten Räume die 1613-Klausur stattfindet. Seite 3 von 4

4 Liste der Orte für die Nachklausur am von bis Uhr Ort Anschrift Raum Berlin Bochum Frankfurt Hamburg Karlsruhe Köln München Bern Bregenz Wien Humboldt-Universität zu Berlin Invalidenstr. 42 (Nordbau) Berlin Ruhr-Universität Bochum Hörsaalzentrum Ost Universitätsstraße Bochum Johann-Wolfgang-Goethe-Universität Frankfurt Mertonstr. 21 (Ecke Gräfstr.), Gebäudeteil D Frankfurt am Main Universität Hamburg Von-Melle-Park Hamburg TH Karlsruhe Geb Gotthardt-Franz-Str Karlsruhe Universität zu Köln WiSo-Gebäude Universitätsstr Köln Ludwig-Maximilian-Universität München (LMU) Butenandtstr München Berner Fachhochschule Hallerstr. 8 CH-3012 Bern Studienzentrum Bregenz Belrupstr. 10 A-6900 Bregenz Studienzentrum Wien Strozzigasse 2 A-1080 Wien Hörsaal 10 HZO 10 Hörsaal V Hörsaal D Hörsaal am Fasanengarten Hörsaal I Buchner-Hörsaal Siehe Aushang im Gebäude Siehe Aushang im Studienzentrum Siehe Aushang im Studienzentrum Stand: , kurzfristige Änderungen vorbehalten. Änderungen werden ggf. in der Newsgroup angekündigt oder vor Ort durch Aushänge bekannt gegeben. Seite 4 von 4

5 Musterklausur Wintersemester 2001/2002 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". Lesen Sie sich diese Hinweise vollständig und aufmerksam durch, bevor Sie mit der Bearbeitung der Aufgaben nen: 1. Prüfen Sie die Vollständigkeit Ihrer Unterlagen. Die Klausur umfasst: - 2 Deckblätter, - 1 Formblatt für eine Bescheinigung für das Finanzamt, - diese Hinweise zur Bearbeitung, - 5 Aufgaben (Seite 5 - Seite 12), - die Muß-Regeln des Programmierstils. 2. Füllen Sie, bevor Sie mit der Bearbeitung der Aufgaben nen, folgende Seiten des Klausurexemplares aus: a) BEIDE Deckblätter mit Namen, Anschrift sowie Matrikelnummer. Markieren Sie vor der Abgabe auf beiden Deckblättern die von Ihnen bearbeiteten Aufgaben. b) Falls Sie eine Teilnahmebescheinigung für das Finanzamt wünschen, füllen Sie bitte das entsprechende Formblatt aus. Nur wenn Sie beide Deckblätter vollständig ausgefüllt haben, können wir Ihre Klausur korrigieren! 3. Schreiben Sie Ihre Lösungen auf den freien Teil der Seite unterhalb der Aufgabe bzw. auf die leeren Folgeseiten. Sollte dies nicht möglich sein, so vermerken Sie, auf welcher Seite die Lösung zu finden ist. Streichen Sie ungültige Lösungen deutlich durch. 4. Schreiben Sie auf jedem von Ihnen beschriebenen Blatt oben links Ihren Namen und oben rechts Ihre Matrikelnummer. Wenn Sie weitere eigene Blätter benutzt haben, heften Sie auch diese, mit Name und Matrikelnummer versehen, an Ihr Klausurexemplar. Nur dann werden auch Lösungen außerhalb Ihres Klausurexemplares gewertet! 5. Neben unbeschriebenem Konzeptpapier und Schreibzeug (Füller oder Kugelschreiber) sind keine weiteren Hilfsmittel zugelassen. Die Muß-Regeln des Programmierstils finden Sie im Anschluß an die Aufgabenstellung. 6. Es sind maximal 42 Punkte erreichbar. Sie haben die Klausur sicher dann bestanden, wenn Sie mindestens 21 Punkte erreicht haben. Wir wünschen Ihnen bei der Bearbeitung der Klausur viel Erfolg! 1

6 Aufgabe 1 (6 Punkte) Eine natürliche Zahl n heißt perfekt, wenn n als Summe aller natürlicher Zahlen i (1!"!i!" n -- 2 ), durch die n ohne Rest teilbar ist, dargestellt werden kann. Die Zahl 28 ist beispielsweise eine perfekte Zahl. Es ist 28!#!1!$!2!$!4!$!7!$!14 und 1, 2, 4, 7 und 14 sind genau alle Zahlen, durch die 28 ohne Rest teilbar ist. Schreiben Sie ein Programm perfekte- Zahl, das alle perfekten Zahlen zwischen 1 und 1000 auf dem Bildschirm ausgibt. 2

7 Aufgabe 2 (8 Punkte) Ein Handlungsreisender muss MAXORTSZAHL Städte besuchen (MAXORTSZAHL > 1) und möchte dafür eine Reise planen, bei der jede Stadt genau einmal besucht wird. Aus Sparsamkeits- und Umweltschutzgründen sollte die Reise möglichst kurz sein. Es soll eine PASCAL-Prozedur Reise entwickelt werden, die eine Reise ermittelt und die Ortsnummern in der Reihenfolge der Reise sowie die insgesamt zu fahrenden Kilometer ausgibt. Dazu wird der Prozedur eine Entfernungsmatrix übergeben, in der das Element in der i-ten Zeile und j-ten Spalte die Entfernung zwischen der Stadt i und der Stadt j angibt. Die Entfernungen zwischen den Städten und die Länge der Reise sind immer positive integer-zahlen kleiner als maxint. Zur Bestimmung einer kurzen Reise wird folgendes Verfahren benutzt: Ausgehend von Stadt 1 wird diejenige Stadt bestimmt, welche die kürzeste Entfernung von Stadt 1 besitzt. Von dieser Stadt aus wird wiederum die nächstgelegene Stadt ermittelt und von der aus wieder die nächstgelegene usw., bis alle Städte besucht worden sind. Die Information, welche Städte schon besucht sind, wird in einem booleschen Feld abgelegt. Als Beispiel für MAXORTSZAHL = 3 geben wir die folgende Entfernungsmatrix und die resultierende Prozedurausgabe an: 123 Prozedurausgabe: Entfernungsmatrix: Reise: km Ihre Aufgabe besteht darin, unter Benutzung der Konstantendefinition und Typdefinitionen const MAXORTSZAHL = 10; type tortsindex = 1..MAXORTSZAHL; tentfernung = 0..maxint; tentfmatrix = array [tortsindex, tortsindex] of tentfernung; untenstehende Prozedur so zu ergänzen, dass sie obiges Verfahren implementiert. procedure Reise (var inmat : tentfmatrix); { berechnet eine kurze Reise aus der Entfernungsmatrix inmat } 3

8 type tboolfeld = array [tortsindex] of boolean; { zur Markierung bereits besuchter Staedte } var besucht : tboolfeld; Gesamtstrecke : tentfernung; hier, { gibt die aktuelle Stadt an } naechste, { gibt die naechste zu besuchende Stadt an } i : tortsindex; {...setzen Sie hier evtl. weitere Deklarationen ein } { procedure } for i := 1 to MAXORTSZAHL do besucht [i] := false; { initialisiert das Feld besuchter Staedte } Gesamtstrecke := 0; hier := 1; besucht [hier] := true; writeln ('Reise: '); writeln (hier); { es sind noch MAXORTSZAHL - 1 Staedte zu besuchen } for i := 1 to MAXORTSZAHL - 1 do Komplettieren Sie den Schleifenrumpf von Reise, indem Sie die hier erforderlichen Anweisungen nach dem untenstehenden Buchstaben A angeben. end; writeln (Gesamtstrecke, ' km') end; { Reise } 4

9 Aufgabe 3 (5 + 5 Punkte) Zwei Mengen M1 und M2 mit ganzen Zahlen seien durch einfach-verkettete lineare Listen realisiert. Die Zahlen innerhalb der Liste sind nicht sortiert. Die Prozedur Minus(M1, M2) entfernt alle Zahlen aus der Liste M1, die ebenfalls in der Liste M2 enthalten sind. Das Entfernen dieser Zahlen aus der Liste M1 soll ausschließlich durch Ändern der Verkettung geschehen. Implementieren Sie die Prozedur Minus, indem Sie die Teilaufgaben a) und b) bearbeiten. Gehen Sie dabei von den angegebenen Typen und Prozedurköpfen aus. type trefliste = ^tliste; tliste = record info : integer; next : trefliste end; a) Implementieren Sie eine Funktion finden, die einen Suchwert in einer Liste finden soll. Der zu suchende Wert wird in dem Parameter inwert und die zu durchsuchende Liste in dem Parameter inrefliste an die Funktion übergeben. Wird der Suchwert in der Liste gefunden, so soll die Funktion einen Zeiger auf dieses Element zurückliefern, ansonsten gibt die Funktion den Wert nil zurück. function finden ( inwert : integer; inrefliste : trefliste) : trefliste; { sucht den Wert inwert in der Liste, auf deren Anfang inrefliste zeigt. Wird der Wert gefunden, liefert die Funktion einen Zeiger auf dieses Element zurueck, ansonsten nil } b) Implementieren Sie die Prozedur Minus unter Benutzung der Funktion finden. Vervollständigen Sie dazu untenstehende Prozedur, indem Sie für die Platzhalter (1) bis (5) in der Prozedur einen Ausdruck, eine Bedingung, eine Anweisung oder eine Anweisungsfolge einsetzen. procedure Minus ( var iorefm1 : trefliste; inrefm2 : trefliste); { entfernt nur durch Aendern der Verkettung alle Elemente aus iorefm1, deren Werte auch in iorefm2 vorkommen. } var RefWert, RefLauf1, RefLauf2: trefliste; RefLauf2 := inrefm2; 5

10 } iorefm1 } while RefLauf2 <> nil do RefWert := finden((1), (2)); if RefWert <> nil then { Suchwert in iorefm1 gefunden? if (3) then { Sonderfall: Suchwert ist erstes Element in (4) end else { Normalfall } (5) end end; { if RefWert <> nil } RefLauf2 := RefLauf2^.next; end { while } end; { Minus } Platzhalter Ausdruck, Bedingung, Anweisung oder Anweisungsfolge (1) (2) (3) (4) (5) 6

11 Aufgabe 4 (10 Punkte) Gegeben sei ein (nicht sortierter) binärer Baum und ein Zeiger RefZ auf einen Knoten, der im Baum enthalten ist. Ihre Aufgabe ist es, eine Prozedur Trennen zu implementieren, die den Teilbaum, auf dessen Wurzel RefZ zeigt, vom Baum abtrennt. Zeigt RefZ auf die Wurzel des Baumes, dann ist nichts zu tun. Die folgende Abbildung veranschaulicht das Prinzip. RefWurzel A RefZ RefWurzel A RefZ F G! F G R S K M R S K M Gehen Sie von den folgenden Typdefinitionen und dem angegebenen Prozedurkopf aus. type trefbinbaum = ^tbinbaum; tbinbaum = record info : char; links, rechts : trefbinbaum end; procedure Trennen ( inrefwurzel, inrefz : trefbinbaum); { trennt den Teilbaum, auf dessen Wurzel inrefz zeigt, vom Baum ab, auf dessen Wurzel inrefwurzel zeigt; zeigen inrefwurzel und inrefz auf denselben Knoten, geschieht nichts } 7

12 Aufgabe 5 (2 + 6 Punkte) Die Funktion Hoch berechnet die n-te Potenz einer integer-zahl, die größer 0 ist. Beispielsweise ist die 4-te Potenz von 6 gleich 6 * 6 * 6 * 6 = 1296; also Hoch (6,4) = Sie können annehmen, dass Zahl > 0 und n! 0 gilt. Gehen Sie dabei von folgender Typdefinition aus: type tnatzahl = 0..maxint; tnatzahlplus = 1..maxint; function Hoch (Zahl : tnatzahlplus; n : tnatzahl): tnatzahlplus; {berechnet fuer n >= 0 die n-te Potenz von Zahl > 0} var Temp1, Temp2 : tnatzahlplus; Temp3 : tnatzahl; 1 Temp1 := 1; 2 Temp2 := Zahl; 3 Temp3 := n; 4 while Temp3 > 0 do 5 6 if odd(temp3) then 7 Temp1 := Temp1 * Temp2; 8 Temp2 := sqr(temp2); 9 Temp3 := Temp3 div 2 10 end; 11 Hoch := Temp1 end; {Hoch} Die von Hoch verwendete Boolean-Funktion odd gibt genau dann true zurück, wenn die ihr übergebene Integer-Zahl ungerade ist. 8

13 Wir geben zusätzlich den kompakten Kontrollflußgraphen zu Hoch an: n start Zeilen 1-3 n init Zeile 4 n while Zeilen 5-6 n if Zeile 7 n then Zeilen 8-10 n do Zeile 11 n tail n final Kompakter Kontrollflußgraph von Hoch a) Geben Sie eine Knotenfolge an, die eine vollständige Anweisungsüberdeckung für die Funktion Hoch bildet. Wie lautet ein Testdatum zu dieser Knotenfolge? b) Es soll ein boundary-interior Test der Funktion durchgeführt werden. Geben Sie für jede der drei Testklassen einen passenden Pfad und die dazugehörigen assoziativen Testfälle an. Wählen Sie für die interior-klasse n=2, d.h. betrachten Sie Testdaten, die die Schleife genau zweimal durchlaufen. 9

14 Musterlösungen Lösung 1 (6 Punkte) Der Kern des Programms perfektezahl besteht aus zwei ineinander geschachtelten for- Schleifen. Die äußere der beiden Schleifen läuft über den gegebenen Zahlenbereich 1 bis In der inneren Schleife werden sukzessiv alle Teiler i der gerade aktuellen Zahl n ermittelt und aufsummiert. Ist diese Summe gleich n, dann ist n eine perfekte Zahl. program perfektezahl (input, output); { berechnet alle "perfekten Zahlen" zwischen 1 und 1000 } const MINIMAL = 1; MAXIMAL = 1000; type tnatzahl = 0..maxint; tloesungsbereich = MINIMAL..MAXIMAL; var n : tloesungsbereich; i, Summe : tnatzahl; writeln; write ('perfekte Zahlen: '); { alle Zahlen zwischen 1 und 1000 untersuchen } for n := MINIMAL to MAXIMAL do Summe := 0; { alle Teiler von n zwischen 1 und n/2 summieren } for i := 1 to (n div 2) do if n mod i = 0 then Summe := Summe + i; if n = Summe then write (n,', ') end end. { perfektezahl } 10

15 Lösung 2 (8 Punkte) Wir erstellen die Reise, indem wir in der Variablen hier die jeweils aktuelle Stadt festhalten. Die von hier aus nächste Stadt wird anhand der Entfernungen in der durch hier indizierten Matrixzeile ausgesucht, wobei das Feld besucht angibt, welche Städte bereits besucht worden sind. Auch hier geben wir wieder ein Rahmenprogramm an, welches den Test der Prozedur Reise ermöglicht: program Aufgabe (input, output); { Testprogramm fuer die Prozedur Reise } const MAXORTSZAHL = 10; type tortsindex = 1..MAXORTSZAHL; tentfernung = 0..maxint; tentfmatrix = array [tortsindex, tortsindex] of tentfernung; var EntfMatrix : tentfmatrix; i, j : tortsindex; procedure Reise (var inmat : tentfmatrix); { berechnet eine kurze Reise aus der Entfernungsmatrix inmat } type tboolfeld = array [tortsindex] of boolean; { zur Markierung bereits besuchter Staedte } var besucht : tboolfeld; Gesamtstrecke : tentfernung; hier, { gibt die aktuelle Stadt an } Spalte, i : tortsindex; Einzelstrecke : tentfernung; { bisher gefundene kuerzeste Entfernung von hier zu einer anderen noch nicht besuchten Stadt } naechste : tortsindex; { die Stadt mit Entfernung Einzelstrecke von der Stadt hier } { procedure } for i := 1 to MAXORTSZAHL do besucht [i] := false; { initialisiert das Feld besuchter Staedte } 11

16 Gesamtstrecke := 0; hier := 1; besucht [hier] := true; writeln ('Reise: '); writeln (hier); { es sind noch MAXORTSZAHL - 1 Staedte zu besuchen } for i := 1 to MAXORTSZAHL - 1 do Einzelstrecke := maxint; { suche die naechstgelegene, noch nicht besuchte Stadt } for Spalte := 1 to MAXORTSZAHL do if not besucht [Spalte] then if inmat [hier, Spalte] < Einzelstrecke then Einzelstrecke := inmat [hier, Spalte]; naechste := Spalte end; writeln (naechste); Gesamtstrecke := Gesamtstrecke + Einzelstrecke; besucht [naechste] := true; hier := naechste end; writeln (Gesamtstrecke, ' km') end; { Reise } for i := 1 to MAXORTSZAHL do for j := i to MAXORTSZAHL do { Einlesen einer symmetrischen Entfernungsmatrix: } write ('Strecke von ', i, 'nach ', j, ': '); readln (EntfMatrix [i, j]); EntfMatrix [j, i] := EntfMatrix [i, j]; end; Reise (EntfMatrix) end. { Aufgabe } 12

17 Lösung 3 (5 + 5 Punkte) a) function finden ( inwert : integer; inrefliste : trefliste) : trefliste; { sucht den Wert inwert in der Liste, auf deren Anfang inrefliste zeigt. Wird der Wert gefunden, liefert die Funktion einen Zeiger auf das Element zurueck, ansonsten nil } var reflauf : trefliste; gefunden := false; reflauf := inrefliste; while ((reflauf <> nil) and (not gefunden)) do if reflauf^.info = inwert then gefunden := true else reflauf := reflauf^.next; finden := reflauf end; { einfuegen } b) Platzhalter Ausdruck, Bedingung, Anweisung oder Anweisungsfolge (1) RefLauf2^.info (2) iorefm1 (3) RefWert = iorefm1 (4) iorefm1 := iorefm1^.next; dispose(refwert) end (5) RefLauf1 := iorefm1; while RefLauf1^.next <> RefWert do RefLauf1 := RefLauf1^.next; RefLauf1^.next := RefLauf1^.next^.next; dispose(refwert) 13

18 Lösung 4 (10 Punkte) Das Problem in dieser Aufgabe ist, dass der Baum durchlaufen werden muss, bis der Vaterknoten des Elementes gefunden ist, auf das inrefz zeigt. Am einfachsten wird solch ein Baumdurchlauf als rekursive Prozedur implementiert. procedure Trennen ( inrefwurzel, inrefz : trefbinbaum); { trennt den Teilbaum, auf dessen Wurzel inrefz zeigt, vom Baum ab, auf dessen Wurzel inrefwurzel zeigt; zeigen inrefwurzel und inrefz auf denselben Knoten, geschieht nichts } if inrefwurzel <> inrefz then if inrefwurzel^.links = inrefz then inrefwurzel^.links := nil else if inrefwurzel^.links <> nil then Trennen (inrefwurzel^.links, inrefz); if inrefwurzel^.rechts = inrefz then inrefwurzel^.rechts := nil else if inrefwurzel^.rechts <> nil then Trennen (inrefwurzel^.rechts, inrefz) end end; { Trennen } 14

19 Lösung 5 (2 + 6 Punkte) a) Eine vollständige Anweisungsüberdeckung wird durch den Pfad (n start, n init, n while, n if, n then, n do, n while, n tail, n final ) erreicht. Ein Testdatum zu diesem Pfad ist: (1, 1; 1) (Wir trennen hier Eingaben von Ausgaben zur besseren Unterscheidung durch ein Semikolon an Stelle eines Kommas.) b) Folgender Pfad umgeht die Ausführung der while-schleife: (n start, n init, n while, n tail, n final ) Der zugehörige assoziierte Testfall ist: T 1 ={(a, 0; 1) a! {1, 2, 3,...}} Zu genau einem Schleifendurchlauf gehören die beiden folgenden Pfade mit ihren assoziierten Testfällen: (n start, n init, n while, n if, n then, n do, n while, n tail, n final ) Der zugehörige assoziierte Testfall ist: T 2 ={(a, 1; a) a! {1, 2, 3,...}} (n start, n init, n while, n if, n do, n while, n tail, n final ) Zu diesem Pfad existiert kein Testdatum: T 3 ={ } (Lösungshinweis: Die Schleife wird genau für n=1 einmal durchlaufen, und da 1 ungerade ist, wird immer der erstgenannte Pfad, niemals der zweitgenannte durchlaufen. Entsprechende Überlegungen lassen sich auch für den zweimaligen Schleifendurchlauf anstellen.) Die while-schleife wird genau zweimal durchlaufen bei den folgenden vier Pfaden und ihren assoziierten Testfällen: (n start, n init, n while, n if, n then, n do, n while, n if, n then, n do, n while, n tail, n final ) Der zugehörige assoziierte Testfall ist: T 4 ={(a, 3; a 3 ) a! {1, 2, 3,...}} (n start, n init, n while, n if, n then, n do, n while, n if, n do, n while, n tail, n final ) Zu diesem Pfad existiert kein Testdatum: T 5 ={ } (n start, n init, n while, n if, n do, n while, n if, n then, n do, n while, n tail, n final ) Der zugehörige assoziierte Testfall ist: T 6 ={(a, 2; a 2 ) a! {1, 2, 3,...}} (n start, n init, n while, n if, n do, n while, n if, n do, n while, n tail, n final ) Zu diesem Pfad existiert kein Testdatum: T 7 ={ } 15

An die Teilnehmerinnen und Teilnehmer des Kurses 1613 Einführung in die imperative Programmierung im WS 05/06

An die Teilnehmerinnen und Teilnehmer des Kurses 1613 Einführung in die imperative Programmierung im WS 05/06 FACHBEREICH Informatik Lehrgebiet Software Engineering Prof. Dr. H.-W. Six FernUniversität in Hagen 58084 Hagen An die Teilnehmerinnen und Teilnehmer des Kurses 1613 Einführung in die imperative Programmierung

Mehr

FernUniversität -Gesamthochschule- in Hagen

FernUniversität -Gesamthochschule- in Hagen FernUniversität -Gesamthochschule- in Hagen Fachbereich Informatik Praktische Informatik III Prof. Dr. Hans-Werner Six Prof. Dr. H.-W. Six FernUniversität Postfach 940 D-58084 Hagen An die Teilnehmerinnen

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

Einladung zur Klausur

Einladung zur Klausur FACHBEREICH Informatik Lehrgebiet Software Engineering Prof. Dr. H.-W. Six FernUniversität in Hagen An alle Teilnehmer(innen) des Kurses 01794 Software Engineering II im Wintersemester 2005/06 Ihr Zeichen

Mehr

Einladung zur Klausur

Einladung zur Klausur FACHBEREICH Informatik Lehrgebiet Software Engineering Prof. Dr. H.-W. Six FernUniversität in Hagen An alle Teilnehmer(innen) des Kurses 01794 Software Engineering II im Sommersemester 2005 Ihr Zeichen

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

Wintersemester 98/99 Hinweise zur Bearbeitung der Klausur zum Kurs 1612 Konzepte imperativer Programmierung

Wintersemester 98/99 Hinweise zur Bearbeitung der Klausur zum Kurs 1612 Konzepte imperativer Programmierung Klausur am 10.04.1999 1 Wintersemester 98/99 Hinweise zur Bearbeitung der Klausur zum Kurs 1612 Konzepte imperativer Programmierung Wir begrüßen Sie zur Klausur "Konzepte imperativer Programmierung". Lesen

Mehr

FernUniversität -Gesamthochschule- in Hagen

FernUniversität -Gesamthochschule- in Hagen FernUniversität -Gesamthochschule- in Hagen Fachbereich Informatik Praktische Informatik III Prof. Dr. H.-W. Six FernUniversität Postfach 940 D-58084 Hagen An die Studierenden des Kurses 1793 Software

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 Kurs 1613 Einführung in die imperative Programmierung 1 Aufgabe 1 procedure NachVorn( inwert: integer; var iorefanfang: trefelement); {Sucht das erste vorkommende Element mit inwert in der info-komponente

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

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am 1 Aufgabe 1 a) Da Effizienzbetrachtungen bei der Lösung der Aufgabe keine Rolle spielen, wählen wir einen einfachen, aber ineffizienten Algorithmus mit zwei ineinander verschachtelten for-schleifen. Dadiefor-Schleifen

Mehr

Klausur zum Kurs Verteilte Systeme (1678) am 2. März 2013

Klausur zum Kurs Verteilte Systeme (1678) am 2. März 2013 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake Klausur zum Kurs Verteilte Systeme (1678) am 2. März 2013 Klausurort: Vorname Name: Adresse: Matrikelnummer:

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084

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

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

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

Liebe Fernstudentin, lieber Fernstudent,

Liebe Fernstudentin, lieber Fernstudent, Fachbereich Informatik Lehrgebiet Programmiersysteme Prof Dr. Friedrich Steimann FernUniversität in Hagen 58084 Hagen Ihr Zeichen Ihre Nachricht Mein Zeichen Ke Auskunft Frau Dr. Keller Telefon +49 02331

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

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

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

Klausurorte der Fakultät KSW WS 2012/13

Klausurorte der Fakultät KSW WS 2012/13 Stand: 04. März 2013 Klausurorte der Fakultät KSW WS 2012/13 Alle Klausuren finden von 14.00 18.00 Uhr statt. Berlin Riga Legende: Bochum Göttingen Karlsruhe Köln Leipzig Lübeck München Bregenz Saalfelden

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Erster Termin Klausuren der Fakultät für Mathematik und Informatik, Frühjahr 2017

Erster Termin Klausuren der Fakultät für Mathematik und Informatik, Frühjahr 2017 Erster Termin 11.02.2017 Klausuren der Fakultät für und, Frühjahr 2017 635021 Sicherheit im Internet (PK 01866/01868) 10:00-12:00 Uhr 01671 Datenbanken I 10:00-12:00 Uhr 01690 Kommunikations- und Rechnernetze

Mehr

Klausurorte der Fakultät KSW WS 2013/14

Klausurorte der Fakultät KSW WS 2013/14 Stand: 10. März 2014 Klausurorte der Fakultät KSW WS 2013/14 Alle Klausuren finden von 14.00 18.00 Uhr statt (außer BSc Psy Modul 6a: 14.00-16.00 Uhr, BSc Psy Modul 6b: 16.30-18.30 Uhr). Berlin Bregenz

Mehr

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am 29.3.2003

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am 29.3.2003 Kurs 793 Software Engineering I - Grundkonzepte der OOSE Seite: Wintersemester 2002 Hinweise zur Bearbeitung der Klausur zum Kurs 793 Software Engineering I - Grundkonzepte der OOSE Wir begrüßen Sie zur

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

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 Aufgabe 1 a) procedure FeldMinMax(inFeld: tfeld; var outmin, outmax: integer); { Ermittelt den kleinsten sowie den größten aller Werte in infeld und gibt diese in den Ausgabeparametern outmin bzw. outmax

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

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

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

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

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

Klausurorte der Fakultät KSW WS 2014/15

Klausurorte der Fakultät KSW WS 2014/15 Stand: 02. März 2015 Klausurorte der Fakultät KSW WS 2014/15 Alle Klausuren finden von 14.00 18.00 Uhr statt (außer BSc Psy Modul 6a: 14.00-16.00 Uhr, BSc Psy Modul 6b: 16.30-18.30 Uhr). Berlin Bochum

Mehr

Klausurorte der Fakultät KSW SS 2015

Klausurorte der Fakultät KSW SS 2015 Stand: 12. August 2015 Klausurorte der Fakultät KSW SS 2015 Alle Klausuren finden von 14.00 18.00 Uhr statt (außer BSc Psy Modul 6a: 14.00-16.00 Uhr, BSc Psy Modul 6b: 16.30-18.30 Uhr). Berlin Bochum Frankfurt

Mehr

Erster Termin 07.02.2015 Klausuren der Fakultät für Mathematik und Informatik, Frühjahr 2015

Erster Termin 07.02.2015 Klausuren der Fakultät für Mathematik und Informatik, Frühjahr 2015 Erster Termin 07.02.2015 Klausuren der Fakultät für und, Frühjahr 2015 01690 Kommunikations- und Rechnernetze 10.00-12.00 Uhr 01728 Virtuelle Maschinen 10.00-12.00 Uhr 635021 Sicherheit im Internet (PK

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Programmierung 1 Probeklausur zur Vorklausur

Programmierung 1 Probeklausur zur Vorklausur Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 05.12.2015 Programmierung 1 Probeklausur zur Vorklausur Matrikelnummer: Bitte öffnen Sie das Klausurheft

Mehr

Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. Aufgabe Summe

Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. Aufgabe Summe 1 FERNUNIVERSITÄT Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. EINGANG Postanschrift: FernUniversität D - 58084 Hagen (Name, Vorname) (Straße, Nr.) (Auslandskennzeichen,

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Access 2010 Programmierung Schleifen

Access 2010 Programmierung Schleifen Access 2010 Programmierung Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Beispiel für Schleifen In einem Formular gibt der Benutzer für den Farbanteil Rot einen Unter- und Obergrenze

Mehr

Fakultät Wirtschaftswissenschaft

Fakultät Wirtschaftswissenschaft Fakultät Wirtschaftswissenschaft Matrikelnr. Name Vorname KLAUSUR: Entwurf und Implementierung von Informationssystemen (32561) TERMIN: 11.09.2013, 14.00 16.00 Uhr PRÜFER: Univ.-Prof. Dr. Stefan Strecker

Mehr

Kurs 1793 Software Engineering I Nachklausur am 23.09.2000

Kurs 1793 Software Engineering I Nachklausur am 23.09.2000 Seite: 5 Aufgabe 1 (18 Punkte) Klausurbeaufsichtigung ER-Analyse Die Informatikklausuren der FernUni werden im Sommersemester 2000 an fünf verschiedenen Terminen und in zehn verschiedenen Städten geschrieben.

Mehr

Klausurorte und - termine der Fakultät KSW September 2010

Klausurorte und - termine der Fakultät KSW September 2010 Klausurorte und - termine der Fakultät KSW September 2010 Montag, den 06.09.2010 bis Freitag, den von 14.00 18.00 Uhr und Montag, den bis Dienstag, den von 14.00 18.00 Uhr Stand: 10. September 2010 Karlsruhe

Mehr

Erster Termin 04.02.12 Klausuren Fakultät Mathematik und Informatik Frühjahr 2012 Wenn nicht anders angegeben Klausurbeginn 10.

Erster Termin 04.02.12 Klausuren Fakultät Mathematik und Informatik Frühjahr 2012 Wenn nicht anders angegeben Klausurbeginn 10. Erster Termin 04.02.12 1613 Einführung in die imperative Programmierung 1706 Anwendungsorientierte Mikroprozessoren Klausurersatzgespräch 1727 Parallele Programmier und Grid-Computing Klausurersatzgespräch

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

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Informatik I Übung, Woche 40

Informatik I Übung, Woche 40 Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

Klausurorte der Fakultät KSW SS 2014

Klausurorte der Fakultät KSW SS 2014 Stand: 31. August 2014 Klausurorte der Fakultät KSW SS 2014 Alle Klausuren finden von 14.00 18.00 Uhr statt (außer BSc Psy Modul 6a: 14.00-16.00 Uhr, BSc Psy Modul 6b: 16.30-18.30 Uhr). Berlin Bochum Göttingen

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Merkblatt zu den Modulabschlussklausuren des Masterstudiengangs Anwaltsrecht und Anwaltspraxis :

Merkblatt zu den Modulabschlussklausuren des Masterstudiengangs Anwaltsrecht und Anwaltspraxis : Merkblatt zu den Modulabschlussklausuren des Masterstudiengangs Anwaltsrecht und Anwaltspraxis : Gemäß 12 Abs. 1 der Prüfungsordnung für den Masterstudiengang Anwaltsrecht und Anwaltspraxis wird die erfolgreiche

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Methodische Grundlagen des Software Engineering - Übung 9

Methodische Grundlagen des Software Engineering - Übung 9 Engineering - Übung 9 9 Prozess und Softwarequalität Abgabe der Hausaufgaben am Anfang der jeweiligen Präsenzübung am 14.06.2011 bzw. 15.06.2011. Hinweise und Kontakt: Veranstaltungsseite 1 9.1 Grundlagen

Mehr

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am MB-ALG, SS1 Seite 1 Hauptklausur, geschrieben am.07.01 Vorname Nachname Matrikel-Nr Diese Klausur ist mein letzter Prüfungsversuch (bitte ankreuzen): Ja Nein Ihre Lösung für Aufgabe 1 können Sie direkt

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus

Mehr

FAKULTÄT FÜR WIRTSCHAFTSWISSENSCHAFT

FAKULTÄT FÜR WIRTSCHAFTSWISSENSCHAFT FERNUNIVERSITÄT IN HAGEN FAKULTÄT FÜR WIRTSCHAFTSWISSENSCHAFT MATRIKELNUMMER: NAME: VORNAME: UNTERSCHRIFT: KLAUSUR: TERMIN: PRÜFER: Marktversagen 21.03.2011, 9 11 Uhr Prof. Dr. A. Endres Aufgabe A B C

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 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 2. April

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Erster Termin Klausuren der Fakultät für Mathematik und Informatik, Herbst 2016

Erster Termin Klausuren der Fakultät für Mathematik und Informatik, Herbst 2016 Erster Termin 06.08.2016 26410 IV-Strategie (PK 01896) 10:00-12:00 Uhr 01690 Kommunikations- und Rechnernetze 10:00-12:00 Uhr 01729 Advanced Parallel Computing [Klausurersatzgespräch] 01744 PC- Technologie

Mehr

Klausur Elektronische Schaltungen

Klausur Elektronische Schaltungen Fakultät für Mathematik und Informatik Elektronische Schaltungen 58084 Hagen 02331 987 1166 Klausur Elektronische Schaltungen Prüfungsnummern 2063, 2996,21421, 27110 15. September 2012 Bearbeitungszeit

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 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 Übungsblatt 4 für die Übung

Mehr

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Vorname: Nachname: Matrikelnummer: Legen Sie zu Beginn Ihren Studentenausweis

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Klausur Softwaretechnologie WS 2014/15

Klausur Softwaretechnologie WS 2014/15 Fakultät Informatik Institut für Software- und Multimediatechnik, Professur Softwaretechnologie Technische Universität Dresden, 01062 Dresden Klausur Softwaretechnologie WS 2014/15 Prof. Dr.rer.nat.habil.

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Name: «Vorname» «Name» Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Informatik 12 2 VP je 2 VP 6 VP 0 Notieren Sie alle Antworten in einer Word-Datei Klausur1_«Name».doc

Mehr

Kurs 1793 Software Engineering I Nachklausur am 25.09.1999

Kurs 1793 Software Engineering I Nachklausur am 25.09.1999 Seite: 1 Aufgabe 1 (15 Punkte) Raumplanung In dieser Aufgabe soll anhand einer Problembeschreibung ein ER-Diagramm entworfen werden. Problembeschreibung In der Oberstufe einer Schule werden die Schüler

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 31.01.08 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches Anmeldung Hauptklausur : allerspätestens

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Tutorium für Fortgeschrittene

Tutorium für Fortgeschrittene Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Informatik II - Tutorium

Informatik II - Tutorium Sommersemester 2008 http://info2tut.blogspot.com 29. April 2007 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Quellennachweis & Dank an: Joachim Wilke, Susanne Dinkler, Bernhard Müller,

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Prüfung Software Engineering II (IB)

Prüfung Software Engineering II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 4 A Sommersemester 2015 Prüfung Software Engineering II (IB) Datum : 20.07.2015, 12:30 Uhr Bearbeitungszeit

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 7. September 2015 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Alexander Bazo 19. Februar 2015 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne 50 Punkte

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Wima Praktikum 1. Abschlussprojekt Gruppen 1a und 2a bei Thomas Emberger Aufgabe 3

Wima Praktikum 1. Abschlussprojekt Gruppen 1a und 2a bei Thomas Emberger Aufgabe 3 Prof. Dr. Karsten Urban Iris Häcker Wima Praktikum 1 SoSe 2013 Abschlussprojekt ab 24.06.2013 Abschlussprojekt Gruppen 1a und 2a bei Thomas Emberger Aufgabe 3 Voraussetzungen zum Bestehen des Projektes:

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

FernUniversität -Gesamthochschule- in Hagen

FernUniversität -Gesamthochschule- in Hagen FernUniversität -Gesamthochschule- in Hagen Fachbereich Informatik Praktische Informatik III Prof. Dr. H.-W. Six FernUniversität Postfach 940 D-58084 Hagen Informationen für unsere Fernstudentinnen und

Mehr

Zentrum für Medien und IT. FeuLtr eine L A T E X Brief-Klasse für die FernUniversität. (Vers. 3.x)

Zentrum für Medien und IT. FeuLtr eine L A T E X Brief-Klasse für die FernUniversität. (Vers. 3.x) Zentrum für Medien und IT FeuLtr eine L A T E X Brief-Klasse für die FernUniversität (Vers. 3.x) Frutiger ε prot E Xt Fachbereich KSW LG Metaphysik FernUniversität in Hagen 58084 Hagen Herrn Friedrich

Mehr