LOOP Programm < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Zeigen Sie, dass die Funktion [mm] exp(x,y)=x^y [/mm] LOOP berechenbar ist. |
Hallo,
und zwar habe ich dazu folgendes LOOP-Programm geschrieben:
Seien [mm] x_1=x [/mm] und [mm] x_2=y [/mm] die Benutzereingaben.
[mm] P_{12};P_{13}
[/mm]
[mm] P_{12}:=x_4=x_1-1
[/mm]
[mm] P_{13}:=x_5:= [/mm] LOOP [mm] x_4 [/mm] DO [mm] P_2 [/mm] END
[mm] P_2:=LOOP x_1 [/mm] DO [mm] P_3 [/mm] END
[mm] P_3:=x_3:=x_1+1
[/mm]
Da ich mein Programm ja abgeben muss, möchte ich nicht unbedingt alles zeigen. Dieses Teilstück berechnet meiner Ansicht nach von [mm] x_1*...*x_y [/mm] das Teilergebnis [mm] x_1*x_2.
[/mm]
Frage zur Syntax:
Es ist erlaubt, einer Variablen einen Wert der Form [mm] x:=x_1+c [/mm] zuzuweisen, wobei c eine Konstante ist. Demnach wäre die Zuweisung [mm] x:=x_1+x_2 [/mm] nicht korrekt, oder? Ebenso die Zuweisung einer Zahl, die durch eine Schleife berechnet wurde, ist nicht erlaubt:
[mm] x_1=LOOP x_2 [/mm] DO [mm] P_2 [/mm] END, ist also falsch?
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:20 Mo 16.04.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Das kleine Python Programm löst das angegebene Problem.
Ich hoffe, das hilft Dir weiter. Du solltest detailierter angeben,
was man mit LOOP machen kann (ein Link?) ...
def exp(x, y):
""" calculates x*x*x* .... n times """
k = x
y -= 1
while y > 0:
k = k * x
y = y - 1
return k
assert exp(2,3) == 8
assert exp(5,3) == 125
|
|
|
|