Прога по пересчёту процентного содержания: элемент --> оксид

Вопросы, связанные с химией вообще. Вы можете задать здесь свой вопрос, и мы постараемся на него ответить.
General chemical questions go here
Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Прога по пересчёту процентного содержания: элемент --> оксид

Сообщение Агдамыч » Пт ноя 25, 2011 2:08 pm

Проблема: необходимо вручную пересчитывать результаты SEM-анализа: элементный состав в содержание оксидов. Качественный состав довольно-таки вариабельный - эксель не подойдёт, насколько я понимаю. Есть-ли у кого на примете автоматизированное решение?

asp99
Сообщения: 254
Зарегистрирован: Вт май 11, 2010 3:47 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение asp99 » Пт ноя 25, 2011 4:14 pm

А что значит вариабельный? Чтобы пересчитать содержание элемента на оксид, нужно просто домножить на соответствующий множитель.
Например, % Э=x ----> x*M(ЭzOy)*z/(100*M(Э)).
А если оксиды могут быть разные, то наверное между ними никак не выбрать, зная только содержание элемента.

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Пт ноя 25, 2011 4:27 pm

"Вариабельно" означает, что набор элементов каждый раз разный. А прога должна выглядеть примерно так: набор элементов (Таблица Менделеева, к примеру), щёлкаешь по элементу, вводишь в поле концентрацию, затем - к следующему элементу. Хорошо-бы ещё иметь возможность выбирать валентность.
Способ ввода элементов не принципиален, просто с Таблицей легче реализуемо.

Аватара пользователя
amik
Сообщения: 23103
Зарегистрирован: Вс мар 05, 2006 9:32 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение amik » Пт ноя 25, 2011 4:36 pm

Да Вы, батенька, извращенец :) Такого типа программы пишутся в том же экселе за час, из которых 40минут составит простой ввод атомных масс металлов в нужные позиции.
Впрочем, можно подождать готового решения.
Бог на стороне не больших батальонов, а тех, кто лучше стреляет (приписывается Вольтеру)

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Пт ноя 25, 2011 4:39 pm

Не извращенец, а лентяй. Ждём :shuffle:

Аватара пользователя
Jeffry
Сообщения: 2647
Зарегистрирован: Пн май 12, 2008 5:31 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Jeffry » Пт ноя 25, 2011 8:43 pm

Эта задача легко решается в Chem Equation Expert
Вводите металл и кислород, автоматом уравниваете реакцию, переносите ее в окно расчетов и забиваете оксиду 100 грамм. Один щелчок и количества металла и кислорода у Вас в кармане.
Тут для примера - скриншот расчета для Mn2O7

Код: Выделить всё

http://s017.radikal.ru/i410/1111/cd/79ce6aa896b4.tif

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Пт ноя 25, 2011 9:48 pm

Спасибо, но это не то. Если сам напишу - кину сюда потом.

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Чт мар 28, 2013 10:34 pm

Так, Ёкарный бабай!
Нашпилил я тут - не прошло и три года (достали, блин, сил нет):
EDX.rar
Это - проект для C++Builder.
В архиве есть EDX.exe. Вот он и есть - прога в зачаточном состоянии. Надеюсь, у вас тоже заработает, потому как - библиотеки всяки-разны. Если чо - перекомпилю по-другому.
Рядом лежит исходник, в конце кода лежит участок химической направленности - пересчёт из элементов в оксиды.
Куча предложений:
1. Там есть намеренная ошибка с оксидом углерода (азот я типа в элементе оставил). Как обрабатывать оксиды неметаллов? Это - к химикам.
2. Конечно, как поднатаскаюсь, уберу лишние разряды за запятыми и ограничусь десятыми процента.
3. Конечно, сделаю обратный переход: от оксидов к элементам.
4. Есть задумка зашпилить фичу: имеем в задаче готовую керамику, а как смешать имеющиеся соли и оксиды для конечного состава? Возле каждой кнопки с элементом должно выпадать меню с набором его солей и оксидов - выбираем вещества, имеющиеся в лабе на полках. И - вуаля: остаётся взвешивать на весах.
5. Принимаются всякие другие предложения: после Пасхи (не китайской, не надо грязи!!!) попытаюсь воплотить всё в коде.

ПС. А, да, принимаются также советы по писанию кода, так как сам я - нубяра тот ещё. Например, на экранах с маленьким разрешением окно проги стартует очень уж низко. Ну и всякие другие баги. Критика и помощь благодарственно приветствуется.
amik писал(а):Такого типа программы пишутся в том же экселе за час, из которых 40минут составит простой ввод атомных масс металлов в нужные позиции.
Вот ты смеёшься, а люди не могут просто в нужные ячейки проценты вписать. Ещё есть траблы с "нужными" оксидами, в общем, не наглядно это в экселе. Не для себя пишу, если чо.

