Metodologija Razvoja Proceduralnog Komuniciranja

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 2

METODOLOGIJA RAZVOJA PROCEDURALNOG KOMUNICIRANJA

Kod proceduralnog programiranja potrebno je raunaru precizno objasniti kako se rjeava neki problem. Ovo moe biti prilino kompliciran postupak ak i za relativno jednostavne probleme, jer ovjek nije navikao da u dedalje objanjava svaki svoj postupak u svakodnevnom komuniciranju, to je u komuniciranju sa raunarom neophodno. Pa za primjer uzmimo formulaciju problema koji glasi: Potrbno je uiniti podatke o svim uenicima u razredu, a zatim izlistati spisak uenika sortiran u prosjeku, tako da se uenik sa najboljim prosjekom nalazi na vrhu spiska. Prvi problem s kojima se susreemo je injenica da raunar nema pojma o tome ta je uenik ili razred. Prva etapa u procesu programiranja je dizajniranje struktura podataka. Prilikom dizajniranja struktura podataka potrebno je izvriti njihovo ralanjivanje na elementarne podatke. U naem primjeru, uenika moemo modelirati kao skupinu podataka koja se sastoje od njihovog imena i prezimena, datumaroenja, spiska ocjena i prosjene ocjene. OVAKAV DIZAJNER PRIKAZAN JE NA SLICI:

... UENIK 1 UENIK 2 Ovaj dizajn prilagoen je modernim jezicima kao to su PASCAL i C. Nakon to smo osmislili neophodne strukture podataka, neophodno je osmisliti algoritam kojim emo ostvariti zadani cilj. Neophodno je prvo unijeti podatke, zatim ih sortirati i prikazati sortirani spisak.. na osnovu ovog razmatranja, moemo predloiti grubu skicu algoritma: Unesi podatke o svim uenicima; Izraunaj prosjek za sve uenike; Sortiraj spisak po prosjeku; Prikai sortirani izvjetaj. Ovaj algoritam moramo ralaniti na one korake koje razumije programski jezik u kojem elimo raditi. Krenimo od koraka Unesi podatke o svim uenicima, ovaj korak moemo ralaniti na niz koraka kojima se unese podaci o svakom ueniku pojedinano: Za sve uenike od prvog do posljednjeg, radi sljedee: Unesi podatke o tekuem ueniku. Korak Unesi podatke o tekuem ueniku moemo ralaniti na nekoliko koraka: za sve uenike od prvog do posljednjeg, radi sljedee: unesi podatke o imenu, prezimenu i datumu roenja za tekueg uenika; za sve podatke od prvog do posljednjeg radi sljedee: unesi podatke o tekuem predmetu za tekueg uenika. Svi navedeni koraci ve postaju kao naredbe (naravno, sa drugaiom sitaksom) praktino u svim proceduralnim jezicima. Razmotrimo korak Izraunaj prosjek za sve uenike: Za sve uenike od prvog do posljednjeg, radi sljedee: Izraunaj prosjek za sljedeeg uenika. Korak Izraunaj prosjek za tekueg uenika moe se prikazati na niz koraka. Ako uenik ima jedinicu iz nekog predmeta onda se prosjek se ne trba ni raunati. Za sve uenike od prvog do posljednjeg, radi sljedee: Postavi tekuu sumu na nulu; Predpostavi da tekui uenik nema slabih ocjena; Za sve predmete od prvog do posljednjeg, radi sljedee: Ukoliko je ocjena iz tekueg predmeta jednaka jedinici, onda Zapamti da uenik ima slabih ocjena; U suprotnom:

Dodaj ocjenu iz tekueg predmeta na tekuu sumu;

Ukoliko uenik ima slabih ocjena, onda:


Proglasi jedinicu za prosjek; U suprotnom: Izraunaj prosjek kao kolinik tekue sume i broja predmeta. Korak, Sortiraj spisak po prosjeku se moe ralanit na sljedee korake: Nai uenika sa najboljim prosjekom i prebaci ga na prvo mjesto na listi; Meu preostalim uesnicima nai uenika sa najboljimprosjekom i prebaciga na drugo mjesto na listi; Meu preostalim uesnicima nai uenika sa najboljimprosjekom i prebaciga na tre mjesto na listi; ... Ovaj prikazani postupak je neprecizan jer ima tri takica na kraju. A to se moe jasnije napisati ovako: Za sve uenike od prvog do posljednjeg, radi sljedee (i=redni broj razmatranog uenika) Meu uenicima od i-tog do posljednjeg nai uenika sa najboljim prosjekom; Prebaci naenog uenika na i=to mjesto u listi I ovaj algoritam je neprecizan jer postaje nedoumice to e mo predstaviti na sljedei nain: => za sve uenike od prvog do posljednjeg, radi sljedee (i=redni broj razmatranoguenika) => meu uenicima od i-tog do posljednjeg nai uenika sa najboljim prosjekom; => prebaci naenog uenika na i-to mjasto na listi, a na njegovo mjesto prebaci uenika koji je do tada na i-tom mjestu. I ovaj algoritam nije dovoljno precizan pa je izraen naredni algoritam za bolju komunikaciju. Ovaj algoritam je za fazu nai uenika sa najboljim prosjekom: => Za sve uenike od prveog do posljednjeg, radi sljedee (i=redni broj razmatranog uenika.): => redpostavimo da upravo i-ti uenik ima najbolji presjek i zapamti njegov prosjek => Za sve uenike od i+1-vog do posljednjeg, radi sljedee; => Ako tekui uenik ima bolji presjek od dosadanjeg najboljeg prosjeka onada: => Zapamti njegov prosjek i redni broj; => prebaci zapamenog uenika na i-to mjesto u listi, a na njegovo mjesto prebaci uenikakojio je do tada bio na i-tom mjestu. Ovaj program se vie ne treba relanjivati jer e ga razumjeti mnogi programski jezici. Jo nam je ostao korak prikai sortirani izvjetaj.: za sve uenike od prvog do posljednjeg (iz sortirane liste), radi sljedee; ispii podatke o imenu, prezimenu, datumu reenja i prosjeku za tekueg uenika. Ovim smo zavrili razvoj naeg programa, koji moemo nazvati apstraktnim programim (ili pseudo kod), jer se nismo vezali ni za kakav konkrentan programski jezik. Razvoj apstraktnog programa se zasniva da prvo grubo skiciramo kostur algoritma, a da za tim svaki od upotrebljenjih koraka dalje raljnjujemi i izraujemo sve dok ne prepoznamo da se ralanjeni koraci mogu direktno pravesti u naredbe programskog jezika kojim elimo da koristimo. Ovakva metodologija naziva se razvoj programa sa vrha nanie postoje i druge metodologije, npr. razvoj sa dna navie. Programiranje nije posve jednostavan proces i trai dosta znanja i razvijenu logiku za apstraktno razmiljanje. Danas se svi programi ija je duina kraa od nekoliko hiljada redova smatraju malim, dok se velikim programima nazivaju programi ija se duina izraava u stotinama hiljada pa ak i milionima redova.

AUTOR: ELVIR BASIC 1-B

You might also like