/iknet

Repozitorij za razmjenu koda na grupi za pripremu za natjecanja u IK NET

Primary LanguageC++

IK NET -- natjecateljsko programiranje
================================================================================

1. Uvod
----------------------------------------

Ovo je repozitorij za razmjenu rješenja zadataka na grupi za natjecateljsko
programiranje u Informatičkom klubu NET. Repozitorij je pokrenut s idejom da je
vrlo korisno čitati i proučavati tuđa rješenja: na taj način sudionici grupe
međusobno dijele dobre ideje i trikove, modificiraju ih i usavršavaju, što vodi
prema iterativnom procesu učenja. Naravno, da bi stvar funkcionirala, najbitnije
je da sudionici grupe rješavaju što više zadataka i time generiraju sadržaj.

Repozitorij i cjelokupni sadržaj može se pregledavati online:

https://github.com/fniksic/iknet

2. Instalacija i korištenje repozitorija
----------------------------------------

Repozitorij se nalazi na GitHubu (http://github.com/). Za korištenje je potrebno
tamo otvoriti account. Nakon otvaranja accounta potrebno je instalirati i
konfigurirati Git na način opisan u jednom od sljedećih guideova, ovisno o
operativnom sustavu koji se koristi:

http://help.github.com/win-set-up-git/
http://help.github.com/linux-set-up-git/
http://help.github.com/mac-set-up-git/

Zatim je potrebno javiti svoj username na email fniksic@gmail.com da vas se
doda kao kolaboratora u repozitorij.

Način rada s repozitorijem je sljedeći:

  1. Na Windowsima se pokreće Git Bash, a na Linuxu/OSX konzola. Naredbe koje se
     koriste izgledaju otprilike ovako:
     
       cd ..
       cd direktorij
       cd c:/neki/drugi/direktorij
       ls

  2. U željenom direktoriju se izvrši kloniranje repozitorija:

       git clone git@github.com:fniksic/iknet.git
     
     Time će se pojaviti direktorij iknet. U njega se uđe sa cd iknet. Zatim se
     ulazi u svoj direktorij (npr. Mihael Pribanić ulazi u mpribanic). Ako
     vašeg direktorija nema, napravite ga naredbom mkdir (npr. Mihael bi
     napravio direktorij naredbom mkdir mpribanic.)

  3. Unutar svojeg direktorija spremate rješenja svojih zadataka. Kad dodate
     ili promijenite datoteku (npr. zadatak.bas), potrebno ju je dodati u Git
     indeks naredbom:

       git add zadatak.bas

  4. U trenutku kad napravite značajnu promjenu koju želite spremiti, izvršite
     commit:

       git commit -m "Kratki opis promjene."

     Time ste spremili svoju lokalnu kopiju repozitorija. Sve tako spremljene
     verzije kasnije možete uspoređivati, vraćati i slično.

  5. Da biste povukli najnovije promjene sa GitHuba, izvršite:

       git pull

  6. Ako želite lokalnu kopiju gurnuti na GitHub, izvršite naredbu:

       git push origin master

Za dodatne informacije o Gitu i GitHubu pogledajte:

  * http://rogerdudler.github.com/git-guide/
  * http://help.github.com/git-cheat-sheets/
  * http://help.github.com/

Jedan zgodan program koji vam može olakšati korištenje Gita je:

  * http://code.google.com/p/tortoisegit/

3. Važne napomene
----------------------------------------

Nekoliko napomena kojih bi se trebali pridržavati da sve ovo uspije:

  * Ako koristite Microsoft QuickBasic 4.5, pri spremanju datoteke će vam biti
    ponuđeno da je spremite u QuickBasic-ovom formatu ili običnom tekstualnom
    (ASCII) formatu. Obavezno odaberite drugu opciju. Datoteku spremite s
    nastavkom .bas.

  * Koristite komentare:
      
      Na početku rješenja zadatka obavezno u komentaru navedite gdje se može
      pročitati tekst zadatka. Ako zadatak nije online, ukratko napišite o čemu
      se radi. Ovo je bitno kako bi drugi sudionici grupe znali koji ste zadatak
      riješili.

      Osim toga, općenito je dobro komentirati kod. Ako ste napisali kod koji
      mislite da bi nekome (možda i vama) mogao djelovati zbunjujuće, napišite
      ukratko što taj kod radi i zašto je upravo tako napisan.

  * Uvlačite blokove koda unutar IF naredbi i petlji. Ovo je jako važno kako bi
    kod bio čitljiv. Primjere kako napisati ispravno uvučene blokove možete
    vidjeti u direktoriju fniksic.

  * Mijenjajte datoteke samo unutar svojeg direktorija. Ovo nije presudno jer
    je Git jako dobar u baratanju promjenama koje više ljudi radi na istoj
    datoteci (zapravo tome i služi), ali za početak je bolje da se ipak
    pridržavate ove napomene i fokusirate se na rješavanje zadataka, a od Gita
    koristite samo najosnovnije.

4. Izvori zadataka
----------------------------------------

Za početak, velik broj zadataka može se naći u arhivi Hrvatskog otvorenog
natjecanja u informatici:

http://www.hsin.hr/honi/arhiva/

Zatim su tu prijašnja natjecanja:

http://www.hsin.hr/natjecanja.html
https://www.infokup.hr/kategorija/1/Algoritmi

5. Razno
----------------------------------------

Za sva pitanja i komentare javite se mailom na fniksic@gmail.com. Želim vam
puno uspjeha!