1. Regularien
  2. Wissensfragen PROGR1
  3. Aufgaben PROGR1
  4. Wissensfragen GL
  5. Aufgaben GL
  6. Zusatzinformationen 1: Mikroarchitektur
  7. Zusatzinformationen 2: Assemblerbefehle


PROGRAMMIEREN1 und GRUNDLAGEN DER INFORMATIK WS 0203 - Klausur






1. Regularien

  1. Zuerst muss sich jeder in die Liste eintragen


  2. Dann werden alle Aufgaben verteilt und es stehen 15min Zeit zum Lesen der Fragen/ Aufgaben zur Verfügung. Bei Unklarheiten gibt es die Möglichkeit, öffentlich Verständnisfragen zu stellen.


  3. Die Endnote berechnet sich aus der zu Beginn des Semesters veröffentlichten Punktetabelle.


  4. Die Punkte aus den Aufgaben für Programmieren1 und Grundlagen der Informatik werden addiert. Allerdings müssen mindestens sowohl 13 Punkte aus den Aufgaben für Programmieren1 als auch 13 Punkte aus den Aufgaben für Grundlagen der Informatik erzielt werden, um eine Bewertung mit der Note 5 zu vermeiden. Leistungen aus vorausgehenden offiziellen Übungsaufgaben werden angerechnet.


  5. Es dürfen nur leere Blätter und Schreibgerät benutzt werden. Alle Blätter müssen mit Name und Matr.Nummer gekennzeichnet sein. Jede Aufgabe muss mit Kategorie (PROG oder GL) sowie Aufgabennummer versehen sein. Auf dem Deckblatt ist die Gesamtzahl der beschriebenen Blätter anzugeben. Ferner sollte auf dem Deckblatt markiert sein, welche Aufgabe bearbeitet worden ist.


  6. Die Klausurzeit beträgt 90 Min. Nach den 90 Minuten gibt es 5 min für die 'Endredaktion': Überprüfung der Beschriftung aller Blätter, Korrekte Nummerierung aller Aufgaben, Eintrag der Blattzahl in das Deckblatt, auf dem Deckblatt Markierung er aufgaben, die bearbeitet worden sind.


  7. Alle Blätter müssen einschliesslich Deckblatt nach Ablauf unverzüglich abgegeben werden. Die Reihenfolge der Abgabe ist entsprechend der Reihenfolge der Austeilung.



START



2. Wissensfragen PROGR1


  1. Die Tätigkeit des Programmierens ist Teil des grösseren Rahmens des Softwareengineerings. (a) Welche Phasen des Softwareengineerings können Sie unterscheiden? Was wird in diesen einzelnen Phasen geleistet? (kleine Skizze)( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  2. Angenommen, man würde ein C-Programm in einer einzigen Datei unterbringen. Welche Elemente würde solch eine Datei typischerweise enthalten, um ein C-Programm zu realisieren. (kleine Skizze)( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3; Verteilt: ___


  3. Daten werden in der Sprache C nach Typen unterschieden. (a) Welche elementaren Datentypen kennen Sie in C? (b) Durch welche Befehlswörter kann man elementare Datentypen weiter modifizieren. (kleine Skizze)( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2+2; Verteilt: ___


  4. Beim Datentyp char unterscheidet man in C 'Einzelzeichen' und 'Zeichenketten'. (a) Woran kann man diese Unterscheidung anhand der Schreibweise erkennen? (kleine Skizze). (b) Wie drückt sich dieser Unterschied im Speicher aus? (c) Welche Sonderzeichen gibt es in C und wie kann man diese darstellen, ohne das diese mit ihrer üblichen Verwendung verwechselt werden?( Lösungshinweis)

    KAT: PROGR1
    PKT: max.1+1+5; Verteilt: ___


  5. (i) Wodurch entsteht aus einem Ausdruck eine Anweisung? (ii) Nennen Sie die beiden Kontrollstrukturen, in denen man in C Fallunterscheidungen realisieren kann; geben Sie die Syntax an.( Lösungshinweis)

    KAT: PROGR1
    PKT: max.1+3; Verteilt: ___


  6. Nennen sie die logischen Vergleichsoperatoren in C (Symbol und Bedeutung)( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3; Verteilt: ___


  7. (i) Wie wird der Inhalt einer 1-dimensionalen Feldvariable ('Array-Variable') im Speicher angelegt und zwar am Beispiel der Datentypen 'char', 'int' und 'float'? (Skizze mit Kommentar)(ii) Geben Sie Beispiele von Deklarationen von Feldvariablen vom Typ Einzelzeichen, Zeichenkette, Ganzzahl, Fliesskommazahl; weissen Sie jeder dieser Feldvariablen mindestens einen Wert zu. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3+4; Verteilt: ___


  8. Geben Sie die Syntax für eine while-Schleife an. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2; Verteilt: ___


  9. Welche Schreibweise von Operatoren --bezogen auf die Position des Operators im ausdruck-- kennen Sie? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2; Verteilt: ___


  10. Welche arithmetische Operatoren kennen Sie in C (Symbol und Bedeutung; evtl. Position)? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.4; Verteilt: ___


  11. Welche logische Operatoren kennen Sie in C (Symbol und Bedeutung)? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2; Verteilt: ___


  12. Welche Zuweisungs-Operatoren kennen Sie in C (Symbol und Bedeutung)? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  13. Welche Standard-Streams kennen Sie in C (Name und Bedeutung)? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3; Verteilt: ___


  14. (i) Was ist eine Funktion in der Mathematik? (ii) Wie schreibt man eine Funktion f hin, wenn man die Abbildungsbeziehung zwischen den beteiligten Mengen explizit machen will? (iii) Wie lautet die Syntaxdefinition einer Funktion in C? (iv) Was sind die drei Massnahmen in C, wenn Sie eine neue Funktion einführen und in einem Programm benutzen wollen (Annahme: die neue Definition ist nicht in der gleichen Datei wie die Funktion, in der die neue Funktion benutzt werden soll)? (v) Erstellen sie am Beispiel einer Funktion f() eine Skizze, wie Sie die verschiedenen Elemente einer Funktionseinführung und Nutzung in verschiedenen Dateien anordnen würden, wenn benutzende Funktion, Headerdatei und neue Funktion in verschiedenen Dateien vorkommen. Geben sie kurze Erläuterungen. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.1+1+2+3+3; Verteilt: ___


  15. Wenn in C einer Funktion f() ein Argument übergeben wird. Welche Möglichkeiten gibt es hier? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2; Verteilt: ___


  16. Gegeben sei folgende 3-dimensionale Feldvariable mit Initialisierung:


      int  ar1[dim1][dim2][dim3]={         /* 3-dimensionales Feld mit 2*3*4 Elementen = 24 Elementen */
                                {
                                  {1,2,3,4},
                                  {5,6,7,8},
                                  {9,10,11,12},
                                },
                                {
                                  {13,14,15,16},
                                  {17,18,19,20},
                                  {21,22,23,24},
                                  }
      };
      

    Fertigen Sie eine Skizze an, wie diese Elemente im Speicher angeordnet sind. Machen Sie deutlich, welche Elemente zu welchen Dimensionen gehören. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  17. (i) Was passiert beim dynamischen Speichermanagement in C? (ii) Welche Befehle zum dyn. Speichermanagement kennen Sie (Namen und kurze Beschreibung)? (iii) Welchen Datentyp liefern die Speicherbefehle zurück? (iv) Woran kann man das Misslingen einer Speicherreservierung erkennen? (v) Wie speichert man den Rückgabewert einer Speicherreservierung? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2+8+1+1+1; Verteilt: ___


  18. In der Standardbibliothek (siehe stdlib.h) wird in C eine Zufallsfunktion rand() zur Verfügung gestellt. Diese holt sich aus einer intern erzeugten Reihe von Pseudozufallszahlen jeweils eine Pseudozufallszahl heraus. Mittels der Funktion srand(unsigned seed) kann man unterschiedliche Zufallsreihenfolgen anstossen. Wie kann kann Zufallszahlen zwischen 1 und einer Zahl UPPER erzeugen? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3; Verteilt: ___


  19. Bei der Behandlung der Dateioperationen unter C gilt, dass in C der Austausch von Daten zwischen Geräten wie Tastatur, Bildschirm, Plattenspeichern, und allen anderen peripheren Geräten in einheitlicher Weise mit dem Konzept der Streams beschrieben wird. Dies bedeutet, ob Datei, Device oder was auch immer, in C wird ein Stream geöffnet oder geschlossen. Solange ein Stream geöffnet ist, kann man verschiedene Operationen ausführen. (i) Mit welchem Befehl kann man in C einen Stream öffnen? (ii) Mit welchem Befehl kann man einen Stream wieder schliessen? (iii) Wodurch wird die Zahl der gleichzeitig geöffneten Streams begrenzt? (iv) Welche Operationen kann man mit einem geöffneten Stream ausführen? (v) Wodurch wird ein aktuell geöffneter Stream repräsentiert? (vi) Welche Befehle zum Lesen eines geöffneten Streams kennen Sie (Namen und kurze Beschreibung)? (vii) Welche Befehle zum Schreiben eines geöffneten Streams kennen Sie (Namen und kurze Beschreibung)? (iix) Wie kann man festlegen, dass eine Datei wieder vom 'Anfang' gelesen wird, nachdem man schon Leseoperationen vorgenommen hatte? (ix) Wie kann man eine Datei umbenennen? (x) Wie kann man eine Datei entfernen? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.1+1+1+6+2+6+6+2+1+1; Verteilt: ___


  20. Wie können sie die Fehlervariable 'errno' in ihrem Programm benutzen, um Fehler zu erfassen und zu melden? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.4; Verteilt: ___


  21. Um Zahlen hinzuschreiben, benutzen wir normalerweise ein Stellenwertsystem, d.h. der Wert des Zahlzeichens '2' in der Zahl '123' ist sowohl abhängig von der Position in der Zahl wie auch von der vorausgesetzten Zahlbasis. (i) Geben Sie eine allgemeine Formel an, wie man den Wert einer beliebigen Zahl für beliebige Zahlbasen berechnen kann. (ii) Welches sind die in der Informatik am häufigsten benutzten Zahlbasen; geben Sie die Zahl (36)10 in jeder dieser verschiedenen Zahlbasen an.(iii) Wenn Sie als Basis b=2 haben und binäre Zahlen im Computer speichern: was versteht man dann unter 'big endian' und was unter 'little endian'? (iv) Was bedeutet es, wenn man im Falle von Computern von 32-Bit-Systemen spricht? (v) Was versteht man unter einem 'Stellenkomplement' bei Dualzahlen und wie berechnet man dies? (vi) Was versteht man unter einem 2-erKomplement und wie berechnet man das 2erKomplement einer Dualzahl? (vii) Wofür wird das 2erKomplement im Rahmen der binären Zahldarstellungen in Computern benutzt? (viii) Wie teilt man bei einem n-bit System den Bereich der Zahlen ein, wenn man positive und negative Zahlen hat?( Lösungshinweis)

    KAT: PROGR1
    PKT: max.2+4+2+1+3+3+1+3; Verteilt: ___


  22. (i) Nennen Sie die Bitoperatoren von C (Zeichen, Bedeutung, Wertetabelle). ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.12; Verteilt: ___



START



3. Aufgaben PROGR1


  1. Schreiben Sie ein kleines Programm, in dem drei Variablen unterschiedlichen Typs vereinbart werden, weissen Sie den Variablen Werte zu und lassen Sie die Werte der Variablen mit einem einzigen Printbefehl (printf()) auf dem Bildschirm ausgeben. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.5; Verteilt: ___


  2. Schreiben Sie ein kleines Programm, in dem zwei Zahlen x und y von der Tastatur eingelesen werden. Das Programm stellt fest, ob x kleiner, gleich oder grösser als y ist. Das Ergebnis wird dem Benutzer auf dem Bildschirm mit printf() ausgegeben. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  3. Schreiben Sie ein kleines Programm, in dem der Benutzer einen Kleinbuchstaben eingeben kann und das Programm gibt den zugehörigen ASCII-Code auf dem Bildschirm aus. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.5; Verteilt: ___


  4. Mit der Funktion fgets(FELDVARIABLE, MAXIMALE_LÄNGE, STREAM)) kann man MAXIMALE_LÄNGE-viele Zeichen in eine FELDVARIABLE einlesen. Es werden aber nur MAXIMALE_LÄNGE-1-viele Zeichen aus dem Puffer entnommen. Automatisch wird ein Zeilenvorschub (engl. 'Linefeed') (Steuerzeichen '\n', ASCII-Code dezimal '10') angehängt. Schreiben sie ein kleines Programm, bei dem der Zeilenvorschub im Falle einer Zeichenkette automatisch durch eine abschliessende Null '\0' ersetzt wird. Geben Sie den Wert der Feldvariablen anschliessend auf dem Bildschirm aus. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  5. Schreiben Sie ein kleines Programm, in dem sie innerhalb einer while-Schleife mit der Funktion getchar() die Tastatur abfragen und der Wert auf dem Bildschirm ausgegeben wird. Stellen sie für den Benutzer ein Abbruchkriterium bereit. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.6; Verteilt: ___


  6. Schreiben Sie ein kleines Programm, in dem der Anwender bei Aufruf des Programms 2 Float-Zahlen als Argumente auf der Befehlszeile übergibt; lassen Sie das Programm diese beiden Zahlen addieren und mittels printf() auf den Bildschirm ausgeben. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.8; Verteilt: ___


  7. Schreiben Sie ein kleines Programm, in dem der Anwender zwischen drei Menueoptionen auswaehlen musss; Benutzen sie den switch-Befehl, um zu ermitteln, welche Option der Anwender eingegeben hat und drucken sie diese Option auf dem Bildschirm aus. Beachten Sie den Fall, dass der Anwender keine der drei angebotenen Optionen wählt. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.8; Verteilt: ___


  8. Schreiben Sie ein Programm, das eine Funktion f1() benutzt, die in einer anderen Datei neu eingeführt wird und zu der es eine eigene Headerdatei gibt. Die Funktion f1() soll als Argument zwei Zahlen bekommen, die addiert werden, und deren Wert zurückgegeben wird.( Lösungshinweis)

    KAT: PROGR1
    PKT: max.12; Verteilt: ___


  9. (i) Schreiben Sie ein kleines Programm, in dem eine Variable x und ein Zeiger p vom Typ int gegeben sind. Der Variablen x wird ein Wert zugewiessen. Benutzen Sie den Zeiger p, um den Wert der Variablen x um 5 zu erhöhen. (ii) Stellen Sie in einer Skizze dar, wie diese Sachverhalte im Arbeitsspeicher realisiert werden können (Inhalt von x, Inhalt von p, Beziehung zwischen p und x). ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.10; Verteilt: ___


  10. (i) Schreiben Sie ein kleines Programm, in dem die Variable int a=5; vereinbart wird. Führen Sie zwei neue Funktionen f1() und f2() ein für die gilt: f1() bekommt als Argument die Variable a als 'Kopie' und Funktion f2() bekommt den Wert von a als 'Referenz'. In beiden Funktionen wird der Wert 5 zum Wert von a dazuaddiert. Geben Sie in beiden Fällen die Werte mit return zurück. (ii) Wie lautet der Wert von a nach dem Aufruf von f1()? Wie lautet der Wert von a nach dem Aufruf von f2()? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.15+2; Verteilt: ___


  11. Schreiben sie ein kleines Programm, das folgende Anforderungen erfüllt:

    1. Es gibt eine Datenstruktur mit Namen 'Stack' (oder auch 'Stapel', 'Keller', 'LIFO := Last in First Out'), die Elemente eines bestimmten Datentyps TYP entweder auf einen Stapel legen ('push') oder von diesem runternehmen ('pop'). Gegeben sei eine Feldvariable stp vom Typ TYP; implementieren sie die folgenden Operationen:

      • 'push(TYP e)' := Lege ein Element von einem beliebigen Typ auf die oberste Position des Stacks;

      • 'pop()' := Hole das oberste Element des Stacks und gib es aus;

    2. Schreiben Sie ein Rahmenprogramm, innerhalb dessen der Stack mit den genannten Funktionen benutzt wird.



    KAT: PROGR1
    PKT: max.20; Verteilt: ___


  12. (i) Wie lautet die Syntax des Datentyps 'struct'? (ii) Wie würde eine Struktur aussehen, in der die Eigenschaften 'Farbe', 'Gewicht', 'Geschwindigkeit in km pro Stunde' für eine Struktur mit Namen 'pkw' als Elemente auftreten? (iii) Wie führen sie Variablen (einfache Variablen, Felder, Zeiger) ein, die den Typ 'pkw' besitzen? (iv) Angenommen es gibt noch eine Struktur mit Namen 'lkw'; wie würden sie eine Struktur mit Namen 'auto' definieren, die Elemente vom Typ 'pkw' und 'lkw' enthält? (v) Wie kann man auf das Element Farbe einer Variablen vom Typ 'pkw' zugreifen: (a) ohne Zeiger, (b) mit Zeiger? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.3+3+5+2+3; Verteilt: ___


  13. Gegeben ist ein Programm mit main(), in dem eine Feldvariable wie folgt vereinbart wurde: 'char feld[DIM1][DIM2];' (DIM1 = 2 und DIM3 = 4). (i) Definieren Sie eine Funktion f1(), deren Übergabeparameter als geeignetes Feld definiert ist. Bei Aufruf von f1() soll die Feldvariable 'feld' --und möglicherweise weitere Parameter-- übergeben werden. Aufgabe von f1() ist es, alle Elemente des Feldes 'feld' einzeln anzuzeigen. (ii) Definieren Sie eine Funktion f2(), die die gleiche Aufgabe wie f1() lösen soll; bei f2() ist der Übergabeparameter aber als Zeiger definiert. (iii) Geben Sie an, wie die Aufrufe von f1() und f2() im Hauptprogramm aussehen. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.4+8+(1+3); Verteilt: ___


  14. Gegeben sei folgende 3-dimensionale Feldvariable mit Initialisierung:


      int  ar1[dim1][dim2][dim3]={         /* 3-dimensionales Feld mit 2*3*4 Elementen = 24 Elementen */
                                {
                                  {1,2,3,4},
                                  {5,6,7,8},
                                  {9,10,11,12},
                                },
                                {
                                  {13,14,15,16},
                                  {17,18,19,20},
                                  {21,22,23,24},
                                  }
      };
      

    geben Sie eine Funktion f() an, deren Übergabeparameter vom Typ Zeiger ist (zusätzlich mögliche weitere Hilfs-Parameter), die die Feldvariable 'ar1' als Argument übergeben bekommt und die den Wert jedes Elementes der Variable ar1 in aufsteigender Reihenfolge ausgibt. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.8; Verteilt: ___


  15. Schreiben sie ein kleines Programm, das Speicher für eine Feldvariable 'fdlint' vom Typ 'long int' mit 10 Elementen reserviert; im Fehlerfall soll eine Meldung ausgegeben werden. Das erste Elemente von 'fdlint' soll den Werte '7' zugewiessen bekommen. Danach wird der Speicher wieder freigegeben. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.10; Verteilt: ___


  16. In der Standardbibliothek (siehe stdlib.h) wird in C eine Zufallsfunktion rand() zur Verfügung gestellt. Diese holt sich aus einer intern erzeugten Reihe von Pseudozufallszahlen jeweils eine Pseudozufallszahl heraus. Mittels der Funktion srand(unsigned seed) kann man unterschiedliche Zufallsreihenfolgen anstossen. Wie kann kann Zufallszahlen zwischen 1 und einer Zahl UPPER erzeugen? ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.5; Verteilt: ___


  17. Schreiben sie ein Programm, das ein 2-dimensionales Feld vom Typ char mit Grösse 10x10 mittels malloc() anlegt und dann mit dem Anfangswert '_' belegt. Rufen Sie dann eine Funktion auf, die zufallsgesteuert diese Anfangswerte mit dem Wert '*' solange überschreibt, bis alle Felder mit dem Wert '*' belegt sind (Mehrfachschreibung möglich). Lassen sie das Programm zählen, wieviele zufallsgestuerte Aktionen notwendig sind, um dieses Ziel zu erreichen. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.28; Verteilt: ___


  18. Schreiben sie ein kleines Programm, das eine Textdatei zum Lesen öffnet, lesen Sie die Datei bis zum Endezeichen zeichenweise aus und geben Sie die Zeichen auf dem Bildschrim aus. Nach Abschluss der Leseoperation schliessen Sie die Datei. Benutzen Sie die Fehlervariable errno zum Erfassen von Fehlern. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.25; Verteilt: ___


  19. Schreiben sie eine kleine Funktion sherlock(), die für eine vorgegebene Zahl n für jedes Bit feststellt, ob es sich um eine '1' oder um eine '0' handelt. Als Ergebnis gibt die Funktion einen String zurück mit dem kleinsten Bit 'rechts' und dem höchsten Bit 'links'. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.12; Verteilt: ___


  20. Schreiben sie ein kleines Programm, in dem sie drei verschiedene Eigenschaften als unterschiedliche Bitmuster kodieren. Zeigen Sie an einem Beispiel, wie Sie in bestehenden Bitmustern neue Bits (= Eigenschaften) setzen können. Zeigen Sie ferner, wie Sie prüfen können, ob bestimmte Bits (= Eigenschaften) gesetzt sind. ( Lösungshinweis)

    KAT: PROGR1
    PKT: max.12; Verteilt: ___



START



4. Wissensfragen GL

  1. Was sind die wichtigen Themengebiete der Informatik in der nahen Zukunft nach dem Bericht it2006 der Bundesregierung? ( Lösungshinweis)

    KAT: GL
    PKT: max.4; Verteilt: ___


  2. Auf welche Weise wirkt die Informatik auf die sie umgebenden Gesellschaft nach dem Bericht it2006 der Bundesregierung ein? ( Lösungshinweis)

    KAT: GL
    PKT: max.3; Verteilt: ___


  3. Ein Ziel der Softwareentwicklung ist die Bereitstellung eines Maschinenprogramms, das als Binärkode auf einem Mikroprozessor ausgeführt werden kann. (i) Welche Schritte muss ein Softwareentwickler ausführen, um vom Problem bis zum Binärkode zu kommen? (ii) Was sind die wichtigsten Werkzeuge, die der Softwareentwickler in den verschiedenen Phasen benutzt?( Lösungshinweis)

    KAT: GL
    PKT: max.2+2; Verteilt: ___


  4. Im Rahmen der Diskussion um die Entwicklung von Software sind 10 Punkte aufgeführt worden, die im Kontext eines Softwareprojektes wichtig sind. Welche Punkte sind ihnen noch präsent? Geben sie jeweils eine kurze Erläuterung, was die einzelnen Punkte bedeuten. ( Lösungshinweis)

    KAT: GL
    PKT: max.15; Verteilt: ___


  5. Es wurde das Projekt 'Vernetztes Haus' der Fraunhofer Gesellschaft in Duisburg behandelt. (i) Welche Geräte kommen im vernetzten Haus typischerweise zum Einsatz? (ii) Durch welche Verbindungen ist das lokale Netz des Hauses mit der Aussenwelt verbunden? (iii) Welche Dienste stehen typischerweise dem Anwender zur Verfügung, um von aussen mit Geräten in seinem Haus zu kommunizieren? (iv) Wie wird typischerweise die Kommunikation im Duisburger-Haus zwischen dem Anwender und einem Gerät gelöst? (v) Erstellen Sie eine Skizze zur Grundstruktur eines Transponderchips mit kurzen Erläuterungen der Komponenten.( Lösungshinweis)

    KAT: GL
    PKT: max.3+2+2+1+8; Verteilt: ___


  6. Auf welche Weise kann man das Verhalten der Geräte in einem vernetzten Haus 'intelligent' ('smart') machen, wenn die einzelnen Geräte selbst nur sehr einfach und eher 'dumm' sind?( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  7. Welches Problem versucht die OSGI (:= Open Services Gateway Initiative) zu lösen? ( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  8. Nennen Sie fünf wichtige Netzwerktypen anhand des Kriteriums der Distanz?( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  9. Wie heisst das Gerät (2 verschiedene Namen), das ein lokales Netz mit einem externen Netz verbindet? ( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  10. Bei der Kommunikation im Netz werden Datenpakete verschickt. Die Kommunikation wird dabei über 'Schichten' abgewickelt. Erklären Sie, warum es solche Schichten gibt, was die Funktion der Schichten ist; auf welche Weise eine Schicht die Datenpakete verändert, worin sich Sender und Empfänger dabei unterscheiden. Wie nennt man eine Menge von solchen aufeinanderfolgender Schichten? ( Lösungshinweis)

    KAT: GL
    PKT: max.5; Verteilt: ___


  11. Erstellen sie eine Skizze für ein abstraktes Modell zur Kommunikation zwischen einem Client Prozess und einem Serverprozess: Was sind die wichtigen Komponenten auf beiden Seiten? Was sind die elementaren Kommunikationsakte? ( Lösungshinweis)

    KAT: GL
    PKT: max.8; Verteilt: ___


  12. Ein bekanntes Schichtenmodell ist das OSI-Referenzmodell. Erstellen sie eine Skizze mit den beteiligten 'Schichten und geben sie kurze Erläuterungen zu jeder Schicht. ( Lösungshinweis)

    KAT: GL
    PKT: max.14; Verteilt: ___


  13. Unter dem Namen 'TCP/IP' wird in der Regel ein bestimmter Protokollstapel gemeint, der gegenüber dem OSI-Referenzmodell eine Vereinfachung darstellt. (i) Beschreiben sie die Schichten des TCP/IP-Protokollstapels und geben Sie Beispiele von konkreten Protokollen für jede Schicht an. (ii) Beschreiben sie die wichtigen Kommunikationsakte zwischen einem Client und einem Server im Rahmen des TCP/IP-Protokollstapels, wenn ein Client Daten vom Server anfordert und bekommt (mit Skizze). (iii) Warum braucht man neben iterativen Servern auch konkurrente Server? Beschreiben sie ein Verfahren, mittels dessen man einen konkurrenten Server realisieren kann.( Lösungshinweis)

    KAT: GL
    PKT: max.10+6+5; Verteilt: ___


  14. (i) Welche Funktion erfüllen Header im Rahmen von Datenpaketen? (ii) Was sind die wichtigsten Informationen, die in einem UDP-Header stehen ? ( Lösungshinweis)

    KAT: GL
    PKT: max.1+3; Verteilt: ___


  15. Der wesentliche Unterschied einer Kommunikation im Rahmen des TCP-Protokolls gegenüber dem UDP-Protokoll ist die eindeutige Verbindung zwischen Sender und Empfänger. Nennen Sie die Mittel, mittels deren das TCP-Protokoll die Eindeutigkeit der Verbindung zu gewährleisten versucht? ( Lösungshinweis)

    KAT: GL
    PKT: max.6; Verteilt: ___


  16. Welche wichtigen Eigenschaften des IP-Protokolls kennen Sie?( Lösungshinweis)

    KAT: GL
    PKT: max.8; Verteilt: ___


  17. Welche Rolle spielt die Byte-Ordnung 'big endian' im Netz? ( Lösungshinweis)

    KAT: GL
    PKT: max.1; Verteilt: ___


  18. Durch welche Massnahmen kann das IP-Protokoll eine passende Fragmentierung der Datenpakete erreichen und dafür sorgen, dass diese beim Empfänger wieder in der richtigen Reihenfolge zusammengebaut werden können? ( Lösungshinweis)

    KAT: GL
    PKT: max.4; Verteilt: ___


  19. Durch welche Massnahmen wird im IP-Protokoll verhindert, dass Datenpakete in Endlosschleifen geraten? ( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  20. Was sind Ports, wofür benötigt man sie und wie kommen Portnummern zustande? ( Lösungshinweis)

    KAT: GL
    PKT: max.3; Verteilt: ___


  21. Wie sind IP-Adressen der Version IPv4 aufgebaut? Worin unterscheiden sich die Klassen A bis E? ( Lösungshinweis)

    KAT: GL
    PKT: max.8; Verteilt: ___


  22. Wie können bei IP-Adressen der Version IPv4 die drei Stufen Netzkklasse, Netz und Host erweitert werden? ( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  23. Wie würden sie folgende speziellen IP-Adressen der Version IPv4 realisieren:

    1. This host

    2. A host on this network

    3. Broadcast on the local network

    4. Broadcast on a distant network

    5. Loopback

    ( Lösungshinweis)

    KAT: GL
    PKT: max.10; Verteilt: ___


  24. Nennen Sie die wichtigste Verbesserung, die durch die IP-Adressen der Version IPv6 eingeführt wird. ( Lösungshinweis)

    KAT: GL
    PKT: max.1; Verteilt: ___


  25. Welche Aufgaben erfüllen die Protokolle ICMP, ARP, RARP und BOOTP? ( Lösungshinweis)

    KAT: GL
    PKT: max.12; Verteilt: ___


  26. Was ist ein Bus im Kontext eines Computers? ( Lösungshinweis)

    KAT: GL
    PKT: max.1; Verteilt: ___


  27. Was ist ein 'Bit'? ( Lösungshinweis)

    KAT: GL
    PKT: max.1; Verteilt: ___


  28. Was bedeutet bei einem Signal der Zustand 'High' bzw. 'Low'? ( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  29. In welchem Sinne kann man sagen, dass ein Signal die Information '1 Bit' realisiert?( Lösungshinweis)

    KAT: GL
    PKT: max.2; Verteilt: ___


  30. Nennen Sie 5 verschiedene digitale Basisschaltungen und geben Sie deren Wertetabelle an ( Lösungshinweis)

    KAT: GL
    PKT: max.15; Verteilt: ___


  31. Was ist das Prinzip von Multiplexerschaltungen? Erstellen sie eine kleine Skizze zu einer Multiplexerschaltung mit 4 Datenleitungen( Lösungshinweis)

    KAT: GL
    PKT: max.10; Verteilt: ___


  32. Wie funktioniert ein 1-Bit Volladdierer? Erstellen Sie dazu eine kleine Skizze.( Lösungshinweis)

    KAT: GL
    PKT: max.10; Verteilt: ___


  33. Versuchen Sie zu beschreiben, welche Funktionen die einzelnen Komponenten der Hardwarearchitektur (Bild im Anhang) haben. ( Lösungshinweis)

    KAT: GL
    PKT: max.32; Verteilt: ___


  34. Angenommen, das nachfolgende Assembler-Programm ist wie angegeben im Arbeitsspeicher abgelegt (Liste der Assemblerbefehle siehe im Anhang). Versuchen sie zu bescheiben, wie die Hardware dieses Programm abarbeitet? ( Lösungshinweis)

    KAT: GL
    PKT: Pro erklärtem Befehl ca. 4 Punkte; gleiche Befehle werden nur einmal bewertet. Verteilt: ___

    
    /******************************
    *
    * Anordnung der Bytes im Speicher:
    *
    *********************************/
    
    ADDR   MNEMONIC       HEXCODE
    -------------------------------
    PROGRAMM
    -------------------------------
    0000               // x22         Anzahl Bytes des Programms ab Byte 3
    0001               // x1          Anzahl Konstanten (im Anschluss an Programm)
    0002               // x3          Anzahl Variablen (Im Anschluss an Konstanten)
    0003   push x0     // x10,x0
    0005   dup         // x59
    0006   dup         // x59
    0007   store a     // x36,0
    0009   store b     // x36,1
    000b   store c     // x36,2
    000d   in          // xfc
    000e   store a     // x36,0
    0010   in          // xfc
    0011   store b     // x36,1
    0013   load a      // x15,0
    0015   load b      // x15,1
    0017   add         // x60
    0018   store c     // x36,2
    001a   ldc incr    // x13,0
    001c   load c      // x15,2
    001e   add         // x60
    001f   store c     // x36,2
    0021   out         // xfd
    0022   push x10    // x10,x1
    0024   return      // ac
    ---------------------------
    KONSTANTEN
    ---------------------------
    0025   incr 10                  ( x3 + x22 = x25)
    ---------------------------
    VARIABLEN
    ---------------------------
    0026   a                        (x25 + x1 = x26)
    0027   b
    0028   c
    ---------------------------
    STACK
    ---------------------------
    0029                             (x26 + x3 = x29)
    
  35. Mit welchen Begriffen wird in der Informatik das Verhältnis zwischen der Ausführungszeit T(n) eines Algorithmus und der Anzahl n der Elemente eines Problems beschrieben? ( Lösungshinweis)

    KAT: GL
    PKT: max.6. Verteilt: ___


  36. Warum ist eine logarithmische Ausführungszeit besser als eine lineare? ( Lösungshinweis)

    KAT: GL
    PKT: max.2. Verteilt: __



  37. Nennen Sie Beispiele von 1-dimensionalen und 2-dimensionalen Datenmodellen? ( Lösungshinweis)

    KAT: GL
    PKT: max.2. Verteilt: __



  38. Wodurch ist das Datenmodell 'Baum' charakterisiert? ( Lösungshinweis)

    KAT: GL
    PKT: max.4. Verteilt: __


  39. Was unterscheidet einen binären Baum von einem Baum? ( Lösungshinweis)

    KAT: GL
    PKT: max.1. Verteilt: __


  40. Was unterscheidet einen binären Such-Baum von einem binären Baum? Wie verläuft eine Suche in einem binären Suchbaum?( Lösungshinweis)

    KAT: GL
    PKT: max.8. Verteilt: __


  41. Wie lässt sich der Zusammenhang zwischen der Anzahl der Knoten und der Höhe eines binären Baumes beschreiben? ( Lösungshinweis)

    KAT: GL
    PKT: max.6. Verteilt: __

  42. Was zeichnet einen ausgeglichenen Baum aus? ( Lösungshinweis)

    KAT: GL
    PKT: max.3. Verteilt: __


  43. Welche Ordnungskriterien zu binären Suchbäumen fallen Ihnen ein? ( Lösungshinweis)

    KAT: GL
    PKT: max.4. Verteilt: __


  44. Welche Beispiele von Algorithmen zu ausgeglichenen Bäumen können Sie nennen (Mit kurzer Erklärung, die die Grundidee dieser Algorithmen beschreibt)? ( Lösungshinweis)

    KAT: GL
    PKT: pro erläutertes Beispiel bis 4 Pkt. Verteilt: __



START



5. Aufgaben GL

  1. Geben Sie möglichst einfache C-Funktionen für folgende digitale Schaltungen an:

    1. NOT

    2. AND

    3. OR

    4. XOR

    ( Lösungshinweis)

    KAT: GL
    PKT: max.2+2+2+2; Verteilt: ___



START



6. Zusatzinformationen 1: Mikroarchitektur




cpu

Hardwarearchitektur für CPU




START



7. Zusatzinformationen 2: Assemblerbefehle



0x10    PUSH byte       // Push byte onto stack
0x59    DUP             // Copy top word on stack; push onto stack
0x60    ADD             // Pop two words from stack; push their sum
0x7E    AND             // Pop two words from stack; push Boolean AND
0x99    IFEQ label      // Pop word from stack; branch if it is zero
0x9F    IF_ICMPEQ label // Pop two words from stack; branch if equal
0x84    INC varnum const        // Add a constant to a local variable
0x15    LOAD varnum     // Push local variable onto stack
0xB0    OR              // Pop two words from stack; push Boolean OR
0xAC    RETURN          // Return from method with integer value
0x36    STORE varnum    // Pop word from stack; store in local variable
0x64    SUB             // Pop two words from stack; push their difference
0x13    LDC index       // Push constant from constant pool onto stack
0x00    NOP             // Do nothing
0x57    POP             // Delete word on top of stack
0x5F    SWAP            // Swap the two top words on the stack
0xFF    HALT            // halt the simulator
0xFD    OUT             // Pop a word from the stack and use the low order 8-bits as an ASCI character to display on screen
0xFC    IN              // Read a character from standard input and put it in the low order 8-bits of a word pushed onto the stack


START