Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно нарисовать блок схему 
:(
    Опции темы
Lois
Дата 10.12.2014, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Я впервые столкнулся с такой проблемой. В общем весьма давно, хочу, чтобы мне написали довольно простую прогу. Но как ни странно все с кем я договаривался берут ТЗ и исчезают навечно. Меня это в конце концов стало удивлять. Но сейчас нашёл программиста, который согласен написать, но он просит блок схему. Я страшно удивлён, что он не может написать по словесному описанию. В общем кто может и будет желание, хотелось бы увидеть эту схему. Сам я этого сделать не могу. Ему нужно чётко видеть, что куда идёт.
Вот описание
алгоритм крайне прост- берутся случайным образом символы хим. элементов и случайным же образом проводятся между ними реакции. И сравниваются с базой хим. реакций. Если реакция в базе есть, то запоминаются продукты их реакции и дальше проводятся реакции между продуктами. Опять же сравнение с базой и всё как уже описано. И так до тех пор, пока не останется одно вещество. Смысл работы проги- выяснить какое это вещество. Причём как я понимаю могут быть разные вещества при разных запусках проги. База у меня есть.
PM MAIL   Вверх
Akina
Дата 10.12.2014, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Lois @  10.12.2014,  22:26 Найти цитируемый пост)
нашёл программиста, который согласен написать, но он просит блок схему.

Он тебе просто культурно объяснил, что сам ничего делать не хочет.

PS. Если описанный твой "крайне простой" алгоритм и есть ТЗ - неудивительно, что результат нулевой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lois
Дата 10.12.2014, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Цитата(Akina @  10.12.2014,  22:09 Найти цитируемый пост)
PS. Если описанный твой "крайне простой" алгоритм и есть ТЗ - неудивительно, что результат нулевой. 


я всегда даю ТЗ примерно в такой форме и мне написали супер программы таким образом. Так что никаких проблем не вижу.

PM MAIL   Вверх
baldina
Дата 11.12.2014, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(Lois @  10.12.2014,  22:25 Найти цитируемый пост)
я всегда даю ТЗ примерно в такой форме и мне написали супер программы

Цитата(Lois @  10.12.2014,  21:26 Найти цитируемый пост)
все с кем я договаривался берут ТЗ и исчезают навечно

ничего не замечаете?

по теме:
как проводить реакции? 
для моделирования есть серьезные программные комплексы, разрабатываются десятилетиями группой специалистов, каждая довольно узко специализирована и стОит как чугунный мост. "программист без блок-схемы" не справится. кстати такие программы, как правило, имеют встроенные средства разработки. 
не моделировать, а брать из базы? значит реакция есть, какой смысл и как её "проводить" и что на выходе?  
Цитата(Lois @  10.12.2014,  21:26 Найти цитируемый пост)
Смысл работы проги- выяснить какое это вещество.

случайно берем элементы водорода и гелия, какое в результате всех реакций получится в-во?
а в результате окислительно-восстановительной реакции какое в-во?

блок-схема суть алгоритм. если вы не объясните его программисту, он не сможет объяснить компьютеру. ваше тз, мягко говоря, не полно и не согласованно, оно требует деталей и уточнений, в результате чего появится документ на десятки страниц (в лучшем случае).

Это сообщение отредактировал(а) baldina - 11.12.2014, 00:09
PM MAIL   Вверх
Lois
Дата 11.12.2014, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Цитата(baldina @  11.12.2014,  00:08 Найти цитируемый пост)
ничего не замечаете?


я говорил ТОЛЬКО об этой программе. Я в принципе знаю частично в чём тут дело, но объяснение мистическое.



Цитата(baldina @  11.12.2014,  00:08 Найти цитируемый пост)
для моделирования есть серьезные программные комплексы, разрабатываются десятилетиями группой специалистов,


да никакого моделирования тут нет. Есть простейший алгоритм, который доступен школьнику. Просто берутся символы хим. элементов и проводится простейшее сравнивание с базой.



Цитата(baldina @  11.12.2014,  00:08 Найти цитируемый пост)
случайно берем элементы водорода и гелия, какое в результате всех реакций получится в-во?


такой реакции в базе нет, поэтому программа должна сравнить с базой, определить что реакции такой нет и забыть об этом.

Это сообщение отредактировал(а) Lois - 11.12.2014, 14:59
PM MAIL   Вверх
Pavia
Дата 11.12.2014, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Немного философии.

Цитата(Lois @  10.12.2014,  22:25 Найти цитируемый пост)
я всегда даю ТЗ примерно в такой форме и мне написали супер программы таким образом. Так что никаких проблем не вижу.

Это не ТЗ и даже не алгоритм - это описание задачи.  
Алгоритм это четкая последовательность действий. В данном случае это не так, так как есть пропуски в последовательности.
Во-вторых это не ТЗ. Так как не поставлено не одного требования к конечному продукту и процессу его разработки. 

Что касается описания задачи, то и оно относится к некорректно поставленным задачам. Так что тут ещё надо потрудиться над постановкой задачи. Я думаю задачу надо свести к классу алгоритмически вычислимых задач. 
Для этого надо описать задачу так чтобы она определяла четкую систему инструкций, определяющих дискретный детерминированный процесс, который ведет от начальных данных (на входе) к искомому результату (на выходе), за конечное число шагов.
 
Конечность: означает что число шагов должно быть числом натуральным (1,2,3,4,...).
Детерминированность:  В каждый момент времени следующий шаг работы однозначно определяется состоянием системы.
Результативность: обязательно должен существовать результат.
Поэтому автора топика и попросили нарисовать схему процесса(блок-схему), чтобы было понятно куда происходит передача управления в алгоритме.

Что-бы это сделать автору темы надо ответить на вопросы.

Lois

Вам нужно уточнить задачу. Описав её более детально. Указав форматы данных. А также более детально расписать все шаги.

Цитата

символы хим. элементов

Нужен весь перечень этих элементов. И формата хранения этих элементов в компьютере.

Цитата

 и случайным же образом 

Какие требования к случайности? Достаточно стандартного метода генерации псевдослучайных чисел (Линейный конгруэнтный метод)?

Цитата

 образом проводятся между ними реакции.

Нужна математическая модель описывающая проведения реакции. А лучше алгоритм.
В реакции учитывается давление и температура?

Цитата

 И сравниваются с базой хим. реакций.

Буква И сравниваться не может. Уточните что тут имелось в виду.
Укажите метрику для сравнения. Какой результат должен быть у сравнения? Что делать в случае множественного совпадения?
Что делать если совпадений нет?
Нужен формат базы данных. И сама база данных.
Лучше если формат базы данных "хим.реакций" будет стандартным txt, CVS, XML, SQL и тп. Так что постарайтесь привести базу данных к стандартному виду.

Цитата

 И так до тех пор, пока не останется одно вещество.

А есть уверенность, что оно останется одно? В химии обычно в реакцию вступает два вещества и столько же на выходе. С чего вдруг появится одно? Во-вторых в Химии есть реакции обратимые и не обратимые. В вашем случае программа может просто зациклиться. 
Вы понимаете что ваша программа может не завершиться никогда?
В третьих уравнения в химии балансные. Поэтому какие элементы на входе такие и на выходе. Поэтому либо реакция обратимая либо односторонняя. И если у нас реакция односторонняя, то следующей реакции уже просто не будет, что в этом случае должна делать программа?


Требования к внешним виду:
Какой должен быть интерфейс у программы (графический, консольный , свой вариант)?
Опишите требования эргономичности.
Требования к тестированию программы.
Этапность выполнения ТЗ. Сроки выполнения и цена.
Как будет происходить приемка программы?

Цитата

В общем кто может и будет желание, хотелось бы увидеть эту схему. Сам я этого сделать не могу. Ему нужно чётко видеть, что куда идёт.

