Помощь - Поиск - Пользователи - Календарь
Полная версия: Ещё задачка
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
StudentTNGU
Наконец-то все решил. Почти.. Вот осталась эта задачка. Я пытался делать по примеру, но в примере тока плюсы и там проще.. А в задании сложнее. Че то я немного не понял... Поскажите как?
Вычислить сумму первых n членов ряда 1 - 1/1 + 1/3 - 1/5 +...
Help me please..
Гость
Извините за такую наглость smile.gif)
volvo
StudentTNGU, это - знакопеременный ряд... Так что, придется хранить знак очередного элемента...

s := 1; sign := -1;
for i := 0 to n - 1 do
s := s + (sign / (2 * i + 1));
sign := - sign;
end;
StudentTNGU
Цитата(volvo @ 4.12.2006 14:48) *

s := 1; sign := -1;
for i := 0 to n - 1 do
s := s + (sign / (2 * i + 1));
sign := - sign;
end;


volvo спасибо. А s и sign объявлять как Integer? или Real?
volvo
S само собой - вещественного, ибо есть деление, а Sign достаточно чтобы был Integer... Хотя нет, даже ShortInt подойдет (один байт экономия) smile.gif
StudentTNGU

Program summa_n;
Var i, n, sign: Integer;
s: Real;
Begin
s:=1; sign:=-1;
for i:=0 to n-1 do
begin
s:= s + (sign/(2*i+1));
sign:=-sign;
end;
Writeln('Summa elementov ryada ravna: ',s);
Readln;
end.


вот. Надеюсь все верно? а то что он выдает 1.000000000000E+00 это нормально? так и должно быть?
klem4
Цитата
Надеюсь все верно?


А n-то у тебя чему равно ?

Цитата
а то что он выдает 1.000000000000E+00 это нормально?


Это нормально smile.gif В экспоненциальной форме просто, поставь

Writeln('Summa elementov ryada ravna: ',s:5:3);
Гость
Цитата(klem4 @ 4.12.2006 16:07) *

А n-то у тебя чему равно ?

не знаю.... а чему оно должно быть равно?
StudentTNGU

Program summa_n;
Var i, n, sign: Integer;
s: Real;
Begin
Writeln('Vvedite kol-vo elementov ryada');
Readln(n);
s:=1; sign:=-1;
for i:=0 to n-1 do
begin
s:= s + (sign/(2*i+1));
sign:=-sign;
end;
Writeln('Summa elementov ryada ravna: ',s:5:3);
Readln;
end.


Вот! Сделал как в примере. Работает. Вроде правильно?
Гость

Program summa_n;
Var i, n, sign: Integer;
s: Real;
Begin
Writeln('Vvedite kol-vo elementov ryada');
Readln(n);
s:=1; sign:=-1;
for i:=0 to n-1 do
begin
s:= s + (sign/(2*i+1));
sign:=-sign;
end;
Writeln('Summa elementov ryada ravna: ',s:5:3);
Readln;
end.


Это точно решение этой задачи Вычислить сумму первых n членов ряда 1 - 1/1 + 1/3 - 1/5 +... ???
volvo
Ну, давай еще раз 15 переспросим dry.gif
А это ТОЧНО то, что тебе нужно? Может у тебя задание другое, и ты его неправильно прочел?
StudentTNGU
Понятно... smile.gif Я на другом форуме по турбо паскалю тоже попросил помочь с этой задачкой. Там мне написали код. Вот он:

for i:=1 to n do
begin
if i mod 2 =0
then buf:=-1/i
else buf:=1/i;
summ:=summ+buf;
end;

buf, summ: real;
i: word;


Он совсем другой и результаты работы получаются разные... Кому верить? Как правильно?
klem4
А провести ручной расчет и убедиться что на другом форуме тебя обманули не судьба ?

Пуск -> Программы -> Стандартные -> Калькулятор

удачи.
мисс_граффити
или головой подумать, что в задании про четные знаменатели вообще ни слова нет....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.