• Keine Ergebnisse gefunden

Praktische Informatik I WS 1999/2000

N/A
N/A
Protected

Academic year: 2022

Aktie "Praktische Informatik I WS 1999/2000"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universität Mannheim

Lehrstuhl für Praktische Informatik IV Professor Dr. W. Effelsberg

Praktische Informatik I WS 1999/2000

Übungsblatt 1 Ausgabe: Mi, 27.10.99 Abgabe: Di, 02.11.99, 18 Uhr

Aufgabe 1: Rechneraufbau [10 Punkte]

In Abbildung 1 sehen Sie eine sogenannte „Random Access Machine“ (RAM). Der Prozes- sor der RAM kann Programme verarbeiten, die in der „Random Access Language“ (RAL) geschrieben sind. Die Basisaktionen, die der Prozessor versteht, sind in Tabelle 1 zusammen- gefaßt.

Programm Prozessor

Speicherzellen Akkumulator

9 8 7 6 5 4 3 2 1

. ..

Abbildung 1: Random Access Machine

Jede Speicherzelle (auch der Akkumulator) kann eine Ganzzahl beliebiger Länge speichern.

Jede Speicherzelle besitzt eine eindeutige Adresse mit der sie angesprochen werden kann. Der Akkumulator ist eine spezielle Speicherzelle, mit deren Hilfe der Prozessor Rechenbefehle ausführen kann.

Befehl Argument Bedeutung

LDA X lade den Akkumulator mit dem Inhalt der Speicherzelle X

LDI X lade den Akkumulator (indirekt) mit dem Inhalt der Speicherzelle, deren Adresse (Nummer) in der Speicherzelle X steht

STA X speichere den Inhalt des Akkumulators in Speicherzelle X

STI X speichere den Inhalt des Akkumulators (indirekt) in die Speicherzelle, deren Adresse (Nummer) in der Speicherzelle X steht

ADD X addiere den Inhalt von Speicherzelle X zum Akkumulator hinzu SUB X subtrahiere den Inhalt von Speicherzelle X vom Akkumulator JMP Z Springe zum Befehl mit der Nummer Z

JMZ Z Springe zum Befehl mit der Nummer Z, falls Akkumulator = 0

HLT Beende das Programm

Tabelle 1: Die Sprache RAL

Ein Programm besteht aus einer Folge von durchnummerierten Befehlen. Die Befehle werden sequentiell abgearbeitet. Nur durch die Sprungbefehle JMP und JMZ, die angeben,mit welchem Befehl der Prozessor weitermachen soll, kann diese Abarbeitungsreihenfolge durchbrochen werden. Den Akkumulator indirekt mit LDI X zu laden bedeutet nicht den Inhalt von X zu

1

(2)

holen, sondern den Inhalt von X (nehmen wir einmal an es ist Y) als Adresse zu interpretieren und auf diese Stelle zuzugreifen (also quasi LDA Y auszuführen). STI funktioniert analog dazu.

(a) [7 Punkte] Was macht das Programm unten mit der danebenstehenen Speicherbelegung?

(Geben Sie für die ersten zwanzig Schritte jeweils die Belegung des Akkumulators und der Speicherzellen 1 bis 4 an.

1. LDI 3 1 01

2. ADD 2 2 00

3. STA 2 3 05

4. LDA 3 4 10

5. SUB 4 5 12

6. JMZ 11 6 07

7. LDA 3 7 02

8. ADD 1 8 25

9. STA 3 9 18

10. JMP 1 10 04

11. HLT 11 17

(b) [3 Punkte] Wieviele Schritte führt das Programm insgesamt aus, bevor es beendet wird?

Angenommen in der Speicherzelle 4 steht zu Anfang des Programmes n. Geben Sie die Anzahl der ausgeführten Programmschritte in Abhängigkeit von n an.

Aufgabe 2: Java-Programmierung [10 Punkte]

In dieser Aufgabe sollen Sie die Unterschiede zwischen einer Application und einem App- let herausarbeiten sowie Erfahrungen im Umgang mit dem Abstract Window Toolkit (AWT) sammeln.

Anmerkung: Um die Korrektur der Aufgaben zu erleichtern, benutzen Sie bitte den Klassen- namenAufgabe<#><?>. Dabei steht<#> für die Nummer des Übungsblatts und<?> für die Aufgabennummer. Daraus ergibt sich automatisch, daß die Datei mit dem Quelltext Ihres Programmes den Namen Aufgabe<#><?>.javaerhält. Für Unteraufgabe (a) sollen Sie beispielsweise den KlassennamenAufgabe2abenutzen.

(a) [3 Punkte] Schreiben Sie ein Programm (Application), welches den Initialbuchstaben Ih- res Namens mit „*“ schreibt. Benutzen Sie zur Ausgabe die Methodeprintln(..)der KlasseSystem.out. Für den Buchstaben „A“ soll die Ausgabe beispielsweise folgen- dermaßen erfolgen:

* *

* *

******

* *

* ***

(b) [3 Punkte] Schreiben Sie nun das Programm so um, daß die Ausgabe mit Hilfe der MethodedrawString(..)aus der Klasse Graphics erfolgt.

(c) [4 Punkte] Schreiben Sie nun die beiden Programme aus den vorherigen Teilaufgaben so um, daß diese als Applet in einem Web-Browser oder mit dem Applet-Viewer laufen.

Wo erfolgt die Ausgabe der „Print-Statements“, wenn ein Web-Browser zur Ausführung benutzt wird?

Anmerkung: Benutzen Sie bitte die KlassennamenAufgabe2caundAufgabe2cb.

2

Abbildung

Abbildung 1: Random Access Machine

Referenzen

ÄHNLICHE DOKUMENTE

Das Programm muß die folgenden Kommandozeilenparameter erwarten: (1) Die zu verwendende Blockgröße N als Integerzahl, (2) Dateiname der Datei, die den Schlüssel S enthält (Format:

Hier ein Beispiel für einen Kommandozeilenaufruf und der Ergebnisausgabe des von Ihnen zu entwickelnden

In den nachfolgenden beiden Zeilen muß die Position des Ausgangs angegeben werden (zuerst die Zeile, dann die Spalte). Ursprung des Koordinatensystems (0,0) ist die linke obere Ecke

Entwickeln Sie einen Algorithmus, der einen Weg aus einem Labyrinth sucht, und implemen- tieren Sie den Algorithmus in einem Java-Programm (unter Umständen gibt es mehrere Lösun-

Speichern Sie alle drei Klassen in der Datei AdressenListeVListe.java (dieses ist möglich, da nur eine Klasse public deklariert wurde) und geben Sie Ihre Implementierung per abox

Wenn es zutrifft, daß, wenn ich Dienstag nicht arbeite, ich zwar Montag nicht, jedoch am Donnerstag arbeite, dann arbeite ich am Sams- tag?. Wenn ich Dienstag arbeite, dann arbeite

Wenn es zutrifft, daß, wenn ich Dienstag nicht arbeite, ich zwar Montag nicht, jedoch am Donnerstag arbeite, dann arbeite ich am Sams- tag.. Wenn ich Dienstag arbeite, dann arbeite

Schreiben Sie eine statische main-Methode, die eine rudimentäre Kommandosprache zum Zu- griff auf die Zahlen im Baum ermöglicht. In dieser Sprache gibt es die folgenden