elektronika
o.O wtFAQ – We Tinker, Fix and Question
◀ Moj prvi program u MakeCodeu ☸

Kako naš program razmišlja?
Pet malih programa, pet važnih ideja

programiranje

Prošle smo radionice u MakeCodeu napravili pet programa za micro:bit: pozdrav, srce koje kuca, reakciju na tipke A i B, digitalnu kockicu i brojač bodova.

Danas ih nećemo samo ponovno sastaviti. Istražit ćemo zašto rade baš tako.

Za svaki program pokušat ćemo odgovoriti na četiri pitanja:

  • Što pokreće program?
  • Što micro:bit zatim napravi?
  • Radi li to jednom, stalno ili tek kada se nešto dogodi?
  • Što će se promijeniti ako promijenimo jedan blok?

Naš način rada bit će:

predvidi ⇒ pokreni ⇒ promijeni jednu stvar ⇒ ponovno testiraj ⇒ objasni rezultat

Programiranje nije samo slaganje blokova. Programiranje je i razumijevanje onoga što smo složili.

Za početak: što će se dogoditi?

Još nemoj otvarati računar. Najprije pokušaj odgovoriti bez pokretanja programa.

Voditelj će pokazati četiri mala plana. Za svaki reci što očekuješ:

  1. Prikaži ime. Zatim prikaži srce.
  2. Stalno prikazuj veliko pa malo srce.
  3. Kada pritisnem A, prikaži A.
  4. Kada protresem micro:bit, prikaži broj od 1 do 6.

Razmisli: koji program nešto napravi odmah, koji nešto ponavlja, a koji čeka da ti nešto napraviš?

Ne moraš pogoditi svaki odgovor. Važno je da počneš predviđati prije nego što klikneš Pokreni.

Program 1: Pozdrav, micro:bit!

Tehnika: naredbe imaju redoslijed

Naš prvi program izgleda ovako:
KADA PROGRAM POČNE
PRIKAŽI MOJE IME
PRIKAŽI SRCE
KRAJ
MakeCode

U MakeCodeu su naredbe show string i show icon smještene u blok on start.

Kada program počne, micro:bit prvo prikazuje ime, a zatim srce. on start služi za radnje koje želimo pokrenuti na početku; blok show string prikazuje tekst na LED ekranu.

Predvidi

Prije testiranja odgovori:

  • Što će se prikazati prvo?
  • Hoće li se ime prikazivati stalno?
  • Što će biti na ekranu nakon što ime prođe?

Isprobaj

Pokreni program u MakeCode simulatoru. Promatraj cijeli slijed, a ne samo zadnju sliku.

Promijeni jednu stvar

Zamijeni mjesta naredbama:
KADA PROGRAM POČNE
PRIKAŽI SRCE
PRIKAŽI MOJE IME
KRAJ
Prije pokretanja reci prijatelju što će se dogoditi. Zatim provjeri jeste li bili u pravu.

Zaključak: Redoslijed blokova mijenja redoslijed radnji. Ako želimo drugačiji rezultat, ponekad ne trebamo novi blok – dovoljno je premjestiti postojeći.

Dodatni izazov

  • Dodaj treću naredbu: prikaži svoj omiljeni broj. Neka prijatelj pogodi kojim će se redom pojaviti ime, srce i broj.

Program 2: Srce koje kuca

Tehnike: ponavljanje i čekanje

U drugom programu koristimo forever:
STALNO PONAVLJAJ
PRIKAŽI VELIKO SRCE
PRIČEKAJ POLA SEKUNDE
PRIKAŽI MALO SRCE
PRIČEKAJ POLA SEKUNDE
KRAJ
MakeCode

forever stalno ponavlja naredbe koje su u njemu. Blok pause određuje koliko dugo program čeka prije nastavka. Vrijeme je zapisano u milisekundama: 1000 ms je jedna sekunda, a 500 ms pola sekunde.

Zapamti
forever ponavlja, a pause usporava. To nisu isti zadaci.

Predvidi

  • Hoće li srce kucnuti samo jednom ili mnogo puta?
  • Što misliš, hoće li kucati brže ako pauzu promijenimo s 500 ms na 100 ms?
  • A što će se dogoditi s pauzom od 1000 ms?

Isprobaj

Pokreni program u simulatoru i pogledaj nekoliko ponavljanja.

