IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Приближенные вычисления, задача на Паскале
real888
сообщение 12.01.2006 14:00
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Разработать алгоритм и программу вычисления приближенного значения суммы
x-1/x + (x-2)2/2x2 + (x-3)3/3x3 +… С заданной точностью Е (0,1>=E>=0.0001).
Вычисления следует прекратить, когда очередной элемент ряда , включаемый в сумму не превышает точность Е.
Точность Е и Х (Х-действительное число Х>0,5) уст. пользователем. Наложить верхнее ограничение на значение Х.

Кто знает напишите на Паскале или помогите чем можете

Это название было тоже не ахти информативным, я исправил, в следующий раз будь внимательней и прочти правила форума

Спасибо в следующий раз учту

Сообщение отредактировано: volvo - 2.11.2006 17:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 12.01.2006 14:01
Сообщение #2


Гость






Принцип - здесь:
Разложение функции в ряд

+ Поиск по форуму...
 К началу страницы 
+ Ответить 
klem4
сообщение 12.01.2006 14:02
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Исользуй поиск "приближенные вычисления", "приближенное вычисления фуекции"
подобные задачи решались неоднократно

+ FAQ : как разложить ф-ю в ряд ?

Volvo Опередил ;)

Сообщение отредактировано: klem4 - 12.01.2006 14:02


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
real888
сообщение 12.01.2006 14:15
Сообщение #4





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


А вот этот знак ^ это степень?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 12.01.2006 14:16
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
А вот этот знак ^ это степень?

угу ..

отвечать по форме!!!
Не угу а так точно! smile.gif


Сообщение отредактировано: Altair - 12.01.2006 21:08


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
real888
сообщение 1.02.2006 10:02
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


я написал так, но работает не очень, подправте если знаете

Код
uses crt;
var
sum,x,e:real;
i,j:integer;
c: char;
buf:array[1..2] of real;
begin
textcolor(red);
repeat
Begin
{$I-}
clrscr;
repeat
clrscr;
settextbuf(input, buf);
write('Vvedite chislo x ot 0.5 do 5.5 ');
readln(x);
until ((ioresult=0)and(x>0.5)and(x<5.5));
i:=1;sum:=0;
Begin
e:=(x-i)/x;
for j:=1 to (i-1) do
Begin
e:=e*e;
end;
e:=e/i;
sum:=sum+e;
i:=i+1;
end;
writeln('sum= ', sum:3:3);
write(#13#10);
writeln('dlya vihoda najmite "N"');
writeln('dlya prodoljeniya lubaya klavisha');
c:=readkey;
end;
until (c=#110);
end.


Сообщение отредактировано: volvo - 1.02.2006 11:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 11:01
Сообщение #7


Гость






Цитата
работает не очень
- это не определение... Что именно не работает?

P.S. Теги это не для тебя? Ты избранный?
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 11:32
Сообщение #8


Гость






Подсказка:
как ты думаешь, что будет вычислено в этой части программы, при I = 3 ?
e:=(x-i)/x;
for j:=1 to (i-1) do
Begin
e:=e*e;
end;
 К началу страницы 
+ Ответить 
real888
сообщение 1.02.2006 18:17
Сообщение #9





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


volvo ты любишь давать намеки, если ты знаешь как исправить напиши пожалуйста
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 1.02.2006 18:18
Сообщение #10


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Он описался немного, не при i=3, а при i=1, у тебя получается цикл
for j := 1 to 0 ...

Сообщение отредактировано: klem4 - 1.02.2006 18:19


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 18:21
Сообщение #11


Гость






Я не люблю решать за кого-то задачу полностью !!! Подсказать, где кроется ошибка - это одно, а дать отлаженное готовое решение - СОВСЕМ другое.

klem4, давай не будем говорить от моего имени! mad.gif

Внимательно смотрим на приведенный фрагмент и видим, что при I = 3 получается не E^3 (как задумывалось) а E^4... Дальше объяснять?
 К началу страницы 
+ Ответить 
klem4
сообщение 1.02.2006 18:25
Сообщение #12


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Опс.. извиняюсь unsure.gif , тогда получается в этом месте тоже ошибка ....


i:=1; sum := 0;
Begin
e:=(x-i)/x;
for j:=1 to (i-1) do

ps теги pascоde и b лагать вместе начали ;(


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
real888
сообщение 2.02.2006 11:10
Сообщение #13





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


у меня еще вопрос. Как сделать чтобы точность Е тоже вводил пользователь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 2.02.2006 13:57
Сообщение #14


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Код
var
  e:real;
...
WriteLn('Введите точность:');
ReadLn(e);
...


Сообщение отредактировано: Ozzя - 2.02.2006 13:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
real888
сообщение 3.02.2006 17:10
Сообщение #15





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


да это понятно, только что с этой точностью, что без нее результат одинаковый
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 3.02.2006 19:02
Сообщение #16


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ну так если ты ее вводишь, то вычислять - то ее уже не надо .. а вообще если ты все правильно сделал и результат одинаковый, то это хорошо ..)


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 3:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"