PROGRAMIRANJE 1 - ZBIRKA

Programiranje 1 - zbirka zadataka sa rešenjima

U okviru kursa Programiranje 1, koji se drži na prvoj godini na svim smerovima na Matematičkom fakultetu, vežbaju se zadaci koji imaju za cilj da studentima pomognu da nauče osnovne algoritme i strukture podataka koji se sreću u imperativnim programskim jezicima. Ova zbirka predstavlja objedinjen skup zadataka sa vežbi i praktikuma ovog kursa, kao i primere zadataka sa održanih ispita. Sva rešenja su data u programskom jeziku C, ali se većina zadataka može koristiti za vežbanje proizvoljnog imperativnog programskog jezika.

Zbirka je podeljena u četiri poglavlja. U prvom pogavlju obrađene su uvodne teme koje obuhvataju osnovne elemente imperativnog programiranja koje se koriste u rešavanju svih ostalih zadataka u zbirci. Uvodne teme uključuju osnovne tipove podataka, elementranu komunikaciju sa korisnikom, građenje izraza, upotrebu naredbi dodele i naredbi koje regulišu kontrolu toka programa (sekvenca, selekcija i iteracija) uključujući i izdvajanje logičkih celina u funkcije. Drugo poglavlje je posvećeno radu sa naprednijim tipovima podataka: nizovima (uključujući niske i višedimenzione nizove), pokazivačima i strukturama. Treće poglavlje posvećeno je dodatnim tehnikama koje se koriste za komunikaciju sa korisnikom. Obrađen je rad sa argumentima komandne linije, kao i rad sa datotekama. Dodatak sadrži primere dva ispitna roka iz jedne akademske godine. Većina zadataka je rešena, a teži zadaci su obeleženi zvezdicom.

Autori velikog broja zadataka ove zbirke su ujedno i autori same zbirke, ali postoje i zadaci za koje se ne može tačno utvrditi ko je originalni autor jer su zadacima davali svoje doprinose različiti asistenti koji su držali vežbe iz ovog kursa tokom prethodnih godina. Zbog toga smatramo da je naš osnovni doprinos što smo objedinili, precizno formulisali, rešili i detaljno iskomentarisali sve najvažnije zadatke koji su potrebni za uspešno savlađivanje koncepata koji se obrađuju u okviru kursa. Takođe, formulacije zadataka smo obogatili primerima koji upotpunjuju razumevanje zahteva zadataka i koji omogućavaju čitaocu zbirke da proveri sopstvena rešenja. Primeri su dati u obliku testova i interakcija sa programom. Testovi su svedene prirode i obuhvataju samo jednostavne ulaze i izlaze iz programa. Interakcija sa programom obuhvata naizmeničnu interakciju čovek-računar u kojoj su ulazi i izlazi isprepletani. U zadacima koji zahtevaju rad sa argumentima komandne linije, navedeni su i primeri poziva programa, a u zadacima koji demonstriraju rad sa datotekama, i primeri ulaznih ili izlaznih datoteka. Test primeri koji su navedeni uz ispitne zadatke u dodatku su oni koji su korišćeni u okviru testiranja i ocenjivanja studentskih radova na ispitima.

Neizmerno zahvaljujemo recenzentima, Gordani Pavlović Lažetić i Draganu Uroševiću, na veoma pažljivom čitanju rukopisa i na brojnim korisnim sugestijama koje su unapredile kvalitet zbirke. Takođe, zahvaljujemo studentima koji su svojim aktivnim učešćem u nastavi pomogli i doprineli uobličavanju ovog materijala kao i svim kolegama koje su držale vežbe na ovom kursu.

Svi komentari i sugestije na sadržaj zbirke su dobrodošli i osećajte se slobodnim da ih pošaljete elektronskom poštom bilo kom autoru.

Autori zbirke

Milena Vujošević Janičić je docent na Katedri za računarstvo na Matematičkom fakultetu. Ima više od 10 godina iskustva u nastavi na predmetu Programiranje 1, napre kao asistent, a kasnije i kao i predmetni nastavnik. Trenutno drži kurseve programskih jezika (Programske paradigme, Dizajn programskih jezika) kao i kurs Verifikacija softvera. Autor je zbirke zadataka Programiranje 2, kao i različitih nastavnih materijala (u obliku skripti).

Jovana Kovačević je docent na Katedri za računarstvo na Matematičkom fakultetu. Ima više od 10 godina iskustva u nastavi na predmetu Programiranje 1, najpre kao asistent a sada kao predmetni nastavnik.

Danijela Simić je asistent na Katedri za računarstvo na Matematičkom fakultetu. Ima 10 godina iskustva u nastavi na predmetima Programiranje 1 i Programiranje 2.

Anđelka Zečević je asistent na Katedri za računarstvo na Matematičkom fakultetu. Držala je vežbe na kursevima Programiranje 1 i Programiranje 2. Učestvovala je i u pripremi zbirke zadataka Programiranje 2. U ovoj školskoj godini drži vezbe na predmetima Programiranje za veb, Naučno izračunavanje i Mašinsko učenje.

Aleksandra Kocić je asistent na Katedri za računarstvo na Matematičkom fakultetu. Držala je vežbe na kursevima Programiranje 1 i 2. Autor je sistema WebGrade.

Elektronsko izdanje

Elektronsko izdanje zbirke (bez rešenja) može se naći ovde.

Repozitorijum zadataka

Detalji licence se mogu pogledati ovde.

Matematički fakultet, Univerzitet u Beogradu
školska 2019/20. godina