Promijeni jednu stvar

Promijeni obje pauze na 1000 ms. Ponovno testiraj. Zatim ih promijeni na 100 ms.

Zapamti
Nemoj istovremeno mijenjati i ikone i vrijeme. Kada promijenimo samo jednu stvar, lakše znamo zašto je rezultat drugačiji.

Dodatni izazov

  • Napravi vlastitu animaciju od dvije slike. Na primjer, naizmjence prikaži smajlić i iznenađeno lice. Odaberi pauzu tako da se promjena može jasno vidjeti.

Program 3: Tipka A i tipka B

Tehnika: program reagira na događaj

Do sada je micro:bit nešto napravio odmah na početku ili stalno ponavljao zadatak. Sada može čekati da pritisnemo tipku.

Ovdje koristimo događaj:

KADA JE PRITISNUTA TIPKA A
PRIKAŽI SLOVO "A"
KADA JE PRITISNUTA TIPKA B
PRIKAŽI SLOVO "B"

MakeCode
MakeCode

Pritisak tipke zovemo događaj. Blok on button A pressed kaže micro:bitu koje naredbe treba pokrenuti kada se taj događaj dogodi. MakeCode podržava zasebne reakcije na A, B i A+B.

Predvidi

  • Što će se dogoditi ako ne pritisnemo nijednu tipku?
  • Što će se prikazati kada pritisnemo A?
  • Može li se naredba za tipku B izvršiti kada pritisnemo A?

Isprobaj

U simulatoru pritisni A pa B. Na pravom micro:bitu pritisni tipke prstom.

Promijeni jednu stvar

Neka tipka A prikazuje sretno lice, a tipka B tužno lice. Prije testiranja provjeri jesi li odgovarajuću ikonu stavio/la u odgovarajući blok.

Zaključak: Program može imati više dijelova koji čekaju različite događaje. Ne izvršavaju se svi odmah jedan za drugim.

Dodatni izazov

Dodaj reakciju na A+B: neka micro:bit prikaže srce. Provjeri razlikuje li program pritisak samo A, samo B i obje tipke zajedno.

Program 4: Digitalna kockica

Tehnike: događaj i nasumičan broj

Digitalna kockica ne pokazuje novi broj stalno. Ona čeka da micro:bit nježno protresemo.

Ovdje isto koristimo događaj:

KADA MICRO:BIT PREPOZNA TRESENJE
ODABERI NASUMIČAN BROJ OD 1 DO 6
PRIKAŽI ODABRANI BROJ

MakeCode

Tresenje je događaj, slično pritisku tipke. MakeCode može reagirati na gestu shake, a blok za nasumičan cijeli broj bira vrijednost u zadanom rasponu – uključujući najmanji i najveći broj. Dakle, raspon 1–6 može dati i 1 i 6.

Predvidi

  • Može li se pojaviti broj 0?
  • Može li se pojaviti broj 7?
  • Hoće li svako tresenje dati različit broj?
  • Treba li se broj promijeniti ako samo gledaš u micro:bit na stolu?
Važno
Nasumično ne znači da svaki sljedeći broj mora biti drugačiji. I prava kockica može dva puta zaredom pokazati isti broj.

Isprobaj

Pokreni program u simulatoru i aktiviraj tresenje. Ako koristiš pravi micro:bit, tresi ga nježno. Ne bacaj ga i ne vuci USB kabel.

Promijeni jednu stvar

Promijeni raspon brojeva s 1–6 na 1–3.

Sada deset puta aktiviraj program i zapiši brojeve koji su se pojavili. Vidiš li neki broj izvan novog raspona?

Dodatni izazov

Napravi kockicu s brojevima 1–10. Prije testiranja reci koji su najmanji i najveći mogući rezultat.

Program 5: Brojač bodova

Tehnika: program pamti vrijednost

Ovaj program uvodi novu ideju: varijablu.

Varijabla je kao kutijica s imenom. U našoj kutijici piše bodovi, a u njoj čuvamo broj koji se može mijenjati.

Prije rada u MakeCodeu, zamislimo to s kutijicom i nekoliko žetona:

  • Prazna kutijica znači da imamo 0 bodova.
  • Svaki pritisak tipke A dodaje jedan žeton.
  • Pritisak tipke B ne dodaje žeton, nego traži da prebrojimo koliko ih već imamo.

