5digit commited on
Commit
c5b103c
·
verified ·
1 Parent(s): 95c0035

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -342
app.py CHANGED
@@ -25,348 +25,6 @@ def main():
25
  st.write(f"🔋 Масса катиона аммония NH4+: {nh4} г")
26
  st.write(f"⚡ Масса аниона SO4^2-: {so4} г")
27
 
28
- def calculate_atoms():
29
- # Константы
30
- mass_K = 39.1 # г/моль
31
- mass_Na = 22.99 # г/моль
32
- Avogadro_number = 6.022e23 # атомов/моль
33
-
34
- # Масса одного атома K
35
- mass_per_atom_K = mass_K / Avogadro_number
36
-
37
- # Масса 300 атомов K
38
- mass_300_K = 300 * mass_per_atom_K
39
-
40
- # Масса одного атома Na
41
- mass_per_atom_Na = mass_Na / Avogadro_number
42
-
43
- # Количество атомов Na, имеющих такую же массу
44
- num_atoms_Na = mass_300_K / mass_per_atom_Na
45
-
46
- return num_atoms_Na
47
-
48
- def main():
49
- st.title("Расчет количества атомов Na")
50
-
51
- num_atoms_Na = calculate_atoms()
52
-
53
- st.write(f"🔢 Количество атомов Na в порции, имеющей такую же массу, как и масса 300 атомов K: {int(num_atoms_Na)} атомов")
54
-
55
- def calculate_molecules_and_atoms():
56
- N_A = 6.022e23 # Число Авогадро
57
-
58
- # 1) Вода
59
- V_water = 1.2 # см³
60
- density_water = 1.0 # г/см³
61
- mass_water = V_water * density_water # г
62
- moles_water = mass_water / 18.0 # г/моль
63
- molecules_water = moles_water * N_A
64
-
65
- # 2) Бензол
66
- V_benzene = 5.0 # см³
67
- density_benzene = 0.8 # г/см³
68
- mass_benzene = V_benzene * density_benzene # г
69
- moles_benzene = mass_benzene / 78.0 # г/моль
70
- molecules_benzene = moles_benzene * N_A
71
-
72
- # 3) Цинк
73
- V_zinc = 2.0 # см³
74
- density_zinc = 7.1 # г/см³
75
- mass_zinc = V_zinc * density_zinc # г
76
- moles_zinc = mass_zinc / 65.4 # г/моль
77
- atoms_zinc = moles_zinc * N_A
78
-
79
- # 4) Магний
80
- mass_magnesium = 3.0 # г
81
- moles_magnesium = mass_magnesium / 24.3 # г/моль
82
- atoms_magnesium = moles_magnesium * N_A
83
-
84
- return {
85
- "molecules_water": molecules_water,
86
- "molecules_benzene": molecules_benzene,
87
- "atoms_zinc": atoms_zinc,
88
- "atoms_magnesium": atoms_magnesium
89
- }
90
-
91
- def main():
92
- st.title("Расчет числа молекул и атомов")
93
-
94
- results = calculate_molecules_and_atoms()
95
-
96
- st.write(f"💧 Количество молекул в 1,2 см³ воды: {int(results['molecules_water'])} молекул")
97
- st.write(f"🧪 Количество молекул в 5,0 см³ бензола: {int(results['molecules_benzene'])} молекул")
98
- st.write(f"🔩 Количество атомов в 2 см³ цинка: {int(results['atoms_zinc'])} атомов")
99
- st.write(f"🔧 Количество атомов в 3,0 г магния: {int(results['atoms_magnesium'])} атомов")
100
-
101
- def calculate_water_fraction():
102
- # Молекулярные массы
103
- mol_w_h2o = 18.0 # г/моль
104
- compounds = {
105
- "CuSO4 · 5H2O": (159.5, 5 * mol_w_h2o),
106
- "AlNH4(SO4)2 · 12H2O": (132.1, 12 * mol_w_h2o),
107
- "FeSO4 · 7H2O": (151.0, 7 * mol_w_h2o),
108
- "Na2SO4 · 10H2O": (142.0, 10 * mol_w_h2o)
109
- }
110
-
111
- results = {}
112
- for name, (molar_mass_salt, mass_water) in compounds.items():
113
- total_mass = molar_mass_salt + mass_water
114
- water_fraction = (mass_water / total_mass) * 100
115
- results[name] = water_fraction
116
-
117
- return results
118
-
119
- def main():
120
- st.title("Расчет массовой доли воды в кристаллогидратах")
121
-
122
- results = calculate_water_fraction()
123
-
124
- for name, fraction in results.items():
125
- st.write(f"{name}: {fraction:.2f}% воды 💧")
126
-
127
- def calculate_masses():
128
- # Живое приложение расчета
129
- elements = {}
130
-
131
- # 1. Масса железа в магнетите Fe3O4
132
- M_Fe = 55.85
133
- M_O = 16.0
134
- M_Fe3O4 = 3 * M_Fe + 4 * M_O
135
- mass_magnetite = 330
136
- iron_mass = (3 * M_Fe / M_Fe3O4) * mass_magnetite
137
- elements['Железо в 330 г магнетита Fe3O4'] = iron_mass
138
-
139
- # 2. Масса серы в Na2SO4
140
- M_Na = 22.99
141
- M_S = 32.07
142
- M_Na2SO4 = 2 * M_Na + M_S + 4 * M_O
143
- mass_Na2SO4 = 2.80
144
- sulfur_mass = (M_S / M_Na2SO4) * mass_Na2SO4
145
- elements['Сера в 2,80 г Na2SO4'] = sulfur_mass
146
-
147
- # 3. Масса фосфора в Ca3(PO4)2
148
- M_Ca = 40.08
149
- M_P = 30.97
150
- M_Ca3PO42 = 3 * M_Ca + 2 * (M_P + 4 * M_O)
151
- mass_Ca3PO42 = 3.10
152
- phosphorus_mass = (2 * M_P / M_Ca3PO42) * mass_Ca3PO42
153
- elements['Фосфор в 3,10 г Ca3(PO4)2'] = phosphorus_mass
154
-
155
- # 4. Масса азота в Fe(NO3)3
156
- M_N = 14.01
157
- M_FeNO3_3 = M_Fe + 3 * (M_N + 3 * M_O)
158
- mass_FeNO3_3 = 4.70
159
- nitrogen_mass = (3 * M_N / M_FeNO3_3) * mass_FeNO3_3
160
- elements['Азот в 4,70 г Fe(NO3)3'] = nitrogen_mass
161
-
162
- return elements
163
-
164
- def main():
165
- st.title("Расчет массы элементов в соединениях")
166
-
167
- results = calculate_masses()
168
-
169
- for description, mass in results.items():
170
- st.write(f"{description}: {mass:.2f} г")
171
-
172
- def calculate_mass_fraction():
173
- # Константы
174
- M_K = 39.10 # г/моль
175
- M_N = 14.01 # г/моль
176
- M_O = 16.00 # г/моль
177
- M_C = 12.01 # г/моль
178
-
179
- # Молекулярная масса KNO₃
180
- M_KNO3 = M_K + M_N + 3 * M_O # = 85.01 г/моль
181
-
182
- # Молекулярная масса K₂CO₃
183
- M_K2CO3 = 2 * M_K + M_C + 3 * M_O # = 138.21 г/моль
184
-
185
- # Массы соединений
186
- mass_KNO3 = 25.25
187
- mass_K2CO3 = 41.4
188
-
189
- # Количество атомов К
190
- m_K_KNO3 = (mass_KNO3 / M_KNO3) * 1 * M_K # масса K из KNO₃
191
- m_K_K2CO3 = (mass_K2CO3 / M_K2CO3) * 2 * M_K # масса K из K2CO3
192
-
193
- # Общая масса смеси
194
- total_mass = mass_KNO3 + mass_K2CO3
195
-
196
- # Общая масса K
197
- total_K = m_K_KNO3 + m_K_K2CO3
198
-
199
- # Массовая доля K
200
- mass_fraction_K = total_K / total_mass * 100 # в процентах
201
-
202
- return mass_fraction_K
203
-
204
- def main():
205
- st.title("Расчет массовой доли атомов калия в смеси")
206
-
207
- mass_fraction = calculate_mass_fraction()
208
-
209
- st.write(f"🔬 Массовая доля атомов калия в смеси: {mass_fraction:.2f}%")
210
-
211
- def calculate_mass_and_moles():
212
- # Молекулярные массы
213
- M_P = 30.97 # г/моль
214
- M_O = 16.00 # г/моль
215
- M_S = 32.07 # г/моль
216
-
217
- M_P2O5 = 2 * M_P + 5 * M_O # = 141.94 г/моль
218
- M_SO3 = M_S + 3 * M_O # = 80.07 г/моль
219
-
220
- # Общая масса смеси
221
- total_mass = 26.2 # г
222
- mass_fraction_P = 0.236 # массовая доля фосфора
223
-
224
- # Масса фосфора в смеси
225
- mass_P = mass_fraction_P * total_mass
226
-
227
- # Уравнения:
228
- # 1) x + y = 26.2 (где x - масса P2O5, y - масса SO3)
229
- # 2) (2 * M_P / M_P2O5) * x = mass_P
230
-
231
- # Выразим y через x: y = 26.2 - x
232
- # Подставим в второе уравнение:
233
- # (2 * M_P / M_P2O5) * x = mass_P
234
-
235
- # Решаем:
236
- x = (mass_P * M_P2O5) / (2 * M_P) # масса P2O5
237
- y = total_mass - x # масса SO3
238
-
239
- # Количества вещества
240
- n_P2O5 = x / M_P2O5 # моль P2O5
241
- n_SO3 = y / M_SO3 # моль SO3
242
-
243
- return x, y, n_P2O5, n_SO3
244
-
245
- def main():
246
- st.title("Расчет химического количества и масс веществ в смеси")
247
-
248
- mass_P2O5, mass_SO3, moles_P2O5, moles_SO3 = calculate_mass_and_moles()
249
-
250
- st.write(f"⚗️ Масса P₂O₅: {mass_P2O5:.2f} г")
251
- st.write(f"⚗️ Масса SO₃: {mass_SO3:.2f} г")
252
- st.write(f"🔬 Количество вещества P₂O₅: {moles_P2O5:.2f} моль")
253
- st.write(f"🔬 Количество вещества SO₃: {moles_SO3:.2f} моль")
254
-
255
- def calculate_empirical_formula():
256
- # Массовые доли элементов
257
- mass_percent_C = 68.85
258
- mass_percent_H = 4.92
259
- mass_percent_O = 26.23
260
-
261
- # Атомные массы
262
- M_C = 12.01 # г/моль
263
- M_H = 1.008 # г/моль
264
- M_O = 16.00 # г/моль
265
-
266
- # Количество молей
267
- n_C = mass_percent_C / M_C
268
- n_H = mass_percent_H / M_H
269
- n_O = mass_percent_O / M_O
270
-
271
- # Минимальное количество молей
272
- min_n = min(n_C, n_H, n_O)
273
-
274
- # Нахождение целочисленных коэффициентов
275
- formula_C = n_C / min_n
276
- formula_H = n_H / min_n
277
- formula_O = n_O / min_n
278
-
279
- # Округление до ближайших целых
280
- formula_C = round(formula_C)
281
- formula_H = round(formula_H)
282
- formula_O = round(formula_O)
283
-
284
- return formula_C, formula_H, formula_O
285
-
286
- def main():
287
- st.title("Определение эмпирической формулы вещества")
288
-
289
- formula_C, formula_H, formula_O = calculate_empirical_formula()
290
-
291
- st.write(f"🧪 Эмпирическая формула вещества: C{formula_C}H{formula_H}O{formula_O}")
292
-
293
-
294
- def calculate_empirical_formula():
295
- # Данные задачи
296
- mass_P = 6.2 # г
297
- mass_oxide = 14.2 # г
298
-
299
- # Атомные массы
300
- M_P = 30.97 # г/моль
301
- M_O = 16.00 # г/моль
302
-
303
- # Масса кислорода
304
- mass_O = mass_oxide - mass_P
305
-
306
- # Количество молей
307
- n_P = mass_P / M_P
308
- n_O = mass_O / M_O
309
-
310
- # Минимальное количество молей
311
- min_n = min(n_P, n_O)
312
-
313
- # Нахождение целочисленных коэффициентов
314
- formula_P = n_P / min_n
315
- formula_O = n_O / min_n
316
-
317
- # Округление до ближайших целых
318
- formula_P = round(formula_P)
319
- formula_O = round(formula_O)
320
-
321
- return formula_P, formula_O
322
-
323
- def main():
324
- st.title("Определение эмпирической формулы оксида фосфора")
325
-
326
- formula_P, formula_O = calculate_empirical_formula()
327
-
328
- st.write(f"🧪 Эмпирическая формула оксида фосфора: P{formula_P}O{formula_O}")
329
-
330
-
331
- def calculate_metal():
332
- # Данные задачи
333
- mass_water = 1.62 # г
334
- molar_mass_water = 18.0 # г/моль (молярная масса H2O)
335
-
336
- # Определение количества молей воды
337
- n_water = mass_water / molar_mass_water # кол-во моль воды
338
-
339
- # Определение количества моль водорода
340
- n_hydrogen = n_water * 2 # в одной молекуле воды 2 атома водорода
341
-
342
- # Находим массу водорода
343
- mass_hydrogen = n_hydrogen * 1.008 # г/моль (молярная масса H)
344
-
345
- # Масса оксида
346
- mass_oxide = 4.80 # г
347
-
348
- # Масса металла в оксиде
349
- mass_metal = mass_oxide - mass_hydrogen
350
-
351
- # Общая формула для металла
352
- # M + 3 O → металл с зарядом +3
353
- # Определяем молекулярную массу металла
354
- metal_molar_mass = mass_metal / (n_hydrogen / 3)
355
-
356
- return metal_molar_mass
357
-
358
- def main():
359
- st.title("Определение металла по его оксиду")
360
-
361
- metal_molar_mass = calculate_metal()
362
-
363
- st.write(f"🔍 Молярная масса металла: {metal_molar_mass:.2f} г/моль")
364
-
365
- # Пример того, какой металл соответствует найденной молярной массе
366
- if 45 < metal_molar_mass < 55:
367
- st.write("⚙️ Металл может быть: Феррум (Fe), с молярной массой примерно 55.85 г/моль.")
368
- elif 65 < metal_molar_mass < 75:
369
- st.write("⚙️ Металл может быть: Манган (Mn), с молярной массой примерно 54.94 г/моль.")
370
 
371
  if __name__ == "__main__":
372
  main()
 
25
  st.write(f"🔋 Масса катиона аммония NH4+: {nh4} г")
26
  st.write(f"⚡ Масса аниона SO4^2-: {so4} г")
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  if __name__ == "__main__":
30
  main()