Prüfung. Informatik 1 Wintersemester 2009/10. mki-bachelor 1. Viel Erfolg!

Ähnliche Dokumente
Informatik 1. Prüfung im Wintersemester 1997/98

Informatik 1. mki-bachelor 1 Alte Prüfungsaufgaben. Viel Erfolg!

Theoretische Grundlagen 1

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

Syntax der Sprache PASCAL

Kapitel 3: Anweisungen

Programmierkurs Java

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

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

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

INFORMATIK FÜR BIOLOGEN

C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Verifizierende Testverfahren

Informatik II, SS 2014

Informatik I Übung, Woche 40

Algorithmen und Datenstrukturen

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Klausur Informatik B April Teil I: Informatik 3

Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.

Suchen und Sortieren Sortieren. Heaps

Einführung in die Informatik I (autip)

Technische Universität München SoSe 2015 Institut für Informatik I Mai 2015 Dr. Tobias Lasser. Aufgabe 1 Rechnen mit Landau-Symbolen

Prof. Dr. Karlheinz Hug Prüfungstermin und Ort: Dienstag, 5. Juli 2005, bis Uhr, Aufgabe Punkte Aufgabe Punkte

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Tutoraufgabe 1 (Casting): Programmierung WS17/18 Übungsblatt 2 (Abgabe ) Allgemeine Hinweise:

Präsenzübung Datenstrukturen und Algorithmen SS 2014

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

5.3 Korrektheit und Verifikation

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Copyright, Page 1 of 7 Heapsort

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Android-Apps Gegenüberstellung Delphi java

Klausur "ADP" WS 2013/2014

1. Übung Algorithmen I

Informatik Praktikum 5

Korrektheit und Hoare-Kalkül für Imperative Programme

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

ABITURPRÜFUNG 2003 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am

Einstieg in die Informatik mit Java

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

Klausur Grundlagen der Programmierung

Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen Midterm Test 2

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Grundlagen der Theoretischen Informatik

Algorithmen und Programmieren II Programmverifikation {V} P {N}

Informatik II Musterlösung

Viel Erfolg bei der Bearbeitung der Aufgaben!

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

Algorithmen und Datenstrukturen

Klausur WS 2014/15 EDV Anwendungen im Bauwesen. Name: Vorname: Matr.-Nr:

Korrektheit imperativer Algorithmen

4.4 Imperative Algorithmen Prozeduren

Fakultät IV Elektrotechnik/Informatik

VBA-Programmierung: Zusammenfassung

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

C-Propädeutikum Anweisungen

Modellierung und Programmierung 1

Kapitel 1: Informationsverarbeitung durch Programme

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Kapitel 1: Informationsverarbeitung durch Programme

Algorithmen und ihre Programmierung -Teil 2-

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Einstieg in die Informatik mit Java

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

Einführung in die Programmierung

Java Anweisungen und Ablaufsteuerung

1 Funktionale vs. Imperative Programmierung

Semantik von Programmiersprachen SS 2012

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Verifikation von Programmen

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

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

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Informatik II, SS 2018

C.3 Funktionen und Prozeduren

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

Warum Programme Verträge schließen sollten

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

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

Transkript:

Prüfung Hochschule Reutlingen - Reutlingen University Fakultät Informatik Studiengang Medien- und Kommunikationsinformatik akkreditiert von der ASIIN mki-bachelor 1 Informatik 1 Wintersemester 2009/10 Name, Vorname Aufgabe... 7 Matrikelnummer... Platznummer... Prüfer: Prof. Dr. Karlheinz Hug Prüfungstermin und Ort: Prüfungsdauer: Zugelassene Hilfsmittel: Anzahl der Aufgabenseiten: 12 Dienstag, 02. Februar 2010, 10 30-12 30 Uhr, Aula 120 Minuten Alle (Skripten, Übungsmaterial, Literatur,...) Aufgabe Punkte Aufgabe Punkte möglich erreicht möglich erreicht 1 22 6 14 2 14 7 17 3 13 8 24 4 16 9 12 5 22 Summe: 154 Note: Zum Bestehen der Prüfung sind 60, für die Note Eins 120 Punkte erforderlich. Lassen Sie die erhaltenen Blätter zusammengeheftet und geben Sie alle Blätter geheftet wieder ab, sonst droht Abzug von Punkten! Bearbeiten Sie die Aufgaben auf dazu freigelassenen Stellen! Tragen Sie in Tabellen und an punktierten Stellen... im Text passende Angaben ein! Der Platz reicht normalerweise; vermeiden Sie Extrablätter! Teilaufgaben sind meist unabhängig voneinander lösbar. Viel Erfolg! Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 Prüfung Informatik 1 - Seite 1 von 12

