Прога по пересчёту процентного содержания: элемент --> оксид
Прога по пересчёту процентного содержания: элемент --> оксид
Проблема: необходимо вручную пересчитывать результаты SEM-анализа: элементный состав в содержание оксидов. Качественный состав довольно-таки вариабельный - эксель не подойдёт, насколько я понимаю. Есть-ли у кого на примете автоматизированное решение?
Re: Прога по пересчёту процентного содержания: элемент --> о
А что значит вариабельный? Чтобы пересчитать содержание элемента на оксид, нужно просто домножить на соответствующий множитель.
Например, % Э=x ----> x*M(ЭzOy)*z/(100*M(Э)).
А если оксиды могут быть разные, то наверное между ними никак не выбрать, зная только содержание элемента.
Например, % Э=x ----> x*M(ЭzOy)*z/(100*M(Э)).
А если оксиды могут быть разные, то наверное между ними никак не выбрать, зная только содержание элемента.
Re: Прога по пересчёту процентного содержания: элемент --> о
"Вариабельно" означает, что набор элементов каждый раз разный. А прога должна выглядеть примерно так: набор элементов (Таблица Менделеева, к примеру), щёлкаешь по элементу, вводишь в поле концентрацию, затем - к следующему элементу. Хорошо-бы ещё иметь возможность выбирать валентность.
Способ ввода элементов не принципиален, просто с Таблицей легче реализуемо.
Способ ввода элементов не принципиален, просто с Таблицей легче реализуемо.
Re: Прога по пересчёту процентного содержания: элемент --> о
Да Вы, батенька, извращенец
Такого типа программы пишутся в том же экселе за час, из которых 40минут составит простой ввод атомных масс металлов в нужные позиции.
Впрочем, можно подождать готового решения.
Впрочем, можно подождать готового решения.
Бог на стороне не больших батальонов, а тех, кто лучше стреляет (приписывается Вольтеру)
Re: Прога по пересчёту процентного содержания: элемент --> о
Не извращенец, а лентяй. Ждём 
Re: Прога по пересчёту процентного содержания: элемент --> о
Эта задача легко решается в Chem Equation Expert
Вводите металл и кислород, автоматом уравниваете реакцию, переносите ее в окно расчетов и забиваете оксиду 100 грамм. Один щелчок и количества металла и кислорода у Вас в кармане.
Тут для примера - скриншот расчета для Mn2O7
Вводите металл и кислород, автоматом уравниваете реакцию, переносите ее в окно расчетов и забиваете оксиду 100 грамм. Один щелчок и количества металла и кислорода у Вас в кармане.
Тут для примера - скриншот расчета для Mn2O7
Код: Выделить всё
http://s017.radikal.ru/i410/1111/cd/79ce6aa896b4.tifRe: Прога по пересчёту процентного содержания: элемент --> о
Спасибо, но это не то. Если сам напишу - кину сюда потом.
Re: Прога по пересчёту процентного содержания: элемент --> о
Так, Ёкарный бабай!
Нашпилил я тут - не прошло и три года (достали, блин, сил нет): Это - проект для C++Builder.
В архиве есть EDX.exe. Вот он и есть - прога в зачаточном состоянии. Надеюсь, у вас тоже заработает, потому как - библиотеки всяки-разны. Если чо - перекомпилю по-другому.
Рядом лежит исходник, в конце кода лежит участок химической направленности - пересчёт из элементов в оксиды.
Куча предложений:
1. Там есть намеренная ошибка с оксидом углерода (азот я типа в элементе оставил). Как обрабатывать оксиды неметаллов? Это - к химикам.
2. Конечно, как поднатаскаюсь, уберу лишние разряды за запятыми и ограничусь десятыми процента.
3. Конечно, сделаю обратный переход: от оксидов к элементам.
4. Есть задумка зашпилить фичу: имеем в задаче готовую керамику, а как смешать имеющиеся соли и оксиды для конечного состава? Возле каждой кнопки с элементом должно выпадать меню с набором его солей и оксидов - выбираем вещества, имеющиеся в лабе на полках. И - вуаля: остаётся взвешивать на весах.
5. Принимаются всякие другие предложения: после Пасхи (не китайской, не надо грязи!!!) попытаюсь воплотить всё в коде.
ПС. А, да, принимаются также советы по писанию кода, так как сам я - нубяра тот ещё. Например, на экранах с маленьким разрешением окно проги стартует очень уж низко. Ну и всякие другие баги. Критика и помощь благодарственно приветствуется.
ППС. А, это... комменты редкие в коде на германско-русском, так что
Нашпилил я тут - не прошло и три года (достали, блин, сил нет): Это - проект для C++Builder.
В архиве есть EDX.exe. Вот он и есть - прога в зачаточном состоянии. Надеюсь, у вас тоже заработает, потому как - библиотеки всяки-разны. Если чо - перекомпилю по-другому.
Рядом лежит исходник, в конце кода лежит участок химической направленности - пересчёт из элементов в оксиды.
Куча предложений:
1. Там есть намеренная ошибка с оксидом углерода (азот я типа в элементе оставил). Как обрабатывать оксиды неметаллов? Это - к химикам.
2. Конечно, как поднатаскаюсь, уберу лишние разряды за запятыми и ограничусь десятыми процента.
3. Конечно, сделаю обратный переход: от оксидов к элементам.
4. Есть задумка зашпилить фичу: имеем в задаче готовую керамику, а как смешать имеющиеся соли и оксиды для конечного состава? Возле каждой кнопки с элементом должно выпадать меню с набором его солей и оксидов - выбираем вещества, имеющиеся в лабе на полках. И - вуаля: остаётся взвешивать на весах.
5. Принимаются всякие другие предложения: после Пасхи (не китайской, не надо грязи!!!) попытаюсь воплотить всё в коде.
ПС. А, да, принимаются также советы по писанию кода, так как сам я - нубяра тот ещё. Например, на экранах с маленьким разрешением окно проги стартует очень уж низко. Ну и всякие другие баги. Критика и помощь благодарственно приветствуется.
Вот ты смеёшься, а люди не могут просто в нужные ячейки проценты вписать. Ещё есть траблы с "нужными" оксидами, в общем, не наглядно это в экселе. Не для себя пишу, если чо.amik писал(а):Такого типа программы пишутся в том же экселе за час, из которых 40минут составит простой ввод атомных масс металлов в нужные позиции.
ППС. А, это... комменты редкие в коде на германско-русском, так что
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Прога по пересчёту процентного содержания: элемент --> о
Программа что во что пересчитывает, моли в электронвольты или литры в гектары или штуки в эквиваленты? 
Энергия ядерного взрыва примерно равна 20 Тера кал, что эквивалентно 4 Кило тоннам копчёной колбасы!
Re: Прога по пересчёту процентного содержания: элемент --> о
"Програ-а-а-амма"...:]
Прога.
Дорисовать единицы за полями? Прикрутить Help c About'ом? О, зафигачу менюху с переключателем прямого и обратного пересчёта.
Спасибо за замечание, Tokashi. Попозжа выложу исправленный вариант.
[ Post made via Windows Smartphone ]
Прога.
Дорисовать единицы за полями? Прикрутить Help c About'ом? О, зафигачу менюху с переключателем прямого и обратного пересчёта.
Спасибо за замечание, Tokashi. Попозжа выложу исправленный вариант.
[ Post made via Windows Smartphone ]

