BHOI

DRŽAVNO TAKMIČENJE INFORMATIČARA BOSNE I HERCEGOVINE

PRAVILA TAKMIČENJA


Na ovoj stranici su navedena precizno pravila državnog takmičenja informatičara Bosne i hercegovine BHOI, koja su gotovo u potpunosti identična pravilima na međunarodnim takmičenjima iz informatike.

Takmičarski zadaci

Svi zadaci na BHOI takmičenjima su isključivo programerski zadaci i težište je na dizajniranju ispravnog i efikasnog algoritma.

Programski zadaci mogu se rješavati u bilo kojem ponuđenom programskom jeziku. Ulazne i izlazne operacije ograničavaju se isključivo na najelementarnije operacije (čitanje tekstualne datoteke i upis u tekstualnu datoteku), tako se pažnja takmičara može usmjeriti na sam algoritam. Nikakve specifičnosti programskih paketa nisu neophodne, niti se moraju koristiti. Slijedeće specifičnosti se neće uzimati u obzir i ne preporučuje se njihovo korištenje:

Programski jezici

Za programiranje se mogu koristiti programski jezici Pascal ili C/C++. Na svakom računaru će biti instalirana slijedeća integrirana razvojna okruženja za navedene programske jezike:

Svi kompajleri će biti instalirani u potpunosti, uključujući i help datoteke.

Programi se mogu pisati u bilo kojem ponuđenom programskom jeziku. Da bi se omogućila automatska evaluacija (ocjenjivanje) programa, svi zadaci moraju biti kompajlirani tako da na hard disku ostane izvršna verzija (EXE) programa. Izvorni kod programa se ne pregleda!

Takmičari trebaju biti upoznati sa programskim paketom koji izaberu uključujući i poznavanje biblioteka i modula koji se isporučuju uz kompajler. Neophodno je vladati integriranim razvojnim okruženjem, a posebno ugrađenim editorom, kompajlerom i debagerom. Dalje, potrebno je elementarno poznavanje MS DOS-a za izvršavanje programa, mijenjanje radnog direktorija, i manipuliranje datotekama.

Oprema za takmičenje

Za takmičenje se koriste Pentium PC računari, sa standardnom tastaturom, mišem i kolor monitorom. Takmičari će imati obezbijeđene diskete za pravljenje rezervnih kopija, bijeli papir i olovke. U takmičarsku sobu se ne smije unositi nikakva dodatna oprema, kao što su programske diskete, kalkulatori, uputstva, knjige i slično.

Broj zadataka i trajanje takmičenja

Takmičari dobijaju tri zadatka. Takmičenje traje 4 sata/časa (240 minuta) bez prekida. U slučaju da je plasman takmičara na kraju takmičenja izjednačen u smislu da se ne može odlučiti koji takmičari odlaze na međunarodno takmičenje, izbor se vrši na osnovu izrade rezervnog (četvrtog) zadatka, za koji takmičari imaju na raspolaganju 1 sat/čas.

Direktoriji i izvršne putanje

Na hard disku svakog računara nalaziće se slijedeći radni direktorij u kome moraju biti rađeni zadaci:

C:\BHOI

Izvršna putanja (PATH) će biti postavljena tako da se omogući pristup svim instaliranim kompajlerima za navedene programske jezike.

 

Vanjske komunikacije

Jedine vanjske komunikacije koje su dozvoljene tokom rada programa su čitanje ulaznih datoteka, pisanje izlaznih datoteka i, eventualno, pozivi vanjskih funkcija u vanjskim bibliotekama, koje su specificirane u opisu zadatka.

Posebno, nije dozvoljeno pisanje na ulazno-izlazne portove (poput serijskih portova) ili pokušaj promjene sistemskog sata. Svaki pokušaj da se to uradi će rezultirati diskvalifikacijom i dodjelom 0 bodova.

Ulazni podaci

Svi programi treba da čitaju ulazne podatke isključivo iz tekstualnih (ASCII) datoteka. Ovo je slučaj čak i ako program treba samo jednu ulaznu vrijednost. Imena ulaznih datoteka su data u opisu zadatka - nikakve izmjene imena nisu dozvoljene. Programi ne smiju čitati nikakve podatke sa tastature.

Može se pretpostaviti da se ulazni podaci slažu sa opisom zadatka, tj. da će format ulazne datoteke biti u skladu sa specifikacijama zadanim u tekstu zadatka, tako da nije potrebno provjeravati ispravnost ulaznih podataka.

Ulazni podaci se sastoje od niza vrijednosti. Vrijednost je ili cijeli broj ili neprazni niz znakova, kao što su slova ("a" do "z" i "A" do "Z") i cifre ("0" do "9"). Vrijednosti su razdvojene ili jednim razmakom ili oznakom kraja linije (end-of-line).

U pravilu, struktura ulazne datoteke je takva da ne morate brinuti o oznaci kraja datoteke (end-of-file). Ipak, može biti izuzetaka, koji tada moraju biti posebno navedeni u specifikacijama zadanim u tekstu zadatka.

Za svaki zadatak biće navedeni primjeri ulaznih datoteka, kako u opisu zadatka, tako i u radnom direktoriju.

Izlazni podaci

