Algoritmo ir programos samprata

 

Algoritmas – tai nurodymų seka tam, kas turės atlikti užduotį.
Plačiausia prasme algoritmo sąvoka nusako numatomų veiksmų seką, norint padaryti, kokį nors darbą ar atlikti užduotį. Algoritmu galėtume vadinti, bet kurį valgių gaminimo receptą iš kulinarijos knygos, ir instrukcija, kaip paskambinti taksofonu.

Algoritmas – tai aiškūs ir tikslūs nurodymai, kaip ir kokių veiksmų seka reikia atlikti norint pasiekti užsibrėžta tikslą arba išspręsti suformuluoti uždavinį.

Iš algoritmų istorijos

Pats žodis “algoritmas” kilo iš IX a. Arabų matematiko ir astronomo Mohamedo ibn Musos al Chorezmio. Šis mokslininkas sudarė keturių aritmetikos veiksmų su dešimtainiais skaičiais taisykles, kurias Europoje imta vadinti “algorizmais”, vėliau pakeistas “algoritmu” ir juo pradėta vadinti įvairių skaičiavimų taisyklės.
Tik matematikai ilgus šimtmečius vartojo algoritmo sąvoką ir tik XX a, pr. ėmė tirti pačius algoritmus – atsirado nauja matematikos disciplina: algoritmų teorija.
Sukūrus kompiuterį algoritmai tapo dar svarbesni.

Algoritmai informatikoje

Itin svarbi algoritmo sąvoka informatikoje. (Informatika – mokslas apie informacijos perdavimą, saugojimą ir apdorojimą.) Kaip apdoroti informaciją yra kuriamos taisyklės, vadinamos algoritmais. Kitaip sakant, algoritmas – tai taisyklių rinkinys, kuriuo nurodoma, kaip iš vienų duomenų gauti kitus.
Duomenys, kurie žinomi prieš atliekant algoritmą, vadinami pradiniais duomenimis arba argumentais. Duomenys, kurie gaunami atlikus algoritmą, vadinami galutiniais duomenimis arba rezultatais.

Pvz.: kavos virimo algoritme pradiniai duomenys – vanduo ir kava, o galutinai – išvirtos kavos puodelis.
Algoritme gali būti tokių duomenų, kurie nėra nei argumentai, nei rezultatai.O jie vadinami papildomais arba tarpiniais duomenimis. Apskritimo ilgio skaičiavimo algoritme tarpinis duomuo yra C. skaičius pi yra žinomas pastovus dydis, jo reikšmė niekuomet nesikeičia. Tokie duomenys vadinami – konstantomis.

Algoritmų savybės

I. Diskretumas
Bet kuraime algoritmo užrašo pavyzdy pirmiausia krinta į akis veiksmų suskaidymas į dalis – žingsnius. Kuo išsamiau norime nurodyti (aprašyti) veiksmus, tuo daugiau turi būti žingsnių.
Galimybė išsklaidyti algoritmo veiksmus žingsniais vadinamas algoritmo diskretumu.
Algoritmas pasižymi diskretumo savybe – jis išskaidomas į atskirus žingsnius, kuriuos atlieka vykdytojas.

II. Aiškumas
Sudarant algoritmą, visuomet turi būti atsižvelgiama į tai, kas jį vykdys. Nuo to, kiek žino vykdytojas, kokius veiksmus jis supranta ir gali atlikti,priklauso algoritmo užrašymo būdas.
Algoritmo aiškumas – tai jo pateikimas vykdytojui suprantama ir aiškia kalba.
Taigi algoritmo veiksmai turi būti užrašomi aiškiai, greitai, vienareikšmiškai, – taip, kad būtų suprantami tiems, kurie atliks algoritmą.

III. Baigtinumas
Norint gauti rezultatą, atliekamų veiksmų skaičius visuomet tūri būti baigtinis. Ši algoritmo savybė vadinama baigtinumu.

IV. Universalumas
Algoritmo tinkamumas įvairioms pradinių duomenų reikšmėms vadinamas universalumu.
Nuo šios savybės priklauso praktinė vertė. Pvz.: sudaryti atskirą šaknies traukimo algoritmą kievienam skaičiui nebutų prasmės. Tačiau yra tokių algoritmų, kurie skriti vienam duomeniui, pavyzdžiui, taksofonai, kurie priima tik vienos rūšies monetas. Kiekvienas algoritmas yra skirtas kuriai nors pradinių duomenų klasei. Algoritmo universalumas – tai algoritmo tinkamumas
nurodytai pradinių duomenų klasei.

V. Rezultatyvumas
Algoritmo rezultatyvumas: algoritmas turi duoti kokį nors konkretų rezultatą.
Rezultatas suprantamas plačiąja prasme. Tai gali būti, pavyzdžiui, ne tik duotos lygties sprendimai, bet ir pranešimas, kad duotoji lygtis sprendinių neturi.

Algoritmų vaizdavimo būdai

