KONTROLNE NAREDBE U PROJEKTIMA MIKROBITA. GRANANJE U PROGRAMU
Do sada smo u tutorijalima za Micro:bit uređaj koristili linijske naredbe, koje se izvršavaju jedna za drugom u određenom redosledu. Međutim, u programiranju često postoji potreba da program može da bira između dva ili više mogućih pravaca izvršavanja, zavisno od određenih uslova. Ova situacija se naziva grananje u programu.
Grananje omogućava programu da se "razgrana" na osnovu postavljenih logičkih uslova. Na primer, ako je neki uslov tačan, program može izvršiti jedan niz naredbi; u suprotnom, izvršiće drugi niz.
Kontrolne naredbe su ključne za pravljenje ovakvih odluka i omogućavaju fleksibilnije i složenije tokove u programima. Ove naredbe definišu kako će program "kontrolisati" tok svog izvršavanja.
Algoritamski, grananje u programu može se prikazati pomoću dijagrama toka. Na sledećoj slici prikazan je osnovni princip grananja:
Grananje omogućava programu da se "razgrana" na osnovu postavljenih logičkih uslova. Na primer, ako je neki uslov tačan, program može izvršiti jedan niz naredbi; u suprotnom, izvršiće drugi niz.
Kontrolne naredbe su ključne za pravljenje ovakvih odluka i omogućavaju fleksibilnije i složenije tokove u programima. Ove naredbe definišu kako će program "kontrolisati" tok svog izvršavanja.
Algoritamski, grananje u programu može se prikazati pomoću dijagrama toka. Na sledećoj slici prikazan je osnovni princip grananja:
Primer 1: Merenje temperature na mikrobitu
Napravite program na Micro:bit uređaju koji reaguje na trenutnu temperaturu u prostoriji. Program treba da proverava vrednost temperature i na osnovu nje prikazuje odgovarajući simbol na ekranu:
- Ako je temperatura veća ili jednaka 25°C, na ekranu Micro:bit-a treba da se prikaže simbol strelice koja pokazuje nagore (↑).
- U suprotnom, kada je temperatura manja od 25°C, na ekranu treba da se prikaže simbol strelice koja pokazuje nadole (↓).
Rešenje:
- Otvorite Microsoft MakeCode editor.
- Dodajte blokove iz kategorije Input za čitanje trenutne temperature sa ugrađenog senzora Micro:bit uređaja.
- Koristite blok iz kategorije Logic kako biste kreirali uslovnu naredbu (if-else). U njoj proverite da li je temperatura veća ili jednaka 25°C.
- U delu "if" dodajte blok iz kategorije Basic koji prikazuje simbol strelice nagore (↑).
- U delu "else" dodajte blok koji prikazuje simbol strelice nadole (↓).
- Preuzmite kôd na Micro:bit i testirajte program u stvarnim uslovima.
Video-rešenje
Grananje u programu sa 3 i više grana
U dosadašnjem izlaganju je bilo prikazano grananje u programu na dve grane, kada je tok programa podeljen u dva moguća toka izvršavanja, a gde se grananje vršilo pomoću uslova, tj. logičkog izraza koji ima dve moguće vrednosti: tačno(true) ili netačno(false).
Postoje zadaci gde je umesto grananja na dve grane potrebno granati na 3, a nekad i više grana. Za ovo grananje nije dovoljan jedan uslov, već se to može uraditi sa dva ili 3 uslova, kako je prikazano na slici 2. Svaki uslov određuje po dve nove grane(toka) što se može videti na slici.
Postoje zadaci gde je umesto grananja na dve grane potrebno granati na 3, a nekad i više grana. Za ovo grananje nije dovoljan jedan uslov, već se to može uraditi sa dva ili 3 uslova, kako je prikazano na slici 2. Svaki uslov određuje po dve nove grane(toka) što se može videti na slici.
Primer 2a: Anketiranje omiljenih predmeta uz micro:bit
Napraviti program za mikrobit koji omogućava anketiranje jednog korisnika. Korisnik treba da glasa za svoj omiljeni predmet.
U primeru je dat primer za dva predmeta: matematika i geografija. Korisniku treba omogućiti da na mikrobitu može da klikne na 3 tastera:
U primeru je dat primer za dva predmeta: matematika i geografija. Korisniku treba omogućiti da na mikrobitu može da klikne na 3 tastera:
- Taster A: Povećava broj glasova za predmet "Geografija"
- Taster B: Povećava broj glasova za predmet "Matematika"
- Potresanje mikrobita: Prikazuje Prvo slovo predmeta i broj poena
Video ispod pokazuje upotrebu naredbi sa Logic paleta na platformi Makecode. Primer koji je opisan i prikazan u videu pokazuje program za anketiranje korisnika, sa pitanjem: Koji je Vaš omiljeni predmet u školi?
U ovom primeru 3 varijante izvršenja programa dobijamo na osnovu 3 mogućnosti:
- Taster A je pritisnut
- Taster B je pritisnut
- Prodrman je mikrobit(On Shake)
Primer 2b: Anketiranje omiljenih predmeta uz micro:bit sa prikazom rezultata ankete
Ovaj primer demonstrira kako koristiti micro:bit za sprovođenje ankete o omiljenim školskim predmetima. Cilj je prikupljanje glasova i prikazivanje rezultata koristeći funkcionalnost grananja i tastera na micro:bit uređaju.
Opis zadatkaProgram treba da omogući korisnicima da glasaju za jedan od dva ponuđena predmeta:
Opis zadatkaProgram treba da omogući korisnicima da glasaju za jedan od dva ponuđena predmeta:
- Taster A: glas za Matematiku.
- Taster B: glas za Istoriju.
Instrukcije za rešavanje
- Priprema promenljivih
Na početku programa definišite dve promenljive koje će brojati glasove za svaki predmet, npr. matematika i istorija. - Brojanje glasova
U okviru glavnog petlje programa koristite funkcije koje reaguju na pritiske tastera:- Kada se pritisne taster A, povećajte vrednost promenljive matematika za 1.
- Kada se pritisne taster B, povećajte vrednost promenljive istorija za 1.
- Prikaz rezultata
Nakon što svi korisnici završe glasanje, pritisnite taster A+B istovremeno kako biste prikazali rezultat:- Ako je matematika > istorija, prikažite poruku "Matematika pobedila!".
- Ako je istorija > matematika, prikažite poruku "Istorija pobedila!".
- Ako su glasovi izjednačeni, prikažite poruku "Nerešeno!".
Rešenje u javascript-u
let matematika = 0
let istorija = 0
// Brojanje glasova za Matematiku
input.onButtonPressed(Button.A, function () {
matematika += 1
})
// Brojanje glasova za Istoriju
input.onButtonPressed(Button.B, function () {
istorija += 1
})
// Prikaz rezultata
input.onButtonPressed(Button.AB, function () {
if (matematika > istorija) {
basic.showString("Matematika pobedila!")
} else if (istorija > matematika) {
basic.showString("Istorija pobedila!")
} else {
basic.showString("Nereseno!")
}
})
let istorija = 0
// Brojanje glasova za Matematiku
input.onButtonPressed(Button.A, function () {
matematika += 1
})
// Brojanje glasova za Istoriju
input.onButtonPressed(Button.B, function () {
istorija += 1
})
// Prikaz rezultata
input.onButtonPressed(Button.AB, function () {
if (matematika > istorija) {
basic.showString("Matematika pobedila!")
} else if (istorija > matematika) {
basic.showString("Istorija pobedila!")
} else {
basic.showString("Nereseno!")
}
})
Objašnjenje
- Grananje i odluke:
Funkcija onButtonPressed koristi se za praćenje događaja kada korisnik pritisne određeni taster. Grananje (if naredbe) omogućava donošenje odluke koji predmet ima više glasova. - Unos i izlaz:
- Ulaz: Pritiskanje tastera A i B.
- Izlaz: Poruke koje se prikazuju na LED ekranu micro:bita.
- Interaktivnost:
Micro:bit omogućava korisnicima da aktivno učestvuju u anketi i odmah vide rezultat.
Testiranje
- Pokrenite program na micro:bit uređaju.
- Kliknite više puta na taster A i B kako biste simulirali glasanje.
- Pritisnite tastere A+B za prikaz rezultata i proverite da li program ispravno analizira i prikazuje glasove.
Logic paleta
Primeri upotrebe komandi sa palete Logic
- if...then ( Izvršava blok naredbi unutar if dela ako je postavljeni uslov istinit.)
2. if...then...else(Proverava uslov i izvršava blok naredbi u if delu ako je uslov istinit, ili u else delu ako je uslov lažan.)
Primer: Ako je pritisnut taster A, prikaži "A", inače prikaži "B".
Primer: Ako je pritisnut taster A, prikaži "A", inače prikaži "B".
3. Boolean vrednosti (true/false)(Omogućava postavljanje logičkih vrednosti true za tačno i false za netačno.)
Primer: Promenljiva stanje određuje da li se prikazuje tekst "DA".
Primer: Promenljiva stanje određuje da li se prikazuje tekst "DA".
4. == (jednako)(Poredi dve vrednosti i vraća true ako su jednake, inače false.)
Primer: Ako je trenutna temperatura jednaka 20°C, prikaži "20C".
Primer: Ako je trenutna temperatura jednaka 20°C, prikaži "20C".
5. != (nije jednako)(Poredi dve vrednosti i vraća true ako nisu jednake, inače false.)
Primer: Ako trenutna temperatura nije 20°C, prikaži "Nije 20".
Primer: Ako trenutna temperatura nije 20°C, prikaži "Nije 20".
6. < (manje od)(Proverava da li je prva vrednost manja od druge.)
Primer: Ako je temperatura manja od 15°C, prikaži ikonu snega.
Primer: Ako je temperatura manja od 15°C, prikaži ikonu snega.
7. > (veće od)(Proverava da li je prva vrednost veća od druge.)
Primer: Ako je broj okreta veći od 10, prikaži "Gotovo".
Primer: Ako je broj okreta veći od 10, prikaži "Gotovo".
8. <= (manje ili jednako)(Proverava da li je prva vrednost manja ili jednaka drugoj.)
Primer: Ako je broj okreta manji ili jednak 5, prikaži "U redu".
Primer: Ako je broj okreta manji ili jednak 5, prikaži "U redu".
9. >= (veće ili jednako)(Proverava da li je prva vrednost veća ili jednaka drugoj.)
Primer: Ako je broj koraka veći ili jednak 100, prikaži "Cilj postignut".
Primer: Ako je broj koraka veći ili jednak 100, prikaži "Cilj postignut".
10. && (logičko AND)(Vraća true ako su oba izraza istinita, inače false.)
Primer: Ako je temperatura veća od 20°C i manja od 30°C, prikaži "Idealno".
Primer: Ako je temperatura veća od 20°C i manja od 30°C, prikaži "Idealno".
11. || (logičko OR)(Vraća true ako je bilo koji od izraza istinit, inače false.)
Primer: Ako je pritisnut taster A ili taster B, prikaži "Klik".
Primer: Ako je pritisnut taster A ili taster B, prikaži "Klik".
12. not (logičko NOT)(Inverzuje logičku vrednost; true postaje false i obrnuto.)
Primer: Ako nije pritisnut taster A, prikaži "Nema pritiska".
Primer: Ako nije pritisnut taster A, prikaži "Nema pritiska".
Projekat za samostalan rad: Anketiranje omiljenih predmeta uz micro:bit i radio vezu
U ovom projektu kreiraćemo sistem za anketiranje omiljenih predmeta pomoću više micro:bit uređaja. Dva micro:bit-a će se koristiti kao uređaji za glasanje (senderi), a jedan micro:bit će biti prijemnik koji prikuplja i prikazuje rezultate ankete. Glasovi se šalju putem radio veze, pri čemu svaki uređaj za glasanje predstavlja jedan predmet.
Koraci za realizaciju
- Konfigurisanje radio veze:
Svi micro:bit uređaji moraju biti postavljeni na istu radio grupu kako bi mogli međusobno da komuniciraju. - Sender za Matematiku:
Ovaj micro:bit šalje poruku "Matematika" prijemniku svaki put kada učenik pritisne taster A. - Sender za Istoriju:
Ovaj micro:bit šalje poruku "Istorija" prijemniku svaki put kada učenik pritisne taster B. - Prijemnik:
Prijemnik prima poruke sa oba sendera, broji glasove za svaki predmet i prikazuje rezultate na ekranu.
Mogućnosti proširenja
- Dodavanje još sendera za dodatne predmete.
- Čuvanje rezultata na micro:bit prijemniku za kasniju analizu.
- Vizuelizacija rezultata pomoću LED ekrana (npr. brojanje tačaka za svaki glas).
Kompas
Kompas na micro:bit uređaju je senzor koji omogućava da uređaj detektuje pravac u kojem je okrenut u odnosu na magnetni sever. Ovaj senzor je u osnovi magnetometar koji meri jačinu i smer magnetnog polja. Kompas na micro:bitu se koristi za aplikacije kao što su praćenje pravca, navigacija i orijentacija u prostoru.
Čemu služi kalibracija kompasa?Kalibracija kompasa je proces podešavanja senzora kako bi precizno merio magnetne sile. Ovo je potrebno jer se magnetometar može ometati lokalnim magnetnim poljima ili metalnim predmetima u blizini.
Kalibracija se obično pokreće na micro:bitu kada je senzor prvi put aktiviran ili ako se otkrije nepreciznost. Tokom kalibracije, micro:bit traži od korisnika da naginje uređaj u različitim pravcima kako bi se merenja optimizovala za tačno očitavanje u svim orijentacijama. Na ekranu micro:bita se obično pojavljuje animacija ili poruka koja vodi korisnika kroz proces.
Kada koristiti kalibraciju?
Kalibracija se obično pokreće na micro:bitu kada je senzor prvi put aktiviran ili ako se otkrije nepreciznost. Tokom kalibracije, micro:bit traži od korisnika da naginje uređaj u različitim pravcima kako bi se merenja optimizovala za tačno očitavanje u svim orijentacijama. Na ekranu micro:bita se obično pojavljuje animacija ili poruka koja vodi korisnika kroz proces.
Kada koristiti kalibraciju?
- Kada micro:bit ne očitava pravac precizno.
- Nakon značajnih promena u okruženju (na primer, blizina elektronskih uređaja ili magneta).
- Kada se kompas koristi u novoj aplikaciji ili projektu.
- Navigacija: Pravljenje programa koji pokazuje strelicu prema severu.
- Igre i eksperimenti: Korišćenje kompasa za detekciju rotacija i pravaca u igrama.
- Praćenje pravca: Kreiranje aplikacija koje reaguju na promene orijentacije.
Primer 3: Kompas
Napravite program za micro:bit koji koristi ugrađeni kompas za merenje pravca i prikazuje odgovarajuće strane sveta. Na osnovu izmerenog pravca:
- Ako je pravac između 0° i 45° ili između 315° i 360°, na ekranu treba prikazati tekst "S" (Sever).
- Ako je pravac između 45° i 135°, prikazuje se "I" (Istok).
- Ako je pravac između 135° i 225°, prikazuje se "J" (Jug).
- Ako je pravac između 225° i 315°, prikazuje se "Z" (Zapad).
Instrukcije za rešavanje:
- Postavljanje osnovnog okruženja:
- Pokrenite micro:bit editor (npr. MakeCode).
- Kreirajte novi projekat.
- Kalibracija kompasa:
- Koristite funkciju input.calibrate_compass() u Pythonu (ili odgovarajuću opciju u blokovima MakeCode).
- Kada program pokrene kalibraciju, pomerajte micro:bit u svim pravcima dok se kalibracija ne završi.
- Logika za očitavanje pravca:
- Koristite funkciju input.compass_heading() da biste dobili vrednost pravca u stepenima.
- Dodajte uslove za prikaz teksta "S", "I", "J" ili "Z" na osnovu očitanog pravca.
- Prikaz teksta:
- Prikazujte tekst na ekranu micro:bita pomoću funkcije basic.show_string() ili odgovarajuće opcije u blokovima.