Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2009, 22:16   #1
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию Помогите найти сумму....

Помогите добить задачку....что то не выходит...выдает математическую ошибку при проверке...

найти сумму n элементов бесконечного ряда с
y=-4+8-16+32-64.....
вот код:
var i,j,zn,n:integer;
s:real;
begin
clrscr;
writeln;
writeln('naiti summy elementov riada: y=-4+8-16+32-64...');
writeln('');
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);
s:=1;
for i:=1 to n do begin
zn:=1;
for j:=1 to i+1 do begin
zn:=zn*(-1);
end;
s:=s+(-zn*(exp(1+i)*ln(2)));
end;
writeln('summa ryada s=',s:3:0);
readln;
end.
malova вне форума Ответить с цитированием
Старый 28.08.2009, 23:26   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Зачем вам два цикла? Зачем что-то в степень возводите?
Код:
uses crt;
var i,j,n:integer;
s:real;
begin
clrscr;
writeln;
writeln('naiti summy elementov riada: y=-4+8-16+32-64...');
writeln('');
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);
s:=0;
j := -4;
for i:=1 to n do
 begin
 s := s + j;
 j := j*(-2);
 end;
writeln('summa ryada s=',s:3:0);
readln;
end.
А можно просто посчитать как сумму членов геометрической прогрессии:
Код:
uses crt;
var i,n:integer;
s,j:real;
begin
clrscr;
writeln;
writeln('naiti summy elementov riada: y=-4+8-16+32-64...');
writeln('');
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);

j := exp(n*ln(2));
if odd(n) then j := -j;
s := (-4)*(j-1)/(-3);

writeln('summa ryada s=',s:3:0);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 28.08.2009 в 23:32.
Sazary вне форума Ответить с цитированием
Старый 28.08.2009, 23:48   #3
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию

Спасибо за быстрый ответ.....

Подскажите пожалуйста, а если ряд:у=-(1/2-2/5)+(2/3+4/10)-(3/4-8/15), то ка в данном случае организовать работу цикла?
malova вне форума Ответить с цитированием
Старый 29.08.2009, 00:23   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
uses crt;
var i,n:integer;
s,a,b:real;
zn : integer;
begin
clrscr;
writeln;
writeln('naiti summy elementov riada: y=-(1/2-2/5)+(2/3+4/10)-(3/4-8/15)...');
writeln('');
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);

s := 0;
a := -2;
b := 5;
zn := -1;
for i:=1 to n do
 begin
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 end;

writeln('summa ryada s=',s:7:4);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.08.2009, 13:46   #5
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Код:
uses crt;
var i,n:integer;
s,a,b:real;
zn : integer;
begin
clrscr;
writeln;
writeln('naiti summy elementov riada: y=-(1/2-2/5)+(2/3+4/10)-(3/4-8/15)...');
writeln('');
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);

s := 0;
a := -2;
b := 5;
zn := -1;
for i:=1 to n do
 begin
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 end;

writeln('summa ryada s=',s:7:4);
readln;
end.
а как сделать чтоб задача была с помощью repeat...until?
заранее благодарю....
malova вне форума Ответить с цитированием
Старый 29.08.2009, 14:21   #6
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Тоже самое, только поменять цикл:

Код:
i:=1;
repeat
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 i:=i+1;
 until i:=n
Gapro вне форума Ответить с цитированием
Старый 29.08.2009, 14:22   #7
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

упс, не так, а вот так:

Код:
i:=1;
repeat
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 i:=i+1;
 until i=n;
Gapro вне форума Ответить с цитированием
Старый 29.08.2009, 18:11   #8
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию

Благодарю! спасибо за помощь!!!!
malova вне форума Ответить с цитированием
Старый 29.08.2009, 22:00   #9
malova
Пользователь
 
Аватар для malova
 
Регистрация: 15.04.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Gapro Посмотреть сообщение
упс, не так, а вот так:

Код:
i:=1;
repeat
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 i:=i+1;
 until i=n;
Почему то выдает ошибку при n=1?
И ответы выдает не правильные???
malova вне форума Ответить с цитированием
Старый 30.08.2009, 07:03   #10
havok
Пользователь
 
Аватар для havok
 
Регистрация: 24.08.2009
Сообщений: 42
По умолчанию

вот так попробуйте
Код:
i:=1;
repeat
 s := s + zn*(i/(i+1)+(a/b));
 zn := zn*(-1);
 a := a*(-2);
 b := b+5;
 i:=i+1;
 until i>n;
icq 580047636 You're WELCOME!!!
havok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму ряда 11111 Помощь студентам 14 01.11.2010 19:55
Помогите найти алгебрасическую сумму!на паскале vdv08 Помощь студентам 4 07.11.2008 00:19
найти сумму элементов строки jenja Общие вопросы Delphi 2 02.04.2008 17:49
Найти сумму ряда с точностью Е=10^-3 Добрый Кот Паскаль, Turbo Pascal, PascalABC.NET 2 12.12.2007 12:04