1 | \documentclass[a4paper,12pt]{article}
|
---|
2 | \usepackage{javakurs}
|
---|
3 | \usepackage[utf8]{inputenc}
|
---|
4 |
|
---|
5 | \begin{document}
|
---|
6 | \MemoType{"Ubung}
|
---|
7 | \MemoDesc{Interfaces}
|
---|
8 | \input{../footer.inp}
|
---|
9 |
|
---|
10 | \aufgabe{Skalierung und Verschiebung}
|
---|
11 |
|
---|
12 | \teilaufgabe{Wie sieht der Output der folgenden Zeilen aus?}
|
---|
13 |
|
---|
14 | % This file was converted to LaTeX by Writer2LaTeX ver. 0.4b
|
---|
15 | % see http://www.hj-gym.dk/~hj/writer2latex for more info
|
---|
16 | \documentclass[12pt,twoside]{article}
|
---|
17 | \usepackage[ascii]{inputenc}
|
---|
18 | \usepackage[T1]{fontenc}
|
---|
19 | \usepackage[ngerman,english]{babel}
|
---|
20 | \usepackage{amsmath,amssymb,amsfonts,textcomp}
|
---|
21 | \usepackage{color}
|
---|
22 | \usepackage{calc}
|
---|
23 | \usepackage{hyperref}
|
---|
24 | \hypersetup{colorlinks=true, linkcolor=blue, filecolor=blue, pagecolor=blue, urlcolor=blue}
|
---|
25 | % List styles
|
---|
26 | \newcommand\liststyleWWviiiNumix{%
|
---|
27 | \renewcommand\labelitemi{[F0B7?]}
|
---|
28 | \renewcommand\labelitemii{o}
|
---|
29 | \renewcommand\labelitemiii{[F0A7?]}
|
---|
30 | \renewcommand\labelitemiv{[F0B7?]}
|
---|
31 | }
|
---|
32 | % Pages styles (master pages)
|
---|
33 | \makeatletter
|
---|
34 | \newcommand\ps@Standard{%
|
---|
35 | \renewcommand\@oddhead{}%
|
---|
36 | \renewcommand\@evenhead{}%
|
---|
37 | \renewcommand\@oddfoot{[Warning: Draw object ignored]}%
|
---|
38 | \renewcommand\@evenfoot{\@oddfoot}%
|
---|
39 | \setlength\paperwidth{8.5in}\setlength\paperheight{11in}\setlength\voffset{-1in}\setlength\hoffset{-1in}\setlength\topmargin{0.9839in}\setlength\headheight{12pt}\setlength\headsep{0cm}\setlength\footskip{12pt+0.0909in}\setlength\textheight{11in-0.9839in-0.5in-0cm-12pt-0.0909in-12pt}\setlength\oddsidemargin{0.9839in}\setlength\textwidth{8.5in-0.9839in-0.9839in}
|
---|
40 | \renewcommand\thepage{\arabic{page}}
|
---|
41 | \setlength{\skip\footins}{0.0398in}\renewcommand\footnoterule{\vspace*{-0.0071in}\noindent\textcolor{black}{\rule{0.25\columnwidth}{0.0071in}}\vspace*{0.0398in}}
|
---|
42 | }
|
---|
43 | \makeatother
|
---|
44 | \pagestyle{Standard}
|
---|
45 | \title{Rechen{}- und Kommunikationszentrum der RWTH Aachen}
|
---|
46 | \begin{document}
|
---|
47 | \clearpage\pagestyle{Standard}
|
---|
48 | {\selectlanguage{ngerman}\sffamily\bfseries
|
---|
49 | \"Ubungsblatt 5: Wettrennen}
|
---|
50 |
|
---|
51 |
|
---|
52 | \bigskip
|
---|
53 |
|
---|
54 | {\selectlanguage{ngerman}
|
---|
55 | \textsf{Es soll zun\"achst eine (abstrakte) Basisklasse
|
---|
56 | }\textsf{\textbf{\textit{Fortbewegungsmittel }}}\textsf{geschrieben
|
---|
57 | werden, um der Tatsache gerecht zu werden, dass gemeinsame
|
---|
58 | Eigenschaften vorliegen. Diese Klasse soll dann als Oberklasse f\"ur
|
---|
59 | andere Klassen dienen. Ein Fortbewegungsmittel soll folgende (nicht
|
---|
60 | public) Attribute und Methoden haben:}}
|
---|
61 |
|
---|
62 | \liststyleWWviiiNumix
|
---|
63 | \begin{itemize}
|
---|
64 | \item {\selectlanguage{ngerman}\sffamily
|
---|
65 | aktuelle Position position in km (wir fahren in nur einer Dimension)}
|
---|
66 | \item {\selectlanguage{ngerman}\sffamily
|
---|
67 | Maximalgeschwindigkeit maxSpeed}
|
---|
68 | \item {\selectlanguage{ngerman}\sffamily
|
---|
69 | Einen Konstruktor der die Maximalgeschwindigkeit \"ubergeben bekommt und
|
---|
70 | diese direkt festlegt. Diese soll auch nicht mehr ge\"andert werden.}
|
---|
71 | \item {\selectlanguage{ngerman}\sffamily
|
---|
72 | Eine Methode zum Aktualisieren der Position, d.h. dort wird jeweils nur
|
---|
73 | die aktuelle Ver\"anderung der Position \"ubergeben.}
|
---|
74 | \item {\selectlanguage{ngerman}\sffamily
|
---|
75 | Getter{}-Methoden f\"ur die maximale Geschwindigkeit und die Position.
|
---|
76 | Sie k\"onnen auch ohne diese Methoden auskommen, wenn Sie die Attribute
|
---|
77 | geeignet sichtbar machen.}
|
---|
78 | \item {\selectlanguage{ngerman}\sffamily
|
---|
79 | Eine abstrakte Methode um ein Fahren zu simulieren. Die Methode hat die
|
---|
80 | Parameter Geschwindigkeit und Zeit. Die Geschwindigkeit darf nicht
|
---|
81 | gr\"o{\ss}er sein als die Maximalgeschwindigkeit und muss ggf.
|
---|
82 | angepasst werden. Achtung, eine negative Geschwindigkeit ist nicht
|
---|
83 | vorgesehen. R\"uckw\"artsfahren ist also nicht m\"oglich. Auch eine
|
---|
84 | Geschwindigkeit von Null, also stehenbleiben ist nicht zul\"assig. In
|
---|
85 | diesen F\"allen soll eine eigene Exception geworfen werden (eine
|
---|
86 | sogenannte FahrException, welche aus der Klasse RuntimeException
|
---|
87 | abgeleitet werden soll). Die Methode wird mit einer bestimmten Zeit in
|
---|
88 | Minuten aufgerufen. Das Fortbewegungsmittel soll sich entsprechend der
|
---|
89 | Geschwindigkeit die angegebene Zeit bewegen und sich nat\"urlich dann
|
---|
90 | seine neue Position merken. Achtung, eine negative Zeit ist nicht
|
---|
91 | vorgesehen. Auch eine Zeit von Null ist nicht zul\"assig. In diesen
|
---|
92 | F\"allen soll wieder die eigene Exception geworfen werden. }
|
---|
93 | \end{itemize}
|
---|
94 | {\selectlanguage{ngerman}\sffamily
|
---|
95 | Nun sollen konkrete Fortbewegungsmittel definiert werden. Leiten Sie
|
---|
96 | diese jeweils von der obigen Klasse ab. Konkret sind anzulegen:}
|
---|
97 |
|
---|
98 | \liststyleWWviiiNumix
|
---|
99 | \begin{itemize}
|
---|
100 | \item {\selectlanguage{ngerman}\sffamily
|
---|
101 | eine Klasse Fahrrad mit max. 40 km/h}
|
---|
102 | \item {\selectlanguage{ngerman}\sffamily
|
---|
103 | eine Klasse Porsche mit max. 190 km/h (wegen der Winterreifen {\dots})}
|
---|
104 | \item {\selectlanguage{ngerman}\sffamily
|
---|
105 | eine Klasse Krankenwagen mit max. 160 km/h (wegen der Patienten
|
---|
106 | {\dots})}
|
---|
107 | \end{itemize}
|
---|
108 |
|
---|
109 | \bigskip
|
---|
110 |
|
---|
111 | {\selectlanguage{ngerman}\sffamily
|
---|
112 | Jedes der 3 Fortbewegungsmittel muss einen Konstruktor haben (Achtung,
|
---|
113 | Konstruktoren werden nicht vererbt), der die spezielle
|
---|
114 | Maximalgeschwindigkeit festlegt. Au{\ss}erdem muss die Fahrmethode
|
---|
115 | implementiert werden. Der Krankenwagen hat zudem eine Methode, um das
|
---|
116 | Blaulicht ein{}- oder auszuschalten. Wenn der Krankenwagen schneller
|
---|
117 | als 50km/h fahren soll, muss vorher das Blaulicht eingeschaltet werden
|
---|
118 | und ein {\quotedblbase}Tat\"u\"utata`` auf dem Bildschirm ausgegeben
|
---|
119 | werden. F\"ahrt er wieder langsamer m\"ussen Sie das Blaulicht
|
---|
120 | ausschalten mit der Bemerkung {\quotedblbase}Nix tat\"u\"utata``.
|
---|
121 | Sollte beim Porsche die Maximalgeschwindigkeit erreicht werden, soll
|
---|
122 | ein {\quotedblbase}Ich bin der Held.`` zu sehen sein.}
|
---|
123 |
|
---|
124 |
|
---|
125 | \bigskip
|
---|
126 |
|
---|
127 | {\selectlanguage{ngerman}\sffamily
|
---|
128 | Starten Sie nun die Fahrt folgenderma{\ss}en: In der main{}-Methode
|
---|
129 | erzeugen Sie je ein Fahrrad, Porsche und Krankenwagen. Die angestrebten
|
---|
130 | Geschwindigkeiten der Fahrer sind 20 (Fahrrad), 200 (Porsche) und 80
|
---|
131 | (Krankenwagen). Alle Fahrzeuge sollen eine Stunde fahren, wobei das
|
---|
132 | Fahrrad 8,5 Stunden und der Krankenwagen 82,5 Minuten Vorsprung
|
---|
133 | bekommen. Fangen Sie eventuelle Exceptions. }
|
---|
134 |
|
---|
135 |
|
---|
136 | \bigskip
|
---|
137 |
|
---|
138 | {\selectlanguage{ngerman}\sffamily
|
---|
139 | Was wird wohl das Ergebnis sein (vom leeren Tank bei Porsche und
|
---|
140 | Krankenwagen und einem v\"ollig ersch\"opften Fahrradfahrer mal
|
---|
141 | abgesehen)?}
|
---|
142 | \end{document}
|
---|