Добрый день.
Дмитрий Иванович Менделеев родился в г. Тобольск Тобольской губернии Российской империи 8 февраля 1834 года в семье директора тобольской гимназии.
В 1869 году, в возрасте 35 лет Д.И. Менделеев открыл закон природы, позднее названный в честь открывателя «Периодический закон Д.И. Менделеева ».
На основании открытого закона природы была создана «Таблица химических элементов Менделеева».
Сначала данная таблица имела не вполне приглядный вид. Сейчас эта таблица существует во множестве вариантов оформления.
Один из наиболее удачных вариантов оформленных в виде таблицы «Excel» Вы можете скачать по ссылке ниже:
Таблица Менделеева в формате Excel/ бесплатно
Таблица полностью готова к печати, но гораздо удобнее ей пользоваться в электронном виде, так как при наведении курсора мыши на ячейки с элементами в «Excel» появляется всплывающая подсказка с подробным описанием элемента.
Тип: Программа
Программные средства: Microsoft Office Excel 2007
Описание: Данная программа представляет собой периодическую систему химических элементов Д. И. Менделеева, разработанную в среде Excel. В таблице содержатся не только основные сведения об элементах, но и дополнительная информация, появляющаяся в виде заметок при наведении курсора на верхний правый угол ячейки элемента. Элементы выделены цветом в зависимости от их свойств. Правила выделения указаны в «Справке» программы.
Практическое применение: Данной программой можно пользоваться не только индивидуально. Содержащиеся в ней данные будут полезны на уроках химии, а красочный дизайн даст наглядное представление о периодической системе элементов и вызовет дополнительный интерес, особенно у учеников первого года обучения химии. Также программу можно использовать на уроках информатики как пример таблицы, созданной в Excel.
Скачать:
Сообщение было отмечено ЮрийТ как решение
Решение
Visual Basic | ||
|
Вариант не для Windows без словаря
Кликните здесь для просмотра всего текста
Visual Basic | ||
|
6
Function MolMassa(ByVal strFormula As String) As Double Dim i%, j%, k%, El, eM, S$, S1$, S2$, SubSum#(), OldEM#, OldEM2#, ReCalc As Boolean, LenFormula%, Chislo$, dic El = Split("Ac Ag Al Am Ar As At Au Ba Be Bi Bk Br Ca Cd Ce Cf Cl Cm Co Cr Cs Cu Dy Er Es Eu Fe Fm Fr Ga Gd Ge He Hf Hg Ho In Ir Kr La Li Lr Lu Md Mg Mn Mo Na Nb Nd Ne Ni No Np Os Pa Pb Pd Pm Po Pr Pt Pu Ra Rb Re Rh Rn Ru Sb Sc Se Si Sm Sn Sr Ta Tb Tc Te Th Ti Tl Tm Xe Yb Zn Zr B C F H I K N O P S U V W Y") eM = Array(227.028, 107.868, 26.982, 243.061, 39.948, 74.922, 209.987, 196.967, 137.33, 9.012, 208.98, 247.07, 79.904, 40.078, 112.41, 140.12, 251.08, 35.453, 247.07, 58.933, 51.996, 132.905, 63.546, 162.5, 167.26, 252.083, 151.96, 55.847, 257.095, 223.02, 69.723, 157.25, 72.59, 4.003, 178.49, 200.59, 164.93, 114.82, 192.22, 83.8, 138.906, 6.941, 260.105, 174.967, 258.099, 24.305, 54.938, 95.94, 22.99, 92.906, 144.24, 20.179, 58.69, 259.101, 237.048, 190.2, 231.036, 207.2, 106.42, 144.913, 208.982, 140.908, 195.08, 244.064, 226.025, 85.468, 186.207, 102.906, 222.018, 101.07, 121.75, 44.956, 78.96, 28.086, 150.36, 118.71, 87.62, 180.948, 158.925, 97.907, 127.6, 232.038, 47.88, 204.383, 168.934, 131.29, 173.04, 65.39, 91.224, 10.811, 12.011, 18.998, 1.008, 126.905, 39.098, 14.007, 15.999, 30.974, 32.066, 238.029, 50.942, 183.85, 88.906) strFormula = strFormula & "#" LenFormula = Len(strFormula) ReDim SubSum(1) Set dic = CreateObject("Scripting.Dictionary") For j = 0 To UBound(El) dic(El(j)) = eM(j) Next j k = 1 i = 1 Do S1 = Mid(strFormula, i, 1) ReCalc = True OldEM2 = OldEM Select Case S1 Case "(" Case ")", "#" Case "0" To "9" Chislo = Chislo & S1 ReCalc = False Case Else S2 = Mid(strFormula, i, 2) S = "" If dic.Exists(S2) Then S = S2 ElseIf dic.Exists(S1) Then S = S1 End If If S <> "" Then OldEM = dic(S) i = i - 1 + Len(S) End If End Select If ReCalc Then If Chislo = "" Then Chislo = "1" SubSum(k) = SubSum(k) + OldEM2 * Val(Chislo) Chislo = "" End If Select Case S1 Case "(" OldEM = 0 k = k + 1 ReDim Preserve SubSum(k) SubSum(k) = 0 Case ")" OldEM = SubSum(k) k = k - 1 End Select i = i + 1 Loop While i <= LenFormula MolMassa = SubSum(1) Set dic = Nothing End Function Sub Test_MolMassa() Debug.Print "H", MolMassa("H") Debug.Print "O", MolMassa("O") Debug.Print "H2O", MolMassa("H2O") Debug.Print "S", MolMassa("S") Debug.Print "Al2", MolMassa("Al2") Debug.Print "SO4", MolMassa("SO4") Debug.Print "(SO4)3", MolMassa("(SO4)3") Debug.Print "Al2(SO4)3", MolMassa("Al2(SO4)3") Debug.Print "H2(SO4)3", MolMassa("H2(SO4)3") Debug.Print "(CH3)3", MolMassa("(CH3)3") Debug.Print "(CH3)3N", MolMassa("(CH3)3N") Debug.Print "((CH3)3N)2", MolMassa("((CH3)3N)2") End Sub
$begingroup$
Sorry for the FAQ, but I really don’t know where to find a full spreadsheet for element properties. I mean a table that has one row for each element, and the columns are its properties, such as name, atomic number, density, melting point, etc. I know that there are many sites or references for that, but I need it in tabular format, because I want to analyze data, make charts, etc.
jonsca
2,9377 gold badges31 silver badges56 bronze badges
asked Dec 18, 2012 at 15:25
$endgroup$
4
$begingroup$
Well, here’s a CSV file that I parsed out of the JSON data provided by Paul Nathan’s website, which in turn was produced from gPeriodic data in response to this question. gPeriodic is FOSS, so I can only assume that the element data contained within is good to share, though I have no idea of its provenance.
The parser uses the python json module to read the data, which I then wrote into comma separated values, which should be readable by any halfway competent spreadsheet program.
Here it is: Pastebin Link
save it as elementdata.csv and you’re good to go.
Some gotchas:
- This reproduces the gPeriodic data, warts and all. I make no guarantees regarding its correctness, recency, etc. I just munged the data.
- Some of the data is augmented with tildes, notes about temperature/polymorph/state etc. I’ve left these as they are but you may need to trim them if you want to plot them as numeric values.
- Argon had an atomic radius of ‘2-‘, whatever that means. I cut it.
- Excel is joke software and habitually interprets numbers wrapped in parentheses as negatives, because apparently some accountants decided that surrounding numbers in parens is a more sensible option than using a minus sign. Needless to say, this is wrong. I’ve addressed the problem by wrapping the affected numbers in angle brackets.
- There are no ionic radii in the source data. At all. Not my fault.
- The columns inherit the units of the source data. I’ve left the units out on purpose because I wanted each column to have no spaces in the name for ease of processing in R or whatever. Furthermore, the units in the source file have some inconvenient characters from an encoding perspective.
Tried plotting Z versus covalent radius in R from this data — looks alright:
Some of the data points are missing, some are not read by R because they are wrapped in <> — pre-process to your heart’s content.
answered Dec 19, 2012 at 11:22
Richard TerrettRichard Terrett
10.7k1 gold badge49 silver badges67 bronze badges
$endgroup$
5
$begingroup$
Fine, here’s my data taken from the reference mentioned in my above comment.
I cannot vouch for it’s accuracy.
This is in the .csv
file format for its wide use as enlightened by Richard Terrett. You can combine certain ranges from this csv/spreadsheet to the one prepared by Richard, because it contains certain properties not contained in Richard’s source.
Also there are certain properties in Richard’s file which are absent/improper in mine so this file is best used in conjunction with Richard’s file.
answered Dec 22, 2012 at 12:12
$endgroup$
3
$begingroup$
I found a nice json database here (it may have errors, I wouldn’t know, but there are links to the original sources).
Best visualised with Chernoff faces IMO,
library(jsonlite)
library(ggplot2)
library(ggChernoff)
# https://github.com/Bowserinator/Periodic-Table-JSON
d <- fromJSON('PeriodicTableJSON.json')[["elements"]]
ggplot(d, aes(xpos,10-ypos)) +
geom_chernoff(aes(fill=category, size = phase, smile = density, brow = molar_heat)) +
geom_text(aes(label=symbol), vjust=2.5) +
guides(fill=guide_legend(ncol=2)) +
theme_void() +
scale_brow_continuous(breaks = c(10, 25, 50))+
theme(legend.position = 'right', panel.background = element_rect(colour="black"))
answered Dec 29, 2017 at 8:58
baptistebaptiste
1991 silver badge4 bronze badges
$endgroup$
$begingroup$
I’ve collected a lot data on the elements from several sources and built a small python package around it called mendeleev. The data is contained in a SQLite3 database from which you can easily extract csv files of individual tables.
Most of the data if properly referenced so you can trace back its origin.
Moreover since the interface is written in Python you can easily plot and analyze the data if needed.
M.A.R.
10.5k19 gold badges68 silver badges90 bronze badges
answered Oct 10, 2016 at 10:35
$endgroup$
$begingroup$
answered Oct 22, 2017 at 0:43
$endgroup$