Re: Прога по пересчёту процентного содержания: элемент --> о
Неплохо бы еще кнопку Convent сделать Default, чтобы расчёт производился по нажатию enter-а, а для очистки, соотв., назначить Esc. Можно еще упорядочить TextBox-ы или как они там называются, эти поля ввода, по Tab-индексу, чтобы при нажатии Tab курсор переходил последовательно, а не скакал в произвольном порядке. Как бонус - кнопка Копировать в буфер рядом с каждым полем ввода.
А единицы измерения, что, как и во что пересчитывается, можно сделать, например, во всплывающих подсказках. Но сделать действительно нужно, ибо числа без единиц измерения какие-то грустные ))
А так прога запустилась и даже что-то считает ))
А единицы измерения, что, как и во что пересчитывается, можно сделать, например, во всплывающих подсказках. Но сделать действительно нужно, ибо числа без единиц измерения какие-то грустные ))
А так прога запустилась и даже что-то считает ))
Re: Прога по пересчёту процентного содержания: элемент --> о
Albo, афигеть, мне с этими пожеланиями неделю мудохаться, спасибо 
А проверьте, чо там прога считает? Правильно я накропал алгоритм пересчёта или нет? Чо с неметаллами делать?
По "Энтеру" - дельно. А "эскейп" что должен делать: все поля очищать или только последнее?
Про курсор с табом - это надо в коде последовательность номеров кнопок менять, насколько я понимаю. Я пока на мышь ориентируюсь. Попробую. Вообще надо по нажатию кнопки с элементом пихать курсор сразу в поле ввода, но я пока не знаю как.
С единицами: пока могу только за полями ввода запилить их названия. Надо курить мануал.
Не! Ну прога-же ориентирована на пересчёт из ОДНИХ КОНКРЕТНЫХ единиц в ДРУГИЕ КОНКРЕТНЫЕ!
Ок, сделаю.
А проверьте, чо там прога считает? Правильно я накропал алгоритм пересчёта или нет? Чо с неметаллами делать?
По "Энтеру" - дельно. А "эскейп" что должен делать: все поля очищать или только последнее?
Про курсор с табом - это надо в коде последовательность номеров кнопок менять, насколько я понимаю. Я пока на мышь ориентируюсь. Попробую. Вообще надо по нажатию кнопки с элементом пихать курсор сразу в поле ввода, но я пока не знаю как.
С единицами: пока могу только за полями ввода запилить их названия. Надо курить мануал.
Не! Ну прога-же ориентирована на пересчёт из ОДНИХ КОНКРЕТНЫХ единиц в ДРУГИЕ КОНКРЕТНЫЕ!
Ок, сделаю.
Re: Прога по пересчёту процентного содержания: элемент --> о
Да там 5 минут работы )))Агдамыч писал(а):Albo, афигеть, мне с этими пожеланиями неделю мудохаться, спасибо
Мне кажется, по вкусу автора ))А "эскейп" что должен делать: все поля очищать или только последнее?
Про курсор с табом - это надо в коде последовательность номеров кнопок менять, насколько я понимаю.
В свойствах элемента должно быть нечто похожее на TabIndex, не знаю как конкретно в этом языке называется, просто расставить цифры по возрастанию для всех полей.
Глянуть в сторону метода Select или Activate для элемента?Вообще надо по нажатию кнопки с элементом пихать курсор сразу в поле ввода, но я пока не знаю как.
Действительно, может один раз где-нибудь вверху написать, и не тыкать около каждой строки?Не! Ну прога-же ориентирована на пересчёт из ОДНИХ КОНКРЕТНЫХ единиц в ДРУГИЕ КОНКРЕТНЫЕ!
Re: Прога по пересчёту процентного содержания: элемент --> о
Да хде пять минут, если нуб?
Вот, накропал версию с переключениями, хелпом и подсказками. Всё остальное надо втыкать сначала. ЗЫ. А, там второе поле, где оксиды в элементы переводятся, пока не активно ещё.
Вот, накропал версию с переключениями, хелпом и подсказками. Всё остальное надо втыкать сначала. ЗЫ. А, там второе поле, где оксиды в элементы переводятся, пока не активно ещё.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Прога по пересчёту процентного содержания: элемент --> о
Что-то я в этой проге недопонимаю
.Ввожу к примеру по единичке в поля Al и Сa, прога пересчитывает на оксиды и выходит 82,52.. и 17,47... как так получается, когда коэффициент пересчета Al в Al2O3 равен 1,889, а Сa на CaO 1,399.
Я уже все решил, и не пытайтесь сбить меня с толку фактами!
Re: Прога по пересчёту процентного содержания: элемент --> о
Блин, я для оксида кальция в молекулярной массе вместо пятёрки единицу вмочил: вообще это неправильно - заставлять прогу каждый раз коэффициенты пересчёта вычислять, вот и ошибка выскочила...
Я потом все значения ещё раз проверю, сейчас на работе занят.
PS. Pешил проблему с Tab'ом (что-бы только по полям ввода скакал, да по кнопке "Convert". Добил поле обратного пересчёта, да ещё состряпал поле YourLabManager - это пункт 4. из моего поста про желания. Но там чо-та застопорился: ведь это надо точно знать, какие исходники брать, а не просто тупо "тяп-ляп", там уже химии намного больше, чем математики.
Допилю я пока просто пересчёт концентраций, отшлифую всё и выложу. Ещё не все желания Albo выполнил.
Спасибо, Archeolog.
Я потом все значения ещё раз проверю, сейчас на работе занят.
PS. Pешил проблему с Tab'ом (что-бы только по полям ввода скакал, да по кнопке "Convert". Добил поле обратного пересчёта, да ещё состряпал поле YourLabManager - это пункт 4. из моего поста про желания. Но там чо-та застопорился: ведь это надо точно знать, какие исходники брать, а не просто тупо "тяп-ляп", там уже химии намного больше, чем математики.
Допилю я пока просто пересчёт концентраций, отшлифую всё и выложу. Ещё не все желания Albo выполнил.
Спасибо, Archeolog.
Re: Прога по пересчёту процентного содержания: элемент --> о
Всё, нафиг.
Прога - здесь:Коэффициенты пересчёта смотри в куске листинга ниже, брал их с Википедии. Если где напортачил опять - поправлю.
- округляет до сотых;
- Tab бегает только по полям ввода и кнопке Convert;
- Убраны нафег углерод и азот (заменены парочкой подвернувшихся металлов): только оксидная керамика, только хардкор (кстати, здесь и надо-бы запилить фичу Ё_Лаб_Манагер, так как проблемы с химией решены, но это - потом, т.е., никогда);
- Просьбы Albo насчёт буфера обмена и Эскейпа не удовлетворены:
>>с буфером я не знаю, что делать, куда копировать - в Эксель, что-ли? Форматы опять непонятны, да и просто - не хватает мозгов;
>> эскейп - лишний, так как незаполненные поля в расчёте не участвуют, и, более того, появляется возможность пустые поля оставлять в качестве "а что, если этот оксид убрать?";
- небольшой участок говнокода заменён расово верным, но в целом прога написана чистым говнокодом, что, впрочем, при её весе совершенно не важно;
- имеется баг при закрытии окна Help: главное окно проги не становится активным. Не знаю почему. Окно About такой проблемы не имеет, а код кнопок совершенно одинаков.
Здесь - весь проект для оптимизаторов: Спасибо всем поучаствовавшим.
Отдельная благодарность Pand'e за правильный английский.
Инджой.
Прога - здесь:Коэффициенты пересчёта смотри в куске листинга ниже, брал их с Википедии. Если где напортачил опять - поправлю.
Код: Выделить всё
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 такой проблемы не имеет, а код кнопок совершенно одинаков.
Здесь - весь проект для оптимизаторов: Спасибо всем поучаствовавшим.
Отдельная благодарность Pand'e за правильный английский.
Инджой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Прога по пересчёту процентного содержания: элемент --> о
Агдамыч, побойтесь святого Кнута. Вы же не используете никаких фич, для которых по сути необходим экзешник (не читаете файла, не пишете в файл, не гадите в буфер обмена...) - такое сам бог велел делать в голом вебе. К тому же продукт был бы гораздо проще в тестировании, а готовый - занимал бы в 100 раз (не метафора) меньше места.
И с каких пор оксид марганца по умолчанию - это Mn2O3?
И с каких пор оксид марганца по умолчанию - это Mn2O3?
Re: Прога по пересчёту процентного содержания: элемент --> о
Ничего, кроме оксида марганца не понял. В понедельник посмотрю, в чём считает наш флюоресцентник, подозреваю теперь, что в 4-хвалентном марганце (?). Но я поправлю и выложу.
Re: Прога по пересчёту процентного содержания: элемент --> о
Что-то там не так. После ввода любого числа сначала выдает в любом окне 100, после этого при вводе одного и того же значения - каждый раз новые результаты. Где-то не обнуляются переменные?
Субъективно как-то мелковаты подписи оксидов, но это дело вкуса.
Субъективно как-то мелковаты подписи оксидов, но это дело вкуса.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 18 гостей