Definovat promenne s velicinou a jednotkou, a pak s tim pocitat, mi vzdy prineslo hromadu problemu a nicemu to nepomohlo.
Je to uzitecne leda tak pro zobrazovani finalnich jednotek, pro nejake formatovani a vypisy, ale nic vic.
Obvykle to zadira na tom ze potrebuju nejakou knihovnu na vypocet neceho (lepsi fourier, spline, fit, cokoliv), a ta knihovna jako vstup bere jen zakladni datove typy. Takze musim pracovat jen s normalnima promennyma.
Coz mi pripomnelo jednu knihovnu na vypocet nejistot. Byla krasna, fungovala skvele na zakladni vypocty typu A+B, ale pouzivala pretezovani vsech datovych typu v matlabu. Coz znamenalo, ze se nedala pouzit jedina externi zkompilovana knihovna nebo nejaky rozsirujici balicek, a taky to vsechny vypocty zpomalilo.
Pokud si neco pocitam sam, tak nejprv sestavim rovnici na papire (ci v nejakem symbolickem programu), a jednotkovou kontrolu musim provest uz v tomto kroku. Pak to strkam do vypocetniho programu. Jestli udelam chybu v rovnici uz na zacatku, tak mi to knihovna, co hlida rozmery jednotek, nejspis nezachrani.
Ale nekomu jinemu to mozna pomuze?
Vnímám to podobně... Ale dovedu si představit situaci, kdy se mi validace jednotek může hodit - například nějaký parser fyzikálních rovnic a podobně, případně obecný „výpočtář“ fyzikálních jevů - zadám hodnoty a jejich jednotky a vyhodí mi to standardizovaný formát jednotky. Například vzdálenost v metrech, čas v minutách a mám rychlost v m/s nebo km/h. Prostě neřeším převody jednotek v kódu, když už to někdo udělal za mne.
Kdyz hlasi nekde pocasi, typicky udavaji rychlost vetru ... v m/s ... a drtiva vetsina lidi si pod tim cislem vubec nedovede predstavit, jak rychly ten vitr tedy bude.
Kdyz se podivas na prenos ze startu muskovo raket, byva rychlost v km/h ... ackoli prave v tomhle oboru jsou m/s naprosty standard. Proc? Protoze to je PR pro masy.
A presne na tyto problemy IMO narazis v situaci, kdy zacnes resit zadavani jednotek. Ve vysledku to vybleje nejake cislo, s nejakou jednotkou, ale lidi stejne opisou to cislo, a jednotku odignorujou. A pak to bude jak v te scene "coze!? most ze se roztahne o 17 metru!?".
"a drtiva vetsina lidi si pod tim cislem vubec nedovede predstavit, jak rychly ten vitr tedy bude"
To platí obecně pro všechny výsledky. Nemá smysl se tím trápit, prostě vám studenti běžně vypočítají průměr vodiče vysokého napětí 1.5km a vzdálenost mezi vodiči 0.2mm. Výpočty s jednotkami má smysl použít ve chvíli, kdy to chcete kontrolovat. Tedy že někde neodečítáte ampéry od voltů a pak že výsledek je ta jednotka, co čekáte. Výpis výsledku je jen třešnička na dortu.
Mne se osvedcilo pouzit podobnou knihovnu s jednotkami na vstupu, lide jsou totiz ruzni, nekdo jde striktne SI, jini maji radi prirozenejsi jednotky atd. Je fajn ze program to za me pohlida a prevede vsechno do jednotek ktere pouzivam ve vypoctech. Do jadra programu s vypocty pak jiz jednotky netaham ze stejnych duvodu jaks popsal ty.