4. Algoritmas ir programa.


Kompiuteris gali atlikti tik griežtai pagal sutartas taisykles užrašytą algoritmą - programą. Paskalio kalbos programą sudaro keturios dalys: antraštė, aprašai, programos veiksmai ir pabaigos požymis. Veiksmai nurodomi sakiniais. Kompiuteris skaito vieną sakinį po kito ir atlieka atitinkamus veiksmus.

Aprašant algoritmus vartojamos specialios santrumpos, nurodymai, griežtos struktūros sakiniai - visa tai vadinama algoritmavimo konstrukcijomis. Norėdami algoritmą atlikti kompiuteriu, algoritmavimo konstrukcijas turime išreikšti programavimo kalba.


Programa vadinamas išbaigtas algoritmo užrašymas pasirinkta programavimo kalba. Programos rašomos taip, kad jas galėtų suprasti kompiuteris.

     


Programos struktūra

Paskalio kalbos programą sudaro šios dalys:

1) antraštė;
2) aprašai;
3) veiksmai;
4) programos pabaigos požymis - taškas.

Trumpai aptarsime kiekvieną dalį.

1 pavyzdys.  Sudarykime algoritmą dviejų sveikųjų skaičių sumai apskaičiuoti ir atspausdinti. Pirmiausia pateikiame šio algoritmo struktūrogramą:


Dviejų skaičių sumavimo algoritmo struktūrograma.

Dabar šį algoritmą užrašysime Paskalio kalba:

program sumavimas;
var a, b, suma: integer;
begin
read (a, b);
suma := a + b;
writeln (suma)
end.

Pirmoji eilutė yra programos antraštė. Ji visada prasideda baziniu žodžiu program, po kurio rašomas programos vardas. Jį sugalvoja programuotojas. Programos vardas svarbus žmogui, kad galėtų atskirti vieną programą nuo kitos ir greičiau suvoktų, ką daro ši programa. Todėl geriau parinkti uždavinio esmę nusakantį vardą.
Programos antraštės gale visuomet dedamas kabliataškis.
Antroji programos eilutė - kintamųjų aprašai. Apie tai pasako bazinis žodis var (variable - “kintamasis”) santrumpa. Po jo išvardijami kintamųjų, kurie bus vartojami programoje, vardai. Kintamieji žymi duomenis. Duomenys gali būti įvairūs: sveikieji bei realieji skaičiai, raidės, tekstai ir pan. Žodžiu integer (“sveikasis”) pasakoma, kad prieš jį parašyti kintamieji žymi sveikuosius skaičius; realiuosius skaičius nurodome žodžiu real (“realusis”).
Po aprašų eina programos veiksmai, kurie visuomet pradedami baziniu žodžiu begin (“pradžia”) ir baigiami end ("pabaiga").
   

Algoritmavimo (programavimo) konstrukcijos, nurodančios atlikti kokius nors veiksmus, vadinamos sakiniais.

Visi programos pradiniai duomenys kompiuteriui pateikiami iš išorės, pavyzdžiui, surenkami klaviatūra. Duomenų reikšmės susiejamos su kintamaisiais. Kaip kompiuteriui nurodoma, kurią surinktą reikšmę su kuriuo kintamuoju susieti? Tai atlieka skaitymo sakinys, kuris prasideda žodžiu read (“skaityti”). Po šio žodžio skliaustuose nurodoma, su kuriais kintamaisiais reikia susieti perskaitytas reikšmes.

Atlikę sudėties veiksmą gauname rezultatą, kuris nagrinėjamame pavyzdyje apibrėžtas suma.
Rezultatą reikia išspausdinti. Tai nurodoma sakiniu writeln (wrlte line - “rašyti eilutėmis”), kuris vadinamas spausdinimo arba rašymo sakiniu.
Atkreipiame dėmesį į skyrybą: po antraštės ir po aprašų dedami kabliataškiai, sakiniai vienas nuo kito taip pat skiriami kabliataškiais. Visos programos pabaigoje rašomas taškas.
Iš pateikto pavyzdžio matome, koks paprastas algoritmas (paprasčiau ir būti negali - sudėti du skaičius), o programa ne tokia jau paprasta - bent tiems, kurie ją mato pirmą kartą. Tačiau reikia suprasti, kad programos antraštės, aprašų rašymas sunkumų nesudarys. Svarbiausia programos dalis - patys veiksmai: tai uždavinio sprendimo esmė.
 


Programos vykdymas


Užrašytai programai atlikti kompiuteris turi turėti specialias priemones, tam tikrą programinę įrangą - kompiliatorių. Kompiuteris supranta tik vieną kalbą - elektrinių būsenų, kurios įvardijamos nuliais ir vienetais. Kompiliatorius yra tarpininkas tarp programavimo žymenų ir kompiuterio kalbos, t.y. jis išverčia programą į nulių ir vienetų seką. Tik tada ji gali būti atliekama ir gaunami rezultatai.
Lietuvoje paplitęs Turbo Paskalio kompiliatorius, dažnai vadinamas Turbo Paskalio sistema ar net paprasčiausiai Turbo Paskaliu.
N.Virto sukurta kalba vadinama standartiniu Paskaliu. Standartinis Paskalis buvo sukurtas taip, kad jis kuo geriau tiktų bendro pobūdžio uždaviniams užrašyti ir kuo mažiau priklausyti nuo kompiuterio tipo. Ypač jis tinka pradedantiesiems, kai mokomasi algoritmavimo konstrukcijų. Turbo Paskalis apima standartinį Paskalį, tačiau teikia dar daug galimybių valdyti patį kompiuterį. Kadangi mes domėsimės pačių algoritmų rašymu, tai mums visiškai pakaks standartinio Paskalio konstrukcijų.
Taigi programos tekstas pirmiausia surenkamas klaviatūra, o tada - atliekamas.
Svarbu įsivaizduoti, kaip kompiuteris (tiksliau sakant, kompiliatorius) atlieka programoje užrašytus veiksmus. Todėl pirmiausia reikėtų “pačiam pabūti kompiuteriu”, t.y. visus veiksmus atlikti popieriuje taip, kaip tai darytų kompiuteris.
Jau anksčiau (I dalyje) esame užsiminę, kad svarbiausios kompiuterio dalys - procesorius ir atmintinė. Atmintinėje saugomi programos duomenys. Dabar ši dalis mums labiausiai rūpi. Kompiuterio atmintinę galime įsivaizduoti tarytum languoto popieriaus lapą, kurio kiekviename langelyje galime rašyti kokius nors duomenis. Langeliai turi savo vardus - tai programos kintamųjų vardai.
Apačioje esančiame paveiksle parodyta kompiuterio vykdoma programa: kaip programos pradiniai duomenys įrašomi į atmintinę, kaip atliekami veiksmai ir kaip gaunamas rezultatas.



Dviejų skaičių sumavimo programos atlikimo schema.

Kai programa baigta, jai skirtoji atmintinės vieta tampa nereikalinga ir ją gali vartoti kitos programos.
Jeigu sumavimo programai pateiktume kitus pradinius duomenis, gautume kitokį rezultatą.


    Programa     program
    programos struktūra     var
    programos antraštė     begin
    kintamųjų aprašai     end
    skaitymo sakinys     read
    rašymo sakinys     writeln