ППС. А, это... комменты редкие в коде на германско-русском, так что :mrgreen:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Tokashi
Сообщения: 3894
Зарегистрирован: Пн мар 13, 2006 10:02 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Tokashi » Пт мар 29, 2013 5:54 pm

Программа что во что пересчитывает, моли в электронвольты или литры в гектары или штуки в эквиваленты? :wink:
Энергия ядерного взрыва примерно равна 20 Тера кал, что эквивалентно 4 Кило тоннам копчёной колбасы!

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Пт мар 29, 2013 9:04 pm

"Програ-а-а-амма"...:]
Прога.
Дорисовать единицы за полями? Прикрутить Help c About'ом? О, зафигачу менюху с переключателем прямого и обратного пересчёта.
Спасибо за замечание, Tokashi. Попозжа выложу исправленный вариант.

[ Post made via Windows Smartphone ] Изображение

Аватара пользователя
Albo
Сообщения: 937
Зарегистрирован: Вт июн 10, 2008 8:35 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Albo » Пт мар 29, 2013 11:30 pm

Неплохо бы еще кнопку Convent сделать Default, чтобы расчёт производился по нажатию enter-а, а для очистки, соотв., назначить Esc. Можно еще упорядочить TextBox-ы или как они там называются, эти поля ввода, по Tab-индексу, чтобы при нажатии Tab курсор переходил последовательно, а не скакал в произвольном порядке. Как бонус - кнопка Копировать в буфер рядом с каждым полем ввода.
А единицы измерения, что, как и во что пересчитывается, можно сделать, например, во всплывающих подсказках. Но сделать действительно нужно, ибо числа без единиц измерения какие-то грустные ))
А так прога запустилась и даже что-то считает ))

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Пт мар 29, 2013 11:56 pm

Albo, афигеть, мне с этими пожеланиями неделю мудохаться, спасибо :mrgreen:
А проверьте, чо там прога считает? Правильно я накропал алгоритм пересчёта или нет? Чо с неметаллами делать?

По "Энтеру" - дельно. А "эскейп" что должен делать: все поля очищать или только последнее?

Про курсор с табом - это надо в коде последовательность номеров кнопок менять, насколько я понимаю. Я пока на мышь ориентируюсь. Попробую. Вообще надо по нажатию кнопки с элементом пихать курсор сразу в поле ввода, но я пока не знаю как.

С единицами: пока могу только за полями ввода запилить их названия. Надо курить мануал.

Не! Ну прога-же ориентирована на пересчёт из ОДНИХ КОНКРЕТНЫХ единиц в ДРУГИЕ КОНКРЕТНЫЕ!
Ок, сделаю.

Аватара пользователя
Albo
Сообщения: 937
Зарегистрирован: Вт июн 10, 2008 8:35 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Albo » Сб мар 30, 2013 12:07 am

Агдамыч писал(а):Albo, афигеть, мне с этими пожеланиями неделю мудохаться, спасибо
Да там 5 минут работы )))
А "эскейп" что должен делать: все поля очищать или только последнее?
Мне кажется, по вкусу автора ))
Про курсор с табом - это надо в коде последовательность номеров кнопок менять, насколько я понимаю.

В свойствах элемента должно быть нечто похожее на TabIndex, не знаю как конкретно в этом языке называется, просто расставить цифры по возрастанию для всех полей.
Вообще надо по нажатию кнопки с элементом пихать курсор сразу в поле ввода, но я пока не знаю как.
Глянуть в сторону метода Select или Activate для элемента?
Не! Ну прога-же ориентирована на пересчёт из ОДНИХ КОНКРЕТНЫХ единиц в ДРУГИЕ КОНКРЕТНЫЕ!
Действительно, может один раз где-нибудь вверху написать, и не тыкать около каждой строки?

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Сб мар 30, 2013 12:22 am

Да хде пять минут, если нуб?
Вот, накропал версию с переключениями, хелпом и подсказками. Всё остальное надо втыкать сначала.
EDX.rar
ЗЫ. А, там второе поле, где оксиды в элементы переводятся, пока не активно ещё.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Archeolog
Сообщения: 1891
Зарегистрирован: Сб авг 27, 2005 2:08 pm
Контактная информация:

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Archeolog » Сб мар 30, 2013 10:34 pm

