Zadaci iz Programiranja 1 - školska 2006/07



Blanka Unković 01/06


Polazni tekstovi:

  1. BB-04.txt
  2. pav38-popa06.txt

Rezultujući tekstovi:

  1. BB-04.def
  2. pav38-popa06.def


Zadatak 1.1:
Sastaviti funkciju karakter koja vraća vrednost 0 ako tekst seminarskog sadrži samo dozvoljene ASCII-karaktere (LF,CR i grafičke karaktere od 32-127 koji se koriste u AURORA-kodu), a inače 1. Sastaviti main-funkciju koja testira funkciju karakter.
Rešenje zadatka 1.1:
1.1
1.1.exe
Rezultat:
1.1a
1.1b
Zadatak 1.2:
Sastaviti funkciju slovo koja vraća 0 ako se u tekstu seminarskog nalaze samo dozvoljeni (prema Uputstvu) alfabetski grafički karakteri izvan srednjih zagrada [i], a inače 1. (Na primer, karakteri q i w nisu dozvoljeni). Sastaviti main-funkciju koja testira funkciju slovo.
Rešenje zadatka 1.2:
1.2
1.2.exe
Rezultat:
1.2a
1.2b
Zadatak 1.3:
Sastaviti funkciju zagrada koja vraća 0 ako je broj otvorenih srednjih zagrada [ jednak broju zatvorenih srednjih zagrada ], a inače vraća 1. Sastaviti main-funkciju koja testira funkciju zagrada.
Rešenje zadatka 1.3:
1.3
1.3.exe
Rezultat:
1.3a
1.3b
Zadatak 1.4:
Sastaviti funkciju jednako koja ispituje da li je otvorena srednja zagrada [ zatvorena zagradom ]. Ako je ispunjen ovaj uslov, funkcija vraća 0, a inače 1. Sastaviti main-funkciju koja testira funkciju jednako. Voditi računa da zagrade mogu biti umetnute kao, npr, u primeru 10. iz Uputstva.
Rešenje zadatka 1.4:
1.4
1.4.exe
Rezultat:
1.4a
1.4b
Zadatak 1.5:
Sastaviti funkciju etiketa koja vraća broj unetih etiketa u tekst seminarskog rada. Sastaviti main-funkciju koja testira funkciju etiketa.
Rešenje zadatka 1.5:
1.5
1.5.exe
Rezultat:
1.5a
1.5b
Zadatak 2.1:
Sastaviti funkciju prebroj koja izračunava koliko je puta karakter upotrebljen u tekstu. Sastaviti main-funkciju koja testira funkciju prebroj tako što ispisuje spisak karaktera koji su upotrebljeni bar jednom u tekstu i frekvenciju njihovog pojavljivanja.
Rešenje zadatka 2.1:
2.1
2.1.exe
Rezultat:
2.1a
2.1b
Zadatak 2.2:
Isto kao 2.1, samo što se ne pravi razlika između velikih i malih slova engleske abecede. (funkcija prebroji).
Rešenje zadatka 2.2:
2.2
2.2.exe
Rezultat:
2.2a
2.2b
Zadatak 2.3:
Sastaviti funkciju slova koja prebrojava alfabetske karaktere koji nisu ograđeni srednjim zagradama. Sastaviti main-funkciju koja ispisuje rezultat rada ove funkcije.
Rešenje zadatka 2.3:
2.3
*preuzeto od kolege
Rezultat:
2.3a
2.3b
Zadatak 2.4:
Sastaviti funkciju interpunkt koja prebrojava interpunkcijske karaktere koji su se pojavili u tekstu izvan etiketa. Srednje zagrade se ne računaju osim u slučaju da čine deo teksta. (Videti primer 10. u Uputstvu).
Rešenje zadatka 2.4:
2.4
2.4.exe
Rezultat:
2.4a
2.4b
Zadatak 2.5:
Sastaviti funkciju reci koja izračunava raspodelu po dužini reči u tekstu seminarskog. Kao reči se uzimaju nizovi alfabetskih karaktera koji se ne nalaze unutar etiketa. Npr. u tekstu Od toga [dig 17] sedamnaest[] vrsta pripada papratima ([fl_la Pteriophyta] Pterodofita[]) ima sedam reči. Dužina reči Od je 2, dužina toga je 4, dužina reči sedamnaest je 10, itd.
Rešenje zadatka 2.5:
2.5
2.5.exe
Rezultat:
2.5a
2.5b
Zadatak 3.1:
Sastaviti funkciju etik koja kao argument dobija etiketu iza otvorene srednje zagrade i vraća 0 ako je etiketa korektna, inače 1. Sastaviti funkciju koja testira funkciju etik. Npr. za etiketu [dig 17], funkcija dobija kao argument nisku dig i vraća 0, dok za etiketu [dim 17] vraća 1.
Rešenje zadatka 3.1:
3.1
*preuzeto od kolege
Rezultat:
Zadatak 3.2:
Sastaviti funkciju provera koja proverava da li je svaki obeleženi deo teksta etiketiran nekom od etiketa iz grupa A, B i C koristeći funkciju etik iz zadatka 3.1. U slučaju da jeste, funkcija vraća 0, a u suprotnom broj nepravilnih etiketa. Funkcija treba da ispiše svaku nepravilnu etiketu kada na nju naiđe. Sastaviti funkciju za testiranje.
Rešenje zadatka 3.2:
3.2
3.2.exe
Rezultat:
3.2a
3.2b
Zadatak 3.3:
Sastaviti funkciju jednako koja kao argument uzima etiketirani tekst i ispisuje originalni tekst i tekst zamene kao u sledećem primeru:
Ulazni tekst je \[Sxtampa [abk] br.] broj [] [dig 12.] dvanaest [] od ove godine], a funkcija uzima etiketu po etiketu i ispisuje
abk br.=broj
dig 12=dvanaest
Rešenje zadatka 3.3:
3.3
*preuzeto od kolege
Rezultat:
3.3a
3.3b
Zadatak 3.4:
Sastaviti funkciju ispis koja kao argument uzima neku od etiketa (dig, abk, itd.) i vraća 0 ako se ta etiketa ne pojavljuje u tekstu seminarskog, a inače vraća broj pojavljivanja upotrebljene etikete. Funkcija ispisuje sva pojavljivanja zadate etikete. Sastaviti funkciju za testiranje funkcije ispis.
Rešenje zadatka 3.4:
3.4
3.4.exe
Rezultat:
3.4a
3.4b
Zadatak 3.5:
Sastaviti funkciju rekonstrukt koja iz teksta seminarskog briše sve zamenjene delove i uspostavlja početni tekst. Sastaviti funkciju za testiranje ove funkcije. Npr. za tekst Od toga [dig 17] sedamnaest [] vrsta pripada papratima ([fl_la Pteridophyta] Pterodofita []),, funkcija ispisuje Od toga 17 vrsta pripada papratima (Pteridophyta).
Rešenje zadatka 3.5:
3.5
*preuzeto od kolege
Rezultat:
3.5a
3.5b
Zadatak 3.6:
Sastaviti funkciju ispit koja formira niz upotrebljenih etiketa u tekstu seminarskog (broj etiketa <=15). Sastaviti funkciju sort koja sortira niz formiran u funkciji ispit. Sastaviti main-funkciju koja testira funkcije ispit i sort i ispisuje sortirani niz pronađenih etiketa.
Rešenje zadatka 3.6:
3.6
*preuzeto od kolege
Rezultat:
3.6a
3.6b
Zadatak 3.7:
Sastaviti funkciju koja za zadatu etiketu (npr. dig) formira niz niski koje se nalaze unutar te etikete. Npr. ako se u tekstu nalazilo [dig 17] sedamnaest [] i [dig 7] sedam [], niz treba da sadrži niske 17 i 7 (sortirane prema ASCII-kolacionoj sekvenciji).
Rešenje zadatka 3.7:
3.7
*preuzeto od kolege
Rezultat:
3.7a
3.7b
Zadatak 4.1:
Sastaviti funkciju kopiraj1 koja kopira tekst seminarskog zadatka u drugu datoteku bez teksta etiketa. Npr. tekst Od toga [dig 17] sedamnaest [] vrsta pripada papratima ([fl_la Pteridophyta] Pterodofita []) se kopira u Od toga sedamnaest vrsta pripada papratima (Pterodofita]).
Rešenje zadatka 4.1:
*preuzeto od . . .
Rezultat:
Zadatak 4.2:
Sastaviti funkciju kopiraj2 koja kopira obeleženi tekst seminarskog u drugu datoteku koristeći funkciju rekonstrukt i koja restaurira polazni tekst.
Rešenje zadatka 4.2:
*preuzeto od . . .
Rezultat:
Zadatak 4.3:
Sastaviti funkciju kopiraj3 koja kopira tekst obeleženog seminarskog u izlaznu datoteku tako da prepisuje samo etiketirane delove i to svaki etiketiran deo u novi red. Npr. tekst za tekst Od toga [dig 17] sedamnaest [] vrsta pripada papratima ([fl_la Pteridophyta] Pterodofita []), se kopira u tekst
[dig 17] sedamnaest []
[fl_la Pteridophyta] Pterodofita []
Rešenje zadatka 4.3:
*preuzeto od . . .
Rezultat:
Zadatak 4.4:
Sastaviti funkciju kopiraj4 koja kopira tekst obeleženog seminarskog u drugu datoteku zamenjujući etiketu koja se premosi kao argument html-etiketom po izboru. Npr. tekst obeležen kao dig u crveno obojeni tekst ili skraćenice u plavo obojeni tekst.
Rešenje zadatka 4.4:
*preuzeto od . . .
Rezultat:
Zadatak 4.5:
Sastaviti funkciju kopiraj5 koja u izlaznu datoteku prepisuje samo reči koje su palindromi. Ispitivanje palindroma izdvojiti u zasebnu funkciju palindrom.
Rešenje zadatka 4.5:
4.5
*preuzeto od kolege
Rezultat:
4.5a
4.5b