Kako program radi
Krećemo od nule: šta je program, kojim redom računar izvršava naredbe, gde pamti podatke i kako se ista jednostavna ideja zapisuje pseudokodom i u C-u.
Materijali
Ovo je redosled novih oblasti. Između njih možemo ubaciti dodatne časove samo za zadatke, bez preskakanja na sledeću temu.
Krećemo od nule: šta je program, kojim redom računar izvršava naredbe, gde pamti podatke i kako se ista jednostavna ideja zapisuje pseudokodom i u C-u.
Pravimo jasan algoritam, crtamo dijagram toka, prevodimo ga u C i prvi put učitavamo podatke sa tastature. Operatore / i % koristimo u programima za pakovanja, vreme i cifre.
Dijagram toka prvi put dobija grananje. Uslov proveravamo na konkretnom podatku, izvršavamo samo odgovarajuću granu i proveravamo program primerima oko granice.
Program sada može da razlikuje više od dva slučaja. Gradimo else-if lanac, spajamo uslove operatorima &&, || i !, proveravamo neispravan ulaz i koristimo switch kada biramo između tačno određenih vrednosti.
Kada se isti postupak ponavlja, petlja čuva jednu verziju koda i kontroliše koliko puta se izvršava. Pratimo uslov i promenu brojača, sabiramo ili brojimo rezultate, obrađujemo cifre i biramo između while, for i do-while petlje.
Uvežbavamo petlje na zadacima koji se često pojavljuju kao prvi zadatak na ispitu: obrada cifara, obrtanje broja, delioci i provera prostog broja.
Niz čuva više vrednosti istog tipa pod jednim imenom. Učimo kako se elementima pristupa preko indeksa, kako se niz učitava i prolazi petljom i kako se iz njega dobijaju zbir, prosek, minimum i maksimum.
Isti prolazak kroz niz koristimo za traženje i brojanje. Zatim učimo zašto se pri brisanju elementi pomeraju ulevo, pri ubacivanju udesno i kako bubble sort uređuje niz poređenjem susednih elemenata.
Matrica čuva podatke u vrstama i kolonama. Vežbamo dva indeksa, ugnježdene petlje, rezultate po vrstama i kolonama, dijagonale i osnovne oblasti kvadratne matrice.
Sada ne računamo samo rezultat iz matrice, već menjamo izabrane elemente, premeštamo celu vrstu i gradimo novu matricu po preciznom pravilu.
Poznat postupak izdvajamo u funkciju, da bismo ga mogli jasno proveriti, pozvati više puta i povezati sa nizovima i matricama.
Povezujemo promenljivu sa njenom adresom, pratimo pokazivač na crtežu i koristimo funkcije koje menjaju podatke pozivaoca ili upisuju više rezultata.
String povezujemo sa već poznatim nizovima: pratimo znakove do završnog nul znaka, bezbedno učitavamo ceo red, ručno prolazimo kroz tekst i tek zatim koristimo funkcije iz string.h.
Podatke prvi put čuvamo van programa. Biramo režim r, w ili a, proveravamo svako otvaranje i čitanje, a zatim bezbedno zatvaramo svaki uspešno otvoren tok.
Čitamo sve podatke bez dupliranja poslednje vrednosti, kopiramo tekst red po red, zapisujemo binarne podatke i biramo tačnu poziciju u fajlu.
Pravimo sopstveni tip sa imenovanim članovima, obrađujemo niz zapisa i prosleđujemo strukturu funkciji po vrednosti ili preko pokazivača.
Zauzimamo memoriju tek kada saznamo potrebnu veličinu, proveravamo rezultat, menjamo kapacitet bez gubitka podataka i jasno određujemo ko oslobađa blok.
Poredimo tri osnovna algoritma, crtamo bubble sort u ispitnoj formi i zatim isti postupak ugrađujemo u funkcije, segmente i dinamičke nizove struktura.
Tri povezana ispitna zadatka prolazimo od izdvajanja uslova i graničnih slučajeva do celog C programa, provere rezultata i kratke odbrane napisanog rešenja.
Završna proba povezuje najvažnije oblasti: planiranje algoritma, ceo C program, nalaženje greške, izbor probnih ulaza i kratko obrazloženje rešenja.