Program radi isto:

KADA PROGRAM POČNE
POSTAVI BODOVI NA 0
KADA JE PRITISNUTA TIPKA A
POVEĆAJ BODOVI ZA 1
KADA JE PRITISNUTA TIPKA B
PRIKAŽI BODOVI

MakeCode

MakeCodeovi primjeri koriste varijablu za brojanje pritisaka tipke i blok show number za prikaz spremljene vrijednosti.

Predvidi

Na početku su bodovi = 0.

  • Ako pritisnemo A jednom, koliko bodova imamo?
  • Ako pritisnemo A još dva puta, koliko ih imamo?
  • Ako zatim pritisnemo B, što će micro:bit prikazati?
  • Hoće li samo pritiskanje B povećati broj bodova?

Složi i testiraj

U kategoriji Variables napravi varijablu bodovi. Zatim u odgovarajuće blokove dodaj postavljanje na 0, povećanje za 1 i prikaz broja.

  • Pritisni A tri puta, pa B. Usporedi prikazani rezultat sa svojim predviđanjem.
Važna razlika:
A mijenja spremljeni broj, a B ga prikazuje. Broj se može promijeniti čak i ako odmah ne vidimo promjenu na ekranu.

Promijeni jednu stvar

Promijeni povećanje s 1 na 2. Ponovno pokreni program, pritisni A tri puta, zatim B. Koji broj očekuješ?

Dodatni izazov: reset

Dodaj događaj A+B koji postavlja bodovi na 0. Nakon reseta ponovno pritisni B i provjeri rezultat.

Reset znači povratak na početno stanje. Takvo pravilo koristit ćemo i u drugim projektima.

Završni izazov: Pokvari pa popravi

Svaki par neka izabere jedan zadatak. Najprije objasnite što nije u redu, zatim promijenite samo ono što je potrebno i testirajte program.

1. Problem: Pozdrav pokazuje srce prije imena, ali želimo obrnuto
Trag za istraživanje: Pogledaj redoslijed naredbi

2. Problem: Srce kuca presporo
Trag za istraživanje: Pogledaj vrijednosti u blokovima pause

3. Problem: Tipka A prikazuje odgovor namijenjen tipki B
Trag za istraživanje: Pogledaj u kojem su događaju koje naredbe

4. Problem: Kockica ponekad prikazuje 0
Trag za istraživanje: Pogledaj najmanji broj u rasponu

5. Problem: Brojač nakon novog pokretanja ne kreće od 0
Trag za istraživanje: Provjeri postavljanje početne vrijednosti

Za svaki zadatak recite:

  • Mislimo da je problem u ______.
  • Promijenit ćemo ______.
  • Očekujemo da će se dogoditi ______.
  • Nakon testa vidjeli smo ______.

Ako rezultat nije onakav kakav ste očekivali, ne mijenjajte nasumično sve blokove. Vratite se na program i provjeravajte jednu pretpostavku po jednu.

Kako znamo da smo razumjeli?

Nije najvažnije da svih pet programa izgleda savršeno. Za jedan program koji izabereš pokušaj objasniti:

  • Kada se naredba pokreće?
  • Što naredba radi?
  • Ponavlja li se?
  • Pamti li program neku vrijednost?
  • Što si predvidio/la, a što se stvarno dogodilo?

Ako možeš odgovoriti na ta pitanja i samostalno promijeniti jedan blok, razumiješ mnogo više nego što bi razumio/la samim prepisivanjem programa.

ligtbulb Što smo naučili?

Danas nismo samo pokretali programe. Naučili smo predvidjeti što će micro:bit napraviti, promijeniti jedan dio programa i provjeriti jesmo li dobro razmišljali.

  • Program se sastoji od naredbi koje micro:bit izvršava određenim redoslijedom.
  • on start pokreće naredbe na početku programa.
  • show string, show icon i show number prikazuju tekst, sličicu ili broj na LED ekranu.
  • forever stalno ponavlja naredbe koje se nalaze unutar njega.
  • pause određuje koliko dugo program čeka prije sljedeće naredbe.
  • Pritisak tipke i tresenje su događaji: program može čekati da se dogode, a zatim reagirati.
  • Digitalna kockica može odabrati nasumičan broj iz zadanog raspona. Isti broj smije se pojaviti više puta zaredom.
  • Varijabla bodovi čuva broj koji program može promijeniti i kasnije prikazati.
  • set bodovi to 0 postavlja broj bodova na nulu, a change bodovi by 1 dodaje jedan postojećem broju.
  • Kada program ne radi kako očekujemo, provjeravamo ga korak po korak i mijenjamo jednu stvar odjednom.

