1

Тема: Підрахунок сумми чисел,сетпінь наступного на 1 більше

Маємо формулу
S=a+a^2+a^3+a^4+....+a^n.
Ось,намагався зробити,проте в 9 рядку видає помилку "Ожидался порядковый тип". Підкажіть будь-ласка у чому проблема.

program xxx;
var s,a,i,n : real;
Begin
writeln('введіть зміну');
readln(a);
writeln('введіть максимальне значення степеня');
readln(n);
s:=0;
for i:=1 to n do
begin
s:=s+exp(i*ln(a));
end;
writeln(s);
end.

2

Re: Підрахунок сумми чисел,сетпінь наступного на 1 більше

var s,a,i,n : real;

real - це змінна з плаваючою змінною. Вам слід:
1. Задати i,n як integer;
2. Перевіряти a>0, якщо використовуєте exp. Або поступити по-православному і використати натомість power().

3

Re: Підрахунок сумми чисел,сетпінь наступного на 1 більше

Bartash написав:
var s,a,i,n : real;

real - це змінна з плаваючою змінною. Вам слід:
1. Задати i,n як integer;
2. Перевіряти a>0, якщо використовуєте exp. Або поступити по-православному і використати натомість power().

Дякую,вже зрозумів,що було не так, перевірку а поки що не добавляв,але ось що вийшло(може комусь знадобиться)(3 способи)


program xxx;
var s,a : real;
    i,n : integer;
Begin
writeln('введіть зміну');
readln(a);
writeln('введіть максимальне значення степеня');
readln(n);
s:=0;
for i:=1 to n do
begin
s:=s+exp(i*ln(a));
end;
writeln(s);
end.
program xxx;
var s,a : real;
     i,n : integer;
Begin
writeln('введіть зміну');
readln(a);
writeln('введіть максимальне значення степеня');
readln(n);
s:=0;
i:=1;
while i<=n do
begin
begin
s:=s+exp(i*ln(a));
end;
i:=i+1;
end;
writeln(s);
end.
program xxx;
var s,a : real;
     i,n : integer;
Begin
writeln('введіть зміну');
readln(a);
writeln('введіть максимальне значення степеня');
readln(n);
s:=0;
i:=1;
repeat 
begin
s:=s+exp(i*ln(a));
end;
i:=i+1;
until i>n; 
writeln(s);
end.

4

Re: Підрахунок сумми чисел,сетпінь наступного на 1 більше

magnevitis, ліпше таки використати power замість exp, імго. Тоді і перевірку не доведеться ставити.