220 likes | 382 Views
Osnovi ra čunarstva. Rešavanje problema primenom računara. Rešavanje problema primenom računara. Tri faze: analiza problema razvoj algoritma za rešavanje problema transformacija algoritma u računarski program (programiranje). Analiza problema.
E N D
Osnovi računarstva Rešavanje problema primenom računara
Rešavanje problema primenom računara • Tri faze: • analiza problema • razvoj algoritma za rešavanje problema • transformacija algoritma u računarski program (programiranje).
Analiza problema • Cilj: da pruži preciznu definiciju i opis problema, specifikaciju ulaznih podataka, specifikaciju izlaznih podataka (rezultate koji se očekuju), kao i postupak da se do takvih rezultata dođe. • Specifikacija ulaznih i izlaznih podataka određuje u izvesnom stepenu i algoritam obrade podataka.
Algoritmi • Algoritam predstavlja niz uputstava koja tačno određuju redosled operacija koje će dovesti do rešenja za probleme datog tipa. • Karakteristike: • broj operacija koje se moraju izvršiti za rešenje konkretnog problema nije poznat unapred. • procedura koja je određena algoritmom je deterministički proces – data u obliku konačnog broja instrukcija • instrukcije koje čine algoritam definišu proceduru koja se može izvršiti na odgovarajućem skupu podataka i u svakom slučaju dovodi do korektnog rezultata.
Algoritmi • 5 važnih osobina: • konačnost • definisanost (bez dvosmislenosti – opis u odgovarajućem jeziku) • ulaz • izlaz • efikasnost(vreme ili količina zauzete memorije)
Predstavljanje algoritama • Različite tehnike: • prirodni jezici • blok dijagrami algoritma (grafička predstava) • meta jezici (između prirodnih i programskih jezika) • programski jezici
Simbol obrade • Za predstavljanje svih operacija u kojima dolazi do transformacije informacionih struktura najčešće aritmetičkim, logičkim ili operacijama prenosa informacionog sadržaja.
Simbol ulaza/Izlaza • Za predstavljanje ulazno/izlaznih operacija koje uvode podatke u obradu i/ili ispisuju rezultate obrade.
Simbol odluke • Za označavanje operacija odlučivanja ili grananja toka izvođenja algoritma, a prema nekom kriterijumu odlučivanja. • Dve vrste: • aritmetički • logički
Simbol podalgoritma • Da označi više algoritamskih koraka pogodno grupisanih u celinu koju nazivamo podalgoritam i koju nije potrebno dalje razlagati u detalje. • Motivacija: • ponavljajuće delove grupisati u podalgoritam • dekompozicija problema na manje
Osnovne algoritamske strukture • Linijska struktura • Struktura sa grananjem • Petlja • Struktura sa podalgoritmima
Linijska struktura • Postoji samo jedna grana izvršavanja. • Svaki algoritamski korak se izvršava samo jednom.
Struktura sa grananjem • Kada se u algoritmu pojavi korak odlučivanja, odn. aritmetičkog ili logičkog testa.
Petlja (ciklična struktura) • Odlikuje se višestrukim izvršavanjem jednog ili više algoritamskih koraka.
Petlja (ciklična struktura) • Suma niza: • Niz: A = {a1, a2, a3, ..., aN} = {ai}, i = 1, ..., N
Petlja (ciklična struktura) • Primer:
Struktura sa podalgoritmima • Veza između algoritma i podalgoritma – lista ulazno-izlaznih parametara • stvarna lista parametara – parametri koji se prosleđuju podalgoritmu iz glavnog algoritma • formalna lista parametara – lista parametara pozvanog algoritma • Broj, redosled i vrsta parametara stvarne i formalne liste mora da se poklapa.
Programiranje • Implementacija algoritma na računaru • Program:niz naredbi (instrukcija) pisanih u određenom programskom jeziku (izvornom jeziku) koji poseduje implicitan ili eksplicitan redosled izvršavanja na računaru. • Nakon pisanja programa sledi: • testiranje i • otkrivanje grešaka (debagiranje – debugging): • greška u lošoj definiciji problema • logičke greške u algoritmu • greške prilikom unosa programa.