Body zdarma Java týden
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Kyseliny (Visual Basic)

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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)

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 440x (88.08 kB)
Aplikace je včetně zdrojových kódů v jazyce VB.NET

 

 

Program pro vás napsal Michal Žůrek - misaz
Avatar
Jak se ti líbí článek?
3 hlasů
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.
Všechny články v sekci
Okenní aplikace ve VB.NET Windows Forms
Aktivity (1)

 

 

Komentáře

Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:22.5.2013 15:35

Chemie.... pomoc :D

Odpovědět 22.5.2013 15:35
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Honza Bittner
Šupák
Avatar
Honza Bittner:22.5.2013 15:52

Michal Žůrek - misaz potřebuje odbornou pomoc :D

Odpovědět 22.5.2013 15:52
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Honza Bittner
Šupák
Avatar
Odpovědět 22.5.2013 17:57
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:5.10.2013 18:48

Začal jsem pracovat na něčem podobném, ale bude to umět halogenidy, hydroxidy, oxidy, sulfidy, kyseliny a možná soli. ale poslední dvě jen když se budu hoooooodně nudit. ]:>

Odpovědět 5.10.2013 18:48
the cake is a lie
Avatar
Odpovídá na Petr Čech
Michal Žůrek - misaz:5.10.2013 20:04

však ono je to snadné. Já jsem vybral něco, kde je základ poměrně složitý. Pak jsem to značně zjednodušil a napsal aplikaci. Můžeš to zkusit udělat víc OOP.

 
Odpovědět  -1 5.10.2013 20:04
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:6.10.2013 13:21

Ale tady je problém to, že jsem si koupil tabulku s oxidačními cisly, takže jsem strávil 2 h podmínkováním oxidačních čísel, další h koncovkami. Potom budu muset vyřešit třeba sir+ný je OK, ale sir+ičitý je špatně. No a optimalizace pro hloupé uživatele je kapitola sama pro sebe. Btw. píšu to v C#. :O Proč vlastně píšu tenhle komentář , uvědomil jsem si , kolik toho chybí. :(

Odpovědět 6.10.2013 13:21
the cake is a lie
Avatar
Odpovídá na Petr Čech
Michal Žůrek - misaz:6.10.2013 13:30

podmínek se dá většinou nějakým způsobem zbavit.

 
Odpovědět 6.10.2013 13:30
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:6.10.2013 13:35

Tady ne. Třeba hliník (Al) může mít X pouze 3, kyslík -2... Jestli existuje nějaká knihovna na chemii, tak možná. :D já tam mám cca 200 řádkový switch.

case "Al":
If(X==3)
{
root="hlin";
jmeno="hliník";
}
else
jmeno="";
root="";
}
Editováno 6.10.2013 13:42
Odpovědět 6.10.2013 13:35
the cake is a lie
Avatar
Odpovídá na Petr Čech
Michal Žůrek - misaz:6.10.2013 13:37

zas nemusíš řešit takové detaily. Pokud je uživatel trubka, tak má prostě smůlu. Ono chemie je obecně těžká.

 
Odpovědět  -1 6.10.2013 13:37
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Čech
Kit:6.10.2013 13:52

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
Petr Čech
Redaktor
Avatar
Odpovídá na Kit
Petr Čech:6.10.2013 13:56

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

Odpovědět 6.10.2013 13:56
the cake is a lie
Avatar
LadisXCZ
Člen
Avatar
LadisXCZ:9.10.2013 8:45

Omg Proč zrovna chemie :DDDD

 
Odpovědět  -8 9.10.2013 8:45
Avatar
Odpovídá na LadisXCZ
Michal Žůrek - misaz:9.10.2013 18:56

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
Avatar
hanspunk
Člen
Avatar
hanspunk:10.10.2013 10:41

"...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 - 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:10.10.2013 14:25

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
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:10.10.2013 15:28

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
the cake is a lie
Avatar
hanspunk
Člen
Avatar
hanspunk:10.10.2013 20:08

:[ 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
LadisXCZ
Člen
Avatar
 
Odpovědět 11.10.2013 16:15
Avatar
Odpovídá na Michal Žůrek - misaz
Lukáš Pilarik:26.2.2016 23:47

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.2.2016 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 20 zpráv z 20.