Algorithmen und Programmierung II |
SS 2004 |
| Probeklausur Dauer: 180 Minuten Zum Bestehen sind 20 von 40 Punkten zu erreichen. |
Vom Eise befreit sind StromDer Prozedurkopf soll so aussehen:
und Bäche durch des Frühlings
holden, belebenden Blick.
|<---------- 29 ----------->|
static char[][] umbrechen(char[] t, int l)
Die Aufgabe soll systematisch mit schrittweiser Verfeinerung
gelöst werden. Es muss kein
zusammenhängender Prozedurrumpf angegeben werden. (Für
die Bewertung der Lösung ist die Qualität des
Verfeinerungsvorgangs ausschlaggebend.) float nullstelle(float a, float b){
/* Vor.: eps>0, a<b, g(a)<0, g(b)>0; g stetig.
* Eff.: |g(result)|<eps ,’a < result < ’b .
*/
float x, gx;
float ga = g(a); float gb = g(b);
do {x = (a*gb – b*ga) / (gb - ga);
gx = g(x);
if (gx*ga > 0) {a = x; ga = gx;}
else {b = x; gb = gx;}}
while(Math.abs(gx) > eps);
return x;
}
Wandeln Sie diese Schleife durch systematische Programmtransformation
in einenullstelle :: Float -> Float -> Floateps::Float und die Funktion g::Float->Float seien bereits definiert.
-- a b
Aufgabe 3 (9 Punkte)
class EVListe {Implementieren Sie innerhalb der Klasse EVListe eine effiziente Methode umdrehen zum „Umdrehen“ der Reihenfolge der Listenelemente. Die Variable naechster des letzten Listenelementes enthält null.
Knoten erster = null;
void einfuegen(Knoten k) {
k.naechster = erster;
erster = k;
}
void umdrehen() {
// zu implementieren
}
}
class Knoten {
Knoten naechster = null;
int wert;
Knoten(int wert) { this.wert = wert; }
}
a[b[i]] = c < d ? b[i] : xa) (3 P) Zeigen Sie durch Angabe eines Syntaxbaums, dass der Ausdruck syntaktisch korrekt ist. Verwenden Sie die Grammatik in der Anlage.
| 1. |
double[] a = {1.0, 2.0}; char[] b = {0, 1}; int i = 1; double x = 4; byte c = 1; long d = 2; |
2. |
int[] a = {1,
2}; char[] b = {0, 0}; byte i = 0; double x = 4; int c = 1; int d = 2; |
| 3. |
int[] a = {1, 2}; double[] b = {0.5, 0.7}; int i = 0; byte x = 4; int c = 4; int d = 2; |
4. |
long[] a = {1, 2}; int[] b = {0, 1}; byte i = 1; long x = 4; long c = 5; int d = 7; |