Что-то я в этой проге недопонимаю :issue: .Ввожу к примеру по единичке в поля Al и Сa, прога пересчитывает на оксиды и выходит 82,52.. и 17,47... как так получается, когда коэффициент пересчета Al в Al2O3 равен 1,889, а Сa на CaO 1,399.
Я уже все решил, и не пытайтесь сбить меня с толку фактами!

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Вс мар 31, 2013 9:16 am

Блин, я для оксида кальция в молекулярной массе вместо пятёрки единицу вмочил: вообще это неправильно - заставлять прогу каждый раз коэффициенты пересчёта вычислять, вот и ошибка выскочила...
Я потом все значения ещё раз проверю, сейчас на работе занят.

PS. Pешил проблему с Tab'ом (что-бы только по полям ввода скакал, да по кнопке "Convert". Добил поле обратного пересчёта, да ещё состряпал поле YourLabManager - это пункт 4. из моего поста про желания. Но там чо-та застопорился: ведь это надо точно знать, какие исходники брать, а не просто тупо "тяп-ляп", там уже химии намного больше, чем математики.

Допилю я пока просто пересчёт концентраций, отшлифую всё и выложу. Ещё не все желания Albo выполнил.
Спасибо, Archeolog.

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Сб апр 06, 2013 5:42 pm

Всё, нафиг.
Прога - здесь:
Convert It 0.1.rar
Коэффициенты пересчёта смотри в куске листинга ниже, брал их с Википедии. Если где напортачил опять - поправлю.

Код: Выделить всё

sum_e=sum_e+Al/1.8895;
sum_e=sum_e+Ag/1.0742;
sum_e=sum_e+W/1.2611;
sum_e=sum_e+Ca/1.3992;
sum_e=sum_e+Co/1.2715;
sum_e=sum_e+Cr/1.4616;
sum_e=sum_e+Cu/1.2518;
sum_e=sum_e+Fe/1.4297;
sum_e=sum_e+Mg/1.6583;
sum_e=sum_e+Mn/1.4368;
sum_e=sum_e+Nd/1.1664;
sum_e=sum_e+Ni/1.2726;
sum_e=sum_e+Si/2.1393;
sum_e=sum_e+Sr/1.1826;
sum_e=sum_e+Ti/1.6685;
sum_e=sum_e+V/1.7852;
sum_e=sum_e+Y/1.2699;
sum_e=sum_e+Zn/1.2447;
sum_e=sum_e+Zr/1.3508;
- округляет до сотых;

- Tab бегает только по полям ввода и кнопке Convert;

- Убраны нафег углерод и азот (заменены парочкой подвернувшихся металлов): только оксидная керамика, только хардкор (кстати, здесь и надо-бы запилить фичу Ё_Лаб_Манагер, так как проблемы с химией решены, но это - потом, т.е., никогда);

- Просьбы Albo насчёт буфера обмена и Эскейпа не удовлетворены:
>>с буфером я не знаю, что делать, куда копировать - в Эксель, что-ли? Форматы опять непонятны, да и просто - не хватает мозгов;
>> эскейп - лишний, так как незаполненные поля в расчёте не участвуют, и, более того, появляется возможность пустые поля оставлять в качестве "а что, если этот оксид убрать?";

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

- имеется баг при закрытии окна Help: главное окно проги не становится активным. Не знаю почему. Окно About такой проблемы не имеет, а код кнопок совершенно одинаков.

Здесь - весь проект для оптимизаторов:
Convertik.rar
Спасибо всем поучаствовавшим.

Отдельная благодарность Pand'e за правильный английский.

Инджой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
ИСН
Робин Гуд
Сообщения: 8535
Зарегистрирован: Пт окт 10, 2003 5:32 pm
Контактная информация:

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение ИСН » Сб апр 06, 2013 8:28 pm

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

Аватара пользователя
Агдамыч
Сообщения: 4852
Зарегистрирован: Пт ноя 06, 2009 3:45 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Агдамыч » Сб апр 06, 2013 8:39 pm

Ничего, кроме оксида марганца не понял. В понедельник посмотрю, в чём считает наш флюоресцентник, подозреваю теперь, что в 4-хвалентном марганце (?). Но я поправлю и выложу.

Аватара пользователя
Albo
Сообщения: 937
Зарегистрирован: Вт июн 10, 2008 8:35 pm

Re: Прога по пересчёту процентного содержания: элемент --> о

Сообщение Albo » Сб апр 06, 2013 9:48 pm

Что-то там не так. После ввода любого числа сначала выдает в любом окне 100, после этого при вводе одного и того же значения - каждый раз новые результаты. Где-то не обнуляются переменные?
Субъективно как-то мелковаты подписи оксидов, но это дело вкуса.

Ответить

Вернуться в «общехимические вопросы / general chemical issues»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость