Norsk informatikkolympiade |
|
Meny:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/web/www.nio.ntnu.no/htdocs/counter.php3 on line 36 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /srv/web/www.nio.ntnu.no/htdocs/counter.php3 on line 57 Warning: mysql_close(): no MySQL-Link resource supplied in /srv/web/www.nio.ntnu.no/htdocs/counter.php3 on line 59 |
Komme i gang med programmeringHvis du ikke har programmert før, bør du lese dette. Dataprogrammer lages ved at man skriver programkode for å fortelle datamaskinen hva den skal gjøre. Fordi det er veldig vanskelig å skrive kode som datamaskinen forstår, er det blitt laget mange programmeringsspråk som er lettere for mennesker å forstå. Et programmeringsspråk består av forskjellige kommandoer som man kan bruke til å instruere datamaskinen. Men datamaskinen selv kan ikke forstå programmeringsspråk, så derfor finnes det egne programmer, såkalte kompilatorer, som oversetter fra programmeringsspråk til kode som datamaskinen forstår. Det finnes hundrevis av programmeringsspråk, som egner seg til forskjellige ting. Det er umulig å si hvilket språk som er best, men vi anbefaler at man lærer seg C++ hvis man tenker å delta i NIO, fordi C++ er velegnet til algoritmisk programmering. Det er ikke blant enkleste språkene, men det skal gå greit å lære seg det hvis man har en god bok eller nettside om det. Prøv for eksempel http://www.cplusplus.com/doc/tutorial/ eller http://www.cprogramming.com/tutorial.html#c++tutorial. NIO-oppgavene er kanskje i vanskeligste laget for de som ikke har programmert før, men hvis man er ute etter en utfordring, anbefaler vi å sette i gang med først å lære seg grunnleggende programmering og så ta en kikk på oppgavene. Editorer, kompilatorer og IDE'erMan bør altså ha en editor til å skrive koden i, og man må ha en kompilator til å produsere programmer ut i fra koden. Disse kan skaffes separat, men det finnes også programmer som kombinerer disse funksjonene. Sistnevnte kalles en IDE (Integrated Development Environment). Hvis man bruker Windows, anbefaler vi Microsoft Visual C++ 2005 Express Edition eller Dev-C++ (velg alternativet "Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC"). På Linux bruker man som regel GCC som kompilator, gjerne sammen med BokanbefalingerIntroduction to Algorithms av Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest og Clifford Stein - MIT Press Algoritmer og datastrukturer med eksempler i C og Java av Helge Hafting og Mildrid Ljosland - Gyldendal Akademisk / Stiftelsen Tisip Thinking in C++ av Bruce Eckels - tilgjengelig gratis her. Flere bokanbefalinger vil komme etterhvert. Nettsider om algoritmerMerk: Denne listen er tatt fra hjemmesiden til et av NTNU sine fag om algoritmer, så en del av emnene som dekkes her, er mer avanserte enn det som nivået i NIO tilsier. Vi vil snart omstrukturere listen og legge ut flere linker. Generelt
Grådighetsalgoritmer
Dynamisk programmering Geometri/Grafer
Usenet ("news")
Hashing
Verktøy
Diverse
Algdat utenfor Gløshaugen
NP-komplette problemer
Hentet fra NIO-diskusjoner |