Собственно, где ошибка? 
Код:
program stepfor;
  {$APPTYPE CONSOLE}
 
uses
  SysUtils;
Var
    a, b, i: integer;
    p, k:real;
 
 
Begin
  writeln ('vvedite osnovanie stepeni a');
  readln(a);
  writeln ('vvedite pokazatel stepeni b');
  readln(b);
  i:=0;
  p:=1;
    while i<=b do
      begin
        p:=p*a;
        i:=i+1;           {   1*a    1*a^2    1*a^3 ...........................}
      end;
  writeln ('otvet= ',p:3:3);
readln;
End.
-- 22.10.2014, 23:10 --А, разобрался, там надо было перед циклом положить 
Код:
i:=1;
-- 22.10.2014, 23:20 --Хорошо, но вот если степень отрицательная, то после цикла while можно добавить условие: 
Код:
 if b<0 then
           p:=1/(p*a);
А вот в цикле repeat until такая штука не прокатывает 
Код:
    i:=0;
    p:=1;
    repeat
      i:=i+1;
      p:=p*a;
    until i=b;
       if b<0 then
                p:=1/(p*a);
Там зацикливание начинается?