Gradivo III razreda u Gimnaziji "Veljko Petrović"

Računarstvo i Informatika

Stil pisanja programa

Većina programskih jezika je veoma fleksibilna po pitanju načina na koji ćete napisati kod. Međutim nadolazeći problemi mogu da se u mnogome ublaže ako vodite računa o načinu pisanja koda.

Nikakav stil

uses crt; var i:integer; begin for i:=1 to 100 do write(i:8) end;

U PASCAL-u je dozvoljen ovakav način pisanja programa. Gornji kod ispisuje tabelu brojeva od 1 do 100 po deset u jednom redu.

Sem otežanog dešifrovanja ovog koda, glavna mana ovakvog načina pisanja se pokazuje u procesu dibagiranja (traženja logičkih grešaka) jer kada izvršavate program red po red, tada se izvrši nekoliko naredbi odjednom te ne vidimo u kojoj je nastala greška.

Loš stil - (po Gimnaziji kruži pod nazivom k'o nogama)

Primer na kome ćemo pokazati ovaj stil je sortiranje tri uneta broja.

uses crt;
var a,b,c:integer;
begin
readln(a); 
readln(b); 
readln(c); 
IF a>=b
THEN IF a>=c
THEN IF b>=c
THEN writeln('Redosled je : ',a,' ', b,' ',c)
ELSE writeln('Redosled je : ',a,' ', c,' ',b)
ELSE writeln('Redosled je : ',c,' ',a,' ',b)
ELSE IF b>=c
THEN IF a>=c
THEN writeln('Redosled je : ',b,' ',a,' ',c)
ELSE writeln('Redosled je : ',b,' ',c,' ',a)
ELSE writeln('Redosled je : ',c,' ',b,' ',b);
Delay(300);
END.

U slučaju bilo kakve logičke greške, stvarno treba imati dobre živce da bi se sa ovako napisanim kodom izišlo na kraj. Potpuno je nejasno koji THEN i ELSE pripadaju kojem IF-u. Niti se vide parovi THEN, ELSE. Slični su problemi i kada su ciklusi ugnježdeni jedan u drugom.

Strukturalan stil

Ovo je jedan od načina kako je potrebno pisati kodove. Sve sintakse izvršnih naredbi date su u skladu sa strukturalnim stilom pisanja. Pri tome je značajno da broj mesta koja se upotrebljavaju da bi se deo koda uvukao odgovara sintaksi i nivou ugnježdavanja.

Prethodni primer ćemo sada npisati strukturalno:

USES Crt;
VAR a,b,c:Integer;
BEGIN
  Write('Unesite prvi  broj : ');
  Readln(a); 
  Write('Unesite drugi broj : ');
  Readln(b); 
  Write('Unesite treci broj : ');
  readln(c); 
  IF a>=b
    THEN IF a>=c
           THEN IF b>=c
                  THEN writeln('Redosled je : ',a,' ', b,' ',c)
                  ELSE writeln('Redosled je : ',a,' ', c,' ',b)
           ELSE writeln('Redosled je : ',c,' ',a,' ',b)
    ELSE IF b>=c
           THEN IF a>=c
                  THEN writeln('Redosled je : ',b,' ',a,' ',c)
                  ELSE writeln('Redosled je : ',b,' ',c,' ',a)
           ELSE writeln('Redosled je : ',c,' ',b,' ',b);
  Delay(300);
END.

Ovde je u potpunosti jasno koji delovi ugnježdenih IF-THEN-ELSE naredbi kome odgovaraju. Olakšan je pronalazak logičkih grešaka.

Evo i primera dobro napisanog koda kada su ciklusi jedan u drugom.

VAR i, j, k:Char;
BEGIN
  FOR i := 'a' TO 'z' DO
    FOR j := 'a' TO 'z' DO
      FOR k := 'a' TO 'z' DO
        write(i+j+k:4);
END.

SAVET: Kako bi se problemi u pisanju koda sveli na minimum korisni je koristiti sledeća uputstva:

  • Kadgod napišete BEGIN, odmah u sledećem redu napišite i END. Ostatak koda umetnite između.
  • Kadgod napišete RECORD, odmah u sledećem redu napišite i END. Ostatak koda umetnite između.
  • Kadgod napišete CASE, odmah u sledećem redu napišite i END. Ostatak koda umetnite između.
  • Kadgod napišete REPEAT, odmah u sledećem redu napišite i UNTIL. Ostatak koda umetnite između.
  • Kadgog napišete (, {, ' ili [, odmah kao sledeći znak napišite i ), }, ] ili '. respektivno.
Valid XHTML 1.0 Strict! | Site map | Kontakt | © 2007..2015 prof. Duško Obradović sa učenicima Gimnazije