Odluka
Cilj
U vježbi ćemo naučiti kako skrenuti tok programa.
Ako
Naredbe koje smo dosad upoznali su bile izvršne: dali smo uputu robotu da napravi nešto. "go" je pokrenuo motore, "print" je ispisao poruku.
Kako u realnom životu, tako i u programu, ova vrsta instrukcija neće biti dovoljna. Zamislite da dajete upute kako voziti motor: sjednite na njega, upalite ga, dajte gas,... U ovom času upute moraju postati kondicionalne: "ako je prepreka ispred, zakočite", "ako ste u zavoju, skrenite" i slično. Bez ovih uvjeta, upute postaju bar opasne, ako ne i neupotrebljive.
Kako upute za motor, tako i program: trebaju "ako".
If
void RobotLine::loop() {
if (1 == 1)
print("Da");
else
print("Ne");
end();
}
Lijevo je primjer programa koji rješava problem iz prošlog odjeljka:
ako je istina da je 1 jednako 1,
onda ispiši "Da",
u suprotnom ispiši "Ne". Rezultat izvršavanja će biti ispisan "Da".
"Ako" je u C++-u "if", "u suprotnom" je "
else".
"1 == 1" je bilo koji logički izraz, znači nešto što je istina ili nije. Mora se napisati unutar zagrada. Tako traži "if" sintaksa (pravila kako pisati). Da smo napisali 1 > 3, programi bi ispisao "Ne".
Zadatak: pokretanje motora
Napišite program koji provjerava je li 15 > 10. Ako jest, program treba pokrenuti robota naprijed.
Rješenje
void RobotLine::loop() {
if (15 > 10)
go(50, 50);
end();
}
Primjedbe
Projekt "Uvod u robotiku" sufinanciran je iz Europskog socijalnog fonda, poziv "Jačanje kapaciteta organizacija civilnoga društva za popularizaciju STEM-a".
Relevantne stranice:
Sadržaj vježbe za virtualne radionice isključiva je odgovornost Hrvatskog društva za robotiku.