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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 14:53   #1
chargosman
 
Регистрация: 09.01.2009
Сообщений: 6
По умолчанию вроде более менее понимаю паскаль.. но как предел писать не знаю(((

http://imageshost.ru/links/2f7661c39...9fc5da2f698560
chargosman вне форума Ответить с цитированием
Старый 09.01.2009, 15:27   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Нужно искать значения функции, пока разность соседних значений не станет меньше e.
Вот набросал, но хорошо бы знать ответ для сравнения. У меня получается ~0.4134
И еще не уверен на счет шага изменения икса. Думаю, если кто знает точно - поправит.

Код:
uses crt;
var
x,e,y1,y2 : double;
iter : longint;
begin
clrscr;
x := 1;
write('Vvedite e: ');
readln(e);
y2 := ((sin(x)/cos(x))-sin(x))/(sin(x)*sin(x));
iter := 0;
repeat
 x := x - e;
 inc(iter);
 y1 := y2;
 y2 := ((sin(x)/cos(x))-sin(x))/(sin(x)*sin(x));
until abs(y2-y1)<=e;
writeln(y2:7:4);
writeln('Iterations: ',iter);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.01.2009, 15:31   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Нужно искать значения функции, пока разность соседних значений не станет меньше e.
Вот набросал, но хорошо бы знать ответ для сравнения. У меня получается ~0.4134
И еще не уверен на счет шага изменения икса. Думаю, если кто знает точно - поправит.
А устремился ли x при этом к 0? это значение получается для х ~0.63
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 09.01.2009, 15:31   #4
chargosman
 
Регистрация: 09.01.2009
Сообщений: 6
По умолчанию

все равно большое спасибо)
chargosman вне форума Ответить с цитированием
Старый 09.01.2009, 15:33   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

alex_fcsm Поэтому и сказал, что не уверен на счет шага ) Может, вы знаете как правильно?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.01.2009, 15:42   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Начинать надо не с 1 а хотя бы с 0.5
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 09.01.2009, 16:10   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Изменил немного. Вроде что-то получается.
При малых значениях e (например, 0.000001) нужно запастись терпением.
Код:
uses crt;
var
x,e,y1,y2: double;
iter : longint;
begin
clrscr;
x := 0.5;
write('Vvedite e: ');
readln(e);
y2 := ((sin(x)/cos(x))-sin(x))/(sin(x)*sin(x));
iter := 0;
repeat
 x := x - e/100;
 inc(iter);
 y1 := y2;
 y2 := ((sin(x)/cos(x))-sin(x))/(sin(x)*sin(x));
until (abs(y2-y1)<=e) and (abs(x)<=e);
writeln(y2:20:17);
writeln('x = ',x:10:7);
writeln('Iterations: ',iter);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.01.2009, 16:23   #8
chargosman
 
Регистрация: 09.01.2009
Сообщений: 6
По умолчанию

спасибо)) щас буду разбираться))
chargosman вне форума Ответить с цитированием
Старый 10.01.2009, 12:24   #9
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Изменил немного. Вроде что-то получается.
При малых значениях e (например, 0.000001) нужно запастись терпением.
Если синус не считать по 4 раза за итерацию, то можно "запастись не таким большим терпением".
... А вообще при e = 0.000001 это выполняется меньше секунды.

Последний раз редактировалось Somebody; 10.01.2009 в 12:28.
Somebody вне форума Ответить с цитированием
Старый 10.01.2009, 16:00   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Somebody
Цитата:
Если синус не считать по 4 раза за итерацию, то можно "запастись не таким большим терпением".
Ну это уже к вопросам оптимизации. Я просто предупредил.
Цитата:
А вообще при e = 0.000001 это выполняется меньше секунды.
У кого секунда, а у кого - десять. Не у всех же стоят супербыстрые компы.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю как работать с функциями. Миша Помощь студентам 4 26.12.2008 12:20
Даже не знаю в какую тему писать ryton Фриланс 12 06.06.2008 13:30
Как сделать более точные координаты мышки xGroupers Общие вопросы Delphi 7 24.04.2008 23:02
Delphi. Не понимаю как решить задачу. EVIL Помощь студентам 3 21.10.2007 01:12