Никто кроме вас сделать это не сможет. Так как только вы знаете что хотите.
Блок схему вы сможете сделать используя "ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и  систем"

Короче говоря вам надо более подробно описать задачу и подготовить все исходные данные.


Это сообщение отредактировал(а) Pavia - 11.12.2014, 10:18
PM MAIL   Вверх
Lois
Дата 11.12.2014, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Всё что сказано выше, это увеличение сущностей.
На мой взгляд идея программы крайне проста и должна быть ясна при первом прочтении. Ну может можно пояснить какие=то детали. Те вопросы, которые задаются совершенно лишние и к смыслу программы никакого отношения не имеют.
Всё же надеюсь найдутся здесь люди, которые понимают смысл слов человеческих и которые могут сделать элементарную блок схему. Подчеркну ещё раз- ЭЛЕМЕНТАРНУЮ.
Я работал программистом и немного понимаю в сложности и лёгкости алгоритмов.
PM MAIL   Вверх
baldina
Дата 11.12.2014, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



мы тупые, с первого раза не понимаем. проясните вот такую деталь:
Цитата(Lois @  11.12.2014,  02:02 Найти цитируемый пост)
проводится простейшее сравнивание с базой

сравнили, такая "реакция" есть в базе. что дальше?
кстати, что за база, в каком формате?
приложение консольное или должно иметь оконный интерфейс? какие команды/действия доступны пользователю?
PM MAIL   Вверх
Pavia
Дата 11.12.2014, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Lois, Вообще-то это обязанность заказчика отвечать на уточняющие вопросы. И выдавать исходные данные.
А сейчас вы на вопросы ответы не даёте, т.е. ведёте себя не как настоящий заказчик.
И кто Вы после этого?
PM MAIL   Вверх
baldina
Дата 12.12.2014, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(Lois @  11.12.2014,  15:33 Найти цитируемый пост)
Я работал программистом

Цитата(Lois @  10.12.2014,  21:26 Найти цитируемый пост)
хотелось бы увидеть эту схему. Сам я этого сделать не могу

как такое может быть?
ну да ладно, мы поможем. если удастся прояснить детали ;-)
PM MAIL   Вверх
Lois
Дата 12.12.2014, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Цитата(baldina @  11.12.2014,  20:46 Найти цитируемый пост)
сравнили, такая "реакция" есть в базе. что дальше?


дальше запоминается результат и проводятся реакции между тем что получилось. Так же случайным образом берутся 2 вещества и также проверяется по базе есть ли такая реакция.


Цитата(baldina @  11.12.2014,  20:46 Найти цитируемый пост)
кстати, что за база, в каком формате?


база в формате rtf . Вот как она выглядит


http://gyazo.com/2c8bbe00820b8fd07e98bc0e7534fd4a


Цитата(baldina @  11.12.2014,  20:46 Найти цитируемый пост)
приложение консольное или должно иметь оконный интерфейс? какие команды/действия доступны пользователю? 



любой вариант. Главное, чтобы был виден результат. Насчёт команд не понял. Вроде командовать нечем.


Цитата(baldina @  12.12.2014,  00:18 Найти цитируемый пост)
как такое может быть?


да очень просто. Это было очень давно. В институте нас учили самому простому программированию- работа с формулами. Вот такие программы я и писал в научной лаборатории. Если нужны были какие-то сложные подпрограммы, брал готовые.

PM MAIL   Вверх
baldina
Дата 12.12.2014, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(Lois @  12.12.2014,  01:33 Найти цитируемый пост)
база в формате rtf

понятно. нет базы. т.е. её надо создать и дать средства редактирования.
впрочем это не сложно.

Цитата(Lois @  12.12.2014,  01:33 Найти цитируемый пост)
Вот как она выглядит

таки реакции. таки между веществами. никаких элементов))))

Цитата(Lois @  12.12.2014,  01:33 Найти цитируемый пост)
запоминается результат

