Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> y=ln(x+1)=x-(x^2)/2+(x^3)/3-(x^4)/4.... Программа на Turbo pascal 
V
    Опции темы
abcx
Дата 2.7.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.7.2006

Репутация: нет
Всего: нет



Люди помогите написать программу на Паскале вот условия...

Не используя стандартные функции, вычислить с точностью eps>0

y=ln(x+1)=x-(x^2)/2+(x^3)/3-(x^4)/4....((-1n)^n-1)/n...

Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps; все последующие слагаемые можно уже не учитывать. Вложенные циклы не использовать.

Спасибо!


M
volvo877
abcx, в следующий раз давай теме нормальный заголовок!
 

Это сообщение отредактировал(а) volvo877 - 2.7.2006, 15:08
PM MAIL   Вверх
Zero
Дата 2.7.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(abcx @  2.7.2006,  13:50 Найти цитируемый пост)
помогите написать программу

Ты имеешь, виду написать полностью с нуля... Для этого есть раздел Центр помощи
А если что то конкретно не получается то поясни.
В общем случае, тут можно использовать итерационные циклы. 
PM MAIL ICQ   Вверх
Palladin
Дата 2.7.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



Может так: smile

Код

Program RooR;
var
y,x,eps:real;
begin
eps:=1;
n:=1;
x:=1;
repeat
n:=n+1;
y:=x-((exp(n*ln(x)))/n);
Writeln('y=',y:3:3);
until abs(y)<eps;
end.


P.S. Может это вообще неправильно, меня просто Volvo совсем с толку сбил, я раньше такие задания по другому решал smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
volvo877
Дата 2.7.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



RooR, во-первых, я никого с толку не сбиваю, я просто приводил правильный вариант решения... Если это посетителям форума НЕ нравится - я предоставляю ТЕБЕ отвечать на вопросы и давать НЕВЕРНЫЕ варианты...

Как, например, тот, что ты дал выше: ты не обратил внимание, что по условию задан ЗНАКОПЕРЕМЕННЫЙ ряд (плюс чередуется с минусом)? А почему ты это предпочел не заметить, не объяснишь?

P.S. Заодно расскажи, откуда берется X у тебя в решении... Там, где НЕ надо, ты запрашиваешь ввод значений. Там, где значения НУЖНО вводить - ты (интересно, почему? Специально, чтобы запутать???) это значение не вводишь.

Вот мой вариант (последнюю строку можно убрать, она просто проверяет точность решения):

Код
var
  n: integer;
  eps, X, P, S: real;
begin
  write('X = '); readln(X);
  write('Eps = '); readln(eps);

  S := X;
  P :=X;
  n := 1;
  repeat
    inc(n);
    P := - P*X;
    S := S + P/n;
  until Abs(P/n) < eps;

  Writeln('s = ', S:10:5);
  writeln('test: ln(x + 1) = ', ln(x + 1):10:5);
end.
 

Это сообщение отредактировал(а) volvo877 - 2.7.2006, 15:07
PM MAIL   Вверх
Palladin
Дата 2.7.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



Volvo спасибо за данную мне возможность давать не верные ответы на вопросы!!!

А по поводу того что ты сбил меня с толку, дак это так и естьsmile меня учили решать такие задачи не так как тебя, оказалось что меня не правильно учили smile


Volvo а прога то хоть правильно пашет, ничего не хочу скачать такого, но 
x^2 это же вроде как икс в квадрате, а дальше идёт икс в 3 потом в 4 и т.д. ты вроде как, этого не делаеш smile  у тебя икс всегда одно и тоже число smile    

Может так надо было:

Код

var
n: integer;
y,eps,x,p:real;
begin
   Write('Vvedite X:');
    Readln(x);
   Write('vvedite EPS:');
    Readln(eps);
y:=x;
n:=1;
  repeat
    inc(n);
    p:=(-1)*((exp(n*ln(x)))/n);
    y:=y+(-1)*((exp(n*ln(x)))/n);
 until Abs(p) < eps;
     Writeln('Y=',y:10:5);
     Writeln('Test: ln(x + 1) = ', ln(x + 1):10:5);
     Readln;
end.


P.S. Volvo, Только не бейsmile    

Это сообщение отредактировал(а) RooR - 2.7.2006, 20:16


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
abcx
Дата 3.7.2006, 03:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.7.2006

