Другие языки программирования и технологии

помогите написать программу pascal

Набрать и отладить программу вычисления суммы последовательности вида 1^1+2^2... n^n. program z9; uses crt ; var a,b,n,f,d,c:integer; begin read (n); for b:=1 to n do begin a:= b ^b; if a=1 then f:=a else f:=f+a; end; write (f); end. выдает ошибку : переменная не является указателем
$ cat summ.​pas
var i, j, n: integer; s: longint = 0; p: longint = 0;
begin
write('n: '); read(n);
for i := 1 to n do
begin
{ Вычисляем частное произведение }
p := 1;
for j := 1 to i do
p := p * i;
{ Добавляем его в сумму }
s := s + p;
end;
writeln('s = ', s);
end.​

$ fpc summ.​pas
Free Pascal Compiler version 2.​4.​0 [​2010/05/05] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for i386
Compiling summ.​pas
Linking summ
/usr/bin/ld: warning: link.​res contains output sections; did you forget -T?
14 lines compiled, 0.​7 sec

$ for i in {1.​.​6} ; do echo $i | .​/summ ; done
n: s = 1
n: s = 5
n: s = 32
n: s = 288
n: s = 3413
n: s = 50069
Денис Смотрицкий
Денис Смотрицкий
96 718
Лучший ответ
а что за 1>>>^<<<1 ?? если под ^ подразумевается возведение в степень, то так:
function pow(n, p: Integer): Integer;
begin
if p=0 then n:=1 else
while p>0 do
begin
n:=n*n;
Dec(p);
end;
pow:=n;
end;
var a,b,n,f:integer;
begin
read(n);
for b:=1 to n do begin
a:=pow(b, b);
if a=1 then f:=a else f:=f+a;
end;
write (f);
end.
В паскале нет оператора возведения в степень. Мне не удается написать здесь код, поэтому как это обойти написал в своем блоге.
Ща проверю на паскальдроиде и скажу что не так. Про своему пишешь не таК. Ща
Иван Морев
Иван Морев
15