Základy programovania: Rozdiel medzi revíziami
Prejsť na navigáciu
Prejsť na vyhľadávanie
Vytvorená stránka „== Základy programovania == Počas tutoriálu budeme používať niekoľko základných typov premenných a konceptov. Tu je rýchly prehľad: === Premenné === Premenná je "škatuľka" v pamäti mikrokontroléra, do ktorej si uložíme nejakú hodnotu. Každá premenná má '''typ''' – ten určuje aké hodnoty môže uchovávať. {| class="wikitable" |- ! Typ !! Čo uchováva !! Rozsah !! Príklad |- | <code>int</code> || Celé číslo || -32 768 až 32 76…“ |
Bez shrnutí editace |
||
| (2 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.) | |||
| Riadok 1: | Riadok 1: | ||
== | === Operátory === | ||
{| class="wikitable" | |||
|- | |||
! Operátor !! Význam !! Príklad | |||
|- | |||
| <code>+</code> <code>-</code> <code>*</code> <code>/</code> || Základná aritmetika || <code>int x = 10 + 5;</code> | |||
|- | |||
| <code>==</code> || Rovná sa (porovnanie) || <code>if (x == 15)</code> | |||
|- | |||
| <code>!=</code> || Nerovná sa || <code>if (x != 0)</code> | |||
|- | |||
| <code>></code> <code><</code> || Väčší / menší ako || <code>if (x > 10)</code> | |||
|- | |||
| <code>++</code> || Zvýš o 1 || <code>i++</code> → rovnaké ako <code>i = i + 1</code> | |||
|- | |||
| <code>--</code> || Zníž o 1 || <code>i--</code> → rovnaké ako <code>i = i - 1</code> | |||
|- | |||
| <code>!</code> || Negácia (otočí bool) || <code>!true</code> = <code>false</code> | |||
|} | |||
=== | ==== Logické operátory ==== | ||
Používame ich na kombináciu viacerých podmienok: | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! Operátor !! Význam !! Príklad | ||
|- | |- | ||
| <code> | | <code>&&</code> || A zároveň (obe podmienky musia platiť) || <code>if (x > 10 && x < 30)</code> | ||
|- | |- | ||
| <code> | | <code><nowiki>||</nowiki></code> || Alebo (aspoň jedna podmienka musí platiť) || <code>if (x < 0 <nowiki>||</nowiki> x > 100)</code> | ||
|} | |||
<syntaxhighlight lang="C"> | |||
float vzdialenost = getDistance(); | |||
bool aktívny = true; | |||
// Obe podmienky musia platiť | |||
if (aktívny && vzdialenost < 10) { | |||
// blízko A zapnuté | |||
} | |||
// Stačí jedna podmienka | |||
if (vzdialenost < 0 || vzdialenost > 200) { | |||
// neplatná hodnota | |||
} | |||
</syntaxhighlight> | |||
==== Skrátený zápis ==== | |||
Namiesto <code>x = x + 5</code> môžeme písať kratšie: | |||
{| class="wikitable" | |||
|- | |- | ||
! Operátor !! Rovnaké ako !! Príklad | |||
|- | |- | ||
| <code> | | <code>x += 5</code> || <code>x = x + 5</code> || <code>result += (1 << i);</code> | ||
|- | |- | ||
| <code> | | <code>x -= 5</code> || <code>x = x - 5</code> || <code>score -= penalty;</code> | ||
|- | |||
| <code>x *= 2</code> || <code>x = x * 2</code> || <code>speed *= 2;</code> | |||
|- | |||
| <code>x /= 2</code> || <code>x = x / 2</code> || <code>halfPeriod /= 2;</code> | |||
|} | |} | ||
=== | ==== Ternárny operátor ==== | ||
Skrátený zápis podmienky – hodí sa keď chceme podľa podmienky priradiť hodnotu: | |||
{| class="wikitable" | |||
|- | |||
! Zápis !! Vysvetlenie | |||
|- | |||
| <code>podmienka ? hodnota_ak_true : hodnota_ak_false</code> || Ak je podmienka splnená vráti prvú hodnotu, inak druhú | |||
|} | |||
<syntaxhighlight lang="C"> | |||
// Dlhý zápis | |||
String vysledok; | |||
if (val > THRESHOLD) { | |||
vysledok = "1"; | |||
} else { | |||
vysledok = "0"; | |||
} | |||
// Skrátený zápis – rovnaký výsledok | |||
String vysledok = val > THRESHOLD ? "1" : "0"; | |||
</syntaxhighlight> | |||
==== Bitové operátory ==== | |||
Pracujú priamo s jednotlivými bitmi čísla. Každé celé číslo je v pamäti uložené ako séria núl a jednotiek – napríklad číslo 6 je v binárnom zápise <code>0110</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Riadok 28: | Riadok 97: | ||
! Operátor !! Význam !! Príklad | ! Operátor !! Význam !! Príklad | ||
|- | |- | ||
| <code> | | <code>1 << n</code> || Posuň bit o n miest doľava (= 2ⁿ) || <code>1 << 3</code> = 8 | ||
|- | |||
| <code>&</code> || Bitový AND – bit je 1 iba ak sú oba bity 1 || <code>5 & 3</code> = 1 | |||
|- | |- | ||
| <code> | | <code><nowiki>|</nowiki></code> || Bitový OR – bit je 1 ak aspoň jeden bit je 1 || <code>5 <nowiki>|</nowiki> 3</code> = 7 | ||
|} | |||
==== Logická tabuľka AND ==== | |||
{| class="wikitable" | |||
|- | |- | ||
! A !! B !! A & B | |||
|- | |- | ||
| | | 0 || 0 || 0 | ||
|- | |- | ||
| | | 0 || 1 || 0 | ||
|- | |- | ||
| | | 1 || 0 || 0 | ||
|- | |- | ||
| | | 1 || 1 || 1 | ||
|} | |} | ||
=== | ==== Logická tabuľka OR ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! A !! B !! A <nowiki>|</nowiki> B | ||
|- | |||
| 0 || 0 || 0 | |||
|- | |||
| 0 || 1 || 1 | |||
|- | |- | ||
| | | 1 || 0 || 1 | ||
|- | |- | ||
| | | 1 || 1 || 1 | ||
|} | |} | ||
<syntaxhighlight lang="C"> | |||
// Bitový posun – mocniny dvojky | |||
// 1 << 0 = 1 (0b0001) | |||
// 1 << 1 = 2 (0b0010) | |||
// 1 << 2 = 4 (0b0100) | |||
// 1 << 3 = 8 (0b1000) | |||
// Príklad AND – skontroluj či je číslo párne (posledný bit = 0) | |||
int x = 6; // 0b0110 | |||
int y = 1; // 0b0001 | |||
int result = x & y; // 0b0110 & 0b0001 = 0b0000 = 0 → párne číslo | |||
// Príklad OR – nastav konkrétny bit | |||
int a = 4; // 0b0100 | |||
int b = 2; // 0b0010 | |||
int c = a | b; // 0b0100 | 0b0010 = 0b0110 = 6 | |||
// Príklad posunu – vypočítaj mocninu dvojky | |||
int n = 3; | |||
int mocnina = 1 << n; // 1 << 3 = 8 = 2³ | |||
</syntaxhighlight> | |||
Aktuálna revízia z 18:12, 3. máj 2026
Operátory
| Operátor | Význam | Príklad |
|---|---|---|
+ - * / |
Základná aritmetika | int x = 10 + 5;
|
== |
Rovná sa (porovnanie) | if (x == 15)
|
!= |
Nerovná sa | if (x != 0)
|
> < |
Väčší / menší ako | if (x > 10)
|
++ |
Zvýš o 1 | i++ → rovnaké ako i = i + 1
|
-- |
Zníž o 1 | i-- → rovnaké ako i = i - 1
|
! |
Negácia (otočí bool) | !true = false
|
Logické operátory
Používame ich na kombináciu viacerých podmienok:
| Operátor | Význam | Príklad |
|---|---|---|
&& |
A zároveň (obe podmienky musia platiť) | if (x > 10 && x < 30)
|
|| |
Alebo (aspoň jedna podmienka musí platiť) | if (x < 0 || x > 100)
|
float vzdialenost = getDistance();
bool aktívny = true;
// Obe podmienky musia platiť
if (aktívny && vzdialenost < 10) {
// blízko A zapnuté
}
// Stačí jedna podmienka
if (vzdialenost < 0 || vzdialenost > 200) {
// neplatná hodnota
}
Skrátený zápis
Namiesto x = x + 5 môžeme písať kratšie:
| Operátor | Rovnaké ako | Príklad |
|---|---|---|
x += 5 |
x = x + 5 |
result += (1 << i);
|
x -= 5 |
x = x - 5 |
score -= penalty;
|
x *= 2 |
x = x * 2 |
speed *= 2;
|
x /= 2 |
x = x / 2 |
halfPeriod /= 2;
|
Ternárny operátor
Skrátený zápis podmienky – hodí sa keď chceme podľa podmienky priradiť hodnotu:
| Zápis | Vysvetlenie |
|---|---|
podmienka ? hodnota_ak_true : hodnota_ak_false |
Ak je podmienka splnená vráti prvú hodnotu, inak druhú |
// Dlhý zápis
String vysledok;
if (val > THRESHOLD) {
vysledok = "1";
} else {
vysledok = "0";
}
// Skrátený zápis – rovnaký výsledok
String vysledok = val > THRESHOLD ? "1" : "0";
Bitové operátory
Pracujú priamo s jednotlivými bitmi čísla. Každé celé číslo je v pamäti uložené ako séria núl a jednotiek – napríklad číslo 6 je v binárnom zápise 0110.
| Operátor | Význam | Príklad |
|---|---|---|
1 << n |
Posuň bit o n miest doľava (= 2ⁿ) | 1 << 3 = 8
|
& |
Bitový AND – bit je 1 iba ak sú oba bity 1 | 5 & 3 = 1
|
| |
Bitový OR – bit je 1 ak aspoň jeden bit je 1 | 5 | 3 = 7
|
Logická tabuľka AND
| A | B | A & B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Logická tabuľka OR
| A | B | A | B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
// Bitový posun – mocniny dvojky
// 1 << 0 = 1 (0b0001)
// 1 << 1 = 2 (0b0010)
// 1 << 2 = 4 (0b0100)
// 1 << 3 = 8 (0b1000)
// Príklad AND – skontroluj či je číslo párne (posledný bit = 0)
int x = 6; // 0b0110
int y = 1; // 0b0001
int result = x & y; // 0b0110 & 0b0001 = 0b0000 = 0 → párne číslo
// Príklad OR – nastav konkrétny bit
int a = 4; // 0b0100
int b = 2; // 0b0010
int c = a | b; // 0b0100 | 0b0010 = 0b0110 = 6
// Príklad posunu – vypočítaj mocninu dvojky
int n = 3;
int mocnina = 1 << n; // 1 << 3 = 8 = 2³