|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2012, 20:11 | #1 |
Регистрация: 16.09.2012
Сообщений: 7
|
Помогиет найти ошибку в коде.
Писал прогу по следующим алгоритмам, но результаты совершенно разные, хотя решают одну и туже задачу. На С++ пишу 1-й раз, подскажите, где допускаю ошибки.
Код:
|
16.09.2012, 21:21 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 16.09.2012 в 21:33. |
16.09.2012, 21:48 | #3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Если уж на то пошло, то сигнум лучше так записывать:
Код:
Также goto по-хорошему бы заменить на цикл while. А для чисел с плавающей точкой надо использовать не abs, а fabs. Навскидку несоответствий не нашел.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
16.09.2012, 21:58 | #4 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
А проблема у Вас, скорее всего, как раз в модулях чисел: функция abs применяется только с целочисленными аргументами, то есть abs(-5.5634)=abs(5)=5;
Нужно менять: Код:
Код:
UPD. Ну вот, уже и ответили
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
16.09.2012, 22:23 | #5 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Приводить к float-у необязательно (даже не стоит):
Код:
Код:
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
16.09.2012, 22:32 | #6 |
Регистрация: 16.09.2012
Сообщений: 7
|
cпасибо большое, про fabs не знал.
|
16.09.2012, 22:41 | #7 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Если на то пошло,
Код:
|
16.09.2012, 23:04 | #8 |
Регистрация: 16.09.2012
Сообщений: 7
|
изменение abs на fabs ничего не поменяло, результаты все равно значительно отличаются. Мб до нужной точности сравнение не происходит? И еще в Turbo C++ и Visual Studio выдает разные результаты))
Последний раз редактировалось sinh; 16.09.2012 в 23:06. |
17.09.2012, 01:52 | #9 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Ищите багу. Подставьте получающиеся результаты в выражение x = phi(x), чтобы узнать, считает ли хотя бы одна правильно. Выводите на экран все промежуточные значения, чтобы проверить вручную хотя бы первые несколько итераций. Замените функцию на какую-нибудь попроще - например, на phi(x) = 2*x (ответ - x = 0). И так далее.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
17.09.2012, 13:10 | #10 |
Регистрация: 16.09.2012
Сообщений: 7
|
Тему можно закрывать.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти ошибку в коде,С++ ! | Aaaaaa111 | Помощь студентам | 1 | 16.02.2012 11:10 |
Помогите найти ошибку в коде ( С++ ) | nexUS1 | Помощь студентам | 1 | 29.12.2009 01:09 |
помогите найти ошибку в коде | xaero93 | Помощь студентам | 4 | 20.04.2009 16:05 |
Помогите найти ошибку в коде! | alex2008ean | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 27.12.2008 18:31 |