| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Fortran > [General] Защита от мнимых чисел |
| Автор: FFFU 23.10.2010, 11:15 | ||
| Здравствуйте! Нам в институте задали сделать калькулятор на Фортране. В числе прочего нужно еще и сделать защиту от вычисления мнимых чисел.
Непонятно какое условие нужно задавать, чтобы выводило сообщение. Помогите пожалуйста! |
| Автор: kemiisto 23.10.2010, 12:23 |
| Во-первых, забудьте о goto. Во-вторых, используйте == вместо .eq., < вместо .lt. и т.д. В-третьих, я что-то с трудом понимаю, как из вещественного числа при возведении его в вещественную степень можно получить комплексное число? Я что-то упустил? |
| Автор: kemiisto 23.10.2010, 13:48 |
Ах ну да... Добавлено @ 14:01 Так стоп. Я тут подумал. Думаю, если a отрицательно, то его можно возводить только в целую степень. В вещественную в любом случае не получится. Для возведения в вещественную степень нужно применять какую-то формулу. Например, a^b = e^(b * lna). А логарифм определён только для положительных чисел. |
| Автор: Фантом 23.10.2010, 14:40 | ||
Вообще-то в Фортране есть встроенная операция возведения в степень. |
| Автор: kemiisto 23.10.2010, 14:45 |
| Фантом, оно понятно. Я просто к тому, что в этом условии проверять, собственно, ничего больше и не надо, если a и b - real, а комплексных чисел надо избегать. |
| Автор: Фантом 23.10.2010, 14:55 | ||
А, тогда да. |
| Автор: kemiisto 23.10.2010, 14:58 | ||
В общем, если a и b - real, как-то так:
|
| Автор: FFFU 23.10.2010, 21:04 |
| но ведь отрицательные числа можно возводить в степень... |
| Автор: kemiisto 23.10.2010, 21:08 |
Можно, но есть нюансы. Я же писал выше, что операция ** в Fortran для отрицательных вещественных чисел вернёт результат, только если степень будет целым числом. Иначе всё равно будет NaN. |
| Автор: FFFU 24.10.2010, 00:28 |
| большое спасибо! PS про case тоже учту |