ligtbulb Pitanja za kraj

1. Što znači predvidjeti rezultat programa?
Predvidjeti znači reći što očekujemo da će program napraviti prije nego što ga pokrenemo. Nakon testa usporedimo očekivanje sa stvarnim rezultatom.
2. Zašto je u programu Pozdrav važan redoslijed blokova?
Micro:bit izvršava te naredbe redom. Ako je prikaz imena prije prikaza srca, prvo ćemo vidjeti ime. Ako zamijenimo blokove, promijenit će se i redoslijed prikaza.
3. Čemu služi blok on start?
on start pokreće naredbe na početku programa. Koristimo ga, na primjer, za početni pozdrav ili postavljanje početnog broja bodova.
4. Čemu služi blok forever?
forever stalno ponavlja naredbe koje se nalaze u njemu. Zato se veliko i malo srce mogu izmjenjivati dok program radi.
5. Koja je razlika između blokova forever i pause?
forever ponavlja naredbe, a pause zaustavlja nastavak na određeno vrijeme. Promjena pauze mijenja brzinu animacije, ali sama pauza ne stvara ponavljanje.
6. Koliko traje pauza od 1000 ms, a koliko od 500 ms?
1000 ms je jedna sekunda, a 500 ms je pola sekunde. Veća pauza znači sporiju promjenu prikaza.
7. Što je događaj u našem programu s tipkama?
Događaj je nešto što se dogodi i pokrene dio programa. U ovom primjeru događaj je pritisak tipke A ili tipke B.
8. Hoće li se naredba za tipku B izvršiti kada pritisnemo samo A?
Neće. Naredbe u događaju za tipku B čekaju pritisak tipke B. Pritisak tipke A pokreće naredbe napisane za A.
9. Što pokreće digitalnu kockicu?
Digitalnu kockicu pokreće događaj tresenja micro:bita. Kada micro:bit prepozna tresenje, odabire i prikazuje broj.
10. Koje brojeve može prikazati kockica s rasponom od 1 do 6?
Može prikazati 1, 2, 3, 4, 5 ili 6. Ne bi trebala prikazati 0 ni 7 jer su izvan zadanog raspona.
11. Ako digitalna kockica dva puta zaredom prikaže 4, je li pokvarena?
Nije nužno. Nasumičan odabir može dva puta zaredom dati isti broj, baš kao što i obična kockica može dva puta pokazati istu stranu.
12. Što je varijabla bodovi?
bodovi je ime za mjesto na kojem program čuva broj bodova. Taj se broj može promijeniti dok program radi.
13. Što se događa kada pritisnemo A tri puta, a zatim B, ako brojač kreće od 0 i A dodaje 1?
Nakon tri pritiska tipke A, vrijednost varijable bodovi je 3. Pritiskom tipke B micro:bit prikazuje broj 3.
14. Dodaje li tipka B bod u našem osnovnom brojaču?
Ne. U osnovnom programu tipka A povećava broj bodova, a tipka B samo prikazuje koliko bodova trenutačno imamo.
15. Ako A dodaje 2 boda, koliko ćemo bodova imati nakon tri pritiska, počevši od 0?
Imat ćemo 6 bodova: nakon prvog pritiska 2, nakon drugog 4, a nakon trećeg 6.
16. Što radi reset brojača?
Reset postavlja broj bodova natrag na početnu vrijednost, u našem primjeru na 0. Za reset možemo upotrijebiti događaj pritiska tipki A+B.
17. Zašto u pokusu mijenjamo samo jednu stvar u programu?
Tako lakše otkrivamo zbog čega se rezultat promijenio. Ako odjednom promijenimo mnogo blokova, teško je znati koja je promjena izazvala novi rezultat.
18. Što radimo ako program ne pokaže očekivani rezultat?
Najprije pogledamo što se stvarno dogodilo. Zatim provjeravamo blokove i mijenjamo jednu stvar po jednu, ponovno testiramo i, ako zapnemo, pitamo voditelja.
◀ Moj prvi program u MakeCodeu ☸