On-line učionica

10. marta 2019.

Pseudoslučajni brojevi

Filed under: C++,Programiranje — jelena100janovic @ 10:11 pm

Prošli put smo radili sa celobrojnim deljenjem i ostatkom. To su operacije koje su vrlo zgodne za kreiranje pseudoslučajnih brojeva. Zašto se zovu pseudoslučajni? Zato što nisu zaista slučajni. Mi, u stvari, prvo napravimo tabelu slučajnih brojeva, a onda iz nje vadimo sledeći broj. Da bi napravili tabelu, pozivamo funkciju srand(), a da bi izvukli sledeći broj, funkciju rand(). Ima tu još jedna funkcija time() iz biblioteke ctime, kojom obezbeđujemo da svaki put kada pokrenemo program napravimo drugačiju tabelu slučajnih brojeva. Dobro, kakve ovo veze ima sa celobrojnim deljenjem? Pa, slučajni brojevi su ogromni, a nama često trebaju neki iz zadatog intervala. Tu uskače ostatak pri deljenju.

Napisati program koji generiše slučajan ceo broj između 1 i 10.

Ovde nam treba neki od 10 mogućih brojeva. Zato ćemo od generisanog celog broja uzeti samo 10 mogućnosti – ostatak pri deljenju sa 10. Tako dobijamo broj od 0 do 9. Na kraju ćemo dodati 1 da bismo dobili broj od 1 do 10. Evo i koda i nekoliko rezultata:

  (more…)

Advertisements

17. februara 2019.

Još malo o celobrojnom deljenju, ulaznim i izlaznim podacima

Filed under: C++,Programiranje — jelena100janovic @ 4:50 pm

Rekli smo da operator deljenja, kada se odnosi na cele brojeve, predstavlja celobrojno deljenje i postoji još jedan operator ostatka, koji daje ostatak pri deljenju. Na primer, 7 podeljeno na 2 je 3 i ostatak 1, ili:

7 / 2 = 3
7 % 2 = 1

Čemu nam to služi? Evo primera…

Napisati program koji vremenski interval dat u minutima izražava u satima i minutima. Na primer, unesemo 135 minuta, a dobijemo 2 sata i 15 minuta.

Analiza: Jedan sat ima 60 minuta. Zato će svako parče datog intervala od po 60 minuta predstavljati po jedan sat, a delić koji ostane će morati da ostane izražen u minutima:

135 = 60 + 60 + 15

Ovo je idealno za matematički model celobrojnog deljenja:

135 / 60 = 2
135 % 60 = 15

(more…)

9. februara 2019.

Još jedan tip podataka i neki operatori

Filed under: C++,Programiranje — jelena100janovic @ 11:29 pm

Ovde ćemo da obradimo još jedan tip podataka, koji služi za računarsko beleženje slova i znakova. Posle toga ćemo pogledati kakve sve znakove programski jezik koristi kao znakove operacija nad različitim tipovima podataka. Na kraju ćete još malo crtati 🙂

Znakovi u računaru – char

Da bi prikazali znak u računaru, koristimo tip podataka char. Deklaracija se vrši potpuno isto kao i bilo koja druga:

char znak;

Ovo je idealan primer da objasnimo zašto je važno deklarisati promenljive. I slova, kao i brojevi se u računaru zapisuju kao nizovi nula i jedinica. Kod slova postoji sistem koji se naziva ASCII tabela (i njegovo proširenje UNICODE koji sadrži sve znakove svih svetskih jezika, ali se ređe koristi u programiranju), koji nam govori koje slovo odgovara kojem broju. Zato programski jezici mogu da rade sa slovima i drugim znakovima isto što i sa brojevima: nalaze prethodni, sledeći, porede i slično. Dakle, kada ne bi bilo deklaracije, za određeni podatak u memoriji računara ne bismo znali da li program treba da ga tretira kao ceo broj, broj sa zarezom, ili kao znak sa tastature.

Dodela vrednosti je takođe vrlo slična kao i kod drugih promenljivih: (more…)

3. februara 2019.

Formatirani izlaz i skraćivanje koda

Filed under: C++,Programiranje — jelena100janovic @ 12:36 pm

Već ste verovatno primetili da ove lekcije nisu „klasične“. U smislu da ne sadrže sve potrebne podatke za određenu tematiku programiranja. To je zato što se liste mogućih funkcija, klasa, metoda, itd. mogu „izguglati“. A sve ovo pričam jer ću uskoro da vam ubacim neki link na kome ima gooomila informacija. To nikako ne znači da treba sve to da naučite! Više je referenca gde da potražite odgovor kada u nekom primeru treba da rešite određeni problem.

Formatiranje ispisa

Često nam je potrebno da rezultate nekog programa ispišemo u sređenom obliku, nalik tabeli. To u C++-u nije baš jednostavno. I evo sad tog izvora informacija kako se formatira ispis na ekran u C++-u. Tona informaciija… koja počinje poznatim endl 🙂

Primer

Napisati program koji na standardni izlaz ispisuje vaš nadimak u polju širine šesnaest znakova, a u novom redu vaše ime u polju širine četrnaest karaktera.

Pre nego što napišemo kod, šta mislite, kako će to izgledati?