Prüfung Informatik 1 - Seite 2 von 12 mki-bachelor 1 Wintersemester 2009/10 Aufgabe 1 Syntax beschreiben (Punkte: 22...) (1) Stellen Sie das folgende Syntaxdiagramm mit einer EBNF-Regel dar! RoutineBody do once Instruction ; RoutineBody = (2) Gegeben ist die Syntax eines Namens in EBNF-Notation: Vollname = Titel Nachname, Vornamen. Titel = [ Prof. ] { Dr. [ h.c. rer.nat. ] }. Nachname = Name. Vornamen = Name { Name }. Name = ident [ - ident ]. (lexikalische Einheit: ident = letter { letter }.) Zeichnen Sie zu den ersten fünf dieser Regeln äquivalente Syntaxdiagramme! Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10

Viel Erfolg! Prüfung Informatik 1 - Seite 3 von 12 Zeichnen Sie zum folgenden Wort den konkreten Syntax-Zerteilungsbaum (ohne ident in einzelne Zeichen zu zerteilen)! Prof. Dr. rer.nat. Dr. Adler-Burger, Cora Dori-Evi 02.02.10 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005

Prüfung Informatik 1 - Seite 4 von 12 mki-bachelor 1 Wintersemester 2009/10 Aufgabe 2 (Punkte: 14...) Programm 2.1 Cleo: Tabelle Tabelle vertraglich spezifizieren Ergänzen Sie die Spezifikation der Schnittstelle, die eine Tabelle modelliert, mit Invarianten, Vor- und Nachbedingungen und Kommentaren zu Bedingungen! Key und Element sind beliebige Typen. Die Tabelle enthält Einträge von Schlüssel-Element-Paaren; sie realisiert eine Abbildung von Schlüsseln auf Elemente. INTERFACE Table QUERIES Capacity : NATURAL (* Konstante Maximalzahl von Einträgen *) Count : NATURAL (* Wieviele Einträge sind enthalten? *) notfound : Element (* Konstante, die nicht als echtes Element vorkommt *) Has (IN x : Element) : BOOLEAN (* Ist das Element x enthalten? *) POST result IMPLIES (Count > 0) Item (IN key : Key) : Element (* Falls Schlüssel key enthalten, zugehöriges Element, sonst notfound *) POST (result = notfound) OR Has (result) INVARIANTS... (* Beziehung Count - Capacity *)... (* notfound kein echtes Element *) ACTIONS Put (IN key : Key; IN x : Element) (* Füge (key, x) hinzu. *) PRE Count < Capacity; (*... *) x # notfound; (*... *) Item (key) = notfound (*... *) POST Count = OLD (Count) + 1; (*... *) Has (x); (*... *) Item (key) = x (*... *) Remove (IN key : Key) (* Entferne key und zugehöriges Element. *) PRE... (* nicht leer *)... (* Schlüssel key enthalten *) POST... (* ein Eintrag weniger *)... (* Schlüssel key nicht enthalten *) WipeOut (* Entferne alle Einträge. *) POST... (*... *) Table Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10

Viel Erfolg! Prüfung Informatik 1 - Seite 5 von 12 Aufgabe 3 (Punkte: 13...) Programm 3.1 CP: Minimum dreier Zahlen Korrektheit eines Algorithmus beweisen Die folgende Prozedur liefert das Minimum der Werte ihrer drei Eingabeparameter als Wert des Ausgabeparameters. Beweisen Sie die Korrektheit des Algorithmus, indem Sie möglichst starke Zusicherungen ergänzen! PROCEDURE GetMin (a, b, c : REAL; OUT min : REAL); BEGIN IF a < b THEN ASSERT (...); IF a < c THEN ASSERT (...); min := a; ASSERT (...) ELSE ASSERT (...); min := c; ASSERT (...) ; ASSERT (......) ELSIF c < b THEN ASSERT (...); min := c; ASSERT (...) ELSE ASSERT (...); min := b; ASSERT (...) ; ASSERT (............); ASSERT ((min <= a) & (min <= b) & (min <= c) & ((min = a) OR (min = b) OR (min = c)), postcondition) GetMin; 02.02.10 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005

Prüfung Informatik 1 - Seite 6 von 12 mki-bachelor 1 Wintersemester 2009/10 Aufgabe 4 (Punkte: 16...) Übersetzen, Typregeln anwenden Übersetzen Sie den folgenden Abschnitt aus dem Component Pascal Language Report! A module is a collection of declarations of constants, types, variables, and procedures, together with a sequence of statements for the purpose of assigning initial values to the variables. A module constitutes a text that is compilable as a unit. Mit den Vereinbarungen besteht die Anweisung IF (k [m] < n) = p THEN n := 2 / (m + 3) ELSE n := m MOD 4 alle Prüfungen der Typverträglichkeit. Geben Sie mit den Vereinbarungen VAR b : BOOLEAN; c : CHAR; i : INTEGER; x : REAL; zu jedem Teilausdruck des folgenden Ausdrucks an, von welchem Typ er ist, und wo ein Wert implizit an einen anderen Typ angepasst wird, und wo ein Typverträglichkeitsfehler vorliegt! ( b = ( i > 5.6E-7 ) ) # ( ORD (c) + x <= x ) Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10

Viel Erfolg! Prüfung Informatik 1 - Seite 7 von 12 Aufgabe 5 (Punkte: 22...) z := a; y := b; x := c; y := y + x; z := z * y; y := d; z := z / y Programmstücke verbessern Die gegebenen Programmstücke sind in äquivalente Programmstücke umzuformen, d.h. ihre Semantik muss erhalten bleiben. Geben Sie zur nebenstehenden Zuweisungsfolge die Eingabegrößen... und Ausgabegrößen... an und verkürzen Sie die Folge in sechs Schritten zu einer einzigen Zuweisung, die ohne die Variablen x, y auskommt! IF q > 0 THEN C; D ELSE IF q < 0 THEN B; A; D ELSE IF q = 0 THEN D ELSE R; Z; D Transformieren Sie die nebenstehende Auswahlanweisung schrittweise mit Erklärungen in bessere Varianten, mindestens die letzte Variante schön einrückend! 02.02.10 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005

Prüfung Informatik 1 - Seite 8 von 12 mki-bachelor 1 Wintersemester 2009/10 Programm 5.1 CP: Aufgeblähte Implementation Vereinfachen Sie die Implementation der Funktion F schrittweise mit Erklärungen so, dass sie mit zwei Variablen, zwei Zuweisungen, einer Zählschleife und einer RETURN- Anweisung auskommt! PROCEDURE F (n : INTEGER) : REAL; VAR i : INTEGER; x, y : REAL; BEGIN x := 0; y := x + 4; i := 1; WHILE i <= n DO x := x + 5 / i; y := x + 4; i := i + 1 ; IF n MOD 2 = 1 THEN x := x - 1 ; RETURN x * y F; Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10

