WEBnSTUDY.com
Algoritmi

Ciklični algoritmi - Zadaci

Ciklusi sa preduslovom

Uslovni ciklusi se "vrte" dok je uslov zadovoljen. Jedina razlika je da li se uslov proverava na početku ili na kraju ciklusa. Kod ciklusa sa preduslovom, uslov se ispituje pre početka svake iteracije. To znači da ako uslov već na početku nije zadovoljen, ciklus može da se ne izvrši ni jednom.

Zadaci za vežbu

Zadatak 1
Unose se dva cela broja, A i B. Napraviti algoritam koji će ispisati sve brojeve od A do B korišćenjem ciklusa sa preduslovom.

Zadatak 2
Ispisati sve brojeve od A do B, gde se A i B unose i znamo da je A<B, u razmacima od po X. Npr. ako su A=5.3, B=7.6 i X=0.3, onda se ispisuju brojevi 5.3 5.6 5.9 6.2 6.5 6.8 7.1 i 7.4 .

Zadatak 3
Ispisati sve faktorijele počev od 1!, zaključno sa faktorijelom unetog broja X.

Zadatak 4
Unose se celi brojevi dok se ne unese 0. Izračunati i ispisati zbir recipročnih unetih brojeva. Npr. za unete brojeve 5, 3 i 9, dobijamo zbir 1/5 + 1/3 + 1/9.

Zadatak 5
Unose se celi brojevi dok se ne unese 0. Izračunati i ispisati prosek unetih parnih brojeva.

Zadatak 6
Među brojevima 1, 1+1/2, 1+1/2+1/3, ... treba naći prvi koji je veći od unetog broja X.

Zadatak 7
Pronaći prvi broj deljiv brojem N, počev od unetog celog broja X.

Zadatak 8
Ispisati sve delioce unetog broja X.

Zadatak 9
Proveriti da li je uneti broj prost. Proveru prekiuti onog trenutka kada se naiđe na delilac.

Zadatak 10
Unosi se celi broj X. Ispitati da li je deljiv brojem N, ali bez korišćenja aperatora DIV, MOD (%) i funkcija ceil(), floor() i round().

Zadatak 11
Napisati program za izdvajanje cifara unetog celog broja X.

Zadatak 12
Izračunati zbir cifara unetog broja X.

Zadatak 13
Proveriti da li se u unetom celom broju X nalazi cifra C (koju takođe unosimo na početku).

Zadatak 14
Unosi se celi dekadni broj. Preračunati ovaj broj u binarni korišćenjem ciklusa sa preduslovom.

Ciklusi sa postuslovom

Kod ciklusa sa postuslovom, situacija je malo drugačija - uslov se ispituje posle svake iteracije. To znači da ciklus mora da se izvrši bar jednom, da bi se uopšte stiglo do provere uslova.

Različiti programski jezici imaju malo drugačije varijante ovog ciklusa. U JavaScriptu, Javi i sličnim jezicima, ovaj ciklus se definiše kao do-while naredba kod koje se ciklus izvršava dok je uslov zadovoljen. U Pascalu se ovaj cilus implementira blokom repeat-until i izvršava se sve dok uslov nije zadovoljen. U našim algoritmima koristimo varijantu koja je saglasna sa JavaScriptom

Zadaci za vežbu

Zadatak 1
Dat je algoritam:

Šta će biti njegov rezultat?

Zadatak 2
Unose se tri cela broja, A, B i X. Kreirati algoritam koji će ispisati sve cele brojeve od A do B, koji su deljivi sa X, i to korišćenjem ciklusa sa postuslovom.

Zadatak 3
Unose se celi brojevi dok se ne unese 0. Izračunati i ispisati zbir dupliranih vrednosti unetih brojeva.

Zadatak 4
Na osnovu unetog celog broja X treba formirati broj Z koji je jednak broju X sa obrnutim redosledom cifara (npr. ako je uneto X=1234, onda treba da se dobije Z=4321).

Zadatak 5
Ispisati članove Fibonačijevog niza koji su manji od zadatog maksimuma. Fibonačijev niz uvek počinje brojevima 0 i 1, a svaki sledeći član se dobija kao zbir prethodna dva. Znači, brojevi bi bili: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Zadatak 6
Naći najveći zajednički delilac (NZD) za dva uneta cela broja.

Zadatak 7
Naći najmanji zajednički sadržilac (NZS) za dva uneta cela broja.

Zadatak 8
Izračunati dekadnu vrednost za uneti celi binarni broj.

Zadatak 9
Napraviti igru pogađanja broja. Računar treba da "zamisli" neki broj od 1 do 1000 (korišćenjem slučajnih brojeva). Korisnik pokušava da pogodi broj, tako što mu za svaki uneti broj računar daje odgovor da li je zamišljeni broj "veći" li "manji". Igra traje sve dok korisnik ne pogodi broj, i tada se ispisuje njegov rezultat - broj pokušaja koliko mu je trebalo.

Zadatak 10
Izračunati količnik i ostatak celobrojnog deljenja za dva uneta cela broja, bez upotreba operatora DIV i MOD (%, odnosno funkcija trunc(), round()).

Zadatak 11
Unosi se glavni string TXT i podstring SUB. Ispitati da li se podstring nalazi u glavnom stringu, i ako se nalazi, ispisati poziciju njegove prve pojave. Ostale eventualne pojave podstringa u glavnom stringu ignorišemo.

Grafika

Nekoliko grafičkih zadataka koji koriste uslovne cikluse.

Zadaci za vežbu

Zadatak 1
Nacrtati mrežu linija po horizontali i vertikali. Linije međusobno treba da budu razdvojene 40 piksela.

Primer rezultata

Zadatak 2
Na sredini grafičkog okvira, nacrtati seriju pravougaonika koji se nadovezuju jedan na drugi. Širina i visina im se određuju na slučajan način po sledećim pravilima: visina je broj između 30 i 50, a širina je broj od 0 do 510. Svaki pravougaonik treba da bude obojen zavisno od svoje širine (najširi je najsvetliji, najuži je najtamniji).

Primer rezultata

Zadatak 3
Grafika na slici izgleda kompleksno, ali se u stvari dobija crtanjem uzastopnih elipsi, kojima se menjaju širina i visina, sa centrom na sredini grafičkog okvira.

Primer rezultata

Zadatak 4
Nacrtati sferu kao na priloženoj slici. Iako sfera izgleda trodimenzionalno, tražena grafika se dobija na jednostavan način, uzastopnim crtanjem dve elipse kojima se menja širina, odnosno visina, sa centrom na sredini grafičkog okvira.

Primer rezultata

Zadatak 5
Nacrtati kvadratnu spiralu, počev od centra ekrana. Spirala se crta dok na ekranu ima mesta.

Primer rezultata
  1. M. Čabarkapa, N. Spalević (1995): Metodička zbirka zadataka iz programiranja sa rešenjima u Pascal-u, Sova, Beograd
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.