【旅游天地】CCTV13——新闻直播间:北京...
Algoritmas (lot. Algorismus < Algorithmi < arab. Al Chorezmi) – grie?t? taisykli?, pagal kurias atliekamos operacijos, seka, leid?ianti i?spr?sti matematikos ar logikos u?davinius.[1]
Algoritmo koncepcij? iliustruoja papras?iausias kiau?ini? i?virimo receptas, kuris gal?t? būti toks:
- Algoritmo prad?ia.
- paimti puod? (s?lyga: kad tilpt? vandens apsemti n kiau?iniai);
- ? puod? ?d?ti n sveik? kiau?ini? (jeigu netelpa n kiau?ini? – paimti didesn? puod? arba suma?inti kiau?ini? kiek? n-1);
- pripilti vandens;
- u?d?ti puod? ant virykl?s;
- ?jungti virykl?;
- virti (jeigu norime skystai virto kiau?inio – 5 minutes, jei kietai – 15 minu?i?).
- i?jungti virykl?
- nuimti puod?
- i?pilti kar?t? vanden?
- ?pilti ?alt? vanden? ir palaikyti 1 min.
- i?imti kiau?inius
- Algoritmo pabaiga.
Panaudojimas
[redaguoti | redaguoti vikitekst?]Da?niausiai algoritmo s?voka naudojama informatikoje u?ra?ant kompiuterines programas. Tokiu atveju algoritm? u?ra?ymui naudojami ?vairūs susitarimai – programavimo kalbos. Da?niausiai mokymosi tikslams naudojama Pascal programavimo kalba arba pseudokalba, kai norime algoritm? publikuoti vie?ai.
Algoritmas kasdieniniame gyvenime
[redaguoti | redaguoti vikitekst?]Gyvenime da?nai susiduriame su algoritmo sinonimais: instrukcijomis, nurodymais ir taisykl?mis, kuri? ne?inodami negal?tume atlikti tam tikr? veiksm?. Ta?iau kartais ?ie apra?ymai stokoja tikslumo. Taigi bendrai algoritm? būt? galima apibūdinti kaip tiksli? nurodym? sek? tam, kas tur?s atlikti konkre?i? u?duot?. Daugel? kasdienin?s veiklos rezultat? pasiekiame net nesusim?stydami, kad vykdome tam tikr? algoritm? (sinonimai psichologijoje: ?protis, ?gūdis, ?gimtas ar ?gytas refleksas). Jie mums reikalingi: i?gyventi (savisaugai), prisitaikyti (adaptacijai), reikiamai vietovei pasiekti, prietaisams ?jungti, i?jungti bei naudoti, pirmajai pagalbai suteikti, maistui pagal recept? gaminti, matematiniams u?daviniams spr?sti ir pan. Pagaliau, mūs? vis? dien? (?vardinus jos tikslus) galima būt? pavadinti algoritmu, nes ji turi savo dienotvark?, t. y. veiksm? atlikimo tvark?. Kartais sukeitus algoritmo veiksmus rezultatas nepakinta. Ta?iau vykdant kai kuriuos algoritmus veiksm? sukeitimas gali sugriauti vis? tolimesn? algoritmo eig?.
Privalomos s?lygos
[redaguoti | redaguoti vikitekst?]Algoritmas turi patenkinti ?ias s?lygas:
- jis turi atlikti darb?;
- jis turi būti ai?kus ir nedviprasmi?kas;
- jis turi apibr??ti ?ingsni? sek?, reikaling? darbui atlikti, t. y. jis turi nurodyti ?ingsni? atlikimo tvark?.
- Informatikoje da?nai dar reikalaujama, kad algoritmas būt? baigtinis dviem prasm?m:
- atliekam? ?ingsni? skai?ius turi būti baigtinis, t. y. algoritmas turi tikrai baigti darb?;
- kiekvienam ?ingsniui atlikti turi pakakti baigtinio laiko ir baigtini? resurs?, t. y. kiekvienas ?ingsnis turi būti toks, kad j? būt? galima atlikti.
Reikalavimai 4-5 garantuoja, kad algoritmas bus baigtas baigtiniu laiku ir su baigtiniais resursais. Algoritmai, tenkinantys tik s?lygas 1-3, vadinami daliniais (angl. partial) algoritmais, o tenkinantys visas penkias s?lygas – pilnais (angl. total) algoritmais.
Algoritmo vykdymas
[redaguoti | redaguoti vikitekst?]Para?ytas algoritmas yra perduodamas vykdytojui. Vykdytojas gali realizuoti algoritm?, jei yra tam tinkama aplinka. To paties algoritmo efektyvumas (grei?io, atminties, patogumo vartotojui ar kitu parametru at?vilgiu) da?niausiai priklauso nuo pasirinktos aplinkos ir sprendimo metodo.
Sud?tingesni? algoritm? sukūrimas, apra?ymas bei ?diegimas da?niausiai yra nelengvas darbas, reikalaujantis speciali? ?ini?. Ta?iau j? kain? gana greitai atsiperka, jei ?diegti algoritmai vykdomi daug kart?. Vienam vykdytojui algoritmas gali būti ai?kus ir nedviprasmi?kas, o kitam – visai nesuprantamas. Nuo vykdytojo tiesiogiai priklauso, kokius primityvus galima naudoti, apibr??iant veiksmus. Jei vykdytojas ne ?mogus, algoritm? reikia pateikti specifine, tam vykdytojui priimtina forma, pavyzd?iui, specialia algoritmine kalba. Jei mes turime algoritm?, i?reik?t? vykdytojo operacijomis, tai j? u?ra?yti ar perra?yti vienokia ar kitokia kalba n?ra sud?tinga.
Informatikoje kaip vykdytojas da?niausia – kompiuteris. Pagrindin?s id?jos:
- kompiuteriai apdoroja duomenis, i?reik?tus simboliais;
- jie kontroliuojami instrukcijomis, kurios ir sudaro algoritm?;
- instrukcijos irgi pateikiamos ma?inai kaip simboli? seka.
Taigi viskas, ko reikia algoritm? pateikimui kompiuteriui, tai kalba patogiam instrukcij? u?ra?ymui.
Algoritmo savyb?s
[redaguoti | redaguoti vikitekst?]Kai automatizuojamas sud?tingas procesas, tenka jo struktūroje i?skirti atskirus etapus, o ?iuos v?l gali tekti skaidyti i paprastesnius, t. y. taikomas dekompozicijos principas. Jei ?ioje u?davinio sprendimo etap? sekoje bus bent vienas, neduodantis teisingo atsakymo, visas u?davinys liks nei?spr?stas. Kartais taip gali atsitikti tiesiog d?l duomen? trūkumo. Algoritmams būdingos tokios bendrosios savyb?s:
- Diskretumas: algoritmas skaidomas ? tiksliai apra?ytus vykdymo ?ingsnius.
- Baigtumas: algoritmas turi tur?ti pabaig?.
- Rezultatyvumas: algoritmas visada turi pateikti konkret? rezultat? (jei jis egzistuoja)
arba paai?kinim?, kod?l jis negautas.
- Ai?kumas: algoritmas turi būti pateikiamas taip, kad j? visi vienareik?mi?kai suprast?.
- Universalumas: algoritmas turi tikti bet kokiems duomenimis.Paprastas pavyzdys – elektroninio lai?ko kūrimas: pradiniai duomenys – reikia tur?ti adres? A,
reikia tur?ti lai?k? L, gali būti ir lai?ko priedai P. Rezultatas R bus arba i?si?stas, arba nei?si?stas lai?kas. O nei?si?sti lai?ko galime tuo atveju, jei nebus internetinio ry?io.
Taigi, lai?k? siuntimo algoritm? apra?ysime kaip vykdom? veiksm? s?ra??:
Darbo prad?ia (?jungti kompiuter?)
- Tikrinti, ar yra ry?ys su internetu:
- jei taip, vykdyti antr? ?ingsn?;
- jei ne, vykdyti a?tunt? ?ingsn?.
- I?kviesti pa?to program?.
- ?vesti A, ra?yti lai?k? (L).
- Tikrinti, ar reikia si?sti priedus (P):
- jei taip, vykdyti penkt? ?ingsn?;
- jei ne, vykdyti ?e?t? ?ingsn?.
- Prid?ti prie lai?ko pried? failus.
- I?si?sti lai?k?.
- Nustatyti kintamojo R reik?m? ?I?si?sta“. Baigti darb?.
- Nustatyti kintamojo R reik?m? ?Nei?si?sta“.
Darbo pabaiga (baigti darb? su elektroninio pa?to programa).
Algoritmas turi patenkinti ?ias s?lygas:
jis turi atlikti darb?; jis turi būti ai?kus ir nedviprasmi?kas; jis turi apibr??ti ?ingsni? sek?, reikaling? darbui atlikti, t. y. jis turi nurodyti ?ingsni? atlikimo tvark?. Informatikoje da?nai dar reikalaujama, kad algoritmas būt? baigtinis dviem prasm?m:
atliekam? ?ingsni? skai?ius turi būti baigtinis, t. y. algoritmas turi tikrai baigti darb?; kiekvienam ?ingsniui atlikti turi pakakti baigtinio laiko ir baigtini? resurs?, t. y. kiekvienas ?ingsnis turi būti toks, kad j? būt? galima atlikti. Reikalavimai 4-5 garantuoja, kad algoritmas bus baigtas baigtiniu laiku ir su baigtiniais resursais. Algoritmai, tenkinantys tik s?lygas 1-3, vadinami daliniais (angl. partial) algoritmais, o tenkinantys visas penkias s?lygas – pilnais (angl. total) algoritmais.
Algoritm? dizaino paradigmos
[redaguoti | redaguoti vikitekst?]- iteratyvus;
- skaldyk ir valdyk;
- algoritmai naudojantys abstrak?ius duomen? tipus (ADT);
- dinaminis programavimas;
?altiniai
[redaguoti | redaguoti vikitekst?]- ↑ algoritmas. Visuotin? lietuvi? enciklopedija (tikrinta 2025-08-06).
|