Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.89 KB | None | 0 0
  1. Zadaća 1
  2.  
  3.  
  4. Zadaća nosi 2 boda, a sastoji se od 4 zadatka pri čemu svaki nosi 0,5 bodova. Zadaci će biti bodovani proporcionalno broju uspješnih testova. Oblasti zadaće su: osnove programiranja u C-u, tipovi podataka u C-u, ulaz i izlaz, uslovi i grananja, petlje (predavanja 01-05, tutorijali 1-3, skripta: poglavlja 1, 2, 4).
  5.  
  6. Važna napomena: Ovaj dokument će možda biti mijenjan radi popravljanja grešaka. Koristite najnoviju verziju! Na dnu dokumenta nalaziće se dnevnik izmjena.
  7.  
  8.  
  9. 1. Tri drugarice Anja, Elma i Una odlučile su za vikend da idu u neki grad u kojem je lijepo vrijeme. Problem je što se njih tri ne slažu oko toga šta je tačno "lijepo vrijeme": Anja voli sunce i snijeg ali ne voli kišu, Elma ne voli kada je vrlo vruće niti vrlo hladno, a Una ne voli padavine generalno i ne voli kad je vrijeme "onako".
  10.  
  11. Napravite program koji će drugaricama pomoći da izaberu da li će ići u Sarajevo, Mostar ili Bihać. Najprije je potrebno unijeti vremensku prognozu za svaki od ova tri grada, i to u vidu temperature u °C i podatka da li se predviđaju padavine ili ne (ako ne onda pretpostavljamo da će biti sunčano). Ako je temperatura veća od 0°C, padavina je kiša, a u suprotnom padavina je snijeg. Doživljaj toplote je dat u tabeli:
  12. >30°C - vrlo vruće
  13. 20-30°C - vruće
  14. 5-20°C - onako
  15. -5-5°C - hladno
  16. <-5°C - vrlo hladno
  17.  
  18. Ako ima više gradova u kojima vrijeme odgovara sve tri drugarice, treba ispisati najbliži (drugaricama je najbliže Sarajevo, zatim Mostar i na kraju Bihać). Poruka treba glasiti npr. "Drugarice idu u Mostar." Ako niti jedan grad ne odgovara svim drugaricama, treba ispisati najbliži grad u koji mogu ići barem dvije od tri drugarice npr. "Elma i Una mogu u Bihac." (imena treba poredati abecednim redom). Ako ni takav grad ne postoji, onda treba ispisati "Ne odgovara niti jedan grad."
  19.  
  20. Primjer ulaza i izlaza:
  21. Unesite prognozu za Sarajevo:
  22. Temperatura: 25
  23. Padavine (D/N): k
  24. Pogresan unos.
  25. Padavine (D/N): d
  26. Unesite prognozu za Mostar:
  27. Temperatura: 29
  28. Padavine (D/N): N
  29. Unesite prognozu za Bihac:
  30. Temperatura: 20
  31. Padavine (D/N): N
  32. Drugarice idu u Mostar.
  33.  
  34. Napomena: Na upit "Padavine (D/N):" dozvoljeno je unijeti veliko ili malo slovo D ili N. Ako korisnik ne unese ništa od toga, treba ispisati poruku "Pogresan unos." i ponavljati unos sve dok se ne unese ispravno slovo.
  35.  
  36.  
  37. 2. Kada korisnik unese neki iznos u bankomat, potrebno mu je vratiti taj iznos koristeći novčanice od 1 KM, 2 KM, 5 KM, 10 KM, 20 KM, 50 KM. Pri tome treba koristiti minimalan broj novčanica. Napravite program koji omogućuje da se sa tastature (standardnog ulaza) unese iznos (pozitivan cijeli broj), a zatim ispisuje koliko koje novčanice treba vratiti.
  38.  
  39. Primjer:
  40. Unesite iznos: 93
  41. 1 novcanica od 50 KM
  42. 2 novcanica od 20 KM
  43. 0 novcanica od 10 KM
  44. 0 novcanica od 5 KM
  45. 1 novcanica od 2 KM
  46. 1 novcanica od 1 KM
  47.  
  48.  
  49. 3. Cilj zadatka je napraviti igru trgovanja robom na berzi!
  50.  
  51. Robe (eng. commodities) kojima se najviše trguje na berzi su zlato, srebro i nafta. Trenutne približne cijene ovih roba su: zlato $1200 po unci, srebro $15 po unci i nafta $70 po barelu. Svakog radnog dana cijena svake od ovih roba raste ili pada za određeni procenat. Npr. ako je cijena bila $1000 i porasla je za 0.1%, ona sada iznosi $1001. Procenat porasta (ili pada) cijene se ne može drastično promijeniti: u našoj igri ovaj procenat se svaki dan može povećati ili smanjiti za 0.1. Koristite funkciju rand() koju smo radili na tutorijalu tako da budu podjednake šanse da će procenat porasti ili pasti za 0.1.
  52.  
  53. Na kraju sedmice imate priliku da trgujete ovim robama. Igru počinjete po isteku prve sedmice sa $100000 u kešu. Možete kupiti ili prodati određenu robu po trenutnoj cijeni. Naravno, ne možete kupiti više robe nego što imate novca, niti prodati više nego što imate. Kada završite trgovinu možete preći na sljedeću sedmicu ili prekinuti igru.
  54.  
  55. Svake sedmice treba vam se ispisati koliko imate zlata, srebra i nafte (te vrijednost ove robe po trenutnim cijenama) i koliko imate novca u gotovini. U sljedećem redu treba ispisati ukupno koliko imate vrijednosti (zbir četiri iznosa iz prethodnog reda), a u zagradi razliku u odnosu na početno stanje od $100.000 (koliko ste zaradili tj. izgubili novca).
  56.  
  57. Primjer ulaza i izlaza je dat ispod. Svi novčani iznosi se ispisuju na dvije decimale, osim procenta porasta (pada) iskazanog u zagradi koji se uvijek mijenja za 0.1, tako da uvijek ima jednu decimalu, te se treba prikazati predznak + kako bi se jasno označilo da li je cijena porasla ili pala, a količinu roba koje imate treba ispisivati koristeći format %g.
  58.  
  59. Napomena: Za vrijeme isprobavanja možete staviti srand(time(NULL)); kako ste radili na tutorijalu 4, ali prilikom slanja zadaće stavite srand(0) jer će se na taj način uvijek pojavljivati isti brojevi kao na našim testovima.
  60.  
  61. PON: Zlato $1201.20 (+0.1) Srebro $14.98 (-0.1) Nafta $70.07 (+0.1)
  62. UTO: Zlato $1203.60 (+0.2) Srebro $14.98 (+0.0) Nafta $70.07 (+0.0)
  63. SRI: Zlato $1204.81 (+0.1) Srebro $15.00 (+0.1) Nafta $70.00 (-0.1)
  64. CET: Zlato $1207.22 (+0.2) Srebro $15.00 (+0.0) Nafta $70.00 (+0.0)
  65. PET: Zlato $1208.42 (+0.1) Srebro $15.01 (+0.1) Nafta $70.07 (+0.1)
  66.  
  67. Imate:
  68. Zlata: 0 ($0.00) Srebra: 0 ($0.00) Nafte: 0 ($0.00) Novca: $100000.00
  69. UKUPNO: $100000.00 ($+0.00)
  70.  
  71. Unesite izbor (1 - Kupi, 2 - Prodaj, 3 - Sljedeca sedmica, 0 - Kraj igre): 6
  72. Pogresan izbor!
  73.  
  74. Imate:
  75. Zlata: 0 ($0.00) Srebra: 0 ($0.00) Nafte: 0 ($0.00) Novca: $100000.00
  76. UKUPNO: $100000.00 ($+0.00)
  77.  
  78. Unesite izbor (1 - Kupi, 2 - Prodaj, 3 - Sljedeca sedmica, 0 - Kraj igre): 1
  79.  
  80. Sta kupujete (1 - Zlato, 2 - Srebro, 3 - Naftu): 1
  81. Koliko? 82
  82.  
  83. Imate:
  84. Zlata: 82 ($99090.67) Srebra: 0 ($0.00) Nafte: 0 ($0.00) Novca: $909.33
  85. UKUPNO: $100000.00 ($+0.00)
  86.  
  87. Unesite izbor (1 - Kupi, 2 - Prodaj, 3 - Sljedeca sedmica, 0 - Kraj igre): 3
  88. PON: Zlato $1210.84 (+0.2) Srebro $15.05 (+0.2) Nafta $70.21 (+0.2)
  89. UTO: Zlato $1212.05 (+0.1) Srebro $15.09 (+0.3) Nafta $70.28 (+0.1)
  90. SRI: Zlato $1212.05 (+0.0) Srebro $15.12 (+0.2) Nafta $70.42 (+0.2)
  91. CET: Zlato $1210.84 (-0.1) Srebro $15.14 (+0.1) Nafta $70.49 (+0.1)
  92. PET: Zlato $1208.42 (-0.2) Srebro $15.17 (+0.2) Nafta $70.49 (+0.0)
  93.  
  94. Imate:
  95. Zlata: 82 ($99090.18) Srebra: 0 ($0.00) Nafte: 0 ($0.00) Novca: $909.33
  96. UKUPNO: $99999.50 ($-0.50)
  97.  
  98. Unesite izbor (1 - Kupi, 2 - Prodaj, 3 - Sljedeca sedmica, 0 - Kraj igre): 1
  99. Sta kupujete (1 - Zlato, 2 - Srebro, 3 - Naftu): 2
  100. Koliko? 50
  101.  
  102. Imate:
  103. Zlata: 82 ($99090.18) Srebra: 50 ($758.29) Nafte: 0 ($0.00) Novca: $151.04
  104. UKUPNO: $99999.50 ($-0.50)
  105.  
  106.  
  107. 4. Svako kome je poznata igra bilijar zna da se kugla kreće po stolu i odbija od rubove stola slijedeći jednostavno pravilo: ugao pod kojim će se kugla odbiti od rub jednak je uglu pod kojim je kugla prilazila rubu.
  108.  
  109. U našem zadatku zamislićemo da je dat neki bilijarski sto dimenzija (n je širina, a m dužina stola). Neka su na stolu iscrtane linije tako da on izgleda kao koordinatni sistem. Na početku igrač postavlja kuglu na mjesto tako što izbroji x1 linija po širini i y1 linija po dužini. Zatim cilja bilijarskim štapom tako da pogodi ivicu stola na mjestu xP i yP.
  110.  
  111. Pretpostavimo da će se kugla kretati beskonačno dugo i odbijati od rubove po pravilu koje smo spomenuli. Koliko puta će se kugla odbiti od ivice stola prije nego što se po prvi put vrati u početnu poziciju?
  112.  
  113. Ukoliko kugla pogodi ćošak stola, tada problem nema rješenja i program treba ispisati -1 M gdje je M broj odbijanja od ivice prije pogađanja ćoška, u suprotnom program treba ispisati 0 M gdje je M broj odbijanja prije povratka u početnu poziciju.
  114.  
  115. U prvom redu ulaza se nalaze četiri cijela broja: x1 y1 xP i yP koji predstavljaju redom koordinate početne pozicije kugle i koordinate tačke ivice stola koju igrač cilja da pogodi. U sljedećem redu se nalaze dva cijela broja n i m razdvojena razmakom, koji predstavljaju širinu i dužinu stola.
  116.  
  117. Primjer ulaza i izlaza:
  118. Unesite brojeve x1 y1 xp i yp: 2 2 4 6
  119. Unesite n i m: 6 6
  120. 0 6
  121.  
  122. U ovom primjeru kugla se nalazi na početnoj poziciji 2,2 (obojena narandžasta tačka na slici). Igrač cilja tačku na rubu stola 4,6 (narandžasta kružnica na slici). Ukupne dimenzije stola su 6x6.
  123.  
  124.  
  125.  
  126. Na izlazu trebamo dobiti 0 6. Broj 0 označava da postoji rješenje, a broj 6 da se kugla 6 puta odbila od rubove stola. Kugla se odbija od rubove redom u tačkama: (4,6), (6,2), (5,0), (2,6), (0,2), (1,0). Iako se kugla uvijek na početku nalazi na cjelobrojnim koordinatama i cilja se prema tački koja je također na cjelobrojnim koordinatama, to ne znači da će se sve buduće tačke odbijanja nalaziti na cjelobrojnim koordinatama.
  127.  
  128. Primjer 2:
  129. Unesite brojeve x1 y1 xp i yp: 1 1 7 5
  130. Unesite n i m: 7 7
  131. 0 10
  132.  
  133.  
  134.  
  135.  
  136.  
  137. Izmjene:
  138. 1.10.2018 19:25 - izmijenjena postavka 3. zadatka tako da se u zagradi ispisuje razlika u odnosu na početno stanje a ne u odnosu na prošlu sedmicu; već je nekoliko studenata uradilo na ovaj način jer su testovi takvi, a ima i više smisla.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement