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
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);
}