Kyseliny (Visual Basic)
Keďže tu som asi jeden z mála čo vie VB.NET, tak tunajšej komunite občas napíšem nejaký programík ako ukážku použitie VB.NET Tentokrát som sa veľa nudil v chémii. Ako som sa tak nudil, tak som hľadal súvislosti pre prevod názvu kyseliny na vzorec a naopak. Pár som ich našiel a pripravil túto aplikáciu. Len tak mimochodom, niektorí spolužiaci mali vďaka ma o trochu (skôr dosť) jednoduchí domácu úlohu : D
Ako to vlastne funguje?
Vzorec> názov
Najprv vám vysvetlím ako zkrátitit pani učitelkynmu siedmich krokový postup do dvoch. Pani učitelkynmu postup je nasledujúci:
To čo je zadané je čierno, to čo musíme (mali by sme) doplniť je červeno.
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 čo je nad sebou (-II * 4 = -8; + I * 2 = 2)
4.) dopočítame neznámu (v ukážke u síry) tak aby výsledok bol 0
5.) zistíme koncovku
6.) do výsledného názvu dáme slovo Kyselina
7.) za názov Kyselina pridáme prvok (síra) a koncovku, keďže sme Česi musíme si to občas prispôsobiť.
No, povedzme si na rovinu, že dávať toto do algoritmu je nezmysel, tak si to skrat.
číslo za vodíkom si označme Vala a číslo za kyslíkom Valby. Koncovku budeme zisťovať pomocou vzorca:
koncovka = valB * 2 - valA
Jednoduché, že?
Názov> vzorec
Tu už je to horšie, my si totiž musíme získať koncovku a prvok. Na to mám v aplikácii celkom jednoduché funkcie, ktoré síce nefungujú dokonale, ale môžete si ich upraviť, aby fungovali lepšie.
Potom už to musíme urobiť tak ako z chémie pozná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á zaujímavosť tu je, ako zisťujem nepárne číslo (niektorí to možno nevie).
Jednoducho zistím si zvyšok po delení čísla dvojkou, ak je zvyšok 1 tak je číslo nepárne, ak 0 tak párne.
Pre zisťovanie zvyšku po delení je vo VB.NET operátor Mod.
Galéria
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 443x (88.08 kB)
Aplikácia je vrátane zdrojových kódov v jazyku VB