Репутация: нет
Всего: нет



Цитата(Zero @ 2.7.2006,  13:45)
Цитата(abcx @  2.7.2006,  13:50 Найти цитируемый пост)
помогите написать программу

Ты имеешь, виду написать полностью с нуля... Для этого есть раздел Центр помощи
А если что то конкретно не получается то поясни.
В общем случае, тут можно использовать итерационные циклы.

Да с нуля, вот я же привел теск всей задачи, вот так она и звучит smile 
PM MAIL   Вверх
abcx
Дата 3.7.2006, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.7.2006

Репутация: нет
Всего: нет



Цитата(volvo877 @ 2.7.2006,  14:49)
RooR, во-первых, я никого с толку не сбиваю, я просто приводил правильный вариант решения... Если это посетителям форума НЕ нравится - я предоставляю ТЕБЕ отвечать на вопросы и давать НЕВЕРНЫЕ варианты...

Как, например, тот, что ты дал выше: ты не обратил внимание, что по условию задан ЗНАКОПЕРЕМЕННЫЙ ряд (плюс чередуется с минусом)? А почему ты это предпочел не заметить, не объяснишь?

P.S. Заодно расскажи, откуда берется X у тебя в решении... Там, где НЕ надо, ты запрашиваешь ввод значений. Там, где значения НУЖНО вводить - ты (интересно, почему? Специально, чтобы запутать???) это значение не вводишь.

Вот мой вариант (последнюю строку можно убрать, она просто проверяет точность решения):

Код
var
  n: integer;
  eps, X, P, S: real;
begin
  write('X = '); readln(X);
  write('Eps = '); readln(eps);

  S := X;
  P :=X;
  n := 1;
  repeat
    inc(n);
    P := - P*X;
    S := S + P/n;
  until Abs(P/n) < eps;

  Writeln('s = ', S:10:5);
  writeln('test: ln(x + 1) = ', ln(x + 1):10:5);
end.

Спасибо, это точно правильный ответ!
Спасибо.
 
PM MAIL   Вверх
Palladin
Дата 3.7.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



Этот вариант правильнее будет:

Код

var
n: integer;
y,eps,x,p:real;
begin
   Write('Vvedite X:');
    Readln(x);
   Write('vvedite EPS:');
    Readln(eps);
y:=x;
n:=1;
  repeat
    inc(n);
    p:=(-1)*((exp(n*ln(x)))/n);
    y:=y+(-1)*((exp(n*ln(x)))/n);
 until Abs(p) < eps;
     Writeln('Y=',y:10:5);
     Writeln('Test: ln(x + 1) = ', ln(x + 1):10:5);
     Readln;
end.




 незнаю чего он тебе не подошёл, у тебя в задании степень икса должна увеличиватся, а в примере Volvo это не делается, ну вообщем как знаеш smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
volvo877
Дата 3.7.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



RooR, ты СНАЧАЛА разберись, а ПОТОМ критикуй!   smile 
Вот это по-твоему, что?

Цитата(volvo877 @  2.7.2006,  14:49 Найти цитируемый пост)
Код

    P := - P*X;

 
PM MAIL   Вверх
abcx
Дата 3.7.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 2.7.2006

Репутация: нет
Всего: нет



Цитата(RooR @ 3.7.2006,  13:22)
Этот вариант правильнее будет:

Код

var
n: integer;
y,eps,x,p:real;
begin
   Write('Vvedite X:');
    Readln(x);
   Write('vvedite EPS:');
    Readln(eps);
y:=x;
n:=1;
  repeat
    inc(n);
    p:=(-1)*((exp(n*ln(x)))/n);
    y:=y+(-1)*((exp(n*ln(x)))/n);
 until Abs(p) < eps;
     Writeln('Y=',y:10:5);
     Writeln('Test: ln(x + 1) = ', ln(x + 1):10:5);
     Readln;
end.




 незнаю чего он тебе не подошёл, у тебя в задании степень икса должна увеличиватся, а в примере Volvo это не делается, ну вообщем как знаеш smile

Извини RooR smile

Просто тот вариант очень изящный smile к тому удовлетворяет условию (НЕ ИСПОЛЬЗОВАТЬ СТАНДАРТЫЕ ФУНКЦИИ)
а у тебя и exp и ln  smile

Я думаю ты самокритичен smile 
  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0730 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.