Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. Zadaća 4
  2.  
  3.  
  4. Zadaća nosi 2 boda, a sastoji se od 4 zadatka. Svaki zadatak nosi po 0,5 bodova. Zadaci će biti bodovani proporcionalno broju uspješnih testova. Oblast zadaće su stringovi (gradivo predavanja 15 i 16), a preporučljivo je i znanje predavanja 17.
  5. U ovoj zadaći je potrebno pridržavati se i pravila za pisanje čitljivog koda (P13), u suprotnom studenti mogu izgubiti dio bodova.
  6.  
  7. 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.
  8.  
  9.  
  10. 1. (0,5 bodova) U nekom matematičkom izrazu koriste se male (okrugle), srednje (uglaste) i velike (vitičaste) zagrade. Nakon svake otvorene zagrade mora se nalaziti odgovarajuća zatvorena zagrada istog tipa, tako da npr. "[x)" nije legalno jer je otvorena srednja a zatvorena mala zagrada. Unutar određenih zagrada može se nalaziti samo manji tip zagrada. Dakle, unutar malih zagrada se ne mogu nalaziti nikakve zagrade, unutar srednjih se mogu nalaziti male, a unutar velikih srednje i male. Također, zagrade različitog tipa se ne smiju ukrštati, tako da ni sljedeći izraz nije legalan: "[(A])".
  11.  
  12. Napišite funkciju provjeri_zagrade koja prima string koji sadrži izraz, a vraća 1 ako su sve otvorene zagrade uredno zatvorene te ako nema ukrštanja niti su prekršena ostala navedena pravila, a 0 ako to nije slučaj. Za string u kojem nema zagrada također treba vratiti 1.
  13.  
  14. Napomena: Program koji ne sadrži barem pokušaj rješavanja postavljenog problema dobiće 0 bodova bez obzira na broj testova koji prolaze.
  15.  
  16.  
  17. 2. (0,5 bodova) Napišite funkciju zamijeni_min_max. Funkcija prima string koji predstavlja rečenicu. Riječi u rečenici su međusobno razdvojene znakovima razmaka i uobičajenim znakovima interpunkcije (.,!?;). Funkcija treba u datoj rečenici da pronađe najdužu i najkraću riječ i da im zamijeni mjesta. Ako postoji više riječi iste dužine, treba odabrati onu riječ koja se najprije pojavljuje u stringu. Samim time, ako su sve riječi iste dužine, prva riječ je ujedno i najduža i najkraća, tako da ne treba uraditi ništa. Funkcija treba vratiti pokazivač na početak stringa radi lakšeg lančanog pozivanja.
  18.  
  19. Primjer: Ako rečenica glasi:
  20. "Ovo je primjer recenice sa dugackim, kratkim rijecima."
  21. Nakon poziva funkcije rečenica treba glasiti:
  22. "Ovo recenice primjer je sa dugackim, kratkim rijecima."
  23.  
  24. 3. (0,5 bodova) Napisati funkciju dvostruko koja prima string koji predstavlja neki tekst, a zatim sve brojeve koji se nalaze u tekstu množi sa dva. Funkcija treba vratiti pokazivač na početak primljenog stringa radi lakšeg lančanog pozivanja.
  25. Pod pojmom "broj" podrazumijeva se bilo koji neprekinuti niz cifara 0-9. Pretpostavite da su svi brojevi cijeli. Primijetite da će funkcija raditi ispravno i sa negativnim brojevima ako samo zanemarite minus. Pretpostavite da je primljeni string dovoljno velik da primi sve eventualne dodatne cifre.
  26.  
  27. Primjer: Ako je primljeni string glasio:
  28. "U ovoj recenici se nalazi broj 4, broj 8 i broj 88"
  29. nakon poziva funkcije string treba glasiti:
  30. "U ovoj recenici se nalazi broj 8, broj 16 i broj 176"
  31.  
  32. NIJE dozvoljeno koristiti funkcije iz biblioteka string.h i stdlib.h, kao ni funkcije sprintf i sscanf iz biblioteke stdio.h.
  33.  
  34.  
  35. 4. (0,5 bodova) Gradski prevoznik iz Sarajeva je odlučio da instalira alfanumeričke displeje na tramvajske stanice kako bi informisao putnike o vremenima dolazaka tramvaja. Svaki karakter koji se prikazuje na displeju je veliko slovo engleskog alfabeta. Kako bi se karakteri bolje vidjeli sa druge strane saobraćajnice, proizvođač displeja je povećao karaktere na način da se svaki karakter prikazuje pomoću LxN proizvoljnih simbola.
  36.  
  37. Na primjer, ako na displeju želimo prikazati natpis “Otoka”, ispisat ćemo:
  38.  
  39. # ### # # # #
  40. # # # # # # # # #
  41. # # # # # ## ###
  42. # # # # # # # # #
  43. # # # # # # #
  44.  
  45.  
  46. Vaš zadatak je da napišete program koji će sa standardnog ulaza učitati dimenzije karaktera, riječ koju treba ispisati i alfabet, a na standardni izlaz ispisati riječ na način kako bi izgledao njen prikaz na displeju. Ako se u riječi pojave mala slova engleskog alfabeta, ona treba da budu prikazana kao velika slova. Ako se u riječi pojavi neki znak koji nije veliko ili malo slovo engleskog alfabeta (n.pr. broj ili razmak), taj znak treba prikazati kao rezervisani karakter.
  47.  
  48. Na standardnom ulazu nalaze se sljedeći podaci:
  49. Linija 1: širina karaktera (0 < L < 30) koji se prikazuje na displeju. Svi karakteri su iste širine.
  50. Linija 2: visina karaktera (0 < H < 30) koji se prikazuje na displeju. Svi karakteri su iste visine.
  51. Linija 3: riječ sastavljena od N karaktera (0 < N < 200) koju treba prikazati na displeju.
  52. Narednih H linija: grafički prikaz karaktera koji formiraju alfabet
  53. ABCDEFGHIJKLMNOPQRSTUVWXYZ?, gdje je ? grafički prikaz rezervisanog karaktera, tj. karaktera koji nije veliko ili malo slovo engleskog alfabeta (npr. broj ili neki specijalni znak).
  54.  
  55. Primjer ulaza i izlaza:
  56. 4
  57. 5
  58. Otoka
  59. # ## ## ## ### ### ## # # ### ## # # # # # ### # ## # ## ## ### # # # # # # # # # # ### ###
  60. # # # # # # # # # # # # # # # # # ### # # # # # # # # # # # # # # # # # # # # # # # #
  61. ### ## # # # ## ## # # ### # # ## # ### # # # # ## # # ## # # # # # # ### # # # ##
  62. # # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # # # # ### # # # #
  63. # # ## ## ## ### # ## # # ### # # # ### # # # # # # # # # ## # ### # # # # # # ### #
  64.  
  65. # ### # # # #
  66. # # # # # # # # #
  67. # # # # # ## ###
  68. # # # # # # # # #
  69. # # # # # # #
  70.  
  71.  
  72.  
  73.  
  74. Izmjene:
  75. 25.12.2018 9:20 - dodato pojašnjenje u drugom zadatku šta treba raditi ako su sve riječi iste dužine
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement