Fachhochschule Ingolstadt                                 Übungsaufgaben Ingenieurinformatik   Fakultät für Maschinenbau  ...
3. Aufgabe    Führen Sie folgende Additionen/Subtraktionen im binären Zahlensystem durch. Wandeln Sie also vorder eigentli...
8. Aufgabe   Gegeben sei das folgende Programm für den RUN10000. Der Prozessor beginnt seineProgrammausführung mit der Anw...
10. Aufgabe   Wandeln Sie die folgende Java-Programmsequenz in ein entsprechendes Maschinenprogramm für denRUN10000 um.   ...
14. Aufgabe   Gegeben sei die nachfolgende Klassendefinition:                    class Test {                      int[] v...
Erstellen Sie als nächstes eine Methode „normalize“ für die Klasse Rational, die die aktuelle InstanzRational so umrechnet...
void output ()              {              }    Erzeugen Sie schließlich eine Programmsequenz „test“, die die Berechnung  ...
Anhang A: Kurzbeschreibung des Prozessors RUN1000  Achtung: Die Beschreibung fehlt noch!
Nächste SlideShare
Wird geladen in …5
×

Übungsaufgaben

221 Aufrufe

Veröffentlicht am

Veröffentlicht in: Business, Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
221
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Übungsaufgaben

  1. 1. Fachhochschule Ingolstadt Übungsaufgaben Ingenieurinformatik Fakultät für Maschinenbau Prof. Dr. Edwin Naroska Übungsaufgaben für die Klausur Ingenieurinformatik WS 09/10Vorbemerkungen Die Aufgaben in diesem Dokument dienen der Vorbereitung auf die Klausur im FachIngenieurinformatik für das Wintersemester 09/10. Bitte beachten Sie, dass Anzahl und Format der hiergestellten Aufgaben nicht notwendiger Weise denen der Klausur entsprechen. Beachten Sie bitte zudem, dass in der Klausur keinerlei Hilfsmittel zugelassensind (keine handschriftlichen Unterlagen, keine Bücher, keine Taschenrechner,etc.)!1. Aufgabe Ergänzen Sie die fehlenden Darstellungen der jeweiligen Zahlen. Binär Dezimal Hexadezimal 0110111 25 2A2. Aufgabe Wandeln Sie die folgenden negativen dezimalen Zahlen in die 2er-Komplementdarstellung um. Diebinäre 2er-Komplement-Zahlen soll hierbei aus insgesamt 7 Bitstellen bestehen. Dezimal Binäre 2er-Komplement -1 -12 -33
  2. 2. 3. Aufgabe Führen Sie folgende Additionen/Subtraktionen im binären Zahlensystem durch. Wandeln Sie also vorder eigentlichen Addition/Subtraktion die Dezimalzahlen in entsprechende Binärzahlen (gegebenenfalls2er-Komplementdarstellung) um. Die Binärzahlen sollen hierbei 8 Stellen besitzen. Operation Rechnung im (vorzeichenbehafteten) Binärformat 12 - 34 -33 + 23 -40 - 214. Aufgabe Gegeben sein ein Prozessor ohne Pipelining, der seine Instruktionen in 6 Phasen abarbeitet. Wie vieleInstruktionen verarbeitet der Prozessor pro Sekunde, wenn er mit einer Taktfrequenz von 1,2 GHz (1 GHz =109 Hz) getaktet wird und jede Phase genau einen Taktzyklus benötigt? Jetzt soll der Prozessor seine Befehle im Pipeline-Betrieb verarbeiten. Wie viele Instruktionen kann derProzessor jetzt pro Sekunde (bei gleicher Taktfrequenz) im günstigsten Fall abarbeiten?5. Aufgabe Nennen Sie zwei gebräuchliche Block-Austauschstrategien bei Cache-Speichern und erläutern Sie diesekurz.6. Aufgabe Was ist ein Branch-Delay-Slot bei Prozessoren?7. Aufgabe Gegeben sei ein Prozessor mit Pipelining, der unter optimalen Bedingungen eine Instruktion pro Taktfertigstellen kann. Bei einer Messung wurde aber unter realen Bedingungen festgestellt, dass bei 5% derausgeführten Instruktionen ein Pipeline-Stall von 2 Takten und in 10% der Fälle ein Pipeline-Stall von einem1 Takt auftritt. Wie viele Instruktionen pro Sekunde arbeitet der Prozessor im Durchschnitt ab?
  3. 3. 8. Aufgabe Gegeben sei das folgende Programm für den RUN10000. Der Prozessor beginnt seineProgrammausführung mit der Anweisung 0. 0 addi r1, r0, 0 1 addi r2, r0, 255 2 add r3, r0, r1 3 or r3, r3, r1 4 addi r1, r1, 1 5 ble r1, r2, -2 6 halt Welche Werte sind in den Register r1, r2 und r3 gespeichert, wenn der Prozessor den halt-Befehlterreicht hat? Wie oft wird die Sprunganweisung „ble r1, r1, -2“ verarbeitet? Wie oft verzweigt derProzessor dabei? Wie oft führt er die direkt nachfolgende Anweisung („halt“) durch?9. Aufgabe Gegeben sei ein System mit dem Prozessor RUN10000, welcher ein Programm abarbeiten soll. DerDatenspeicher habe vor Beginn der Programmabarbeitung den nachfolgenden Inhalt (alle Werte außerhalbdes Adressbereichs 200 bis 204 seien 0): Adresse Speicherinhalt Speicherinhalt Vorher nachher … 0 200 10 201 20 202 30 203 40 204 50 … 0 Der Prozessor führe nun ein Programm beginnend mit der Anweisung an Adresse 0 aus: 0 addi r1, r0, 0 1 addi r2, r0, 5 2 add r3, r0, r0 3 load r4, 200(r1) 4 add r3, r3, r4 5 addi r1, r1, 1 6 store r3, 199(r1) 7 ble r1, r2, -4 8 halt Welche Werte stehen in den Register r1, r2, r3 und r4, wenn der Prozessor die „halt“-Anweisungerreicht hat? Welche Werte stehen in den Speicherstellen 200 bis 204 im Datenspeicher?
  4. 4. 10. Aufgabe Wandeln Sie die folgende Java-Programmsequenz in ein entsprechendes Maschinenprogramm für denRUN10000 um. int i; int sum = 0; for (i = 10; i < 1000; i += i) sum += i; Speichern Sie in dem Programm die Variable „i“ im Register r1 und die Variable „sum“ im Register r2.Diese Variablen müssen nicht zusätzlich im Speicher abgelegt werden.11. Aufgabe Bedeutung haben die Begriffe „Klasse“ und „Instanz“ bei objektorientierten Programmiersprachen?12. Aufgabe Welche Ausgabe erzeugt die folgende Java-Programmsequenz auf dem Bildschirm: int i = 2; int sum = 0; for ( ; i < 1000; i += i) ; // Achtung! sum += i; System.out.println(sum); Wie oft wird die Java-Anweisung „sum += i“ in dieser Programmsequenz ausgeführt?13. Aufgabe Erzeugen Sie eine Programmsequenz, die das Ergebnis der mathematische Formelberechnet.
  5. 5. 14. Aufgabe Gegeben sei die nachfolgende Klassendefinition: class Test { int[] value = null; Test(int i) { this.value = new int[i]; for (int j = 0; j < i; j++) this.value[j] = 2; } int calc(Test t) { int sum = 0; for (int i = 0; i < this.value.length; i++) sum += this.value[i] + t.value[i]; } } Basierend auf diesem Klassen-Code wurde nun ein Hauptprogramm erstellt, welches die folgendeProgrammsequenz enthält: Test a(5); Test b(5); System.out.println(a.calc(b)); Welche Ausgabe erzeugt diese Programmsequenz auf dem Bildschirm? Was passiert, wenn man dieSequenz etwas abändert (siehe unten) und laufen lässt? Test a(5); Test b(6); // Achtung: Änderung in dieser Zeile System.out.println(a.calc(b));15. Aufgabe Erweitern Sie die aus der Vorlesung bekannte Klasse Rational so, dass der ganzzahlige Anteil einesBruchs separat gespeichert werden kann. Somit soll es also möglich sein den Bruch als abzulegen. DieKlasse braucht hierbei nur positive Zahlen verarbeiten zu können! Erweitern Sie zunächst die Member-Definition in geeigneter Weise: class Rational { // Neue Member // bitte hier einfügen int num; int denom; … }
  6. 6. Erstellen Sie als nächstes eine Methode „normalize“ für die Klasse Rational, die die aktuelle InstanzRational so umrechnet, dass der ganzzahlige Anteil maximal wird. So soll z.B. eine Zahl inumgewandelt werden. void normalize () { }In allen nachfolgenden Aufgabenteilen kann nun die Methode „normalize“ genutzt werden. Ergänzen Sie die beiden unten angegebenen Konstruktoren, so dass die neuen Member passendinitialisiert werden. Achten sie dabei darauf, dass nach Beenden der Konstruktoren der ganzzahlige Anteilmaximal und der Code möglichst kompakt ist! Rational () { num = 0; denom = 1; } Rational (int n, int z) { num = n; denom = z; } Erstellen Sie als nächstes eine Methode „mult“ für die Klasse Rational. Die Methode soll als Parametereine Instanz vom Typ Rational übergeben bekommen und das (mathematisch korrekte) Produkt aus deraktuellen Instanz mit dem Parameter berechnen, wobei das Ergebnis in die aktuelle Instanz ablegt werdensoll. Stellen Sie sicher, dass der ganzzahlige Anteil am Ende der Methode maximal ist. void mult ( ) // Ergänzen sie auch den { // Methodenkopf! } Erstellen Sie als nächstes eine Routine „output“, die den Wert der aktuellen Instanz geeignet auf demBildschirm ausgibt. So soll z.B. eine Zahl als „2+7/8“ auf den Bildschirm geschrieben werden.
  7. 7. void output () { } Erzeugen Sie schließlich eine Programmsequenz „test“, die die Berechnung mit Hilfe derKlasse Rational ausführt und das Ergebnis auf den Bildschirm ausgibt. public static void test () { }
  8. 8. Anhang A: Kurzbeschreibung des Prozessors RUN1000 Achtung: Die Beschreibung fehlt noch!

×