Pažintis su programavimu 1: veiksmai ir sąlygos

Kaip sudaromos programos?

Programa yra veiksmų seka, pvz,. TV ar renginio programa, darbų ar atostogų planas.

Labai gera analogija — maisto receptai.  Juose pradžioje aprašoma, kokių ingredientų ir priemonių reikės, o paskui nuosekliai išvardinami veiksmai. Kompiuteriuose panašiai, tik veiksmai atliekami ne su mėsa ar daržovėmis, o su duomenimis (skaičiais, tekstu).

Programos užrašymo taisyklės (sintaksė) yra pagrįstos matematikos idėjomis, bet naudoja ir “žmogiškus” žodžius. Štai viena paprasta programėlė dviem populiariomis programavimo kalbomis:

Python (išbandyk gyvai) JavaScript (išbandyk gyvai)

pinigai = 3
print("Turim", pinigai, "eur.")
pinigai = pinigai + 2
print("Radom dar 2.")
print("Dabar turim", pinigai )
 
pinigai = 3;
console.log("Turim", pinigai, "eur.");
pinigai = pinigai + 2;
console.log("Radom dar 2.");
console.log("Dabar turim", pinigai );

Programa atspausdins: “Turim 3 eur. Radom dar 2. Dabar turim 5”. Kalbų sintaksės šiek tiek skiriasi, bet logika ta pati. Daugumos kalbų principai panašūs, tad perpratus kažkurią vieną, vėliau gan nesunku “prisijaukinti” ir kitas.

Pasiaiškinkime detaliau, kaip mes čia gaminame pinigus “iš oro” :).  

  • Duomenų pavadinimą “pinigai” mes sugalvojom patys, o spausdinimo komandų pavadinimai numatyti programavimo kalbose.
  • Kaip matom, “pinigai” reikšmė keitėsi (padidėjo). Programuotojai tokius duomenis vadina “kintamaisiais” (mūsų atveju, kintamasis “pinigai”).
  • Ženklas “=”  vadinamas “priskyrimo” veiksmu. Neapsigaukite, čia ne matematinė lygybė! Reikšmė būna perduodama iš dešinės ženklo pusės į kairę. Jeigu supainiosite ir užrašysite “3 = pinigai”, programa rodys klaidą. Juk skaičiaus 3 reikšmė negali būti pakeista! 🙂
  • Spausdinimo komandai duomenys išvardinami skliausteliuose. Tokios komandos dar vadinamos funkcijomis (analogiškai matematikoj — funkcijoms galima skliaustuose nurodyti argumentus).

Programos logika moksliškai vadinama algoritmu. Svarbiausi jo sudarymo elementai yra:

  1. duomenys (kintamieji, sąrašai),
  2. veiksmai,
  3. sąlygos sakiniai,
  4. kartojimo sakiniai (ciklai).

Kuriant sudėtingas programas padeda “skaidyk ir valdyk” principas:

  1. programa skaidoma į paprogrames (komandas/funkcijas),
  2. programa gali būti padalinta į daug failų/direktorijų (“moduliai”, “paketai”, “bibliotekos”)
  3. duomenys ir funkcijos grupuojami į atskiras ”klases”.(objektinis programavimas).

Sąlygos sakiniai

Sąlygos suteikia programoms išmanumą, nes leidžia reaguoti į aplinkybes. Štai kasdieniškas pavyzdys:

Python (išbandyk gyvai) Javascript (išbandyk gyvai)
kaina = 7
pinigai = 5

if pinigai > kaina:        
   print( "Perkam!" )
else:
   print( "Per brangu.." )
   skirtumas = kaina - pinigai
   print("reik dar", skirtumas )
kaina = 7;
pinigai = 5;

if (pinigai > kaina) 
{
  console.log( "Perkam!" );
}
else 
{
  console.log( "Per brangu.." );
  skirtumas = kaina - pinigai;
  console.log("reik dar", skirtumas);
}

Programa ekrane atspausdins: “Per brangu.. reik dar 2”.  Kaip matote, pradžioje nurodyti duomenys, o paskui pagal juos tikrinama sąlyga ir parenkami veiksmai.  Mokantys  anglų kalbą turėtų nesunkiai susigaudyti logikoje: “if” reiškia “jeigu”, “else” reiškia “kitu atveju”. Algoritmai su sąlygomis vadinami “šakotais”, nes jų vykdymo keliai “šakojasi” – skiriasi, kai sąlyga tenkinima ir kai – ne. Tie veiksmai specialiai sugrupuojami  — Python kalboje grupavimą parodo atitraukimas nuo krašto, Javascript kalboje — specialūs (figūriniai) skliaustai { }.

Algoritmų eigą galima vaizduoti blokine schema, joje gerai matosi šakos.

salygos_sakinio_schema

Galite gyvai paeksperimentuoti (pvz, sumažinkite kainą arba paskaičiuokite, kiek pinigų lieka, nupirkus prekę).  Taip pat šį algoritmą galite išbandyti su žaisminga “Scratch” prgramavimo aplinka vaikams.

Sąlygos sakinys gali būti ir be “else” šakos. Be to, galima tikrinti kelias sujungtas sąlygas.  Tam naudojami loginiai veiksmai (operatoriai) “and”, “or”, “not”. 

Norintiems pasipraktikuoti, anksčiau minėto CodeCombat.com žaidimo antra misija „Forest“ yra skirta sąlygos sakiniams. Bei paprasti interaktyvūs pavyzdžai su Python kalba.  

Naudojant sąlygos sakinį jau galima sukurti paprastų internetinių programėlių, nes ten reik aprašyti reakciją į naudotojo siunčiamas užklausas. Tačiau tikra programavimo galia nepasijus be kartojimo sakinio — apie jį kitame straipsnyje :).

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *