Professional Documents
Culture Documents
Zadaća 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.
U ovoj zadaći je potrebno pridržavati se i pravila za pisanje čitljivog koda (P13), u suprotnom studenti mogu izgubiti dio bodova.
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.
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])".
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.
Napomena: Program koji ne sadrži barem pokušaj rješavanja postavljenog problema dobiće 0
bodova bez obzira na broj testova koji prolaze.
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.
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.
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.
NIJE dozvoljeno koristiti funkcije iz biblioteka string.h i stdlib.h, kao ni funkcije sprintf i sscanf iz
biblioteke stdio.h.
# ### # # # #
# # # # # # # # #
# # # # # ## ###
# # # # # # # # #
# # # # # # #
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.
# ### # # # #
# # # # # # # # #
# # # # # ## ###
# # # # # # # # #
# # # # # # #
Izmjene: