Materijali/Čas 01

Čas 01 · Podatak, promenljiva i prvi program

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.

Domaći posle časa

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.

a4
b6
zbirprazno → 10
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

  1. Koja je razlika između algoritma i programa?
  2. Šta je ime, a šta vrednost promenljive?
  3. Kako svojim rečima čitaš x = x + 1?
  4. Koji red prvog programa računa, a koji prikazuje rezultat?