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 |
||
| Riadok 55: | Riadok 55: | ||
| <code>loop()</code> || Dookola stále znova || Hlavná logika programu | | <code>loop()</code> || Dookola stále znova || Hlavná logika programu | ||
|} | |} | ||
=== Funkcie === | |||
Funkcia je pomenovaný blok kódu, ktorý môžeme zavolať kedykoľvek potrebujeme. Namiesto toho aby sme ten istý kód písali viackrát, napíšeme ho raz do funkcie a potom ju len voláme. | |||
<syntaxhighlight lang="C"> | |||
// Definícia funkcie | |||
void playNote(int note) { | |||
// kód funkcie | |||
} | |||
// Volanie funkcie | |||
playNote(1000); | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
|- | |||
! Časť !! Vysvetlenie !! Príklad | |||
|- | |||
| '''Návratový typ''' || Čo funkcia vracia. <code>void</code> = nič nevracia || <code>void</code>, <code>int</code>, <code>float</code>, <code>long</code> | |||
|- | |||
| '''Názov''' || Ľubovoľné meno funkcie || <code>playNote</code>, <code>setColor</code>, <code>stoj</code> | |||
|- | |||
| '''Parametre''' || Hodnoty ktoré funkcia dostane zvonku || <code>int note</code>, <code>int r, int g, int b</code> | |||
|- | |||
| '''Telo''' || Kód ktorý sa vykoná pri zavolaní || všetko medzi <code>{</code> a <code>}</code> | |||
|} | |||
Funkcie môžu aj '''vracať hodnotu''' pomocou <code>return</code>: | |||
<syntaxhighlight lang="C"> | |||
// Funkcia ktorá vráti vzdialenosť v cm | |||
float getDistance() { | |||
long trvanie = measurePulse(); | |||
return (trvanie * 0.0343) / 2.0; // vráti vypočítanú hodnotu | |||
} | |||
// Použitie | |||
float dist = getDistance(); // dist bude obsahovať výsledok | |||
</syntaxhighlight> | |||
Funkcie môžu mať aj '''viac parametrov''': | |||
<syntaxhighlight lang="C"> | |||
// Funkcia s troma parametrami | |||
void setColor(int r, int g, int b) { | |||
digitalWrite(PIN_R, r); | |||
digitalWrite(PIN_G, g); | |||
digitalWrite(PIN_B, b); | |||
} | |||
// Volanie – hodnoty sa priradia v rovnakom poradí | |||
setColor(HIGH, LOW, HIGH); // r=HIGH, g=LOW, b=HIGH → fialová | |||
</syntaxhighlight> | |||
=== Podmienky === | |||
{| class="wikitable" | |||
|- | |||
! Štruktúra !! Použitie !! Príklad | |||
|- | |||
| <code>if</code> || Vykoná kód ak je podmienka splnená || <code>if (x > 10) { ... }</code> | |||
|- | |||
| <code>if / else</code> || Vykoná jeden z dvoch blokov || <code>if (x > 10) { ... } else { ... }</code> | |||
|- | |||
| <code>if / else if / else</code> || Vykoná jeden z viacerých blokov || <code>if (x > 30) { ... } else if (x > 10) { ... } else { ... }</code> | |||
|} | |||
<syntaxhighlight lang="C"> | |||
float vzdialenost = getDistance(); | |||
if (vzdialenost > 30) { | |||
// ďaleko | |||
} else if (vzdialenost > 10) { | |||
// stredne | |||
} else { | |||
// blízko | |||
} | |||
</syntaxhighlight> | |||
=== Cykly === | |||
{| class="wikitable" | |||
|- | |||
! Štruktúra !! Použitie !! Príklad | |||
|- | |||
| <code>for</code> || Opakuj N-krát || <code>for (int i = 0; i < 10; i++)</code> | |||
|- | |||
| <code>while</code> || Opakuj kým je podmienka splnená || <code>while (millis() - start < 1000)</code> | |||
|} | |||
<syntaxhighlight lang="C"> | |||
// for – prejdi pole frekvencií | |||
for (int i = 0; i < pocetFrekvencii; i++) { | |||
playNote(frekvencie[i]); | |||
} | |||
// while – hraj tón po dobu 1 sekundy | |||
long start = millis(); | |||
while (millis() - start < 1000) { | |||
playNote(1000); | |||
} | |||
</syntaxhighlight> | |||
Verzia z 00:14, 1. máj 2026
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ť.
| Typ | Čo uchováva | Rozsah | Príklad |
|---|---|---|---|
int |
Celé číslo | -32 768 až 32 767 | int frekvencia = 1000;
|
long |
Veľké celé číslo | -2 147 483 648 až 2 147 483 647 | long trvanie = 50000;
|
float |
Desatinné číslo | ±3.4 × 10³⁸ | float vzdialenost = 23.5;
|
bool |
Pravda / nepravda | true alebo false |
bool aktivny = false;
|
String |
Text | ľubovoľný text | String text = "Ahoj";
|
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
|
Štruktúra programu
Každý Arduino program má dve povinné funkcie:
| Funkcia | Kedy sa spustí | Na čo slúži |
|---|---|---|
setup() |
Raz pri zapnutí | Nastavenie pinov, spustenie sériovej komunikácie |
loop() |
Dookola stále znova | Hlavná logika programu |
Funkcie
Funkcia je pomenovaný blok kódu, ktorý môžeme zavolať kedykoľvek potrebujeme. Namiesto toho aby sme ten istý kód písali viackrát, napíšeme ho raz do funkcie a potom ju len voláme.
// Definícia funkcie
void playNote(int note) {
// kód funkcie
}
// Volanie funkcie
playNote(1000);
| Časť | Vysvetlenie | Príklad |
|---|---|---|
| Návratový typ | Čo funkcia vracia. void = nič nevracia |
void, int, float, long
|
| Názov | Ľubovoľné meno funkcie | playNote, setColor, stoj
|
| Parametre | Hodnoty ktoré funkcia dostane zvonku | int note, int r, int g, int b
|
| Telo | Kód ktorý sa vykoná pri zavolaní | všetko medzi { a }
|
Funkcie môžu aj vracať hodnotu pomocou return:
// Funkcia ktorá vráti vzdialenosť v cm
float getDistance() {
long trvanie = measurePulse();
return (trvanie * 0.0343) / 2.0; // vráti vypočítanú hodnotu
}
// Použitie
float dist = getDistance(); // dist bude obsahovať výsledok
Funkcie môžu mať aj viac parametrov:
// Funkcia s troma parametrami
void setColor(int r, int g, int b) {
digitalWrite(PIN_R, r);
digitalWrite(PIN_G, g);
digitalWrite(PIN_B, b);
}
// Volanie – hodnoty sa priradia v rovnakom poradí
setColor(HIGH, LOW, HIGH); // r=HIGH, g=LOW, b=HIGH → fialová
Podmienky
| Štruktúra | Použitie | Príklad |
|---|---|---|
if |
Vykoná kód ak je podmienka splnená | if (x > 10) { ... }
|
if / else |
Vykoná jeden z dvoch blokov | if (x > 10) { ... } else { ... }
|
if / else if / else |
Vykoná jeden z viacerých blokov | if (x > 30) { ... } else if (x > 10) { ... } else { ... }
|
float vzdialenost = getDistance();
if (vzdialenost > 30) {
// ďaleko
} else if (vzdialenost > 10) {
// stredne
} else {
// blízko
}
Cykly
| Štruktúra | Použitie | Príklad |
|---|---|---|
for |
Opakuj N-krát | for (int i = 0; i < 10; i++)
|
while |
Opakuj kým je podmienka splnená | while (millis() - start < 1000)
|
// for – prejdi pole frekvencií
for (int i = 0; i < pocetFrekvencii; i++) {
playNote(frekvencie[i]);
}
// while – hraj tón po dobu 1 sekundy
long start = millis();
while (millis() - start < 1000) {
playNote(1000);
}