|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - помогите сделать блок-схему |
|
Теория - помогите сделать блок-схему
|
Новый участник Сообщения: 28 |
Профиль | Отправить PM | Цитировать
Блок схемы
|
|
Отправлено: 02:10, 30-11-2013 |
Ветеран Сообщения: 2029
|
Профиль | Отправить PM | Цитировать Понятно, что человек хочет спорить просто ради самого факта спора. Безграмотные статьи из Вики и столь же безграмотные примеры какого-то Васи Пупкина для него пример абсолютной истины. На этом заканчиваю, не буду кормить тролля.
Iska: он просто хотел, чтобы Вы поставили точку после единицы (или после тройки). Иначе производится целочисленное деление и уже его результат преобразуется в вещественное число. При этом сам он опубликовал какой-то глупый код с непонятной функцией "abs", которая при наличии #include <stdlib.h> и отсутствии #include <cmath> будет целочисленной и стало быть все числа различающиеся не более, чем на 1 окажутся равны. А при наличии <cmath> код просто не скомпиллируется, поскольку не указана область видимости. Должно быть либо std::abs, либо явная отсылка к пространству имен в "using std::abs". Но такие "мелочи" его явно не волнуют. Можете задать ему простой вопрос: написать программу вычисяющую машинный эпсилон (котогрый он вслед за Вики безграмотно называет "машинным нулем"). Интересно, как он это сделает без операции сравнения... |
------- Последний раз редактировалось AMDBulldozer, 01-12-2013 в 15:46. Отправлено: 15:35, 01-12-2013 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mrcnn:
Цитата AMDBulldozer:
|
||
Отправлено: 15:37, 01-12-2013 | #32 |
Ветеран Сообщения: 6211
|
Профиль | Отправить PM | Цитировать Цитата Iska:
На уровне ликбеза и для уточнения посмотрите, что я имел в виду… Просто навскидку нашёл. Более каверзные случаи мне пока придумывать лениво, да и не по теме оно будет… сравнение на равенство вещественных чисел, в последний раз, надеюсь О сравнении действительных чисел. Цитата:
|
||
Последний раз редактировалось Tau_0, 01-12-2013 в 16:55. Отправлено: 16:42, 01-12-2013 | #33 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Tau_0, Вас тоже «кормить» не буду. Я полагал, мы с Вами разобрались. Оказывается нет. Повторять в пятый раз одно и то же я не стану. Всё, что изложено коллеге mrcnn, считайте теперь адресованным и Вам. На сим закончим.
|
Отправлено: 17:05, 01-12-2013 | #34 |
Ветеран Сообщения: 2029
|
Профиль | Отправить PM | Цитировать Цитата Tau_0:
|
|
------- Отправлено: 17:16, 01-12-2013 | #35 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать To All:
1. Помогите автору темы решить его вопросы и спорьте до посинения. 2. Если будет замечен переход на личности или троллинг опонента, такой пост будет выпиливаться. |
------- Отправлено: 17:26, 01-12-2013 | #36 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Помимо этого она является ошибочной, так как вы сравниваете вещественные числа в машинном представлении напрямую. Нельзя сравнивать вещественные a и b оператором ==. |
|
------- Отправлено: 17:40, 01-12-2013 | #37 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:16, 01-12-2013 | #38 |
Ветеран Сообщения: 6211
|
Профиль | Отправить PM | Цитировать Цитата AMDBulldozer:
Вот мой последний аргумент в виде цитаты… Цитата:
Это я о том, что результат IF может быть как false, так и true --- сиё зависит от реализации… Только и всего. Маленький вопрс на подумать --- чему равно с точностью до восьми знаков 1.0/3.0 + 1.0/3.0 + 1.0/3.0 =…???... Пусть для простоты арифметика десятичная (на самом деле в машине она двоичная и от этого дополнительные фокусы,…) PS Видимо оставанемся при своих и не будем напрягать недотыкомки… |
||
Последний раз редактировалось Tau_0, 03-12-2013 в 10:37. Отправлено: 18:29, 01-12-2013 | #39 |
Ветеран Сообщения: 2029
|
Профиль | Отправить PM | Цитировать winston07, как-то не совсем понятно. По первой Вашей блок-схеме:
Какой смысл производить проверку значения X дважды? В первый раз Вы прерываете выполнение по равенству нулю, во -второй - по меньше или равно. Очевидно, что если второе сравнение ложно, то и первое тоже ложно. Тем более, что второе сравнение Вы производите для определения существования вещественного корня, а в таких целях оно должно быть не "меньше или рано нулю", а просто "меньше". С другой стороны, Вы не проверяете X на равенство B. Но если они равны, то разность |B-X| (у Вас ошибочно написано |B+X|) станет равна 0, а логарифм нуля это минус бесконечность. На Вашем месте я сначала бы произвел обе эти проверки, а потом вычислил бы Y одной формулой. В противном случае, у Вас Y оказывается равен не всей дроби, а только её числителю. Tau_0, если бы я был преподавателем и ко мне пришел бы студент с такими соображениями как у Вас. я сразу отправил бы его на пересдачу. Это лет 30 назад можно было рассуждать об ошибках округления. Во времена парадигмы процедурного программирования. Тогда человеку даже поаплодировали бы. Но то время безвозвратно ушло и сегодня человек рассуждающий таким образом сильно напоминает питекантропа пытающегося рассказть об особенностях охоты на мамонтов при помощи камней и дубины. Если человек начинает рассказ с того, что вещественные числа якобы не могут быть равны, ему возвращают зачетку и отправляют переучиваться. Поскольку таким высказыванием он, как минимум, демонстрирует полное непонимание разницы между алгоритмом и его программной реализацией. Я могу пояснить, почему в Ваших рассуждениях имеется дефект. Только что автор темы опубликовал блок-схему, в которой не проверил X на равенство B перед вычислением выражения lg|b-x|. По Вашей логике, он поступил правильно - если считать, что обе величины являются действительными числами, как Вы предположили, то они, по Вашему утверждению, не могут быть равны (Вы это не смогли доказать, но упорно этой точки зрения ипридерживаетесь) и стало быть логарифм будет существовать в области действительных чисел. То есть и проверять незачем. Точка. Послушавшийся Вас человек напишет заведомо неверную блок-схему. Во-первых, потому, что числа могут быть равны и это было наглядно продемонстрировано в программе вычисления "машиннного эпсилон". А во-вторых, если они даже окажутся НЕ равны, они могут быть настолько близки, что логарифм выйдет за пределы представления числа. Тогда надо проверять не только равенство чисел, но еще и переполнение/потерю значимости в процессе вычисления. И не только логарифма, но после любого действия. И т.д. и т.п. В результате получается, что сделав акцент на одном аспекте, Вы полностью упускаете из вида сопутствующие. Вы скажете, что добавите все необходимые проверки в момент написания программы и что это не имеет отношения к собственно алгоритму? И будете правы. Именно об этом и речь - человек долже сначала сформулировать для себя основную идею, а детали реализации, к которым относятся и ошибки округления, оставить на потом. Поймите, что говоря об ошибках округления Вы ни для кого Америку не открыли. Может быть это мы откроем её для Вас, когда расскажем, что с этими ошибками научились бороться несколько десятилетий назад. |
------- Последний раз редактировалось AMDBulldozer, 01-12-2013 в 19:05. Отправлено: 18:41, 01-12-2013 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите подобрать блок питания | Pavich | Выбор отдельных компонентов компьютера и конфигурации в целом | 1 | 12-08-2013 21:36 | |
Как сделать Блок по ip. | Sharik987 | Microsoft Windows NT/2000/2003 | 20 | 22-02-2013 13:41 | |
Разное - Помогите собрать системный блок | magnus-1 | Прочее железо | 2 | 17-09-2012 22:36 | |
C/C++ - Помогите с блок-схемой | rscream | Программирование и базы данных | 1 | 11-12-2011 23:56 | |
Помогите собрать системный блок | PoPiN | Выбор отдельных компонентов компьютера и конфигурации в целом | 3 | 26-08-2009 15:39 |
|