Einzelnen Beitrag anzeigen

any_key

Registriert seit: 7. Okt 2005
96 Beiträge
 
Delphi 7 Personal
 
#1

a^n über repascal berechnen

  Alt 8. Dez 2007, 11:58
aloah,
ich bereite mich gerade auf eine klausur vor. diese klausur ist eigentlich über assembler, aber als zwischenform zwischen pascal und assembler wurde uns noch repascal gegeben.
in diesem repascal wollte ich jetzt zu übungszwecken a^n berechnen.
dafür bin ich (durch ausprobieren der bedingung) auf diese lösung gekommen:
Delphi-Quellcode:
Label M;
var a ,n ,b , accu : integer;
BEGIN
{ Anweisungen in RePas: }
  RePasEingabe(a);
  RePasEingabe(n);
  Accu := a;
  b := Accu;

M: Accu := b;
   Accu := Accu * a;
   b := Accu;
   Accu := n;
   Accu := Accu - 1;
   n := Accu;
   IF NOT n <= -3 then GOTO M;

  RePasAusgabe(b);
END;
allerdings erscheint es mir als vollkommen unlogisch, dass bei der bedingung n <= -3 ein richtiges ergebnis ausgegeben wird.
dazu habe ich sogar schon probiert die schleife komplett selbst durchzurechnen, aber dafür bekomme ich dann immer zahlen raus, die viel größer sind als das eigentliche ergebnis.
kann mir vllt. jemand erklären, wie das sein kann, dass hier das richtige ergebnis raus kommt?
  Mit Zitat antworten Zitat