Izlazne podatke program treba da ispiše u tekstualnu (ASCII) datoteku u skladu sa specifikacijama zadanim u opisu zadatka. Imena izlaznih datoteka moraju biti potpuno ista kao što je naznačeno u tekstu zadatka.

Nije potrebno da programi ispisuju bilo šta na ekran. U fazi razvoja programa može se koristiti ispis na ekran (za potrebe debagiranja), ali prije nego što se kreira konačna EXE verziju programa, potrebno je ukloniti sve ispise na ekran iz programa. U svakom slučaju, bilo kakav eventualni ispis na ekran neće se ocjenjivati.

Izlazni podaci se sastoje od niza vrijednosti. Vrijednost je ili cijeli broj ili neprazni niz znakova, kao što su slova ("a" do "z" i "A" do "Z") i cifre ("0" do "9"). Vrijednosti su razdvojene ili jednim razmakom ili oznakom kraja linije (end-of-line).

Format izlazne datoteke mora biti tačno u skladu sa specifikacijama zadanim u opisu zadatka.

Izlazni status

Svi programi treba da se završavaju "normalno", a ne prijavom greške ili na neki drugi način koji ukazuje na nenormalan završetak. Dakle, C i C++ programeri treba da main funkciju obavezno završe sa iskazom

return 0;

Nije dozvoljeno main funkciju definirati kao funkciju bez povratne vrijednosti (tj. kao void funkciju).

Početak takičenja

Za vrijeme takmičenja svi takmičari će se nalaziti u računarskom centru. Svi računari će već biti uključeni još prije ulaska takmičara u računarski centar. Opisi takmičarskih zadataka će se nalaziti u koverti ispod tastature. Svaki zadatak će biti odštampan na posebnom papiru, Za svaki zadatak, na papiru će biti navedeno ime zadatka, detaljan opis zadatka, opisi ulaznih i izlaznih datoteka, maksimalno vrijeme izvršavanja programa za svaki test i maksimalni broj poena koji se mogu osvojiti za dati zadatak.

Zabranjeno je dirati koverte ili tastaturu prije nego se da znak za početak takmičenja.

Pitanja

Pitanja je moguće postavljati isključivo u pisanoj formi, i to samo tokom prvih sat vremena. Pitanja smiju biti samo vezana za zadatke, i moraju biti iskazana u formi koja omogućava odgovor DA/NE tipa, stoga na svako od pitanja može biti ponuđen samo jedan od slijedeća tri odgovora:

Takmičari mogu postavljati pitanja isključivo putem obrazaca za pitanja, koji se mogu dobiti u računarskom centru.

Organizacioni komitet će odgovoriti na svako pitanje takmičara. Pošto razmatranje pitanja može potrajati neko vrijeme, takmičar treba da nastavi rad dok ne dobije odgovor. Takmičar neće biti uključen u diskusiju o pitanju.

Takmičari se za pomoć mogu obratiti i redarima u računarskom centru. Redari neće davati nikakve odgovore koji se tiču zadataka, ali mogu dati obrasce za pitanja, odvesti takmičara do toaleta, i, eventualno, pomoći kod tehničkih problema sa računarom.

Rezervne kopije

Svi takmičari će dobiti diskete za kreiranje rezervnih kopija (backup), što je poželjno raditi, s obzirom na eventualnu mogućnost problema sa računarom. Ako sistem padne sa nepopravljivim kvarom, takmičarima će biti nadoknađeno samo vrijeme koje je utrošeno za zamjenu računara.

Štampanje

Tokom takmičenja takmičari mogu tražiti da im se odštampa ASCII datoteka. Za tu svrhu potrebno je kopirati datoteku na poddirektorij A:\PRINT na radnoj disketi i dati disketu redaru. Disketa će biti vraćena zajedno sa odštampanom datotekom, dok će datoteka biti premještena u direktorij A:\TRASH poslije štampanja.

Završetak takmičenja

Svi takmičari će biti napomenuti o završetku takmičenja 15 i 5 minuta prije kraja takmičenja. Ovo vrijeme potrebno je iskoristiti za provjeru sljedećeg:

Na znak da je takmičenje završeno, takmičari moraju odmah prestati sa radom. Tastaturu je po završetku potrebno staviti na monitor.

Računar se ne smije isključivati. Redari će napraviti kopije Vašeg rada.

Diskete se ne smiju iznositi iz takmičarske sobe. Koverte za zadacima mogu se ponijeti sa sobom.

Ocjenjivanje

Ocjenjivanje počinje odmah nakon završetka takmičenja. Ocjenjivač će pozvati takmičara i njegovog vođu da prisustvuju ocjenjivanju na računaru na kojem je takmičar radio.

Ocjenjivanje programa vrši se na deset test primjera sa odgovarajućim ulaznim podacima. Testiranje programa se sastoji od slijedećih koraka (ovi koraci se izvode automatski pomoću posebnog programa za evaluaciju zadataka):

Po završetku ocjenjivanja od vođe takmičara se zahtjeva da prihvati rezultate ili da argumentirano zahtjeva daljnji pregled. Vođi takmičara će biti uručena kopija diskete sa takmičarovim radom i korištenim test podacima.