Primer procesa u koracima - Pseudo kod

Da bi čovek napisao program koji će da mu omogući da simulira određeni proces, mora prvo da razume sam proces i da ga raščlani na osnovne korake koje će da poređa u pravilan redosled. Za opis svakog koraka u procesu se koristi običan govorni jezik, što jednostavnije to bolje za dalje proučavanje procesa. Kada se opis koraka složi u određenom redosledu i koraci se definitivno numerišu, dobije se PSEUDO KOD, jedna vrsta algoritma koji se kasnije koristi za razvoj programa koji će da simulira proučavani proces. Setite se šta je kompjuterski program.Ovde ćemo to da uradimo na jednom jednostavnom primeru.

PROCES KUVANJA ČAJA 

Razmislimo na koji način se priprema čaj. Neophodni su nam sud za zagrevanje vode (lonac), sud za konzumiranje čaja (šolja), grejno telo (ringla), određena vrsta čaja, voda i vreme.

Proces se sastoji od sledećih koraka:

Na osnovu ovoga, za pripremu čaja neophodno je samo 8 koraka koji se izvršavaju u datom redosledu. Da li je to tačno i da li je baš taj redosled koraka? Naravno da nije. Da bi se došlo do preciznog definisanja svih koraka i njihovog redosleda, neophodna je mnogo iscrpnija analiza. Recimo, šta ako je lonac šupalj, ili nema vode, ili nema struje. Da li treba prvo isključiti ringlu pa zatim skinuti lonac? Sada znamo da nismo definisali nijedan korak koji dovodi do prekida kuvanja čaja zbog nekog nedostatka, odnosno pojave neželjenog slučaja u samom procesu.

Da probamo ponovo:

U ovom redosledu koraka smo definisali korake koji omogućavaju da se proces prekine u slučaju nekog nedostatka. To je urađeno samim postavljanjem pitanja i ponuđenim odgovorima koji određuju dalji tok procesa (koraci 1.1, 2, 2.1 i 2.2, 4, 4.1 i 4.2), što se u programiranju obično zove uslovno grananje programa (Ako... Onda... Ili / If... then... else). Pronalaženje i definisanje ovakvog tipa koraka u samom procesu je kritično i izuzetno bitno, jer ukoliko se ne pronađe svaka mogućnost da se proces ne završi kako bi trebalo iz nekog neobičnog razloga, sam program koji je kasnije nastao iz takvog PSEUDO KODA neće biti dobar. Dolaziće do slučaja, recimo, da se pojavi negativna vrednost kao potkorena veličina, ili pokušaj deljenja nulom, ili čak zaglavljivanja samog programa zbog nemogućnosti daljeg izvršavanja.

U koracima 8, 8.1 i 8.2 se nalazi takozvana iteracija (ponavljanje na osnovu ispunjenog uslova), što znači da se korak 8 ponavlja sve dok se ne ispuni uslov. U pravom programu se to zove petlja. Naravno, posmatrajući PSEUDO KOD dolazimo do zaključka da bismo mogli da uvedemo korake početak procesa i kraj procesa, i da sve korake koji zahtevaju prekid procesa usmerimo na korak kraj procesa.

Pa onda:

Sada smo u okviru PSEUDO KODA definisali nešto što se zove uslovni skok (ili preskok radnji) na određeni korak kada je zadovoljen neki od uslova. Proučite korake 1.1, 2.2, 4.2 i 9.1 i sami donesite zaključak kako sad funkcioniše naš proces. Takođe, pokušajte sami da definišete korake za ponovno pokretanje procesa na osnovu prethodno stečenih znanja. Ukoliko vam ne ide, pogledajte rešenje.

Rešenje:

Treba uvesti korake 10.1, 10.2 i 10.3.

10.1 Da li želite opet da kuvate čaj?

Korak 10.3 i nije neophodan s obzirom na to da je pretposlednji u nizu, pa samim tim ukoliko nije ispunjen uslov, potvrdan odgovor na pitanje iz koraka 10.1, proces se automatski završava prelaskom na korak 11.

Ovakav PSEUDO KOD možete napisati za svaki posmatrani proces, pod uslovom da razumete njegov način funkcionisanja, posle čega možete da napravite i adekvatan kompjuterski program. Probajte da napravite pseudo kod za rešavanje nekog matematičkog problema. Recimo, rešavanje kvadratne jednačine.