I. Specialūs žymenys
Yra įvairios žymenų sistemos. Pvz.: matematikoje ženklai, išreiškiantys algebros veiksmus: +; –; , trigonometrine funkcijas žymime sutartiniais ženklais (žodžiais) sin, cos, tg. Muzikos ženklams užrašyti vartojama penklinė ir natos.

II. Grafinis būdas
Šis būdas gana vaizdus ir daugeliui suprantamas. Paprastiems, buitiniams algoritmams vaizduoti pasirenkami įprastiniais paveikslėliai (pvz.:instrukcijos ant maisto produktų įpakavimų). Informatikoje algoritmo veiksmai rašomi į tam tikras geometrines figūras – stačiakampius, rombus, o ryšiai tarp veiksmų nurodomi rodyklėmis arba figūrų išdėstymu.
a) Blokinės schemos
b) Struktūrogramos

III. Algoritmavimo ir programavimo kalbos
Algoritmavimo ir programavimo kalbos – tai žymenų ir taisyklių sistemos, pritaikytos veiksmams ir jų atlikimo tvarkai aprašyti taip, kad algoritmą galėtų atlikti kompiuteris ar koks kitas aparatas. Šiuolaikiniai kompiuterai supranta kur kas “žmoniškesnius” žymesnis nei anksčiau, todėl tos pačios kalbos vartojamos ir algoritmams ir programoms rašyti.
Jūs tikriausiai girdėjote apie LOGO kalbą. Logo – tai ne tik programavimo kalba, bet visa sistema, skirta jaunesniojo amžiaus moksleiviams mokytis dirbti kornpiuteriu. Jos autorius amerikiečių mokslininkas Siemuras Papertas.
Toliau tobulinant kompiuterius, gerėjo jų savybės, todėl algoritmams užrašyti imta vartoti modernias kalbas, kurios vienodai gerai tinka ir žmogui, ir kompiuteriui. Paskalio programavimo kalba, kurią 1970 m. sukūrė žymus programuotojas Niklausas Virtas.

IV Paskalio kalbos abėcėlė
Šią abėcėlę sudaro:
1. raidės: a,b,c….
2. skaitmenys: 0,1,2,3,.,.
3. skyrybos ženklai :;.?….
4. operacijų (veiksmų) ženk!ai:+,-,>
5. keletas dešimčių sutartinių žodžių, pvz., program, begin, end.
Žodžiais nurodomos programavimo (algoritmo) konstrukcijos ir kai kurios operacijos bei duomenų reikšmės. Žodžiai, o ne specialūs ženklai pasireikšti todėl, kad kompiuterio klaviatūroje yra ribotas simbolių skaičius. Sutartiniai žodžiai programavimo kalbose vad. baziniais žodžiais. Jų paprastai būna kelios dešimtys.

Algoritmas ir programa

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 atgoritmo užrašymas pasirinkta programavimo kalba. Programos rašomos taip, kad jas galėtų suprasti kompiuteris.
Paskalio kalbos programą sudariusios dalys: l) antraštė; 2) aprašai, 3) veiksmai; 4) programos pabaigos požymis – taškas.
1) Pirmoji eilutė yra programos antraštė. Ji visada prasideda baziniu žodžiu program, po kurio rašomas programos vardas. Geriau parinkti uždavinio esmę nusakanti vardą. Programos antraštės gale visuomet dedamas kabliataškis. Antroji programos eilutė – kintamųjų aprašai. Apie tai pasako bazinis žodis var sutrumpa. Po jo išvardijami kintamųjų, kurie bus vartojami programoje, vardai.
2) Kintamieji žymi duomenis, kurie gali būti įvairūs: sveikieji bei realieji skaičiai, raidės, tekstai ir pan. Žodžiu integer pasakoma, kad prieš įį aprašyti kintamieji žymi sveikuosius skaičius; realiuosius skaičius nurodome žodžiu real.
3) Po aprašų eina programos veikmai, kurie visuomet pradedami baziniu žodžiu Begin ir baigiasi end.
Algoritmavimo (programavimo) konstrukcijos nurodančios atlikti kokius nors veiksnius, vadinamos sakiniais.
Duomenų reikšmės susiejamos su kintamaisiais. Kaip kompiuteriu nurodoma, kurią surinktą reikšmę su kuriuo kintamuoju susieti. Tai atlieka skaitymo sakinys, prasidedantis žodžiu read. Po šio žodžio skiaustuose nurodoma, su kuriais kintamaisiais reikia susieti perskaitytas reikšmes.
Atliktą sudeties veiksmą gauname rezultatą, kuris pvz.: apibrėžtas kaip suma.
Rezultatą reikia išspausdinti. Tai nurodoma sakiniu writeln, kuris vadinamas spausdinimo arba rašymo sakiniu.
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.

Programos vykdymas
Užrašytai programai atlikti kompiuteris turi turėti specialias priemones, tam tikrą, programinę įrangą – kompiliatorių, kuris 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 kompilaitorius.