Kyseliny (Visual Basic)

Ostatní jazyky Visual Basic .NET Windows Forms 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 :D

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

Program byl vytvořen v roce 2013.

 

Stáhnout

Staženo 421x (88.08 kB)
Aplikace je včetně zdrojových kódů v jazyce VB.NET

 

  Aktivity (1)

Program pro vás napsal Michal Žůrek (misaz)
Avatar
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.

Jak se ti líbí článek?
Celkem (3 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Okenní aplikace ve VB.NET Windows Forms

 

 

Komentáře
Zobrazit starší komentáře (10)

Avatar
Kit
Redaktor
Avatar
Kit:

Proč je "siřičitý" špatně? Oxid siřičitý se používá pro likvidaci plísní.

Odpovědět 6.10.2013 13:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Petr Čech (czubehead):

SiRičitý, ne siřčitý je špatně.

Odpovědět 6.10.2013 13:56
Why so serious? -Joker
Avatar
LadisXCZ
Člen
Avatar
LadisXCZ:

Omg Proč zrovna chemie :DDDD

 
Odpovědět  -7 9.10.2013 8:45
Avatar
Odpovídá na LadisXCZ
Michal Žůrek (misaz):

Protože jsem chtěl něco demonstrovat. Zde například že skoro vše jde nějak zjednodušit.

To že chemii nemáš rád, tu nikoho nezajímá.

Odpovědět  -1 9.10.2013 18:56
Nesnáším {}, proto se jim vyhýbám.
Avatar
hanspunk
Člen
Avatar
hanspunk:

"...Tak já bych si Vám dovolil přednést ještě jednu, stejně vtipnou, a byla by to tentokrát třeba anekdota chemická. A dokonce je velice krátká. Tak: H2SO5 ..."
Tak, po krátkém citátu z klasiky, pojďme k jádru pudla. Je to hezké jako ukázka zjednodušení algoritmu. Pokud by to měl být funkční program, neobejde se bohužel bez naplnění mnohými nenáviděné soustavy prvků s hodnotami ox.čísel, jichž mohou jednotlivé prvky nabývat. Tvůj algoritmus by totiž z výše uvedeného pravděpodobně udělal kyselinu "siričelou", což by chemika jistě pobavilo víc, než samotné H2SO5, což už dnes víme, že existuje a je kyselina peroxosírová. Tedy i jako tip pro Petr Čech (czubehead) - pokud něco takového a rozsáhlejšího píšeš, pohlídej si peroxidy a hyperoxidy, na ty jde ještě aplikovat jednoduchá podmínka. Jsou i větší špeky :) A pak se mě lidi ptají, jak jsem se od studia chemie dostal k práci programátora. Ona v té chemii je také algoritmizace a docela slušně "hardcore" :D

Odpovědět 10.10.2013 10:41
WHILE @@FETCH_STATUS = 0 FETCH NEXT pivo FROM sud INTO @hanspunk
Avatar
Odpovídá na hanspunk
Michal Žůrek (misaz):

Fajn, tak já jsem v současnosti na základní škole... Takže se nemám šanci dostat k nějakým složitostem.

Odpovědět  +1 10.10.2013 14:25
Nesnáším {}, proto se jim vyhýbám.
Avatar
Petr Čech (czubehead):

Na podmínkách se pracuje, ale já jsem v prváku, takže umím jen něco. Výjimky jako třeba kyselinu fosforečnou budu asi ošetřovat jen to, co vím a co mi bude učitel ochoten říct.

Odpovědět 10.10.2013 15:28
Why so serious? -Joker
Avatar
hanspunk
Člen
Avatar
hanspunk:

:[ Pardon pánové, já se prostě občas zapomenu a nedojde mi, že už nejsem nejmladší :D Mám sice dojem, že peroxidy jsme brali už na základce, ale stopro už to taky říct nemůžu, navíc se vzdělávací programy pochopitelně změnily. Nicméně to rozhodně nebyl útok, jen fakt tip a upozornění na možné problémy.

Odpovědět 10.10.2013 20:08
WHILE @@FETCH_STATUS = 0 FETCH NEXT pivo FROM sud INTO @hanspunk
Avatar
Odpovídá na Michal Žůrek (misaz)
Lukáš Pilarik:

Vypadá to na dobřě udělaný program. Že já jsem ho neobjevil, když jsme měli ty dlouhé těžké úkoly z chemie. To bych to měl za 1.

 
Odpovědět 26. února 23:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 20. Zobrazit vše