Pascal: Dodatne teme (nastavak)

Ovo je nastavak prethodne lekcije, koju smo odvojili radi preglednosti i bolje organizacije. Danas pricamo o Setovima i upotrebi komentara. Na kraju cemo dodati i mali zadatak iz programiranja.

1) Setovi na neki nacin podsecaju na Rekorde i predstavljaju predefinisane skupove podataka istog tipa. Ovi tipovi mogu biti standardni za Pascal ili se mogu zasebno deklarisati. Manipulacije sa Setovima su dinamicnije i blize savremenom pristupu rada sa podacima. U tom smislu se moze reci da savremene baze podataka predstavljaju kombinaciju dinamike setova i mogucnosti rekorda, zarad vece efikasnosti u radu. Pogledajmo jedan moguci primer sa Setovima.

program Setovi;
uses Crt;

type
dan = (Po,Ut,Sr,Ce,Pe,Su,Ne);
dani = set of dan;
var
bla:dan;
a,b,c:dani;

begin
a := [Po,Ut,Sr,Ce,Pe,Su,Ne]; //definisemo sve dane
b := [Su,Ne]; //definisemo vikend
c := a - b; //racunamo radne dane
write ('Radni dani su: ');
for bla in c do begin
write(bla); write(', ');
end;
//brisemo poslednji zarez
GotoXY(WhereX-2,1); ClrEol;
writeln; readln;

end.

U ovom programu smo najpre definisali tipove dan, sa imenima dana u nedelji, i nakon toga dodali i set sa imenom dani. Zatim smo dodali varijable oba tipa i deklarisali ih. Nakon toga smo od cele nedelje oduzeli dane vikenda i dobili radne dane. Na kraju smo izveli mali kozmeticki trik, da bi obrisali poslednji zarez u izvestaju. Najpre smo pomerili kursor dva mesta u levo, i obrisali sve karaktere koji su u nastavku. Funkcije GotoXY i WhereX su deo Crt unita. Prva pomera kursor a druga ocitava njegovu X (horizontalnu) poziciju. Vise o setovima pogledajte ovde a o Crt funkcijama ovde, gde mozete naci detaljne nacine upotrebe u FPC kompajleru.

2) Upotreba komentara

Sada cemo se pozabaviti upotrebom komentara u procesu debagovanja i razvoja programa. O standardnoj upotrebi komentara je vec bilo reci, i do sada smo ih intenzivno koristili. Komentari u jednom redu se najcesce prave sa dve kose crte, iza kojih sledi komentar. On vazi od mesta na kome se kose crte nalaze, bilo na pocetku linije ili u nastavku koda. Drugi format je vezan za komentare u vise redova za koje u savremenom Pascalu koristimo viticaste zagrade. Naravno, potpuno je validno da ostavljate komentare mesajuci ove stilove. Oba primera smo vec demonstrirali u lekciji Hello World, u kojoj smo pomenuli i treci tip komentara izmedju zagrade i zvezdice, koji je danas u retkoj upotrebi, ali je ostao validan zbog povratne kompatibilnosti. Razne forme komentara sa primerima mozete videti ovde.

Postoji vise razloga za ostavljanje komentara. Najpre, narocito ako volite da optimizujete stvari, desava se da otvorite sopstveni kod nakon duzeg vremena i niste sasvim sigurni sta je pisac hteo da kaze pre deset godina. Onda je korisno da usput stoji i objasnjenje. Drugi razlog je svakako timski rad, jer tek tu je tesko ponekad odgonetnuti misli pisca obzirom da iskusni programeri imaju svoj stil. I na kraju ono sto se retko pominje, to je upotreba komentara tokom razvoja. Cesto zelimo da vidimo kako ce deo koda raditi u malo drugacijoj verziji ili bez dela programa. Umesto da brisemo i ponovo kucamo sve, jednostavno mozemo deo koda “zakomentirati” i videti sta se desava. Sada cemo za ilustraciju upotrebiti nas prethodni primer sa setovima.

Ucitajte program sa setovima i pokrenite ga, vec vam je poznat output. Sada zakomentarisite GotoXY liniju, tako da kraj programa izgleda ovako:

//brisemo poslednji zarez
//GotoXY(WhereX-2,1); ClrEol;
writeln; readln;

end.

Videcete da ce iza poslednjeg dana stajati zarez. Ako vas zanima zasto smo pomerili kursor za dva, umesto za jedno mesto, zakomentirajte i writeln komandu na sledeci nacin:

//brisemo poslednji zarez
//GotoXY(WhereX-2,1); ClrEol;
//writeln;
readln;

end.

Postace jasno da iza zareza postoji jos jedan space kao posledica poslednjeg dela iz for petlje. Na ovaj nacin mozete menjati i popravljati vas kod i dovesti ga precizno gde zelite.

Za kraj smo ostavili mali zadatak koji ce vam mozda biti zanimljiv. U koliko imate volje i to vas zanima, napravite program koji ce najpre izabrati random broj od 1 do 70, a onda traziti od igraca da ga pogodi u seriji pokusaja. Mozete koristiti bilo koje tehnike, jer je u programiranju moguce doci do resenja na mnogo razlicitih nacina.

Vise o upotrebi komentara u debagovanju pogledajte ovde.

Advertisements

Posted on 2018/07/15, in Open Source & Freeware, Pascal, Programski jezici, Razno, Tutorijali. Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: