![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Russel |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Разветвляющаяся программа. Работа с числами. Предусмотреть при одном запуске программы на выполнение расчёт по нескольким наборам исходных данных. Подготовить отладочные просчёты и схему алгоритма.
Даны a, b, c. Определить, является ли одно из них гипотенузой прямоуголь¬ного треугольника со сторонами a, b, c. Вывести соот¬ветствующее сообщение. program lab2; Как здесь написать, чтобы все три условия работали? Чтоб выводилось "гипотенуза a" гипотенуза b ,с... Спасибо! |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Можно вот так, например:
a2:=a*a; Я ввел дополнительные переменные для ускорения расчетов и удобочитаемости. Число e - это точность. Действительные числа нельзя сравнивать равенством. Положи e равным числу, малому по сравнению с a, b и с. Типа если они порядка единицы, то е можно взять типа 1e-7. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Russel |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
program lab2; А так? И критичен ли тип переменных? Для контр. просчета взял числа 3, 4, 5 в разных комбинациях. Вроде работает. |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
критичен ли тип переменных? Для контр. просчета взял числа 3, 4, 5 в разных комбинациях. Вроде работает. Хорошо, давай разберемся.Ты согласен, что треугольник, подобный данному прямоугольному, тоже прямоугольный? Теперь смотри, что получается. Сначала я задаю числа 3, 4 и 5. Вот результат: vvedite znacheniya Все правильно, да? А теперь задаю 3.3, 4.4 и 5.5 (получаются умножением на 1.1) vvedite znacheniya Как видишь, результат неверный. Почему?.. Давай разберемся. Я вставил в код печать разности (a^2+b^2) - c^2 . var По идее, эта разность должна быть нулем, верно? Но реально выходит вот, что: vvedite znacheniya Разница очень маленькая (0,00000000000000195.. - это порядка неточности в одну десятую миллиметра на расстоянии от Земли до Солнца ![]() Теперь понятно, почему нельзя действительные числа сравнивать простым равенством? ![]() Машинные ошибки - это абсолютно неизбежный побочный эффект при компьютерных вычислениях в действительных числах. Всегда необходимо помнить, что все вычисления проводятся с некоторой точностью, и учитывать это в задачах. P.S. Результат (неточность вычислений) может отличаться на разных компьютерах и для разных компиляторов, но суть остается той же. Если у тебя не получилось повторить мои результаты с числами 3.3, 4.4 и 5.5 - попробуй другие. Типа 3.33, 4.44 и 5.55 ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:24 |