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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2008, 21:58   #1
Extrem_um
 
Регистрация: 01.04.2008
Сообщений: 8
По умолчанию Цикл с заданным числом повторений

Для заданного Х, числа слагаемых или n вычислить следующее:

S=2*(x+X^3\3+x^5\5+x^7\7+...+x^2n+1 \(2n+1)), x<1


Помогите пожалуйста, то я воще ничего не понимаю в програмировании((
Extrem_um вне форума Ответить с цитированием
Старый 01.04.2008, 23:33   #2
cheldonec
Пользователь
 
Регистрация: 31.03.2008
Сообщений: 10
По умолчанию

procedure aaaaa;
var
i,n:integer;
a,s,x:real;
begin

if n=0 then
begin
s:=2*x;
вывод результата
end;
if n=1 then
begin
s:=2*(x+(exp((3)*ln(x))/3));
вывод резудьтата
end;
if n > 1 then
begin
s:=x;
for i:= 1 to n-1 do
begin
s:=s + (exp((2*i+1)*ln(x))/(2*i+1));
end;
s:=2*s;
вывод результата
end;

пояснения:
a^b = exp(ln(a^b)) = exp(b*ln(a))
причём по условию x<0
это на delphi (паскаль)
можно и по другому, просто первое в голову пришло

Последний раз редактировалось cheldonec; 01.04.2008 в 23:43. Причина: нашел ошибку
cheldonec вне форума Ответить с цитированием
Старый 02.04.2008, 08:44   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Приведенный выше код содержит массу ошибок и неверных суждений.
Нам нужно найти сумму ряда, выраженного формулой
S=2*(x+X^3/3+x^5/5+x^7/7+...+x^(2n+1)/(2n+1)), при x<1.
Мы должны рассмотреть два варианта, когда х>0 и x<0, поскольку логарифм отрицательных чисел считается не так, как положительных.
Кроме того n не может быть рано 0, т.к. это количество слагаемых, если их нет , то и S=0; Зачем отдельно считать при n=1? Почему i:=1 to n-1, и так далее.
Привожу нормальный пртестированный код.
Код:
uses crt;
var x,x1,S,s1:real;
    n,i:integer;
begin
clrscr;
write('Vvedite x<1 x=');
readln(x);
write('Vvedite n=');
readln(n);
if x>0 then
  begin
  s1:=0;
  for i:=1 to n do
  s1:=s1+exp((2*i+1)*ln(x))/(2*i+1);
  end
else if x<0 then
   begin
  s1:=0;x1:=abs(x);
  for i:=1 to n do
  s1:=s1-exp((2*i+1)*ln(x1))/(2*i+1);
  end;
S:=2*s1;
Writeln('S=',S:6:4);
readln
end.
puporev вне форума Ответить с цитированием
Старый 02.04.2008, 21:00   #4
Extrem_um
 
Регистрация: 01.04.2008
Сообщений: 8
По умолчанию

спасибо большое, завтра попробую сдать))
Extrem_um вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив без повторений Uzenec Помощь студентам 2 17.01.2008 08:23
массив с заранее неизвестным числом элементов Var17 Общие вопросы Delphi 4 29.12.2007 08:20
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
Суммирование ячеек с заданным шагом valerij Microsoft Office Excel 10 10.10.2007 00:22