Форум проекта SMath
»
SMath Studio
»
Ошибки
»
Странная ошибка в связке while - breake
Статус: Member
Группы: Registered
Зарегистрирован: 18.09.2012(UTC) Сообщений: 10
Сказал(а) «Спасибо»: 63 раз Поблагодарили: 1 раз в 1 постах
Вот 2 примера программы. Взято с сайта Ю.М.Пахоменкова.
Игрался с алгоритмом Ремеза и решением нелинейной системы.
Смотреть надо модуль p_nsolve.
Когда оба условия выхода из цикла обьединены в while(|e|>0.0001 ^ ii<100) то все работает.
Если же убрать (|e|>0.0001) и поставить в конец цикла [ if (|e|>0.0001) continue else break] ,
то программа перестает работать с непонятными сообшением об ошибке "Argument must be scalar",
иногда выскакивает что-то об ошибке в типах и предложение обратиться к разработчикам.
Smath 0.96b4868.
Отредактировано пользователем 7 июня 2013 г. 22:45:59(UTC)
| Причина: Не указана
Статус: Member
Группы: Registered
Зарегистрирован: 18.09.2012(UTC) Сообщений: 10
Сказал(а) «Спасибо»: 63 раз Поблагодарили: 1 раз в 1 постах
Со странным поведением оператора break разобрался. Не заметил ошибку - в операторе if условием была abs(eps), где еps-был вектор а не скаляр. поставил if ((norme(eps)<=0.001) и все заработало, как надо. То есть выходит, что if проверяет тип операнда на правильность, а while, в комбинации с еще одним условием - не всегда. Это очень похоже на ошибку или недосмотр.
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Спасибо! Обязательно посмотрю. С уважением, Андрей Ивашов.
Форум проекта SMath
»
SMath Studio
»
Ошибки
»
Странная ошибка в связке while - breake
Быстрый переход
Форум проекта SMath
SMath Studio
- Скачать SMath Studio
--- Архив
--- Ночные сборки
- Примеры использования
- Вопросы по использованию
- Предложения
- Ошибки
Математика
- Документы
- Алгоритмы
- Математические задачи
Общение
- О проекте
- Общение
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.