Viel Erfolg! Prüfung Informatik 1 - Seite 9 von 12 Aufgabe 6 Schleifen: Terminierung prüfen, umformen, Aufwand berechnen (Punkte: 14...) Verfolgen Sie zur Schleife p := 3; q := 2; r := 1; WHILE p > 0 DO IF q <= r THEN p := p - r; q := q + r ELSE p := p + r; r := r + 1 sechs Durchläufe und begründen Sie, warum sie abbricht oder nicht! Terminiert Läuft endlos, weil p q r 3 2 1 Transformieren Sie die Zählschleife FOR k := 4 * k TO 5 * k DO Do (k) in eine äquivalente kopfgesteuerte Bedingungsschleife! Wenn die Anweisung X stets x, die Anweisung Y stets y Zeiteinheiten benötigt und die Zeit für die restliche Arbeit vernachlässigt wird, welche Ausführungszeit benötigt dann die folgende (äußere) Schleife? Ausdruck für Aufwand FOR i := 1 TO m DO FOR k := 1 TO n DO X (i, k) ; Y (i) Die Anweisung X sollte zuerst beschleunigt werden, wenn gilt: Ungleichung 02.02.10 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005

Prüfung Informatik 1 - Seite 10 von 12 mki-bachelor 1 Wintersemester 2009/10 Aufgabe 7 (Punkte: 17...) Programm 7.1 CP: Unbekannter Algorithmus Programmablauf verfolgen Untersuchen Sie Programm 7.1 wie unten beschrieben! VAR row : ARRAY 6 OF INTEGER; i1, i2, s, a : INTEGER; (* Initialisierung der Variablen row. *) (* 1 *) FOR i1 := 0 TO LEN (row) - 2 DO s := i1; FOR i2 := i1 + 1 TO LEN (row) - 1 DO IF row [s] > row [i2] THEN s := i2 ; a := row [i1]; row [i1] := row [s]; row [s] := a (* 2 *) (* 3 *) Die folgende Tabelle ordnet jeder Variablen eine Spalte zu. Der Programmablauf hat die Stelle (* 1 *) erreicht. Verfolgen Sie den Ablauf weiter und vervollständigen Sie die Tabelle, indem Sie jeweils die Zustände der Variablen bis zum Erreichen der Stelle (* 2 *) in eine neue Zeile eintragen, bis die Stelle (* 3 *) erreicht ist! (Streichen Sie ggf. Zwischenwerte der Variablen so, dass die Änderungen nachvollziehbar sind!) row i1 s i2 a [0] [1] [2] [3] [4] [5] 18 76 2 3 94 5 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10

Viel Erfolg! Prüfung Informatik 1 - Seite 11 von 12 Aufgabe 8 (Punkte: 24...) Programm 8.1 CP: Defektes Skalarprodukt Programmiermängel suchen und beseitigen Mathematisch ist das Skalarprodukt zweier Vektoren x = (x 1,.., x n ), y = (y 1,.., y n ) n n durch x y := x i y i definiert. Die folgende Funktion soll es berechnen. i = 1 PROCEDURE ScalarProduct (x, y : ARRAY 123 OF REAL) : REAL; VAR result : REAL; i : INTEGER; BEGIN FOR i := 1 TO 123 DO result := result + x [i] * y [i] ; RETURN result ScalarProduct; Sechs Mängel machen Programm 8.1 unbrauchbar. Markieren Sie in Programm 8.1 die Mängel mit (1).. (6)! Beschreiben Sie unten die Mängel und nennen Sie mögliche Folgen und Änderungen, die die Mängel beseitigen! Mangel Folge Änderung (1) (2) (3) (4) (5) (6) Programm 8.2 CP: Korrektes wiederverwendbares effizientes Skalarprodukt Geben Sie eine korrekte, für beliebig große Vektoren verwendbare, effiziente Implementation der Funktion ScalarProduct an! 02.02.10 Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005

Prüfung Informatik 1 - Seite 12 von 12 mki-bachelor 1 Wintersemester 2009/10 Aufgabe 9 (Punkte: 12...) Rekursionsformel Rekursionsformel und Schleife konstruieren Geben Sie eine Rekursionsformel für die Glieder der Reihe n x i ---, x i = 0 i! an und skizzieren Sie einen iterativen Algorithmus zur Berechnung der Reihe! Hinweis: 0! = 1, i! = (i 1)! * i für i > 0. Algorithmus Karlheinz Hug, Hochschule Reutlingen - 3MUKB1005 02.02.10