
Другие языки программирования и технологии
Подскажите почему Паскаль не делает нужного расчета и выводит на экран просто S вместо его значения? Как это исправить?

Хорошо было бы еще условие задачи написать... Допустим, у нас есть катет a, длина которого вводится пользователем. Еще есть diff - разница длин катета a и гипотенузы. И нужно найти площадь треугольника.
1) Как уже написали выше, выводится, как раз, значение S, которое и есть NaN.
2) 8 строка:
c = (a * a - dif) / 2 + dif
что это за прикол?)) У тебя есть катет a и dif, что является разницей c и a, почему бы не сделать по-человечески: c = a + dif ?
3) Собственно, о твоем случае(вычислять катет как корень разности квадратов катета и гипотенузы, а не наоборот это сильно):
ты вводишь: a = 5, dif = 1
c = (25 - 1) / 2 + 1 = 12 + 1 = 13
дальше b = sqrt(a * a - c * c) = sqrt(5 * 5 - 13 * 13) = sqrt(25 - 169), что и дает NaN, так как квадратный корень из отрицательного числа, увы, не берется
1) Как уже написали выше, выводится, как раз, значение S, которое и есть NaN.
2) 8 строка:
c = (a * a - dif) / 2 + dif
что это за прикол?)) У тебя есть катет a и dif, что является разницей c и a, почему бы не сделать по-человечески: c = a + dif ?
3) Собственно, о твоем случае(вычислять катет как корень разности квадратов катета и гипотенузы, а не наоборот это сильно):
ты вводишь: a = 5, dif = 1
c = (25 - 1) / 2 + 1 = 12 + 1 = 13
дальше b = sqrt(a * a - c * c) = sqrt(5 * 5 - 13 * 13) = sqrt(25 - 169), что и дает NaN, так как квадратный корень из отрицательного числа, увы, не берется
Олег Гапонов
Простите, я смеюсь из-за собственной тупости пхпхпх. Спасибо, что так подробно расписали, очень помогло)
Потому что либо у тебя ошибка в расчетах (извиняй, лень проверять), либо ты ввел невозможный треугольник с отрицательной площадью. Введи 3 и 2, должно получиться 6.
>выводит на экран просто S вместо его значения
Нет, он выводит значение, и оно NaN (Not a Number)
>выводит на экран просто S вместо его значения
Нет, он выводит значение, и оно NaN (Not a Number)
Потому, что вместо того, чтобы от квадрата гипотенузы отнять квадрат катета, ты от квадрата катета отнимаешь квадрат гипотенузы. А потом пытаешься взять квадратный корень из отрицательного числа - на что и получаешь NaN.
Впрочем, длину гипотенузы ты тоже считаешь неправильно.
Впрочем, длину гипотенузы ты тоже считаешь неправильно.
У тебя половины данных нет
Олег Гапонов
Объясните, пожалуйста, тогда каких конкретно? "а" и "диф" вводятся, "с" находится посредством операции над "а" и "диф", а "с" получается с помощью теоремы Пифагора.
Похожие вопросы
- Как составить в Паскале программу, выводящую на экран график?
- написать программу которая выводит на экран оцифрованную координатную сетку!Нужно решение через Турбо Паскаль!
- Я делаю мини игру на паскале, и у меня выбор из двух действий но почему то всегда выбирается первое. Подскажите почему
- Возможно ли в Паскале получить какой-нибудь символ уже выведенный на экран?
- ПОдскажите по Паскалю
- паскаль... строки...функция delete. не подскажете, почему в этой программе она не выполняется,что опять не так тут?(((
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.
- Напишите программу, которая выводит на экран все делители числа N, (число N вводится с клавиатуры) абсПАСКАЛЬ ПОМОГИТЕ
- программирование. с какого языка лучше начать программирование? дельфи или паскаль? какой язык нужнее? какой по-легче?
- Подскажите по Паскалю