Официальный сайт студ.городка НГТУ
Программирование и БД » Помогите с Паскалем... 

#1  29.11.06 15:11

Помогите с Паскалем...

Нужно "Написать программу, которая вычисляет сумму первых N членов последовательности     ((-1)^(n-1))/(n^n). Число N программа должна запрашивать у пользователя.Использовать логарифмические вычисления запрещается"

Написал как смог, а дальше не могу додумать до конца:

var
n,m,k1,k2:longint;
i,j:integer;
summa:real;
begin
  k1:=1;
  k2:=1;
  summa:=0;
  Writeln;
  Write('Vvedite 4islo 4lenov posledovatelnosti: ');
  Read(n);
  m:=1;

  while m<=n do
    begin
    for i:=1 to m-1 do
    begin
      k1:=(-1)*k1;
      end;
    for j:=1 to m do
      begin
      k2:=k2*n;
      end;
      summa:=summa+k1/k2;
      m:=m+1;
      k1:=-1;
      k2:=1;
     end;
      writeln('summa: ',summa);
end.

помогите исправить ошибку((

Offline

#2  29.11.06 17:25

Maq
Профиль

Re: Помогите с Паскалем...

чет у тебя вс сложно)))
надо наверное так:

Код: Pascal:

var
i, n: integer;
summa: real;
begin
  summa := 0;
  Writeln;
  Write('Vvedite 4islo 4lenov posledovatelnosti: ');
  Read(n);
  for i := 1 to n do
  begin
    summa := summa + ((-1)^(i-1))/(i^i);
  end;
  writeln('summa: ', summa);
end.

эм... только не помню есть ли '^' в паскале.... если не канает, то может есть функция powerв юните Math, накройняк можно написать свою))
типа:

Код: Pascal:

function pow(const Base, Exponent: Integer): LongInt;
begin
  Result := Base;
  for i := 1 to Exponent do
    Result := Result * Result;
end;

тогда конечный результат такой:

Код: Pascal:

var
i, n: integer;
summa: real;
 
function pow(const Base, Exponent: Integer): LongInt;
begin
  Result := Base;
  for i := 1 to Exponent do
    Result := Result * Result;
end;
 
begin
  summa := 0;
  Writeln;
  Write('Vvedite 4islo 4lenov posledovatelnosti: ');
  Read(n);
  for i := 1 to n do
  begin
    summa := summa + pow(-1, i-1)/pow(i, i);
  end;
  writeln('summa: ', summa);
end.

З.Ы. паскаль не помню, только в делфе щас работаю, так что могу ошибаться кое-где:)))

Offline

#3  29.11.06 18:28

Re: Помогите с Паскалем...

Не, в паскале '^' в смысле возведения в степень нету.
Этот символ по-моему значит разыменование указателя, типа '*' в С.
Так что пиши функцию pow и используй ее.

Offline

#4  30.11.06 00:02

Re: Помогите с Паскалем...

Maq, да да так не получится!!(((

Offline

#5  30.11.06 01:13

Maq
Профиль

Re: Помогите с Паскалем...

zver, эм... почему?

Offline

#6  30.11.06 04:51

Re: Помогите с Паскалем...

Да есть в паскале "^" такая штука сто пудова это в Си нету, Maqa  прога должно работать, ну или может быть не большие синтаксические ошибки, компилятор покажет там не трудно.

Offline

#7  30.11.06 13:12

Re: Помогите с Паскалем...

Maq, функция не правельно работает
Filin, наоборот, в Си вроде есть ^, в паскале нету

Исправлено zver (30.11.06 13:20)

Offline

#8  30.11.06 13:37

Re: Помогите с Паскалем...

Ни в С, ни в Паскале '^', как операции возведения в степень, НЕТ.
В них вообще нет такой операции. Это же вам не математические языки, типа Fortran'a.

Offline

#9  30.11.06 13:59

Re: Помогите с Паскалем...

^ есть в бейсике.

Код::

var i,j,n:integer;
     a,b:extended; 
begin
 readln(n);
 a:=0;
 for i:=1 to n do
 begin
  b:=1;
  for j:=1 to i do
  begin
   b:=b*j;
  end;
  if (i mod 2=0) then a:=a-1/b else a:=a+1/b;
 end;
end.

Вроде должно работать.

Offline

#10  30.11.06 19:13

Re: Помогите с Паскалем...

Rastaman, спасибо, не прет

Offline

#11  30.11.06 21:38

Re: Помогите с Паскалем...

Maq написал(а):

Вполне правильный вариант, только насколько я понял pow это функция возведения в степень то должно быть так

Код: pascal:

function pow(const Base, Exponent: Integer): LongInt;
begin
  Result := Base;
  for i := 1 to Exponent do
    Result := Result * Base;
end;

Исправлено СнегаН (30.11.06 21:39)

Offline

#12  30.11.06 23:33

Re: Помогите с Паскалем...

function pow(const Base, Exponent: Integer): LongInt;
begin
  Result := 1;
  for i := 0 to Exponent do
    Result := Result * Base;
end;

имхо, так лучше

Offline

Программирование и БД » Помогите с Паскалем... 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.101 сек.
Выполнено 11 запросов.