Koje od silnih rešenja sa linka nam rešava problem? Treba nam širina izlaznog polja… na engleskom field width. Eto ga, skoro na samom početku… funkcija setw(). Obratite pažnju da se te funkcije još nazivaju manipulatori i da se većina nalazi u biblioteci iomanip, koju moramo uključiti na početku programa. Hajde da probamo! (more…)

16. januara 2019.

Konstante

Filed under: C++,Programiranje — jelena100janovic @ 9:45 am

Znate li ono večito pitanje: „Šta će mi ovo u životu?“ U pravu ste – nikada vam u životu neće trebati program koji sabira dva broja, ni nešto sa tekstom kao što ste imali za domaći. Problemi u životu su malo komplikovaniji… Ali se svode upravo na matematičke probleme!

Primer

Cena akvarijuma se određuje na osnovu litraže (koliko litara vode može u njega da stane). Vaš posao je da pomognete vlasniku radnje za pravljenje akvarijuma po porudžbini da brzo odredi cenu (odnosno litražu akvarijuma), kada mu kupci dođu sa željenim dimenzijama.

Prvo treba da analiziramo dati problem. U tom procesu je važno da osmislimo matematički model problema i izvedemo formule za računanje željenih rezultata na osnovu ulaznih podataka.

U našem problemu sa akvarijumima, možemo pretpostaviti da je ta početna cena okvirna i da prava cena ne sme da bude veća od početne. Zato možemo, kakav god oblik akvarijuma da žele kupci, taj oblik da smestimo u neki matematički najjednostavniji – kutijast oblik, odnosno kvadar. Da bismo izračunali litražu akvarijuma, treba nam njegova zapremina (1 l = 1 dm3). Zapremina kvadra se računa po formuli: V = abc, gde su a, b i c dužina, širina i visina kvadra, koje ćemo unositi u decimetrima, da bi nam bilo lakše da dobijemo litražu. Takođe, početnu cenu dobijamo kada litražu pomnožimo sa cenom izrade po litru. (more…)

12. januara 2019.

Deljenje, realni brojevi i još ponešto

Filed under: C++,Programiranje — jelena100janovic @ 4:11 pm

Ako ste mislili da smo završili sa našim programom za sabiranje dva broja, varate se! Evo ga opet:

Rekli smo da je zgodno da iskomentarišemo imena promenljivih. Ponekad to nije potrebno – možemo da im promenimo imena tako da sama po sebi imaju smisla, pa komentari nisu potrebni. Da bi to uradili, moramo znati šta su dozvoljena imena, a šta ne.

Imenovanje promenljivih

(more…)

11. januara 2019.

Prvi koraci u programiranju

Filed under: C++,Programiranje — jelena100janovic @ 10:10 pm

Znate li kako računar računa? Bez ulaženja u neku veliku teoriju, recimo da pretvori brojeve u binarni zapis, izračuna šta je hteo, pretvori u dekadni zapis i ispiše nam na ekranu. Da probamo…

Dobićemo:

(more…)

8. januara 2019.

Programiranje u C++-u

Filed under: C++,Programiranje — jelena100janovic @ 11:20 pm

Pre nego što počnemo da programiramo, potreban nam je alat. Ja sam učila sa najprimitivnijim alatom – papirom i olovkom, što ne znači da i vi morate tako. Papir i olovka su super u smislu da sve moramo znati napamet, ništa nam se ne ispisuje samo, niti ga je lako naći… Ali imaju i veeeliku manu: teško je proveriti da li nam program radi onako kako smo zamislili. Nije nemoguće, ali oduzima zaista mnogo vremena. Zato je zgodno da isprobavamo svoje programe na računaru. Za to nam treba prevodilac, ili kompajler za C++. Njih ima zaista mnogo, kako onih koje istaliramo na računar, tako i onih koji su on-line, na nekom sajtu. Bilo koji će uraditi posao, sem ako ne napišemo nešto što neki kompajler ne prihvata ili ne razume. Zato dajem prednost instaliranim kompajlerima, jer, ako mu i nađemo neku manu, uvek možemo dodati nedostajuće biblioteke, što kod on-line alata nije moguće.

Čak ću se usuditi da preporučim kompajler za koji znam da radi na mnogim konfiguracijama računara i pritom ih ne usporava. To je Dev-C++. Druga njegova prednost je u tome što se relativno lako instalira na većini računara pod Windows operativnim sistemom. Ima i svoje mane, ali o njima ćemo kad na iste naiđemo.

Naš prvi program

Očekujem da ste instalirali Dev-C++ sa gornjeg linka, pokrenuli ga i shvatili da je mali prozorčić savet dana i da ga treba zatvoriti. Sada ćemo otvoriti novi projekat sa File -> New -> Project…

(more…)

5. februara 2015.

Kompletan primer: red

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 5:39 pm

Red je sutinski specijalan sluaj povezane liste u kooj se nov element dodaje na kraju, a izlazi kao u redu na početku.

Evo koda programa…

Kod70 (more…)

30. januara 2015.

Dinamička alokacija memorije

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 12:32 pm

Počećemo od primera povezane liste…

Kod61

Šta radi ovaj deo koda? Formira dva čvora liste i povezuje ih…

Slika7 (more…)

Sledeća strana »

Blog na WordPress.com.