Pravila i napomene

Napomene oko korištenja QBASIC-a na takmičenju

Prilikom probnog takmičenja za osnovne škole, utvrdili smo da mnogi takmičari koriste programski jezik BASIC. Zadaci u BASICu se također mogu automatski testirati, ali to nije bilo moguće realizirati koristeći okruženje QB64 pa se na serveru koristi FreeBasic. FreeBasic je 99% kompatibilan sa QuickBasic i QB64, ali postoji nekoliko razlika na koje takmičari trebaju obratiti pažnju:

  • U FreeBasic-u nije moguće deklarisati niz i varijablu koji se isto zovu
    U QBasic-u ako imate sljedeći kod:
    DIM a$(50)
    INPUT a$
    on će ispravno raditi budući da su niz a$ i string a$ različite varijable, a stringovi se ne moraju deklarisati. Nažalost, neki učenici očito misle da se linijom DIM a$(50) deklariše string dužine 50 znakova. Linija DIM a$(50) ustvari deklariše niz od 50 stringova! FreeBasic neće dozvoliti postojanje niza i varijable sa istim imenom, pa će kod dat iznad na serveru proizvesti Compiler error.
  • S druge strane, nizovi se moraju dimenzionisati.
    Primjećujemo da neki dijalekti QBasica dozvoljavaju korištenje nizova bez dimenzionisanja u nekim slučajevima. U FreeBasicu se svi korišteni nizovi moraju propisno deklarisati naredbom DIM.
  • Ograničenja broja karaktera na ulazu
    Kao što je poznato u QBasic-u se ne može u string unijeti sa tastature više od oko 200 karaktera. FreeBasic dozvoljava unos do 4096 karaktera. Da biste izbjegli ove probleme, ako se u zadatku traži unos velikog broja karaktera, prepravite vaš program tako da umjesto sa standardnog ulaza čita podatke iz datoteke input.txt koja se nalazi u tekućem folderu (istom kao i sam program).
  • Posebno molimo takmičare da ne koriste naredbu LINE INPUT za čitanje sa standardnog ulaza zbog poznatog buga u FreeBasic okruženju. Molimo vas da koristite INPUT za standardni ulaz ili datoteku input.txt. Prilikom sastavljanja zadataka će se paziti da veličina ulaza ne prekoračuje 4096 karaktera te da stringovi ne sadrže razmake.