1 / 18

Osnovi računarstva II

Osnovi računarstva II. Cikli čni algoritmi Rad sa nizovima. Ciklus. Ciklus ili petlja je dio algoritma koji se ponavlja više puta. Postoje: ciklusi koji se ponavljaju tačno određen broj puta; ciklusi koji se ponavljaju dok je zadovoljen logički uslov.

glenda
Download Presentation

Osnovi računarstva II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Osnovi računarstva II Ciklični algoritmi Rad sa nizovima

  2. Ciklus • Ciklus ili petlja je dio algoritma koji se ponavlja više puta. Postoje: • ciklusi koji se ponavljaju tačno određen broj puta; • ciklusi koji se ponavljaju dok je zadovoljen logički uslov. • Pošto je drugi tip nešto opštiji samo će on biti izučavan. NE WHILE USLOV DA NAREDBE

  3. Ciklus - Primjer • Izvršiti sumiranje brojeva od 1 do N. NE WHILE I N START DA S=S+I N, S, I I=I+1 N Inicijalizacija - Mi neznamo koji su podaci stajali na memorijskoj lokaciji koja je dodjeljena promjenljivoj S i moramo postaviti S na 0 da bi sumiranje vršili od 0 S=0 S I=1 END

  4. Ciklus - Primjer • Prethodni primjer je bio primjer ciklusa koji se izvršava tačno određen broj puta. Sljedeći primjer je ciklus koji se izvršava dok je zadovoljen uslov. • Izvršiti sumiranje brojeva koje korisnik zadaje sve do unosa negativnog broja. Negativan broj ne sabirati.

  5. Selekcije i ciklusi- Napomene • Unutar jednog ciklusa (selekcije) može se nalaziti drugi ciklus (selekcija). • Unutrašnja selekcija se mora zatvoriti istovremeno ili prije spoljašnje. Ne smije nikada da se zatvara kasnije (ciklusi, odnosno selekcije, se ne mogu sjeći). • Može se matematički dokazati da se svaki algoritamski rješiv problem može riješiti korišćenjem samo sekvenci, selekcija i ciklusa. • Naravno, unutar svakog od djelova mogu opet postojati ugnježdeni drugi elementi. dokazali Bohm i Jacopini 1966-te godine

  6. Primjer 1 • Štampati veći od dva unesena broja. START A, B A,B NE DA A>B A B END

  7. Primjer 2 • Kreirati algoritam za izračunavanje faktorijela prirodnog broja N, koji predstavlja ulazni podatak algoritma. Prvi prolaz:FAKT = 1*1, I = 2 Drugi prolaz:FAKT = 1*2, I = 3 Treći prolaz:FAKT = 1*2*3, I = 4 ... N-ti prolaz: FAKT = 1*2*...*N, I = N+1

  8. Primjer 3 • Kreirati algoritam koji računa stepen broja: Y=XN. Uočiti da je XN=X*XN-1. Prvi prolaz:Y = X, I = 2 Drugi prolaz:Y = X*X, I = 3 Treći prolaz:Y = X2*X, I = 4 ... N-ti prolaz: Y = XN-1*X, I = N+1

  9. Primjer 4 • Unosise prirodan broj N. Odrediti sumu njegovih cifara. Unosi se N=349 Prvi prolaz:SUMCIF = 9, N = 34 Drugi prolaz:SUMCIF = 9+4, N = 3 Treći prolaz:SUMCIF = 9+4+3, N = 0 FLOOR odbacuje decimalni ostatak

  10. Primjer 5 • Unosise prirodan broj N. Odrediti sumu njegovih parnih cifara. Unosi se N=249 Prvi prolaz:SUMCIF = 0, N = 34 Drugi prolaz:SUMCIF = 4, N = 3 Treći prolaz:SUMCIF = 4+2, N = 0

  11. Nizovi • Niz je složen tip podatka. • Niz je kolekcije elementarnih podataka iste vrste (npr. cijelih brojeva). • Niz se deklariše na sljedeći način: X[50] • Broj 50 u deklaraciji (naravno, može bilo koji pozitivan broj!!!) predstavlja najveći očekivani broj podataka, bez obzira na to koliko se podataka stvarno koristi u nizu. • Obično ćemo raditi sa dodatnim podatkom koji predstavlja pravu dužinu niza. Taj podatak se učitava u algoritmu.

  12. Indeksiranje nizova • Elementi niza su X[1], X[2], ..., X[50]. Brojevi 1, 2, ..., 50 predstavljaju redni broj elementa niza ili indeks niza. • Sa pojedinačnim elementima možemo raditi isto kao sa prostim podacima: X[1] = X[2]-3, X[5] = 2*X[5]. • Postavlja se pitanje na koji način efikasno raditi sa elementima niza (učitavanje, modifikacija, štampanje) kad se dužina može menjati pri svakom izvršenju programa. • Odgovor – Pomoću ciklusa! • Uvešćemo pomoćnu promenljivu, obično I, i elementima niza ćemo pristupati sa X[I], pri čemu se I menja od 1 do N, gde je N prava dužina niza.

  13. Rad sa elementima niza Štampanje elemenata niza Unos elemenata niza

  14. Nizovi - Primjer 1 • Nacrtati algoritam kojim se unosi niz od N elemenata i štampa suma njegovih elemenata.

  15. Suma niza – drugo rješenje • Odmah nakon učitavanja, možemo sabirati elemente niza.

  16. Nizovi - Primjer 2 • Nacrtati algoritam kojim se unosi niz od N elemenata i određuje i štampa maksimalni element niza.

  17. Nizovi - Primjer 3 • Nacrtati algoritam kojim se unosi niz od N elemenata i formira i štampa niz X čiji su elementi dati sljedećom relacijom. Na primjer, za N=5, niz je X = 5, 2, 9, 4, 13

  18. Zadaci za vježbu • Nacrtati algoritam koji učitava dva broja i štampa njihov proizvod ako je prvi veći od drugoga, odnosno zbir ako nije. • Nacrtati algoritam koji učitava prirodan broj N i koji vrši sabiranje prvih parnih brojeva manjih od N. Na primjer, ako je N=7, treba sabrati brojeve 2, 4 i 6. • Nacrtatialgoritam koji učitava niz A, dužine N, i koji određuje sumu svih neparnih elemenata niza A. • Nacrtatialgoritam koji učitava niz A, dužine N, i koji određuje koliko elemenata niza A je veće od prvog elemenata tog niza.

More Related