91er Funktion

Jun 2002
03

91er Funktion

proc P91( in X : nat; out Y : nat)
begin
if X > 100
then
Y := X – 10;
else call P91(X + 11, U);
call P91(U, Y);
end;
end.

Solche schönen Prozeduren lernt man vermutlich nur im Informatik-Studium kennen :)

Preisfrage, woher hat diese Funktion ihren Namen?

Kommentare (6):

#1 Tim → http://www.blackshirt.de

Ich muß immer grinsen, wenn ich ein end mit einem Punkt dahinter sehe. Woher kriegste denn das ‘U’?

#2 Flo

Das U ist die out-Variable. Wollte eigentlich ne bessere Version posten, hab aber nichts gefunden. Die hier ist direkt aus dem Skript

#3 Tim → http://www.blackshirt.de

Irgendwie finde ich den Code (irgend son Pseudopascal, oder?) unübersichtlich. Gehört der rekursive Aufruf P91(U,Y); zum else-Block? Muß wohl, da sonst nirgends ein ‘U’ definiert ist.

Oder anders: Ist die math. Funktion entweder:

a) f(x) =
x – 10 für x > 100
f( f(x + 11) ) für x < = 100 oder b) f(x) = f(x - 10) für x >100
f( f(x + 11) ) für x <= 100 Ich tippe auf a) und daß hinterher als Y-Wert 91 ausgegeben wird. Oder daß die Rekursion 91 Stufen hochgeht. Ooooder ich sitze einfach auf meinem Kopf und bin gerade zu doof zum Denken. Wird wohl das wahrscheinlichste sein. ;)

#4 Flo

kann dich beruhigen, du bist nicht zu doof zum denken: Antwort a) ist richtig, egal welcher Wert (<100), es kommt immer 91 raus.

PseudoPascal klingt cool :)

#5 Tim → http://www.blackshirt.de

Eine Methode, die immer 91 zurückliefert hätte ich einfacher gelöst. ;)

Also sauberes Pascal isses zumindest nicht.

#6 Jan → http://www.gaystation.de

wer denkt sich n son müll aus :)