Wintersemester 2005/2006 Hinweise zur Bearbeitung der Klausur zum Kurs 1612 Konzepte imperativer Programmierung
|
|
- Hennie Wagner
- vor 5 Jahren
- Abrufe
Transkript
1 1 Wintersemester 2005/2006 Hinweise zur Bearbeitung der Klausur zum Kurs 1612 Konzepte imperativer Programmierung Wir begrüßen Sie zur Klausur "Konzepte imperativer Programmierung". Lesen Sie sich diese Hinweise vollständig und aufmerksam durch, bevor Sie mit der Bearbeitung der Aufgaben beginnen: 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, - 8 Aufgaben (Seite 2 - Seite 28), - die Muss-Regeln des Programmierstils, - die Hoare-Regeln - die Definition der Terminierungsfunktion. 2. Füllen Sie, bevor Sie mit der Bearbeitung der Aufgaben beginnen, 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 Namen 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 Muss-Regeln des Programmierstils, die Tabelle mit den im Kurs verwendeten Hoare-Regeln und die Definition der Terminierungsfunktion finden Sie im Anschluss an die Aufgabenstellung. 6. Es sind maximal 52 Punkte erreichbar. Sie haben die Klausur sicher dann bestanden, wenn Sie mindestens 26 Punkte erreicht haben. Wir wünschen Ihnen bei der Bearbeitung der Klausur viel Erfolg!
2 Seite: 2 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 1 ( Punkte) In der Mathematik gibt es die so genanten Armstrong-Zahlen, die wie folgt definiert werden: Eine Armstrong-Zahl ist eine Zahl, bei der die Summe der einzelnen Ziffern, die jeweils mit der Anzahl der Ziffern der Zahl potenziert sind, gleich der Zahl ist. z.b.: 153 = (3 Ziffern je hoch 3) a) Schreiben Sie eine Funktion countziff, welche die Anzahl der Ziffern einer positiven Zahl zurückliefert (in unserem Beispiel die Zahl 3). Benutzen Sie den im Programmrahmen ArmstrongZahlen (siehe unten) vorgegebenen Funktionskopf. b) Schreiben Sie eine Funktion potenziere, welche die n-te Potenz einer Zahl berechnet. Der Sonderfall des undefinierten Wertes 0 0 muss nicht berücksichtigt werden. Benutzen und ergänzen Sie den vorgegebenen Funktionskopf (siehe unten). c) Die Funktion isarmstrong (siehe rechte Seite) gibt true zurück wenn der übergebene Parameter eine Armstrong-Zahl ist, sonst false. In dieser Funktion werden die Funktionen countziff und potenziere benutzt. Bestimmen Sie, an welcher der Stellen (1) - (4) in der Funktion isarmstrong die Funktion potenziere einzusetzen ist und geben Sie die komplette Programmzeile an. d) Schreiben Sie ein Programm, das zwei positive ganze Zahlen x und y (x > 0, y < MAXINT, x < y, diese Bedingungen müssen Sie nicht überprüfen) einliest und dann alle Armstrong-Zahlen mit x a y ausgibt. Auch wenn Sie die Teilaufgaben a) - c) nicht gelöst haben, können Sie die Funktionen voraussetzen. Nutzen Sie dazu den vorgegebenen Programmrahmen. program ArmstrongZahlen (input, output); type tnatzahl = 0..maxint;... function countziff (inzahl : tnatzahl): tnatzahl; {gibt die Stellenanzahl der inzahl zurück}... function potenziere (??? ): tnatzahl; {berechnet die n-te Potenz einer Zahl}... function isarmstrong (inzahl : tnatzahl): boolean; {prüft ob inzahl eine Armstrong-Zahl ist}...
3 Seite: 3 Name: Matrikelnummer: function isarmstrong (inzahl : tnatzahl): boolean; {prüft ob inzahl eine Armstrong-Zahl ist} var i, j, ggfarmstrong, AnzDerStellen ZwischErg, EndErg, LetzteZiffer : tnatzahl; begin ggfarmstrong := inzahl; AnzDerStellen := countziff(inzahl); EndErg := 0; for i := 1 to AnzDerStellen do begin (1) LetzteZiffer := ggfarmstrong mod 10; (2) ggfarmstrong := ggfarmstrong div 10; (3) EndErg := EndErg + ZwischErg (4) end; if EndErg = inzahl then isarmstrong := true else isarmstrong := false; end;
4 Seite: 4 Kurs 1612 Konzepte imperativer Programmierung
5 Seite: 5 Name: Matrikelnummer:
6 Seite: 6 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 2 (3+5 Punkte) Gegeben ist folgende Definition einer linearen Liste: type trefliste = ^tliste; tliste = record info: integer; next: trefliste end; a) Implementieren Sie eine Funktion kommtvor, die prüft, ob in einer übergebenen linearen Liste ein Element mit einem ebenfalls zu übergebenden info-wert vorkommt. Verwenden Sie folgenden Funktionskopf: function kommtvor(inrefliste:trefliste; inwert:integer):boolean; {Rückgabe true, falls die übergebene Liste ein Element mit info-komponente inwert enthält, sonst false} b) Implementieren Sie eine Prozedur Tausche, die in einer übergebenen Liste das Element mit der info-komponente 0 sucht und die mit diesem Element beginnende Restliste nur durch Ändern der Verkettung aushängt und an den Beginn der Liste einfügt. Sie können davon ausgehen, dass die 0 in der Liste genau einmal vorkommt. Ist das Element mit info-komponente 0 das erste, so ist nichts zu tun. Verwenden Sie folgenden Prozedurkopf: procedure Tausche(var iorefanfang: trefliste); Ein Beispiel: Vor dem Aufruf: iorefanfang Danach: iorefanfang
7 Seite: 7 Name: Matrikelnummer:
8 Seite: 8 Kurs 1612 Konzepte imperativer Programmierung
9 Seite: 9 Name: Matrikelnummer:
10 Seite: 10 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 3 (5+2 Punkte) Gegeben sei folgende Typdeklaration: type trefdvliste = ^tdvliste; tdvliste = record info: integer; prev, next:trefdvliste end; Mit Hilfe dieses Typs wird eine so genannte doppelt verkettete Liste gebildet. Im Gegensatz zu den im Kurs betrachteten einfach verketteten linearen Listen besitzt hier ein Listenelement neben einem Zeiger next auf seinen Nachfolger auch einen Zeiger prev auf seinen Vorgänger. So wie der next-zeiger des letzten Elementes zeigt der prev-zeiger des ersten Elementes auf nil. Eine solche Liste werde unverändert über einen Anfangszeiger angesprochen, der das erste Element referenziert. Die folgende Skizze zeigt ein Beispiel einer solchen doppelt verketteten Liste aus vier Elementen. iorefanfang prev next next next next 10-5 prev prev 2 1 prev a) Implementieren Sie eine Prozedur loeschen, die das erste Element mit einem zu übergebenden info-wert in der Liste sucht und es aus der Liste löscht. Sie dürfen dabei davon ausgehen, dass das zu löschende Element in der Liste vorkommt. Die folgende Skizze zeigt z.b. das Ergebnis, wenn aus oben abgebildeter Liste das Element mit Info 2 gelöscht wurde. iorefanfang prev next next next 10-5 prev prev 1
11 Seite: 11 Name: Matrikelnummer: Benutzen Sie folgenden Prozedurkopf: procedure loeschen(var iorefanfang: trefdvliste; insuch:integer); {Loescht das erste Listenelement mit Info insuch. Es muss ein solches Element existieren!} b) Vergleicht man obige Typdeklaration zur Bildung doppelt verketteter Listen mit der z.b. in Aufgabe 4 gegebenen Typdeklaration zur Bildung binärer Bäume, so stellt man fest, dass beide strukturell identisch sind und sich nur in Bezeichnern unterscheiden. Erklären Sie, warum derselbe Typ sowohl zur Bildung von Bäumen als auch zur Bildung von doppelt verketteten Listen verwendet werden kann, obwohl doch beides unterschiedliche Datenstrukturen sind! Tipp: Überlegen Sie sich, was genau die Typen tdvliste bzw. tbinbaum sowie trefdvliste bzw. trefbinbaum beschreiben.
12 Seite: 12 Kurs 1612 Konzepte imperativer Programmierung
13 Seite: 13 Name: Matrikelnummer:
14 Seite: 14 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 4 (3+1 Punkte) Gegeben sei folgende Typdeklaration zur Bildung eines binären Baumes: type trefbinbaum = ^tbinbaum; tbinbaum = record info: integer; links, rechts:trefbinbaum end; a) Implementieren Sie rekursiv eine Prozedur spiegeln, die einen beliebigen übergebenen Baum aus Knoten des Typs trefbinbaum spiegelt, indem für jeden Knoten des Baumes die beiden Nachfolger vertauscht werden. Sollte der eingegebene Baum sortiert sein, so wird durch diese Spiegelung übrigens die Sortierung umgekehrt, d.h. aus einem aufsteigend sortierten Baum würde ein absteigend sortierter und umgekehrt. Verwenden Sie den folgenden Prozedurkopf, wobei an der mit?? gekennzeichneten Stelle die Übergabeart geeignet zu ergänzen ist: procedure spiegeln(??refwurzel: trefbinbaum); b) Handelt es sich hier um eine sinnvolle Anwendung der Rekursion? Begründen Sie Ihre Antwort. (Eine unbegründete Antwort wie Ja oder Nein wird nicht bewertet!)
15 Seite: 15 Name: Matrikelnummer:
16 Seite: 16 Kurs 1612 Konzepte imperativer Programmierung
17 Seite: 17 Name: Matrikelnummer:
18 Seite: 18 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 5 (3 Punkte) Die Funktion quersumme soll die Quersumme einer eingegebenen natürlichen Zahl berechnen, also die Summe all ihrer Ziffern. Typdefinition und Funktion seien wie folgt gegeben. type tnatzahl = 0..maxint; function quersumme (inzahl : tnatzahl): tnatzahl; {berechnet die Quersumme von inzahl} var qs, rest : tnatzahl; begin qs:=0; rest:=inzahl div 10; while rest > 0 do begin qs := qs + rest mod 10; rest := rest div 10 end; {while} quersumme:=qs; end; {quersumme} Ermitteln Sie die Testfälle für den boundary-interior Pfadtest (interior-test für genau zwei Schleifendurchläufe) der Funktion quersumme. Sie brauchen nicht die zu den Testfällen gehörenden Pfade im Kontrollflussgraphen anzugeben.
19 Seite: 19 Name: Matrikelnummer:
20 Seite: 20 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 6 (4+3+3) Das folgende Programm Aufgabe6 bestimmt die Summe aller geraden Zahlen von 2 bis X. Formal lässt sich das gewünschte Ergebnis durch folgende Nachbedingung spezifizieren: Sie sollen zeigen, dass das Programm Aufgabe6 bezüglich der Spezifikation { P } S { Q sum = (X 2 + 2X)/4} für ein von Ihnen geeignet zu wählendes Prädikat P partiell korrekt ist. program Aufgabe6; const X =?; var sum, z : integer; begin sum := 0; z := 2; while z < (X+2) do begin sum := sum + z; z := z + 2 end end. a) Zeigen Sie zunächst, dass Q sum = X 4 X 2 INV sum= z z 4 ( z X + 2 ) X g z g eine Invariante der while-schleife des Programms Aufgabe6 ist, wobei X g (bzw. z g ) kurz für das Prädikat X ist gerade (bzw. z ist gerade ) stehe.
21 Seite: 21 Name: Matrikelnummer: b) Bestimmen Sie ein geeignetes Prädikat P, so dass die folgende Programmformel PF b gültig wird: {P} sum := 0; z:=2 {INV} Beweisen Sie die Gültigkeit von PF b. c) Beweisen Sie nun die partielle Korrektheit von Aufgabe6 bezüglich der Spezifikation {P} S {Q}, wobei Sie die Gültigkeit von PF b und die Invarianteneigenschaft von INV voraussetzen dürfen. Wichtig: Geben Sie in allen Teilaufgaben die von Ihnen verwendeten Hoare-Regeln explizit an!
22 Seite: 22 Kurs 1612 Konzepte imperativer Programmierung
23 Seite: 23 Name: Matrikelnummer:
24 Seite: 24 Kurs 1612 Konzepte imperativer Programmierung
25 Seite: 25 Name: Matrikelnummer:
26 Seite: 26 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 7 (4 Punkte) Zeigen Sie, dass das Programm Aufgabe6 terminiert, indem Sie eine Funktion τ angeben und beweisen, dass τ eine Terminierungsfunktion der while-schleife ist.
27 Seite: 27 Name: Matrikelnummer:
28 Seite: 28 Kurs 1612 Konzepte imperativer Programmierung Aufgabe 8 ( Punkte) Beantworten Sie die folgenden Fragen und begründen Sie jeweils Ihre Antworten! a) Erläutern Sie kurz die wesentliche Gemeinsamkeit von Verifikation und Test eines Programms sowie die beiden wesentlichen Unterschiede zwischen ihnen. b) Nehmen Sie Stellung zu folgender Behauptung: Das Verfahren zur Prüfung, ob ein Element mit einem vorgegebenen info-wert in einem binären Suchbaum existiert, ist sinnvollerweise rekursiv zu implementieren. (Anmerkung: Wenn wir vom info-wert eines Elementes sprechen, beziehen wir uns auf eine Typdeklaration für Binärbäume, wie sie z.b. in Aufgabe 4 gegeben ist. ) c) Terminiert ein total korrektes Programm für jede mögliche Eingabe (also auch für Eingaben, die nicht der Programmspezifikation entsprechen)? (Eine nicht begründete Antwort wie nur Ja oder Nein wird nicht bewertet.) d) Gegeben sei folgende Repeat-Schleife: repeat S repeat until B Mit Hilfe einer aussagekräftigen Invariante INV konnte die Gültigkeit folgender Programmformel bewiesen werden: {INV B} S repeat {INV B} Was können Sie über die Anzahl der Schleifendurchläufe aussagen?
29 Seite: 29 Name: Matrikelnummer:
30 Seite: 30 Kurs 1612 Konzepte imperativer Programmierung
31 Seite: 31 Name: Matrikelnummer:
32 Seite: 32 Zusammenfassung der Muss-Regeln 1. Selbstdefinierte Konstantenbezeichner bestehen nur aus Großbuchstaben. Bezeichner von Standardkonstanten wie z.b. maxint sind also ausgenommen 2. Typbezeichnern wird ein t vorangestellt. Bezeichner von Zeigertypen beginnen mit tref. Bezeichner formaler Parameter beginnen mit in, io oder out. 3. Jede Anweisung beginnt in einer neuen Zeile; begin und end stehen jeweils in einer eigenen Zeile 4. Anweisungsfolgen werden zwischen begin und end um eine konstante Anzahl von 2-4 Stellen eingerückt. begin und end stehen linksbündig unter der zugehörigen Kontrollanweisung, sie werden nicht weiter eingerückt. 5. Anweisungsteile von Kontrollanweisungen werden genauso eingerückt. 6. Im Programmkopf wird die Aufgabe beschrieben, die das Programm löst. 7. Jeder Funktions- und Prozedurkopf enthält eine knappe Aufgabenbeschreibung als Kommentar. Ggf. werden zusätzlich die Parameter kommentiert. 8. Die Parameter werden sortiert nach der Übergabeart: Eingangs-, Änderungs- und Ausgangsparameter. 9. Die Übergabeart jedes Parameters wird durch Voranstellen von in, io oder out vor den Parameternamen gekennzeichnet. 10. Das Layout von Funktionen und Prozeduren entspricht dem von Programmen. 11. Jede von einer Funktion oder Prozedur benutzte bzw. manipulierte Variable wird als Parameter übergeben. Es werden keine globalen Variablen manipuliert. Einzige Ausnahme sind Modul-lokale Variablen, die in den Parameterlisten der exportierten Prozeduren und Funktionen des Moduls nicht auftauchen, selbst wenn sie von diesen geändert werden. 12. Jeder nicht von der Prozedur veränderte Parameter wird als Wertparameter übergeben. Lediglich Felder können auch anstatt als Wertparameter als Referenzparameter übergeben werden, um den Speicherplatz für die Kopie und den Kopiervorgang zu sparen. Der Feldbezeichner beginnt aber stets mit dem Präfix in, wenn das Feld nicht verändert wird. 13. Funktionsprozeduren werden wie Funktionen im mathematischen Sinne benutzt, d.h. sie besitzen nur Wertparameter. Wie bei Prozeduren ist eine Ausnahme nur bei Feldern erlaubt, um zusätzlichen Speicherplatz und Kopieraufwand zu vermeiden. 14. Wertparameter werden nicht als lokale Variable mißbraucht. 15. Die Schlüsselworte unit, interface und implementation werden ebenso wie begin und end des Initialisierungsteils linksbündig positioniert. Nach dem Schlüsselwort unit folgt ein Kommentar, der die Aufgabe beschreibt, welche die Unit löst. 16. Für die Schnittstelle gelten dieselben Programmierstilregeln wie für ein Programm. Dies betrifft Layout und Kommentare. Nach dem Schlüsselwort interface folgt im Normalfall kein Kommentar. 17. Für den Implementationsteil gelten dieselben Programmierstilregeln wie für ein Programm. Nach dem Schlüsselwort implementation folgt nur dann ein Kommentar, wenn die Realisierung einer Erläuterung bedarf (z.b. wegen komplizierter Datenstrukturen und/oder Algorithmen). 18. In Programmen oder Moduln, die andere Moduln importieren ( benutzen ), wird das Schlüsselwort uses auf dieselbe Position eingerückt wie die Schlüsselworte const, type, var usw. 19. Die Laufvariable wird innerhalb einer for-anweisung nicht manipuliert. 20. Die Grundsätze der strukturierten Programmierung sind strikt zu befolgen.
33 Seite: 33 Kurs 1612 Konzepte imperativer Programmierung Hoare-Regeln 1. Konsequenzregel 1 Konsequenzregel 2 {P} S {R}, R Q {P} S {Q} P R, {R} S {Q} {P} S {Q} 2. Nullaxiom {P} {P} 3. Zuweisungaxiom {P<x expr>} x:=expr {P} 4. Sequenzregel {P} S 1 {R}, {R} S 2 {Q} {P} S 1 ; S 2 {Q} 5. Zusammensetzungsregel {P} S {Q} {P} begin S end {Q} 6. Bedingungsregel 1 {P B} S 1 {Q}, {P B} S 2 {Q} {P} if B then S 1 else S 2 {Q} Bedingungsregel 2 {P B} S {Q}, (P B ) Q {P} if B then S {Q} 7. while-regel 8. repeat-regel {P B} S {P} {P} while B do S {P B} {P} S {Q}, (Q B) P {P} repeat S until B {Q B}
34 Seite: 34 Terminierungsfunktion Definition Eine Abbildung τ heißt Terminierungsfunktion der while-schleife while B do S, wenn sie die Bedingungen w1) bis w3) erfüllt: w1) Seien v 1,..., v r die in B und S vorkommenden Variablen und Konstanten. Dann ist τ: Z r Z mit τ(v 1,..., v r ) Z. w2) Ist vor einem Schleifendurchlauf τ(v 1,..., v r ) = t erfüllt, dann ist nach dem Schleifendurchlauf τ(v 1,..., v r ) < t erfüllt. w3) Es existiert ein Wert t* Z, so dass vor jedem Schleifendurchlauf τ(v 1,..., v r ) t* gilt. Bemerkung i) Beachten Sie, dass S nur dann ausgeführt wird, wenn INV B erfüllt ist. Diese Voraussetzung muss man gewöhnlich ausnutzen, um die Eigenschaften w2) und w3) einer Terminierungsfunktion beweisen zu können. ii) Eine Invariante INV, mit der sich die Terminierung einer Schleife beweisen lässt, ist (leider) oft nicht identisch mit einer pk-geeigneten Invarianten, mit der sich die partielle Korrektheit zeigen lässt. Haben wir eine solche t-geeignete Invariante INV gefunden und bewiesen, dass die Schleife unter dieser Invarianten terminiert, müssen wir außerdem noch zeigen, dass INV auch tatsächlich erfüllt ist, wenn die Programmabarbeitung die Schleife erreicht.
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
MehrKurs 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
MehrWintersemester 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
MehrWintersemester 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.
MehrBitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich Einführung in die imperative Programmierung
FernUniversität in Hagen Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. FERNUNIVERSITÄT - Gesamthochschule - EINGANG Postanschrift: FernUniversität D - 58084
MehrBitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich "Konzepte imperativer Programmierung"
Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. Postanschrift: FernUniversität D - 58084 Hagen Name, Vorname INF Straße, Nr. PLZ, Wohnort FernUniversität in
MehrKurs 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( = 18 Punkte)
1 Lösung 1 ( 6 + 5 + 3 + 4 = 18 Punkte) a) function countziff (inzahl : tnatzahl): tnatzahl; {gibt die Stellenanzahl der inzahl} i, j : tnatzahl; i := inzahl; j := 1; while i => 10 do j := j + 1; i :=
MehrKurs 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
MehrKurs 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
MehrKurs 1612 Konzepte imperativer Programmierung Musterlösung zur Klausur am
Kurs 1612 Konzepte imperativer Programmierung 1 Aufgabe 1 a) Wir müssen zunächst die Abbruchbedingung des Verfahrens festlegen: Wir beenden die Rekursion, wenn das zu untersuchende Feldstück nur noch aus
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am
Kurs 1613 Einführung in die imperative Programmierung 1 Aufgabe 1 In einer ersten for-schleife wird das Kandidatenfeld initialisiert, so dass alle Kandidaten hinten stehen. Eine zweite for-schleife simuliert
MehrKurs 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,
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am
1 Aufgabe 1 a) Die erste Variante (Verkettungsänderung) ist vorzuziehen. Sie hat zwei wesentliche Vorteile: Zunächst ist eine solche Implementierung universell einsetzbar, unabhängig davon, wieviele Informationen
MehrKurs 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
MehrKurs 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;
MehrKurs 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;
MehrKurs 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
MehrKurs 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{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
MehrPartielle Korrektheit von Programmen. Beispiele an der Tafel
Partielle Korrektheit von Programmen Beispiele an der Tafel ALP II: Margarita Esponda, 12. Vorlesung, 24.5.2012 36 Beispiel: Partielle Korrektheit von Programmen Nehmen wir an, wir möchten beweisen, dass
MehrKurs 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
MehrKurs 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
MehrPrüfung Informatik D-MATH/D-PHYS :00 17:00
Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen
MehrVordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG
Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS 00 30. Juli 00 Bearbeitungszeit: 10 Minuten BEISPIELLÖSUNG Name: Vorname: Matrikelnummer: Aufgabe Punkte Bewertung 1 8 a) b) 6 8 3 8
MehrC. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007
C. A. R. Hoare An Axiomatic Basis for Computer Programming Nicolas Schelp Proseminar Assertions SS 2007 Inhalt Motivation Kurze Biographie Der Hoare-Kalkül Axiome und Inferenzregeln des Hoare-Kalküls Die
MehrAn 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
MehrKorrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrKurs 1661 Datenstrukturen I Klausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I
Kurs 1661 Datenstrukturen I Klausur am 17.9.2011 Seite 1 Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I Bitte lesen Sie sich diese Hinweise vollständig und aufmerksam durch, bevor
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrAlgorithmen und Programmieren II Programmverifikation {V} P {N}
Algorithmen und Programmieren II Programmverifikation {V} P {N} SS 2012 Prof. Dr. Margarita Esponda ALP II: Margarita Esponda, 11. Vorlesung, 22.5.2012 1 Assertions oder Zusicherungen Das Konzept der Zusicherungen
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
Mehrzu 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
MehrAn alle Teilnehmer(innen) des Kurses Einführung in die imperative Programmierung im Wintersemester 2008/2009. Klausur-Informationen
Lehrgebiet Software Engineering Prof. Dr. H.-W. Six FernUniversität in Hagen 58084 Hagen An alle Teilnehmer(innen) des Kurses 01613 Einführung in die imperative Programmierung im Wintersemester 2008/2009
MehrKlausur 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.
MehrKlausur zur Vorlesung Algorithmen und Datenstrukturen
Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung
Mehr3. Ü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
MehrSyntax 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 +
MehrAllgemeine 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,
MehrKlausur "ADP" SS 2015
PD Dr. J. Reischer 20.7.2015 Klausur "ADP" SS 2015 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
MehrTeilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester 2004/2005
Universität Mannheim Fakultät für Mathematik und Informatik Lehrstuhl für Praktische Informatik IV Prof. Dr. Wolfgang Effelsberg Teilprüfung Software- und Internettechnologie Programmierkurs 2 Wintersemester
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B P } S 1 {Q} { nicht B P } {Q} {P } if (B) then S 1 {Q} {B P } S 1 {Q} { nicht B P } S 2 {Q} {P } if (B) then S 1 else S 2 {Q} In der Regel für bedingte
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrKlausur zur Vorlesung Algorithmen und Datenstrukturen
Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung
MehrKurs 1661 Datenstrukturen I Nachklausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I
Kurs 1661 Datenstrukturen I Nachklausur am 19.09.2009 Seite 1 Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I Bitte lesen Sie sich diese Hinweise vollständig und aufmerksam durch,
MehrÜ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
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B und P } S 1 {Q} { nicht B und P } {Q} {P } if (B) then S 1 {Q} {B und P } S 1 {Q} { nicht B und P } S 2 {Q} {P } if (B) then S 1 S 2 {Q} In der Regel
MehrInformatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrWeb-Anwendungen, SS17 - Fragentypen
Web-Anwendungen, SS17 - Fragentypen Hinweis: Dieses Dokument ist keine Klausur, sondern eine lose (und nicht notwendigerweise vollständige) Sammlung an Fragen wie sie auch in einer Klausur vorkommen könnten.
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrTutoraufgabe 1 (Casting): Programmierung WS17/18 Übungsblatt 2 (Abgabe ) Allgemeine Hinweise:
Prof. aa Dr. J. Giesl Programmierung WS17/18 M. Hark, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrUniversität Duisburg - Essen
B.Sc. - Klausur - Bauinformatik 22.09.2015 1 Universität Duisburg - Essen Campus Essen Fachgebiet Baustatik Fachprüfung - Bauinformatik Teil 1 SS 15 Dienstag, den 22.09.2015 Prof. Dr.-Ing. Jochen Menkenhagen
MehrProblem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.
Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich
MehrAlgorithmen 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
MehrDatenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)
Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array
MehrKurs 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
Mehr5. Übung - Kanalkodierung/Programmierung
5. Übung - Kanalkodierung/Programmierung Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Kanalkodierung a Folgende Kodes stehen Ihnen zur Verfügung: Kode 1: 0000000 Kode
MehrInformatik 1. Prüfung im Wintersemester 1997/98
Informatik 1 Prüfung im Wintersemester 1997/98 Fachhochschule für Technik und Wirtschaft Reutlingen, Fachbereich Elektronik Prüfungsfach/Studiengang/Semester: Informatik 1 in Elektronik 1 Prüfer: Prof.
MehrInformatik 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
MehrKlausur "ADP" SS 2016
PD Dr. J. Reischer 29.7.2016 Klausur "ADP" SS 2016 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
MehrWie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?
Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort? Seite 1 Sehen wir uns zunächst einmal die grundsätzliche Vorgehensweise des Programmes an, ohne auf Einzelheiten oder Fachtermini
MehrKontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht
Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält
Mehr4.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
MehrBeispiellö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
MehrKlausur 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
MehrProgrammierkurs 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
MehrWiederholungsklausur "ADP" WS 2016/2017
PD Dr. J. Reischer 23.02.2017 Wiederholungsklausur "ADP" WS 2016/2017 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
Mehr(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)
Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrKlausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011
Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen
MehrKlausur "ADP" SS 2012
PD Dr. J. Reischer 26.07.2012 Klausur "ADP" SS 2012 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die
MehrInformatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Probe-Klausur Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrDatenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1) Hinweis: Dieses Übungsblatt enthält
MehrPrüfung Informatik D-MATH/D-PHYS :00 11:00
Prüfung Informatik D-MATH/D-PHYS 25. 1. 2013 09:00 11:00 Dr. Bernd Gartner Kandidat/in: Name:... Vorname:... Stud.-Nr.:... Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen
Mehr3.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)
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 16. August 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrTechnische 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 14. März 2016 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrKapitel 3: Anweisungen
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -66 Kapitel : Anweisungen Bedingte Anweisungen (Verzweigungen) Wiederholte Anweisungen (Schleifen) Abweisschleife Durchlaufschleife
MehrKorrektheit imperativer Algorithmen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Abschnitt 9 Korrektheit imperativer Algorithmen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester
MehrSemestralklausur Informatik I - Programmierung
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://www-i2.informatik.rwth-aachen.de/lufgi2 Prof. Dr. Jürgen Giesl LuFG
MehrKlausur Programmierung WS 2002/03
Klausur Programmierung WS 2002/03 Prof. Dr. Gert Smolka, Dipl. Inf. Thorsten Brunklaus 14. Dezember 2002 Leo Schlau 45 Vor- und Nachname Sitz-Nr. 4711 007 Matrikelnummer Code Bitte öffnen Sie das Klausurheft
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung
MehrKÖNIGSBERGER BRÜCKENPROBLEM
VOM PROBLEM ZUM PROGRAMM NUTZEN EINES FORMALEN MODELLS (U. A.) Was ist ein Problem? Ein Problem im Sinne der ierung ist durch Computer lösbar. Man kann leichter sehen, ob das Problem - oder Teile davon
Mehr