Nizovi i interaktivnost – Microsoft Small Basic 5. dio

 

U posljednjem dijelu nastavaka o programiranju u Small Basicu pozabavit ćemo se nizovima podataka i događajima koji u programima omogućuju interaktivnost.

Nizovi podataka

slika5.1Zašto koristiti nizove, objasnit ćemo na jednom jednostavnom primjeru. Primjerice, želite li napisati program koji će ispisati pozdrav kojim pozdravljate sve djevojčice iz svog razreda, primjerice njih pet, morat ćete upotrijebiti najmanje pet varijabli Ime1, Ime2… Ime5 kako bi računalo zapamtilo imena svih djevojčica te ih moglo ispisati u pozdravu. Ovakav program nije teško napisati, no kad biste željeli pozdraviti sve učenike cijelog razreda i kad bi se radilo o razredu od tridesetak učenika, morali biste upotrijebiti puno više varijabli, više pisanja i više vremena.

 

Zadatak riješen bez nizova

Moramo li pamtiti više varijabli istog tipa, postoji puno bolji i brži način na koji ćemo to izvesti. Kako smo se već upoznali s činjenicom da je računalo dobro u izvršavanju ponavljanja, tj. zadataka koji se ponavljaju više puta, to ćemo primijeniti i u ovom slučaju. Da ne upisujemo iznova isti kôd za svakog učenika u razredu, upotrebom samo jedne varijable pohranit ćemo imena više učenika i za to upotrijebiti For petlju i niz.
Umjesto da upotrijebimo pet varijabli Ime1, Ime2… Ime5 za spremanje pet učenica, upotrijebit ćemo samo jednu varijablu Ime. U tu jednu varijablu ćemo korištenjem indeksa spremiti višestruke vrijednosti. Primjerice, Ime[1], Ime[2], Ime[3], Ime[4] i Ime[5] su elementi niza, a svaki element sprema jednu vrijednost. Svaki element niza sastoji se od naziva niza Ime i indeksa, broja koji navodimo unutar uglatih zagrada te se razlikuje po indeksu, a indeksi moraju biti ordinalnog tipa, tj. za svaki indeks znamo koji je njegov prethodnik i sljedbenik.
Napomenut ćemo da iako Ime[1], Ime[2], Ime[3], Ime[4] i Ime[5] izgledaju kao da se radi o pet različitih varijabli, riječ je o samo jednoj varijabli.

Pogledajmo kako ćemo prethodni zadatak riješiti pomoću niza.

For i = 1 To 5

     TextWindow.Write(i + " učenik/ca, upiši ime:")

     ime[i] = TextWindow.Read()

EndFor

      TextWindow.Write("Dobar dan ")

For i = 1 to 5

      TextWindow.Write(ime[i] + ", ") slika5.2

EndFor

      TextWindow.WriteLine("")

U programskom kodu podebljano smo istaknuli dvije kodne linije. Prva, ime[i]=TextWindow.Read(), sprema imena članova tima u niz dok ih druga, TextWindow.Write(ime[i] + ", "), čita iz niza.

 

Prethodni zadatak riješen pomoću niza

U ovom primjeru upotrijebili smo jednodimenzionalni niz, uređen i ograničen skup varijabli istog tipa kod kojeg je svaki element niza određen samo jednim indeksom. Indeks određuje mjesto elementa u nizu pa jednodimenzionalni niz možemo prikazati na sljedeći način:

slika5.3 slika5.4
  Prikaz jednodimenzionalnog niza u memoriji

 

Uz jednodimenzionalne nizove u programiranju se često koriste i višedimenzionalni. Višedimenzionalni niz je uređen i ograničen skup varijabli istog tipa u kojemu je svaki element niza određen s više indeksa. Ukoliko je svaki element niza određen s dva indeksa, govorimo o dvodimenzionalnom nizu, ukoliko je određen s tri indeksa, govorimo o trodimenzionalnom nizu itd. U praksi najčešće koristimo dvodimenzionalne nizove.

slika5.6

Jednodimenzionalni niz

slika5.7

Dvodimenzionalni niz

slika5.8

Trodimenzionalni niz

Više o nizovima i razvrstavanju nizova u Small Basicu pogledajte u snimci webinara Small_Basic_2.dio.

Interaktivnost u programima

Želite li u programu omogućiti interaktivnost, morat ćete u njega ugraditi svojevrsne signale, događaje koji će se aktivirati određenim akcijama korisnika, primjerice – pomicanjem ili klikom miša. Događaji su na određeni način suprotnost operacijama. Kada koristimo operacije, pozivamo ih kako bismo računalu zadali da nešto učini, a kada koristimo događaje, računalo nas obavještava kada se dogodi nešto zanimljivo. Primjerice, sjetite se igrice križić-kružić. Odlučite li napisati program koji će korisniku omogućiti da igra ovu igru, morat ćete mu omogućiti da odabere polje na kojem želi odigrati svoj potez. Pogledajmo na jednom vrlo jednostavnom primjeru kako se dodaje interaktivnost. Program se sastoji od jedne naredbe i jednog potprograma:

GraphicsWindow.MouseDown = NaKlikMisa

Sub NaKlikMisa

GraphicsWindow.ShowMessage("Kliknuli ste.", "Pozdrav!")

EndSub slika5.9

Potprogram koristi operaciju ShowMessage na objektu GraphicsWindow pomoću koje se prikazuje okvir s porukom korisniku. U programu je naziv potprograma dodijeljen događaju MouseDown objekta GraphicsWindow. Pokrenete li program, primijetit ćete da je ovaj događaj vrlo sličan zadanom svojstvu samo što mu se umjesto vrijednosti dodjeljuje potprogram NaKlikMisa. Upravo ovo je posebnost događaja – kada se dogodi događaj, automatski se poziva potprogram. U ovom se primjeru potprogram NaKlikMisa poziva uvijek kad korisnik mišem klikne grafički prozor.

 

Program s primjerom interaktivnosti – reakcija na događaj

Ukoliko smo vas zainteresirali ovim primjerima, svakako pogledajte još neke primjere programa u kojima se koriste događaji kao i snimke webinara o Small Basicu.

O autoru Gordana Sokol

Diplomirani informatičar koji posljednjih šesnaest godina predaje informatiku u OŠ Tužno. Autorica sam niza udžbenika i zbirki iz informatike za osnovne i srednje škole. Autorica sam online tečaja "Logo – online učenje programiranja". Završila sam E-learning akademiju, smjer Tutoring.
Ovaj unos je objavljen u Nekategorizirano. Bookmarkirajte stalnu vezu.

Jedan odgovor na Nizovi i interaktivnost – Microsoft Small Basic 5. dio

  1. Povratni ping: Gogini mali savjeti ili za svakog ponešto… | Pogled kroz prozor

Odgovori

Popunite niže tražene podatke ili kliknite na neku od ikona za prijavu:

WordPress.com Logo

Ovaj komentar pišete koristeći vaš WordPress.com račun. Odjava / Izmijeni )

Twitter picture

Ovaj komentar pišete koristeći vaš Twitter račun. Odjava / Izmijeni )

Facebook slika

Ovaj komentar pišete koristeći vaš Facebook račun. Odjava / Izmijeni )

Google+ photo

Ovaj komentar pišete koristeći vaš Google+ račun. Odjava / Izmijeni )

Spajanje na %s