куда он запоминается? откуда "случайно" берутся вещества? формат базы, насколько я вижу, хранит только реакции.
неплохо было бы услышать сверхцель, пока она не ясна, т.к. новых реакций в описанном процессе не добавляется.

Цитата(Lois @  12.12.2014,  01:33 Найти цитируемый пост)
реакции между тем что получилось

обратная реакция?

PM MAIL   Вверх
Akina
Дата 12.12.2014, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Lois @  12.12.2014,  02:33 Найти цитируемый пост)
база в формате rtf

Конвертируй в приличный формат, лучше во вменяемую БД.
Создай таблицу элементов.
Выполни парсинг первой колонки, заполни связующую таблицу. Заодно избавишься от перестановок.
Ну и всё, собсно...  дальше каждый шаг - это тупой запрос к базе данных. А где и как запоминать - решай сам.
Цитата(Lois @  11.12.2014,  16:33 Найти цитируемый пост)
Я работал программистом и немного понимаю

И вот такую туфту не можешь сам сляпать? кодера нанимаешь? не можешь ему вменяемо объяснить задачу? когнитивный диссонанс налицо...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lois
Дата 12.12.2014, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 19.5.2013

Репутация: нет
Всего: нет



Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
понятно. нет базы. т.е. её надо создать и дать средства редактирования.
впрочем это не сложно.


ну отлично, что несложно.



Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
таки реакции. таки между веществами. никаких элементов))))

это просто самое начала базы, а дальше там вроде есть реакции между элементами. Впрочем это не сущностно важно.





Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
куда он запоминается?



ну это должен решить программист.



Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
 откуда "случайно" берутся вещества?


из того, что уже получилось. Вначале это элементы, затем продукты реакций

Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
неплохо было бы услышать сверхцель, пока она не ясна, т.к. новых реакций в описанном процессе не добавляется.


сверхцель- узнать какое вещество ( или группа веществ ) получится в конце.

Цитата(baldina @  12.12.2014,  12:31 Найти цитируемый пост)
обратная реакция?


нет не обратная. Просто обычные реакции между веществами, которые получились.

PM MAIL   Вверх
baldina
Дата 12.12.2014, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



давайте так поступим. допустим есть ассоциативный массив, каждый элемент которого можно условно представить в виде
Код

AB+CD -> AC+BD

если на входе AB и CD, мы можем найти соотв. элемент массива, и получить результат AC+BD
это можно промасштабировать на произвольное число входных компонент произвольного состава.
то, что вы описали, сводится к вышеизложенному. 
допустим даже у нас где-то есть словарь из элементов AB, CD, AC и т.д. такой словарь, к слову, можно построить и из содержимого массива. 
замечу, что никакой новой информации из этого извлечь невозможно, т.к. и входные и выходные данные атомарны.
еще замечу, что можно на это смотреть как на перестановку, например A2B3+2CD2 -> A2С2+B3D4 можно считать перестановкой
Код

AABBB_CDDCDD
AACC_BBBDDDD

тогда содержимое базы это допустимые перестановки.
можно генерировать сочетания (в т.ч. все возможные, только их очень много), можно осуществлять перестановки (в т.ч. все возможные, только их тоже очень много), можно проверять то и другое на допустимость по базе (массиву).
что дальше? что в результате?

Добавлено через 2 минуты и 21 секунду
все же я ничего не понял.
давайте так:
есть вещества
A,B,C,D,E,F
есть база с правилом
AB+C->AC+B
покажите мне вручную ход работы программы

Добавлено через 3 минуты и 56 секунд
Цитата(Lois @  12.12.2014,  12:53 Найти цитируемый пост)
узнать какое вещество ( или группа веществ ) получится в конце

это определяется единственным запросом к базе, т.к. полученные в-ва не реагируют между собой

Добавлено через 4 минуты и 6 секунд
вы что-то таки скрываете))))

Добавлено через 6 минут и 50 секунд
может быть вы хотите узнать какие в-ва могут быть получены из данного множества элементов? результатом будет множество множеств.

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0984 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.