MAPA ČASA
Od ideje do prvog C programa
1
program
2
podaci
3
promenljiva
4
pseudokod
5
C program
Na kraju je dovoljno da:
- Objasni šta je program i zašto je redosled naredbi važan.
- Prepoznaj početne podatke, obradu i rezultat.
- Razlikuj ime promenljive od njene trenutne vrednosti.
- Objasni dodelu kao čitanje desne i pamćenje na levoj strani.
- Poveži pseudokod sa nekoliko redova poznatog C programa.
01 · KORAK
Program je niz naredbi
Program je spisak naredbi koje računar izvršava jednu za drugom. Računar ne preskače red koji nam ne odgovara i ne pogađa šta smo mislili.
Ako krenemo od broja 5, naredbe „dodaj 3“ i „pomnoži sa 2“ daju 16. Kada im zamenimo mesta, rezultat je 13. Isti brojevi i iste operacije nisu dovoljni: važan je i redosled.
Proveri redosledPočni od 7. Prvo oduzmi 2 pa pomnoži sa 3. Zatim uradi iste operacije obrnutim redom. Napiši oba međukoraka.
Šta je algoritamAlgoritam je konačan i jasan redosled koraka kojim rešavamo problem. Možemo ga opisati običnim rečima, pseudokodom ili dijagramom toka; program je taj plan zapisan u programskom jeziku.
02 · KORAK
Ulaz → obrada → izlaz
Pre jezika i sintakse prvo pravimo mapu problema. Šta imamo na početku? Šta radimo sa tim? Šta treba da dobijemo na kraju?
Za problem „saberi 4 i 6“ početni podaci su 4 i 6, obrada je sabiranje, a izlaz je 10. U prvom programu ti brojevi će već biti napisani u kodu; unos sa tastature dolazi kasnije.
Tvoj primerProgram ima brojeve 12 i 5, oduzima drugi od prvog i prikazuje rezultat. Reci šta su početni podaci, šta je obrada i šta je izlaz.
Unos dolazi na trećem časuZa sada su brojevi već zapisani u programu. Tako možemo da razumemo račun i promenljive pre nego što dodamo unos sa tastature.
03 · KORAK
Promenljive su imenovana mesta u memoriji
Zamisli tri kutije sa nalepnicama a, b i zbir. Nalepnica je ime mesta; papirić u kutiji je trenutna vrednost.
Promenljiva nije samo slovo. Ima ime, tip koji ograničava koje vrednosti čuva i trenutnu vrednost koja se tokom programa može promeniti.
Odglumi računarPomeri tri papirića: stavi 4 u a, 6 u b, pročitaj ih, saberi i novi papirić sa 10 stavi u zbir. Zatim reci šta je ime, a šta vrednost.
04 · KORAK
Dodela: desna strana računa, leva pamti
U programu znak = nije tvrdnja o jednakosti. On znači: prvo izračunaj ono desno, zatim dobijenu vrednost upiši u promenljivu levo.
Zato x = x + 1 ima smisla. Pročita se stara vrednost x, doda se 1, pa rezultat postaje nova vrednost x.
x ← 4
x ← x + 2
x ← x · 3
Prati tragPosle svakog reda izgovori četiri stvari: stara vrednost, račun, rezultat računa i nova vrednost koja je sačuvana.
05 · KORAK
Pseudokod čuva ideju čistom
Pseudokod je plan za ljude. Dovoljno je precizan da pokaže redosled, ali nije vezan za zagrade, tačke-zareze ili pravila jednog jezika.
Ako plan ne vodi do očekivanog rezultata, lakše ga je popraviti pre dodavanja C sintakse.
POČETAK
u a upiši 4
u b upiši 6
zbir ← a + b
prikaži zbir
KRAJ
Promeni samo podatkePrepiši isti plan za brojeve 8 i 5. Ne menjaj redosled ni imena promenljivih. Pre koda predvidi rezultat.
06 · KORAK
Ista ideja u C-u
Kod ispod nije nov problem. Sve važne vrednosti i koraci već postoje u kutijama i pseudokodu.
Za prvi kontakt dovoljno je da int povežeš sa celim brojem, = sa dodelom, ; sa krajem naredbe, a printf sa prikazom rezultata. include, main i return za sada mogu biti okvir koji ćemo kasnije precizirati.
#include <stdio.h>
int main(void) {
int a = 4;
int b = 6;
int zbir = a + b;
printf("Zbir je %d\n", zbir);
return 0;
}
Predvidi pre pokretanjaPromeni a na 8 i b na 5. Pre pokretanja napiši očekivani ispis. Posle proveri rezultat i objasni koji red računa, a koji prikazuje.
ZATVARANJE
Brza provera pre domaćeg
- Koja je razlika između algoritma i programa?
- Šta je ime, a šta vrednost promenljive?
- Kako svojim rečima čitaš
x = x + 1?
- Koji red prvog programa računa, a koji prikazuje rezultat?