Другие языки программирования и технологии
помогите написать программу 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
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
а что за 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.
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.
В паскале нет оператора возведения в степень. Мне не удается написать здесь код, поэтому как это обойти написал в своем блоге.
Ща проверю на паскальдроиде и скажу что не так. Про своему пишешь не таК. Ща
Похожие вопросы
- помогите написать программу Pascal строки
- Люди помогите написать программы для Pascal очень срочно и очень нужно
- Помогите написать программу в PASCAL!!!
- Помогите написать программу в Pascal abc net
- Помогите написать программы по Pascal ABC
- помогите написать програмку (Pascal)!)
- Помогите написать программу со switch в СИ
- Помогите написать программу на pascal'е
- Помогите написать программу на Pascal Срочно
- Помогите Написать программу (на Pascal) для решения квадратного уравнения.