![]() |
|
![]() ![]() ![]() |
|
Lois |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
Я впервые столкнулся с такой проблемой. В общем весьма давно, хочу, чтобы мне написали довольно простую прогу. Но как ни странно все с кем я договаривался берут ТЗ и исчезают навечно. Меня это в конце концов стало удивлять. Но сейчас нашёл программиста, который согласен написать, но он просит блок схему. Я страшно удивлён, что он не может написать по словесному описанию. В общем кто может и будет желание, хотелось бы увидеть эту схему. Сам я этого сделать не могу. Ему нужно чётко видеть, что куда идёт.
Вот описание алгоритм крайне прост- берутся случайным образом символы хим. элементов и случайным же образом проводятся между ними реакции. И сравниваются с базой хим. реакций. Если реакция в базе есть, то запоминаются продукты их реакции и дальше проводятся реакции между продуктами. Опять же сравнение с базой и всё как уже описано. И так до тех пор, пока не останется одно вещество. Смысл работы проги- выяснить какое это вещество. Причём как я понимаю могут быть разные вещества при разных запусках проги. База у меня есть. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Он тебе просто культурно объяснил, что сам ничего делать не хочет. PS. Если описанный твой "крайне простой" алгоритм и есть ТЗ - неудивительно, что результат нулевой. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Lois |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
||||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
ничего не замечаете? по теме: как проводить реакции? для моделирования есть серьезные программные комплексы, разрабатываются десятилетиями группой специалистов, каждая довольно узко специализирована и стОит как чугунный мост. "программист без блок-схемы" не справится. кстати такие программы, как правило, имеют встроенные средства разработки. не моделировать, а брать из базы? значит реакция есть, какой смысл и как её "проводить" и что на выходе? случайно берем элементы водорода и гелия, какое в результате всех реакций получится в-во? а в результате окислительно-восстановительной реакции какое в-во? блок-схема суть алгоритм. если вы не объясните его программисту, он не сможет объяснить компьютеру. ваше тз, мягко говоря, не полно и не согласованно, оно требует деталей и уточнений, в результате чего появится документ на десятки страниц (в лучшем случае). Это сообщение отредактировал(а) baldina - 11.12.2014, 00:09 |
|||
|
||||
Lois |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
я говорил ТОЛЬКО об этой программе. Я в принципе знаю частично в чём тут дело, но объяснение мистическое.
да никакого моделирования тут нет. Есть простейший алгоритм, который доступен школьнику. Просто берутся символы хим. элементов и проводится простейшее сравнивание с базой.
такой реакции в базе нет, поэтому программа должна сравнить с базой, определить что реакции такой нет и забыть об этом. Это сообщение отредактировал(а) Lois - 11.12.2014, 14:59 |
||||
|
|||||
Pavia |
|
||||||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Немного философии.
Это не ТЗ и даже не алгоритм - это описание задачи. Алгоритм это четкая последовательность действий. В данном случае это не так, так как есть пропуски в последовательности. Во-вторых это не ТЗ. Так как не поставлено не одного требования к конечному продукту и процессу его разработки. Что касается описания задачи, то и оно относится к некорректно поставленным задачам. Так что тут ещё надо потрудиться над постановкой задачи. Я думаю задачу надо свести к классу алгоритмически вычислимых задач. Для этого надо описать задачу так чтобы она определяла четкую систему инструкций, определяющих дискретный детерминированный процесс, который ведет от начальных данных (на входе) к искомому результату (на выходе), за конечное число шагов. Конечность: означает что число шагов должно быть числом натуральным (1,2,3,4,...). Детерминированность: В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Результативность: обязательно должен существовать результат. Поэтому автора топика и попросили нарисовать схему процесса(блок-схему), чтобы было понятно куда происходит передача управления в алгоритме. Что-бы это сделать автору темы надо ответить на вопросы. Lois, Вам нужно уточнить задачу. Описав её более детально. Указав форматы данных. А также более детально расписать все шаги.
Нужен весь перечень этих элементов. И формата хранения этих элементов в компьютере.
Какие требования к случайности? Достаточно стандартного метода генерации псевдослучайных чисел (Линейный конгруэнтный метод)?
Нужна математическая модель описывающая проведения реакции. А лучше алгоритм. В реакции учитывается давление и температура?
Буква И сравниваться не может. Уточните что тут имелось в виду. Укажите метрику для сравнения. Какой результат должен быть у сравнения? Что делать в случае множественного совпадения? Что делать если совпадений нет? Нужен формат базы данных. И сама база данных. Лучше если формат базы данных "хим.реакций" будет стандартным txt, CVS, XML, SQL и тп. Так что постарайтесь привести базу данных к стандартному виду.
А есть уверенность, что оно останется одно? В химии обычно в реакцию вступает два вещества и столько же на выходе. С чего вдруг появится одно? Во-вторых в Химии есть реакции обратимые и не обратимые. В вашем случае программа может просто зациклиться. Вы понимаете что ваша программа может не завершиться никогда? В третьих уравнения в химии балансные. Поэтому какие элементы на входе такие и на выходе. Поэтому либо реакция обратимая либо односторонняя. И если у нас реакция односторонняя, то следующей реакции уже просто не будет, что в этом случае должна делать программа? Требования к внешним виду: Какой должен быть интерфейс у программы (графический, консольный , свой вариант)? Опишите требования эргономичности. Требования к тестированию программы. Этапность выполнения ТЗ. Сроки выполнения и цена. Как будет происходить приемка программы?
Никто кроме вас сделать это не сможет. Так как только вы знаете что хотите. Блок схему вы сможете сделать используя "ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем" Короче говоря вам надо более подробно описать задачу и подготовить все исходные данные. Это сообщение отредактировал(а) Pavia - 11.12.2014, 10:18 |
||||||||||||||
|
|||||||||||||||
Lois |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
Всё что сказано выше, это увеличение сущностей.
На мой взгляд идея программы крайне проста и должна быть ясна при первом прочтении. Ну может можно пояснить какие=то детали. Те вопросы, которые задаются совершенно лишние и к смыслу программы никакого отношения не имеют. Всё же надеюсь найдутся здесь люди, которые понимают смысл слов человеческих и которые могут сделать элементарную блок схему. Подчеркну ещё раз- ЭЛЕМЕНТАРНУЮ. Я работал программистом и немного понимаю в сложности и лёгкости алгоритмов. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
мы тупые, с первого раза не понимаем. проясните вот такую деталь:
сравнили, такая "реакция" есть в базе. что дальше? кстати, что за база, в каком формате? приложение консольное или должно иметь оконный интерфейс? какие команды/действия доступны пользователю? |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Lois, Вообще-то это обязанность заказчика отвечать на уточняющие вопросы. И выдавать исходные данные.
А сейчас вы на вопросы ответы не даёте, т.е. ведёте себя не как настоящий заказчик. И кто Вы после этого? |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
||||
|
||||
Lois |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
дальше запоминается результат и проводятся реакции между тем что получилось. Так же случайным образом берутся 2 вещества и также проверяется по базе есть ли такая реакция. база в формате rtf . Вот как она выглядит http://gyazo.com/2c8bbe00820b8fd07e98bc0e7534fd4a
любой вариант. Главное, чтобы был виден результат. Насчёт команд не понял. Вроде командовать нечем. да очень просто. Это было очень давно. В институте нас учили самому простому программированию- работа с формулами. Вот такие программы я и писал в научной лаборатории. Если нужны были какие-то сложные подпрограммы, брал готовые. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
понятно. нет базы. т.е. её надо создать и дать средства редактирования. впрочем это не сложно. таки реакции. таки между веществами. никаких элементов)))) куда он запоминается? откуда "случайно" берутся вещества? формат базы, насколько я вижу, хранит только реакции. неплохо было бы услышать сверхцель, пока она не ясна, т.к. новых реакций в описанном процессе не добавляется. обратная реакция? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Конвертируй в приличный формат, лучше во вменяемую БД. Создай таблицу элементов. Выполни парсинг первой колонки, заполни связующую таблицу. Заодно избавишься от перестановок. Ну и всё, собсно... дальше каждый шаг - это тупой запрос к базе данных. А где и как запоминать - решай сам. И вот такую туфту не можешь сам сляпать? кодера нанимаешь? не можешь ему вменяемо объяснить задачу? когнитивный диссонанс налицо... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Lois |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 19.5.2013 Репутация: нет Всего: нет |
ну отлично, что несложно. это просто самое начала базы, а дальше там вроде есть реакции между элементами. Впрочем это не сущностно важно. ну это должен решить программист. из того, что уже получилось. Вначале это элементы, затем продукты реакций
сверхцель- узнать какое вещество ( или группа веществ ) получится в конце. нет не обратная. Просто обычные реакции между веществами, которые получились. |
||||
|
|||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
давайте так поступим. допустим есть ассоциативный массив, каждый элемент которого можно условно представить в виде
если на входе AB и CD, мы можем найти соотв. элемент массива, и получить результат AC+BD это можно промасштабировать на произвольное число входных компонент произвольного состава. то, что вы описали, сводится к вышеизложенному. допустим даже у нас где-то есть словарь из элементов AB, CD, AC и т.д. такой словарь, к слову, можно построить и из содержимого массива. замечу, что никакой новой информации из этого извлечь невозможно, т.к. и входные и выходные данные атомарны. еще замечу, что можно на это смотреть как на перестановку, например A2B3+2CD2 -> A2С2+B3D4 можно считать перестановкой
тогда содержимое базы это допустимые перестановки. можно генерировать сочетания (в т.ч. все возможные, только их очень много), можно осуществлять перестановки (в т.ч. все возможные, только их тоже очень много), можно проверять то и другое на допустимость по базе (массиву). что дальше? что в результате? Добавлено через 2 минуты и 21 секунду все же я ничего не понял. давайте так: есть вещества A,B,C,D,E,F есть база с правилом AB+C->AC+B покажите мне вручную ход работы программы Добавлено через 3 минуты и 56 секунд это определяется единственным запросом к базе, т.к. полученные в-ва не реагируют между собой Добавлено через 4 минуты и 6 секунд вы что-то таки скрываете)))) Добавлено через 6 минут и 50 секунд может быть вы хотите узнать какие в-ва могут быть получены из данного множества элементов? результатом будет множество множеств. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |