CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Parasta dzīvē par algoritmu uzskata instrukciju, sekojot kurai var sasniegt mērķi. Algoritms norada, kas un ka jadara, lai atrisinatu doto uzdevumu. adu nestingru 'sadzīves' algoritmu piemēri - kulinarijas receptes, sadzīves tehnikas lietoanas instrukcijas, spēļu noteikumi utt. Sadzīves algoritmi paredzēti cilvēkiem, kuriem ir gan pieredze, gan intuīcija, tapēc autori nedoma par formulējumu īpau stingrību un precizitati. Būtu interesanti redzēt, ka robots saprastu tadas instrukcijas ka 'pievienot sals pēc garas' vai 'varīt līdz gatavībai'.
Informatika nepiecieamas stingrakas algoritma definīcijas (un daadiem nolūkiem - daadas).
Skolas kursa parasti lieto adu definīciju kopa ar paskaidrojumiem - algoritma īpaībam, kuras precizē algoritma jēdzienu.
Algoritms - ir darbību secības precīzs apraksts, kas nodroina mērķa sasnieganu.
Algoritmam japiemīt adam īpaībam:
- viennozīmīgums (formulējums nepieļauj daadas interpretacijas un parpratumus);
- formalitate (daadi izpildītaji saprot un izpilda algoritmu vienadi; rezultats ir neatkarīgs no izpildītaja);
- noteiktība (katra momenta ir skaidrs, kada darbība jaizpilda un kas jadara nakoaja solī);
- diskrētība (algoritms sastav no atseviķam elementaram pabeigtam darbībam);
- visparīgums (algoritms ir paredzēts nevis vienam atseviķam uzdevumam, bet gan veselai radniecīgu uzdevumu klasei, piemēram, kvadratvienadojuma risinaanas algoritmam ir jabūt tadam, lai ar to palīdzību varētu atrisinat jebkuru kvadratvienadojumu).
- galīgums un efektivitate (algoritms nodroina mērķa sasnieganu galīga soļu skaita).
Skolas kursa sniegta algoritma definīcija nav pietiekami strikta un formala zinatniskiem mērķiem. Par algoritma jēdziena precizēanu matematiķi saka domat jau 17.gadsimta (kad Leibnics mēģinaja izdomat visparīgu algoritmu jebkura matematikas uzdevuma risinaanai). 19.gadsimta beigas vairaki matematiķi nodarbojas ar visparīga algoritma meklēanu, kas nodroinatu jebkuras teorēmas parbaudi dotaja aksiomu sistēma. adi algoritmi netika atrasti. Tad matematiski saka meklēt pieradījumus, ka ada veida visparīgi uzdevumi ir algoritmiski neatrisinami (tas izdevas), un līdzi ar to precizēt algoritma jēdzienu. Skaidrs, ka algoritmam ir jabūt tadam, lai to izpildīt varētu ne tikai cilvēks (kuram ir noteiktas zinaanas, pieredze un intuīcija), bet pat automats. Atlika tikai sameklēt piemērotu automatu.
1930. gados paradījas vairaki darbi, veltīti ai problēmai. Matematiķi izdomaja vienkarus automatus (shēmas) ar ļoti pieticīgu komandu sistēmu, kura ir pietiekama algoritmisko uzdevumu risinaanai (piemēram, Posta maīna, Tjuringa maīna, Markova algoritmiskas shēmas). Matematisko pētījumu rezultata paradījas vēl viena algoritma definīcija: algoritms ir darbību secība, kas nodroina mērķa sasnieganu galīga soļu skaita, un kuru var izpildīt Posta maīna (vai cits analogs automats).
Jebkur algoritms ir paredzēts konkrētam izpildītajam: cilvēkam, robotam, dzīvniekam, automatam, datoram utt. - un ir attēlots izpildītajam saprotama forma. Katram izpildītajam ir sava komandu sistēma komandu komplekts, kuras viņ saprot un prot izpildīt. Lai iepazītu izpildītaju, janoskaidro:
Aplūkosim piemēru. Uz lauciņa 10x10 (apstakli) atrodas bruņurupucis (izpildītajs), kas var parvietoties pa lauciņa rūtiņam un zīmēt vai nezīmēt līniju - savas pēdas. Bruņurupuča komandu sistēma:
|
|
Situacija 'nevaru' rodas, ja:
Pieņemsim, ka sakuma bruņurupucis atrodas lauciņa 11x11 centra, zīmulis ir pacelts. Sastadīsim viņam algoritmu kvadrata 3x3 zīmēanai.
1. nolaist zīmuli; 2. paiet 3 soļus uz prieku;
3. paiet 3 soļus pa kreisi; 4. paiet 3 soļus atpakaļ;
5. paiet 3 soļus pa labi; 6. pacelt zīmuli;
7. beigas.
Lūk, te ir tada algoritma piemērs, kuru bruņurupucis nevar izpildīt:
1. paiet 33 soļus uz prieku; 2. beigas.
Algoritma pieraksta veidi:
- notacija (instrukcija, kura tiek izmantoti parasti vardi),
- blokshēma (uzskatams grafiskais attēlojums),
- programma (ta var būt uzrakstīta visparīga algoritmiska valoda vai konkrēta programmēanas valoda).
Piemērs: algoritms kvadratvienadojuma ax2+bx+c=0 risinaanai.
Notacija: 1. Aprēķinat D=b2-4ac 2. Ja D<0, tad sakņu nav, citadi ja D=0, tad viena sakne: , citadi divas saknes: ;
3. beigas. Blokshēma: |
Programma programmēanas valoda Pascal: Uses CRT; var a,b,c,d: Real; begin ClrScr; Writeln(a,b,c-?); Readln(a,b,c); d:=b*b-4*a*c; If d<0 Then Writeln('Sakņu nav') Else If d=0 Then Writeln('x=', -b/(2*a):8:2); Else begin Writeln('x1=', (-b-SQRT(d))/(2*a):8:2); Writeln('x2=', (-b+SQRT(d))/(2*a):8:2); end; Readln; end. |
Blakus skaitļoanas tehnikas pilnveidoanai noris arī programmēanas valodu attīstība; programmēana paradas jaunas koncepcijas, kuras atvieglo lielu projektu izstradaanu un modificēanu. Viena no adam koncepcijam - struktūrprogrammēana - ir daudzu treas paaudzes programmēanas valodu (tai skaita Pascal) pamata.
Lielu programmu veidoanas procesa programmētajus gaida adas problēmas:
Lai lielu programmu veidoana un modificēana nebūtu parak mokos process, jaievēro noteikti noteikumi (piemēram, mainīgajiem japieķir tadi nosaukumi, kas atspoguļo to jēgu).
Struktūrprogrammēanas koncepcija izvirza adas prasības programmas tekstam:
Nedrīkst arī aizmirst, ka tehnika un programmatūra ļoti atri mainas, tapēc biei nav vērts tērēt veselus gadus ideala algoritma meklēanai un pilnīgas programmas veidoanai, kura pēc daiem gadiem bezcerīgi novecos (ja tikai algoritmam nav zinatniskas vērtības). Programmētaja uzdevums - izvēlēties tadu vienkaru atrisinajumu, kuru vēlak nenaksies apēlot.
Algoritmu pamatkonstrukcijas
Lineara darbību secība Sazaroanas:
darbības (operatori) vienkari tiek izpildīta viena vai otra darbība
seko cita citai atkarīgi no kada nosacījuma
varianti
Cikli: programmas fragments tiek atkartots vairakas reizes
а) iteraciju cikls: b) cikls ar prieknosacījumu: с) cikls ar pēcnosacījumu:
Uzdevumu piemēri, kurus var atrisinat, izmantojot daadas algoritmu konstrukcijas:
Lineara darbību secība: zinot taisnstūra malas, aprēķinat ta laukumu.
Sazaroanas: zinot х, aprēķinat y pēc formulas:
Cikls: izvadīt argumenta un funkcijas y=x3 vērtību tabulu intervala [1;20] ar soli 1.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2010
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved