Programiranje 2

Ovo su web stranice kolegija Programiranje 2 koji slušaju studenti prve godine preddiplomskog sveučilišnog studija Matematika kao obavezni kolegij, te studenti druge godine preddiplomskog sveučilišnog studija Matematika, smjer nastavnički kao izborni kolegij.

Kolegij se održava u ljetnom semestru, a nastava se sastoji od dva sata predavanja i dva sata vježbi svakog tjedna.

Glavni ciljevi ovog kolegija su svladavanje osnovnih tehnika programiranja (tj. realizacija osnovnih algoritama) i učenje konkretnog programskog jezika C, koji je sredstvo za realizaciju tih algoritama.

Način polaganja

Elementi ocjenjivanja
  • 50% - kolokvij (pismeno)
  • 50% - reducirani ispit (samo u 1. terminu, 1. roka) (pismeno)
  • 100% - ispit (pismeno ili usmeno)

Redoviti kolokvij
U prvom dijelu semestra će se održati kolokvij koji donosi najmanje 50 bodova.
Reducirani ispit
Studenti zadovoljni ostvarenim brojem bodova mogu u 1. terminu 1. roka pristupiti reduciranom ispitu koji sadrži samo gradivo drugog dijela semestra.
Ispit
U ostalim terminima, student mora pristupiti punom ispitu koji sadrži gradivo cijelog semestra. U tom slučaju se bodovi ostvareni na kolokviju/reduciranom ispitu poništavaju.
Polaganje
Za prolaz kolegija potrebno je sakupiti ukupno barem 45 bodova na ispitu (kolokvij i reducirani ispit ili ispit), a pri tome na barem jednom "programskom" zadatku treba sakupiti najmanje 80% mogućih bodova. Svi zadaci se smatraju "programskima". U gradivo svakog pojedinog kolokvija ulazi sve što se radilo na vježbama i predavanjima od početka semestra do dana održavanja kolokvija. Od pomagala, na kolokvijima je dozvoljeno koristiti isključivo službeni podsjetnik.

Studentima koji ostvare sve uvjete za prolaz, ocjena se zaključuje prema sljedećoj skali (računa se zbroj postignutih bodova):

45 - 59 bodovadovoljan (2)
60 - 74 bodovadobar (3)
75 - 89 bodovavrlo dobar (4)
90 - 100 bodovaizvrstan (5)

Sadržaj kolegija

  1. Ponavljanje. Izrazi. Osnovne naredbe. Funkcije. Nizovi.
  2. Funkcije. Načini prijenosa argumenata. Primjeri rekurzivnih funkcija. Quick sort.
  3. Struktura programa. Blokovska struktura programa. Atributi varijabli: memorijske klase i doseg. Programi smješteni u više datoteka.
  4. Dvodimenzionalna polja. Osnovne karakteristike. Inicijalizacija i definicija. Polje kao argument funkcije. Primjeri.
  5. Pokazivači. Aritmetika pokazivača. Pokazivači i polja. Pokazivači i funkcije. Dinamičko alociranje memorije. Argumenti komandne linije.
  6. Strukture. Deklaracija i inicijalizacija. Polja struktura. Struktura definirana pomoću strukture. Strukture i pokazivači. Samoreferentne strukture. Operacije s vezanim listama. Merge sort. Unije.
  7. Datoteke. Otvaranje i zatvaranje datoteka. Podjela datoteka prema načinu pristupa i načinu upisa. Standardne funkcije za čitanje i pisanje. Formatirani upis/ispis. Binarni upis/ispis.
  8. Preprocesor. Naredbe #include, #define i #undef. Uvjetno uključivanje. Parametrizirane makro naredbe. Razlika između makro naredbi i funkcija.
  9. Standardna C biblioteka. Pregled datoteka zaglavlja i najčešće korištenih funkcija.