2.0 MENGGUNAKAN ALGORITMA MELALUI PSEUDOKOD DAN CARTA ALIR.pdf
Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf...
Transcript of Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf...
![Page 1: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/1.jpg)
PseudokodProces programiranja
![Page 2: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/2.jpg)
Uvod● Programiranje u malom● Pseudocode programming process (PPP)● Ekspert programeri preskacu ovo poglavlje● Puna eksploatacija procesa● PPP nije samo procedura za kreiranje
klasa i rutina
![Page 3: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/3.jpg)
Rezime koraka u izgradnji klasa irutina
● Obicno je u pitanju iterativni proces● Kreiranje generalnog dizajna klase● Enumerisanje i kreiranje specificnih rutina
klase● Provera konstrukcije klase kao celine
![Page 4: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/4.jpg)
![Page 5: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/5.jpg)
Koraci u izgradnji rutina
● Mnoge rutine su jednostavne za implementaciju
● Za ostale, komplikovanije, potreban je sistematicni pristup
● Dizajn rutine● Provera dizajna● Kodiranje rutine● Provera koda
![Page 6: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/6.jpg)
![Page 7: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/7.jpg)
Pseudocode for Pros● Naredbe odgovaraju govornom jeziku
(srpskom, engleskom...)● Izbegavati sintaksne elemente ciljanog
programskog jezika● Pisati na nivou namere● Dovoljno nizak nivo da bi generisanje koda
bilo gotovo automatski
![Page 8: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/8.jpg)
Primer loseg pseudokoda
![Page 9: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/9.jpg)
Primer dobrog pseudokoda
![Page 10: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/10.jpg)
Prednosti dobrog dizajna
● Lakse razmatranje● Iterativno preciscavanje● Lakse menjanje● Manje komentarisanja● Lakse odrzavanje od drugih formi
![Page 11: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/11.jpg)
Konstrukcija rutina
● Dizajn rutine● Kodiranje rutine● Provera koda● Ciscenje ostataka● Ponoviti ako je potrebno
![Page 12: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/12.jpg)
Dizajn rutine
● Proveriti preduslove● Definisati problem koji rutina treba da resi● Imenovati rutinu● Odluka o testiranju rutine● Rukovanje greskama● Efikasnost● Dostupna funkcionalnost u bibliotekama● Istraziti algoritme i strukture podataka● Napisati pseudokod
![Page 13: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/13.jpg)
Dizajn rutine
● Razmisljati o podacima● Proveriti pseudokod
![Page 14: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/14.jpg)
Kodiranje rutine
![Page 15: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/15.jpg)
Kodiranje rutine
![Page 16: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/16.jpg)
Kodiranje rutine
![Page 17: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/17.jpg)
Kodiranje rutine
![Page 18: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/18.jpg)
Proveravanje koda
● “Mentalno” proveravanje ● Kompajliranje rutine● Debagovanje● Testiranje koda● Uklanjanje gresaka
![Page 19: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/19.jpg)
Ciscenje ostataka
● Provera interfejsa rutine● Provera kvaliteta dizajna● Provera podataka rutine● Provera naredbi i logike rutine● Provera layouta rutine● Provera dokumentacije rutine● Uklanjanje suvisnih komentara
![Page 20: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/20.jpg)
Alternative PPP-u
● Test-first development● Design by contract● Hacking?
![Page 21: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/21.jpg)
Checklist
● Da li su preduslovi zadovoljeni?● Da li je problem koji treba resiti definisan?● Da li je dizajn visokog nivoa dovoljno jasan
da klase i rutine dobiju dobro ime?● Da li ste razmisljali o testiranju klasa i
rutina?● Da li ste razmisljali o efikasnosti u smislu
stabilnog interfejsa i citljive implementacije, ili u smislu zadovoljavanja rokova i budzeta?
![Page 22: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/22.jpg)
Checklist
● Da li ste proverili standardne i druge biblioteke za vec gotov kod?
● Da li ste koristili literaturu za algoritme?● Da li ste koristili detaljni pseudokod za
svaku rutinu?● Da li ste proverili “usmeno” pseudokod?
Da li je lak za razumevanje?● Da li ste obratili paznju na stvari koje bi
mogli da vrate u dizajn(npr globalni podaci)?
![Page 23: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/23.jpg)
Checklist
● Da li ste precizno preveli pseudokod u kod na ciljanom jeziku?
● Da li ste primenili PPP rekurzivno, razbijajuci rutine u manje ako je potrebno?
● Da li ste dokumentovali pretpostavke?● Da li ste uklonili suvisne komentare?● Da li ste razumeli kod? Da li je kod tezak
za razumevanje?
![Page 24: Pseudokod Proces programiranja - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf RS2...Puna eksploatacija procesa ... Lakse odrzavanje od drugih formi. Konstrukcija](https://reader035.fdocument.pub/reader035/viewer/2022071414/610eb2fc0183bc1bb0592cc1/html5/thumbnails/24.jpg)
KRAJ