![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
SkyRideR |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здраствуйте, вот модуль его задача перевести радианы в градусы и если косинус равен 0 значению тангенса должно быть присвоено -100, но на практике выводит совсем другое, не могу понять в чём дело, если не трудно помогите
unit math; |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Не понял... Зачем радианы в градусы-то переводить? Может, наоборот, градусы в радианы? Что передается в качестве параметра функции Tg? Градусы или радианы? Функции Sin и Cos ожидают как раз угла в радианах, если что...
|
ROCKMAN |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
А зачем нужно вот это условие: if cos(alfa) = 0 then tg:=-100;
все равно потом: tg:=(sin(alfa)*180/pi)/(cos(alfa)*180/pi); подправь: if cos(alfa) = 0 then tg:=-100 else tg:=(sin(alfa)*180/pi)/(cos(alfa)*180/pi); |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
ROCKMAN, еще раз - специально для тебя: не надо вообще ни на что делить, читай внимательно второй пост, и не давай вредных советов.
Вот, к примеру, зачем ты результат вычисления sin и cos умножаешь на (180/Pi)? В этом какой тайный смысл? |
ROCKMAN |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
ROCKMAN, еще раз - специально для тебя: не надо вообще ни на что делить, читай внимательно второй пост, и не давай вредных советов. Вот, к примеру, зачем ты результат вычисления sin и cos умножаешь на (180/Pi)? В этом какой тайный смысл? Так надо же, чтобы значению тангенса было присвоено -100, SkyRideR так писал хотя задача внатуре неверная Сообщение отредактировано: ROCKMAN - 18.01.2008 13:29 |
SkyRideR |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
На сколько я знаю, пакскаль считает в радианах, а нужно чтобы после подключения модуля и вызыва функции он на экран выводил значение в градусах, а не радианах. и значение tg должно быть равно -100 в том случае если косинус равен 0
Сообщение отредактировано: SkyRideR - 18.01.2008 18:03 |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Ты на вопросы, заданные тебе НИКОГДА не отвечаешь? Тебя спросили, что передается в функцию Tg, радианы или градусы?
Добавлено через 4 мин. И вообще, кто же сравнивает с нулем вещественные значения напрямую? Надо сравнивать отклонение от 0... |
SkyRideR |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
должна градусы передавать
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Значит:
function tg(alfa : real):real;Что теперь не так? Сообщение отредактировано: volvo - 18.01.2008 18:45 |
SkyRideR |
![]()
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо большое, вот только 2 вопроса < 10E-5 это откуда взято? и почему по модулю?
|
Yevgeny |
![]()
Сообщение
#11
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Это очень маленькое число, 10 в минус пятой степени, если не ошибаюсь,
и abs(cos(alfa)) < 10E-5 значит, что если cos(alfa) попадает в эту погрешность, то условие будет выполняться, насать "=" можно тока когда работаешь с целочисленными типами (integer,...), а с вещественными это не катит, ибо у тебя это условие никогда не выполнится, это вроде бы происходит из-за разного представления цисел в памяти... Вот, но это не точно, пока кто-нить по опытней не подтвердит ![]() -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
SkyRideR |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну в общем я всё подправил, и если чётко указать там 0, где 10Е-5 условие выполняется, так что работает на ура
![]() |
Yevgeny |
![]()
Сообщение
#13
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
ну, значит это я что-то напутал...
![]() -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата и если чётко указать там 0, где 10Е-5 условие выполняется До поры до времени... На другой машине и/или при использовании другого компилятора получишь проблему, но если тебе нравится сначала сделать проблему, а потом ее решать - то Welcome... Я предпочитаю не давать поводов для таких ошибок, и использую сравнение погрешности... |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 18:17 |