Aug 252013
 

U prethodnom primeru napravili smo tzv. brojačku petlju upotrebom promenljive “brojac”, tj. postavili smo njeno početno stanje, uvećavali je i proveravali da li je stigla do zadate vrednosti. Obzirom da su ovake petlje veoma česte pri programiranju, u PBP-u postoji naredba FOR … NEXT koja olakšava izradu brojačkih petlji. Ovaj primer je realizovan uz pomoć te naredbe.

Tutor20.bas

Da vidimo kako tačno funkcioniše naredba “FOR … NEXT” čija puna sintaksa glasi:

FOR brojač = početak TO kraj {STEP {-}uvećanje}{naredba} NEXT {brojač}

Ova naredba omogućava izvršavanje neke naredbe ili bloka naredbi odredjeni broj puta koristeći promenljivu brojač. Obzirom da je relativno kompleksna, najbolje da rad ove naredbe objasnimo korak po korak:

1. Vrednost promenljive početak dodeljuje se promenljivoj brojač koja može da bude bilo kog tipa, u zavisnosti od potrebe.

2. Izvršava se naredba ili blok naredbi izmedju FOR i NEXT; ta naredba je opciona, tj. može i da se izostavi pa bi imali praznu FOR … NEXT petlju koja bi u tom slučaju mogla da se iskoristi kao vremenska zadrška.

3. Pri nailasku na reč NEXT, ako se upotrebi reč STEP vrednost uvećanje se dodaje (ili oduzima ako se upotrebi predznak -) promenljivoj brojač. Ako se STEP izostavi, brojač se uvećava za 1.

4. Ako nakon uvećanja brojač nije veći od vrednosti kraj, ili nije došlo do prekoračenja tipa promenljive, program se vraća na korak 2. U protivnom program nastavlja izvršavanje naredbe posle NEXT.

5. Moguće je izaći pre kraja uslova iz petlje upotrebom naredbe EXIT.

Da analiziramo sada naš primer. Pri nailasku na naredbu “for brojac=0 to 14”, promenljivoj “brojac” biće dodeljena prva vrednost, tj. nula. Zatim se izvršava naredba “LOOKUP” za koju već znamo šta radi. Posle pauze program nailazi na naredbu “next brojac” koja uvećava za 1 promenljivu “brojac” i proverava da li je njena vrednost veća od 14; ako nije, program se vraća na izvršavanje prve naredbe posle FOR, tj. u ovom slučaju LOOKUP naredbe, a u protivnom nastavlja dalje, tj. nailazi na naredbu “goto pocetak” kojom se započinje novi ciklus, i tako unedogled.

Vidimo da smo, kao i kod naredbe DO … LOOP, sve naredbe izmedju FOR i NEXT uvukli jer one čine jedan blok i bilo bi dobro da prihvatite tu praksu.

Ako uporedimo dužinu ovog primera videćemo da je duži za 2 vorda u odnosu na prethodni, što i nije mnogo ako se uzme u obzir komfor koji ova naredba pruža, ali ako Vam je cilj ušteda programske memorije, upotrebite način iz prethodnog primera za izradu brojačke petlje.