200 likes | 549 Views
Algoritm ai. Struktūrinio programavimo savarankiški darbai. Algoritm ų savybės. Diskretumas Aiškumas Baigtinumas Universalumas Rezultatyvumas. Diskretumas. Galimybė išskaidyti algoritmo veiksmus žingsniais vadinama algoritmo diskretumu.
E N D
Algoritmai Struktūrinio programavimo savarankiški darbai
Algoritmų savybės • Diskretumas • Aiškumas • Baigtinumas • Universalumas • Rezultatyvumas
Diskretumas • Galimybė išskaidyti algoritmo veiksmus žingsniais vadinama algoritmo diskretumu. Taigi bet kuris algoritmas pasižymi diskretumo savybe – jis išskaidomas į atskirus žingsnius, kuriuos atlieka vykdytojas.
Algoritmo aiškumas – tai jo pateikimas vykdytojui suprantama ir aiškia kalba. • Baigtinumas. Norint gauti rezultatą, atliekamų veiksmų skaičius visuomet turi būti baigtinis. Ši algoritmo savybė vadinama baigtinumu.
Universalumas • Algoritmo tinkamumas įvairioms pradinių duomenų reikšmėms vadinamas universalumu. Reikia laikyti, kad kiekvienas algoritmas yra skirtas kuriai nors pradinių duomenų klasei. Pavyzdžiui, šaknies traukimo algoritmui tokią klasę sudaro visi neneigiami skaičiai, taksofonui – nurodytos rūšies monetos. Algoritmo universalumas – tai algoritmo tinkamumas nurodytai pradinių duomenų klasei.
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 sprendiniai, bet ir pranešimas, kad duotoji lygtis sprendinių neturi arba kad blogai parinkti pradiniai duomenys (pavyzdžiui, šaknies traukimo algoritmo atveju – neigiamas skaičius), todėl šio uždavinio sprendimas netenka prasmės.
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 automatas.
Paskalio kalba • Paskalis tinka ir žmogui — algoritmams rašyti bei skaityti, ir kompiuteriui — programoms vykdyti. Todėl Paskalio kalba parašytus algoritmus galima vadinti ir algoritmais, ir programomis, o pačią kalbą — ir algoritmavimo, ir programavimo. • Paskalio programavimo kalbą sukūrė Šveicarijos Federalinės aukštosios politechnikos mokyklos Informatikos instituto direktorius profesorius Niklausas Virtas (Niklaus Wirth) 1969-1971 metais ir pavadino ją žinomo prancūzų matematiko ir filosofo Blezo Paskalio (Blaise Pascal, 1623-1662) garbei.
Paskalio alfabetas ir gramatika • Alfabetas nurodo kalboje vartojamus simbolius, o gramatika – kaip iš šių simbolių sudaromos kitos, sudėtingesnės kalbos struktūros. Kalboje vartojamus simbolius galima suskirstyti į tris pagrindines grupes: • raides, kurios apima didžiąsias ir mažąsias lotyniškas raides nuo A iki Z (ir nuo a iki z) ir pabraukimo simbolį _; • skaitmeninius simbolius nuo 0 iki 9; • specialius simbolius, kuriems priklauso aritmetinių operacijų, skyrybos ženklai ir kiti griežtai apibrėžtos paskirties simboliai.
Baziniai žodžiai • Kai kurie Turbo Paskalio žodžiai visuomet turi griežtai apibrėžtą prasmę ir yra vadinami baziniais. Jie, kaip ir specialūs simboliai, yra skirti įvairiems pažymėjimo tikslams. Šiam tikslui, kaip ir daugumoje kitų algoritminių kalbų, yra vartojami trumpi anglų kalbos žodeliai (pavyzdžiui: begin, end, case, if, while, repeat, do), kurių prasmė anglų kalboje yra artima jų paskirčiai programose. Baziniai žodžiai Turbo Paskalyje yra rezervuoti. Tai reiškia, kad kalboje nenumatytiems žymėjimo tikslams juos vartoti draudžiama.
Standartiniai vardai • Pagal savo paskirtį į bazinius žodžius yra labai panaši dar viena žodžių grupė, kuri vadinama standartiniais vardais (identifikatoriais). Tai taip pat kalboje apibrėžti ir specialius objektus žymintys vardai, tačiau jiems negalioja draudimas apibrėžti jų prasmę iš naujo. Bet taip daryti nerekomenduojama, nes tada yra prarandama jų pagrindinė prasmė. Standartinių vardų pavyzdžiai: Read, WriteLn, integer, real, string.
Algoritmų užrašymo būdai Algoritmai rašomi ta kalba, kuri geriausiai tinka konkrečiai problemai. Dažniausiai algoritmai užrašomi: • žodžiais • matematiškai • pseudokodu • blokinė schema • struktūrograma
Pavyzdys. Sudaryti algoritmą ir programą sveikųjų skaičių intervale nuo 1 iki 10 kvadratams spausdinti: • pseudokodu pradžia; sveikieji x,y; x := 1; kol x <= 10 cp y := x * x; spausdinti (x, y); x := x + 1; cg; pabaiga.
c)programa Paskalio kalba: program Kvadratai; var x, y : integer; {x – argumentas} begin x := 1; {jo pradinė reikšmė} while x <= 10 do begin y := x * x; {skaičių kvadratai} WriteLn(x, y); x := x + 1; {didinama vienetu} end; end.
Savikontrolės klausimai • Kokie yra pagrindiniai kompiuterio įtaisai? • Ką vadiname algoritmu? • Kokios yra algoritmų rūšys? • Kokios yra algoritmų savybės? • Kokie algoritmų užrašymo būdai? • Ką vadiname programavimo kalba? • Ką vadiname operatoriais? • Ką vadiname aprašais? • Kas yra baziniai žodžiai? • Kas yra standartiniai vardai? • Ką vadiname pradiniais duomenimis? • Ką vadiname rezultatais?
Užduotys 1. Sudaryti dviejų skaičių aritmetinio vidurkio algoritmą. 2. Sudaryti skaičiaus kėlimo kubu algoritmą. 3. Lošimas degtukais. Lošiama dviese. Iš degtukų krūvelės lošėjai paeiliui ima po vieną arba po du degtukus. Pralaimi tas, kuriam tenka paimti paskutinį degtuką. Kiek reikia imti degtukų iš krūvelės, kad laimėtumėte, jeigu išvis galima laimėti? Sudaryti uždavinio sprendimo algoritmo struktūrogramą.
Literatūra • J.Blonskis,V. Dagienė. Programavimo pradmenys. – Vilnius, 2001. • V.Dagienė, G.Grigas. Programavimo pradmenų uždavinynas. – Vilnius, 2000. • B.Burgis, A.Kulikauskas. Kompiuterija. – Kaunas, 2000. • V.Dagienė. Informatikos pradmenys. II dalis. – Vilnius, 1998. • A.Vidžiūnas ir J.Blonskis. Turbo paskalis 7.0./Vartotojo vadovas. – Kaunas, 1997. • J.Blonskis ir kt. Programavimas./Vadovėlis. – Kaunas, 2000. • V.Tumasonis. Paskalis ir Turbo Paskalis 7.0. – Vilnius, 1993. • G. Grigas. Programavimo pagrindai. – K., Šviesa, 1987.