Základy programovania: Rozdiel medzi revíziami

Zo stránky 3D liga wiki
Prejsť na navigáciu Prejsť na vyhľadávanie
Sebastian (diskusia | príspevky)
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…“
 
Sebastian (diskusia | príspevky)
Bez shrnutí editace
 
(2 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.)
Riadok 1: Riadok 1:
== Základy programovania ==
=== Operátory ===


Počas tutoriálu budeme používať niekoľko základných typov premenných a konceptov. Tu je rýchly prehľad:
{| 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>
|}


=== Premenné ===
==== Logické operátory ====


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ť.
Používame ich na kombináciu viacerých podmienok:


{| class="wikitable"
{| class="wikitable"
|-
|-
! Typ !! Čo uchováva !! Rozsah !! Príklad
! Operátor !! Význam !! Príklad
|-
|-
| <code>int</code> || Celé číslo || -32 768 až 32 767 || <code>int frekvencia = 1000;</code>
| <code>&&</code> || A zároveň (obe podmienky musia platiť) || <code>if (x > 10 && x < 30)</code>
|-
|-
| <code>long</code> || Veľké celé číslo || -2 147 483 648 až 2 147 483 647 || <code>long trvanie = 50000;</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"
|-
|-
| <code>float</code> || Desatinné číslo || ±3.4 × 10³⁸ || <code>float vzdialenost = 23.5;</code>
! Operátor !! Rovnaké ako !! Príklad
|-
|-
| <code>bool</code> || Pravda / nepravda || <code>true</code> alebo <code>false</code> || <code>bool aktivny = false;</code>
| <code>x += 5</code> || <code>x = x + 5</code> || <code>result += (1 << i);</code>
|-
|-
| <code>String</code> || Text || ľubovoľný text || <code>String text = "Ahoj";</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>
|}
|}


=== Operátory ===
==== 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> <code>-</code> <code>*</code> <code>/</code> || Základná aritmetika || <code>int x = 10 + 5;</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> || Rovná sa (porovnanie) || <code>if (x == 15)</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"
|-
|-
| <code>!=</code> || Nerovná sa || <code>if (x != 0)</code>
! A !! B !! A & B
|-
|-
| <code>></code> <code><</code> || Väčší / menší ako || <code>if (x > 10)</code>
| 0 || 0 || 0
|-
|-
| <code>++</code> || Zvýš o 1 || <code>i++</code> → rovnaké ako <code>i = i + 1</code>
| 0 || 1 || 0
|-
|-
| <code>--</code> || Zníž o 1 || <code>i--</code> → rovnaké ako <code>i = i - 1</code>
| 1 || 0 || 0
|-
|-
| <code>!</code> || Negácia (otočí bool) || <code>!true</code> = <code>false</code>
| 1 || 1 || 1
|}
|}


=== Štruktúra programu ===
==== Logická tabuľka OR ====
 
Každý Arduino program má dve povinné funkcie:


{| class="wikitable"
{| class="wikitable"
|-
|-
! Funkcia !! Kedy sa spustí !! Na čo slúži
! A !! B !! A <nowiki>|</nowiki> B
|-
| 0 || 0 || 0
|-
| 0 || 1 || 1
|-
|-
| <code>setup()</code> || Raz pri zapnutí || Nastavenie pinov, spustenie sériovej komunikácie
| 1 || 0 || 1
|-
|-
| <code>loop()</code> || Dookola stále znova || Hlavná logika programu
| 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³