Programersko takmičenje

Studentsko takmičenje iz programiranja – “Dani inženjera 2015”

Studentsko takmičenje iz programiranja prvi se put organizuje u okviru “Dana inženjera” 2015. Slična takmičenja, pojedinačna ili ekipna, postoje već više decenija u mnogim državama širom svijeta. Cilj takmičenja je da studenti koji su zainteresovani za programiranje, sa svih univerziteta u Crnoj Gori, pokažu svoje znanje i vještine kreiranjem algoritama za date probleme. Na “Danima inženjera” 2015 studenti će se takmičiti pojedinačno, po programu koji je predviđen za međunarodna ACM studentska takmičenja. Oblasti koje pokriva ACM program studentskih takmičenja

1. ,,AD HOC’’ problemi

2. Teorija brojeva

3. Strukture podataka

4. Dinamičko programiranje

5. Kombinatorika i igre

6. Osnovni algoritmi na grafovima

7. Najkraća putanja u grafu

8. Problemi protoka u mreži

9. Računarska geometrija

10. Algoritmi na stringovima

Takmičenje se sastoji od rješavanja 3 problemska zadatka u vremenu od 3 sata (180 minuta). Zadatke je potrebno rješavati u jednom od sljedećih programskih jezika: Pascal, C, C++ ili Java. Takmičari koji programiraju u programskom jeziku Pascal mogu koristiti FreePascal ili TurboPascal. Takmičari u C-u i C++-u mogu koristiti programske alate CodeBlocks, DevCpp ili GCC. Za programski jezik Java predviđena je upotreba platforme Eclipse. Dozvoljeno je koristiti editor po izboru i pomoću navedenih alata prevoditi izvorni kod u izvršnu datoteku.

Primjere zadataka kakvi se očekuju na takmičenju možete pronaći u prilogu. Tokom takmičenja ne smijete komunicirati ni sa jednom osobom, osim dežurne osobe takmičenja. To znači da morate raditi samostalno i ne smijete koristiti Internet. Takođe, zabranjena je upotreba bilo kakvih ranije napisanih programa ili dijelova programa. Nakon takmičenja, komisija će testirati vaša rješenja na ranije izabranim test podacima i dodijeliti vam određeni broj bodova. Na kraju svakog zadatka dati su primjeri test podataka. Ti primjeri služe da bi vam tekst zadataka bio što je moguće jasniji te za provjeru formata ulaza i izlaza, a ne služe za provjeru ispravnosti vašeg programa. Ako vaš program radi na tim primjerima, to nije garancija da će raditi na službenim podacima za testiranje.

Zadaci ne nose jednak broj bodova. Lakše i brže rješivi zadaci nose manje bodova, dok teži nose više bodova. Svaki test podatak u nekom zadatku nosi jednak broj bodova. Ukupan broj bodova na nekom zadatku jednak je zbiru bodova test podataka koji se poklapaju sa službenim rješenjem. Ukupan broj bodova jednak je zbiru bodova na svim zadacima.

Sve informacije o zadacima (ime zadatka, vremensko i memorijsko ograničenje, način bodovanja) možete naći u postavci zadatka. Ako vam nije jasno nešto u vezi načina organizacije ovog takmičenja, odmah postavite pitanje dežurnom da vam to razjasni. Tokom cijelog takmičenja možete postavljati pitanja dežurnom u vezi zadataka. Dozvoljena su pitanja koja razjašnjavaju nejasnoće u tekstu zadatka. Ne smijete postavljati pitanja u vezi rješavanja zadataka. Prije nego postavite pitanje, pročitajte još jednom zadatak, jer je moguće da ste u prethodnom čitanju preskočili dio teksta zadatka.

VAŽNO za C/C++!

Glavni program (glavna funkcija) mora biti deklarisan kao: int main(void) { … }. Program mora završiti svoje izvođenje naredbom return 0; unutar funkcije main ili naredbom exit(0);. Zabranjeno je koristiti biblioteke <conio.h> i <cconio>, kao i sve funkcije deklarisane u ovim bibliotekama (npr. clrscr(); getch(); getche(); i sl.). Zabranjeno je koristiti i sve sistemske (nestandardne) biblioteke. Zabranjeno je koristiti funkcije itoa() i ltoa() jer one ne postoje u standardu jezika C/C++. Umjesto tih funkcija možete koristiti funkciju sprintf() deklarisanu u <stdio.h> i <cstdio>, koja ima i veće mogućnosti primjene, Dozvoljeno je koristiti sve ostale standardne biblioteke (koje su dio jezika), uključujući i STL (Standard Template Library) u jeziku C++.

VAŽNO za Pascal!

Program mora regularno završiti svoje izvođenje naredbom end. unutar glavnog programa ili naredbom halt;. Zabranjeno je koristiti bilo kakve biblioteke, a posebno biblioteku crt, tj. zabranjeno je u programu imati direktivu uses. To znači da u programu ne smije biti naredbi clrscr() i readkey(). Nepoštovanje ovih pravila ili nepridržavanje formata izlaznih podataka rezultiraće nepovratnim gubitkom bodova. Nemojte štampati ništa što se u zadatku ne traži, kao npr. poruke tipa „Rjesenje je:‟ ili „Unesite brojeve‟ i slično!

Želimo vam srećno i uspješno takmičenje!

Leave a Reply

Your email address will not be published. Required fields are marked *