Matematika a micro:bit: Rozdiel medzi revíziami
Z SensorWiki
Riadok 37: | Riadok 37: | ||
</source></tab> | </source></tab> | ||
<tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk"> | <tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk"> | ||
− | }</syntaxhighlight></tab> | + | /* !!! not fully tested !!! */ |
+ | |||
+ | void main() | ||
+ | { | ||
+ | float c = 0.1; | ||
+ | |||
+ | c = c + c + c + c + c + c + c + c + c + c; | ||
+ | |||
+ | printf("\n c = %f \n",c); | ||
+ | |||
+ | if (c == 1.0f) | ||
+ | printf("\n * Je to 1,0\n"); | ||
+ | else | ||
+ | printf("\n * Nie je to 1,0\n"); | ||
+ | |||
+ | while (1) { /* relax */ } | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight></tab> | ||
</tabs> | </tabs> | ||
Riadok 43: | Riadok 61: | ||
<gallery heights=200px mode="packed"> <!-- slideshow? --> | <gallery heights=200px mode="packed"> <!-- slideshow? --> | ||
− | Image:microbit- | + | Image:microbit-Math2.png|''Program v blokovom jazyku'' |
− | Image:microbit- | + | Image:microbit-Math2Run.png|''a jeho funkcia'' |
</gallery> | </gallery> | ||
− | |||
− | |||
<tabs> | <tabs> |
Verzia zo dňa a času 16:33, 27. september 2023
Vyskúšajme, ako je na tom mikroprocesor v micro:bite s matematikou.
Prvý pokus spravíme s číslom 0,1. Spočítame ho trikrát za sebou a pozrieme sa, či je výsledok naozaj presne 0,3.
Viete vysvetliť, prečo je výsledok takýto? |
Skúste sa s programom pohrať a zamenťe číslo 0,1 napr. za 0,2 alebo 0,25 či 0,5. A čo tak 1/3 alebo trebárs 1 × 1024?
Dostanete rovnaké, alebo rôzne výsledky? Prečo? |
Program používa dva rozličné spôsoby pre zobrazenie hodnoty premennej c. Pomocou príkazu shownNumber zobrazíme číslo na maticovom displeji micro:bitu (s obmedzenou presnosťou). Pomocou druhého príkazu writeValue pošleme hodnotu po sériovej linke (prenos cez USB) do počítača, kde ju môžeme vidieť v terminálovom okne.
let c = 0.1
c = c + c + c
basic.showNumber(3)
serial.writeValue("c", c)
c = 0.1
c = c + c + c
basic.show_number(3)
serial.write_value("c", c)
/* !!! not fully tested !!! */
void main()
{
float c = 0.1;
c = c + c + c + c + c + c + c + c + c + c;
printf("\n c = %f \n",c);
if (c == 1.0f)
printf("\n * Je to 1,0\n");
else
printf("\n * Nie je to 1,0\n");
while (1) { /* relax */ }
}
- Microbit-Math2Run.png
a jeho funkcia
let c = 0.1
c = c + c + c
basic.showNumber(3)
serial.writeValue("c", c)
c = 0.1
c = c + c + c
basic.show_number(3)
serial.write_value("c", c)
}
Späť na zoznam príkladov....