Pseudokod
Pseudokod je metod opisivanje strukture nekog sistema. U njemu se koriste reči slične ključnim rečima programskih jezika, ali bez poštovanja striktnih pravila i sintakse koju određeni programski jezik zahteva. Obično je pseudokod mešavina nekog prirodnog jezika i programskog jezika.
Sledeći primer prikazuje pseudokod za sortiranje imena u abecedni redosled.
Unesi imena
Do
Postavi indikator na NE
Pogledaj prvi par imena
Do
While imena nisu u redosledu do
Begin
Zameni imena
Postavi indikator na DA
End
Pogledaj sledeći par imena
Until nema više parova imena
Until indikator je NE
Odstampaj imena u redosledu
Algoritam
Algoritam je sekvenca instrukcija napisanih da reše određen problem. Mogu biti osmišljeni da prikazuju rad čitavih sistema ili mogu da se odnose samo na pojedine delove sistema, pa tako kompletno rešenje može da bude predstavljeno serijom algoritama.
Najjednostavniji način za prikazivanje algoritama jeste pomoću grafikona. Svaka pojedinačna operacija se predstavlja određenim simbolom. Na slici koja sledi su prikazani osnovni simboli.
Razmotrimo rešenje jednostavnog problema konvertovanja dužine izražene u metrima u centimetre. Potrebno je učitati dužinu izraženu u metrima, pomnožiti je sa 100 i odštampati rezultat. Ukoliko ovaj algoritam želimo da prikažemo dijagramom, rezultat bi izgledao kao na slici.
Većina problema može biti rešena korišćenjem input-process-output metoda. Prvi korak u formulaciji bilo kog algoritma jeste određivanje koji podaci treba da budu uneti, kako treba da budu obrađeni i kakav treba da bude izlaz.
Strukturni dijagrami i top-down pristup
Kod dizajniranja algoritma za rešavanje kompleksnih problema, nephodno je prvo razbiti problem na manje delove koji mogu biti posmatrani kao posebni problemi. Da bi mogli da prikažemo kako je to urađeno, koristimo strukturne dijagrame. Posebno su korisni kada se problem razbije na manje probleme, a ovi na još manje. Ovakav metod rešavanja problema se naziva top-down dizajn ili stepwise refinement.
Razmotrimo primer kupovine hrane za jednu porodicu na nedeljnom nivou. Ovaj posao može biti razbijen na manje delove, od kojih svaki može biti još detaljnije razmatran. Kupovina bi podrazumevala sledeće:
- napraviti spisak potrebnih stvari
- obaviti kupovinu
- doneti i odložiti hranu kući
Svaka od ovih stavki može da bude podeljena na još jednostavnije, pa bi strukturni dijagram izgledao ovako
Kada ste jednom problem razbili na jednostavnije delove, za svaki od njih je moguće razviti proceduru koja bi ih rešavala. Kombinovanjem ovih procedura dolazi se do rešenja osnovnog problema. Takođe, svaki od ovih pojedinačnih rešenja je moguće korišćenju unutar nekog drugog problema u okviru koga su primenljivi.
Zadatak 12.1
Pročitajte sledeći algoritam:
Vrednost = 0
NovaVrednost = 0
unesi Vrednost
unesi NovaVrednost
WHILE NovaVrednost <> 0 DO
IF NovaVrednost > Vrednost THEN
Vrednost = NovaVrednost
END IF
unesi NovaVrednost
END WHILE
odstampaj Vrednost
a) Šta će biti odštampano ako se unesu sledeći brojevi 5, 4, 8, 3, 0, 23?
b) Napišite modifikovan algoritam koji rešava isti problem, ali koji završava sa radom kad su uneta četiri broja.
Odgovor:
a) 8
b)
Vrednost = 0
NovaVrednost = 0
unesi Vrednost
unesi NovaVrednost
brojac = 2
WHILE brojac < 4 DO
IF NovaVrednost > Vrednost THEN
Vrednost = NovaVrednost
END IF
brojac = brojac +1
unesi NovaVrednost
END WHILE
odstampaj Vrednost
Zadatak 12.2
Kompanija čuva podatke o detaljima računa kupaca u master fajlu. Kada kupac želi da naruči nešto, njegova kreditna kartica biva provučena kroz čitač kartica. Računar kompanije prvo proverava da li je kartica ukradena. Ako nije, računar proverava da li je cena robe koju kupac želi da naruči manja od iznosa koji ima na računu. AKo jeste, kod za autorizaciju se šalje prodavnici i kompletira se porudžbina, u suprotnom porudžbina se otkazuje.
Napišite algoritam koji opisuje ovaj proces.
Odgovor:
Procitaj broj kartice
IF kartica je ukradena THEN END
IF iznos > stanje THEN END
odstampaj KodAutorizacije
END