Kyseliny (Visual Basic)
Jelikož tu jsem asi jeden z mála co umí VB.NET, tak zdejší komunitě
občas napíšu nějaký prográmek jako ukázku použití VB.NET Tentokrát jsem se hodně nudil v
chemii. Jak jsem se tak nudil, tak jsem hledal souvislosti pro převod názvu
kyseliny na vzorec a naopak. Pár jsem jich našel a připravil tuto aplikaci.
Jen tak mimochodem, někteří spolužáci měli díky mě o trochu (spíš
dost) jednoduší domácí úkol
Jak to vlastně funguje?
Vzorec > název
Nejprve vám vysvětlím jak zkrátitit paní učitelčin sedmi krokový postup do dvou. Paní učitelčin postup je následující:

To co je zadané je černě, to co musíme (měli bychom) doplnit je červeně.
1.) Nad O (kyslík) si dáme oxidační číslo -II
2.) Nad H (vodík) si dáme oxidační číslo +I
3.) vynásobíme to co je nad sebou (-II * 4 = -8; +I * 2 = 2)
4.) dopočítamé neznámou (v ukázce u síry ) tak aby výsledek byl 0
5.) zjistíme koncovku
6.) do výsledného názvu dáme slovo Kyselina
7.) za název Kyselina přidáme prvek (sírá) a koncovku, jelikož jsme Češi musíme si to občas přizpůsobit.
No, řekněme si na rovinu, že dávat toto do algoritmu je nesmysl, tak si to zkraťmě.

číslo za vodíkem si označme valA a číslo za kyslíkem valB. Koncovku budeme zjišťovat pomocí vzorce:
koncovka = valB * 2 - valA
Jednoduché, že?
Název > vzorec
Zde už je to horší, my si totiž musíme získat koncovku a prvek. Na to mám v aplikaci celkem jednoduché funkce, které sice nefungují dokonale, ale můžete si je upravit, aby fungovaly lépe.
Pak už to musíme udělat tak jak z chemie známe:
If (koncovka + 1) Mod 2 = 1 Then 'Pokud je číslo liché valA.Text = "2" valB.Text = (2 + koncovka) / 2 Else valA.Text = "" valB.Text = (1 + koncovka) / 2 End If
Jediná zajimavost zde je, jak zjišťuji liché číslo (někteří to možná neví).
Jednoduše zjistím si zbytek po dělení čísla dvojkou, pokud je zbytek 1 tak je číslo liché, pokud 0 tak sudé.
Pro zjišťovaní zbytku po dělení je ve VB.NET operátor Mod.
Galerie

Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 443x (88.08 kB)
Aplikace je včetně zdrojových kódů v jazyce VB.NET