Datorprogrammas vienmēr ietver stingru darbību secību, ko tās izpilda pēc lietotāja pavēles. Šīs darbību secības sauc par algoritmiem un ar tiem mēs sastopamies kā datoros, tā arī ikdienā.
Algoritmus var pierakstīt 3 dažādos veidos:
Algoritmam jābūt skaidram, mērķtiecīgam un nepārprotamam!
Apskatīsim tējas pagatavošanas algoritmu, kas pierakstīts 3 dažādos veidos.
SĀKUMS
BEIGAS
Blokshēmās lieto sekojošos elementus:
import tejkanna
import kruze
def gatavojam_teju():
tejkanna.piepildit()
tejkanna.uzvarit()
kruze.panemt()
kruze.ielikt_maisinu()
kruze.ieliet_udeni()
kruze.piebert_cukuru()
kruze.samaisit()
kruze.dzert()
gatavojam_teju()
#Kodam ir ilustratīva nozīme
Lai arī šādu kodu dators izpildīt nevarēs, tas ir uzrakstīts sintaktiski pareizi un atbilst programmēšanas valodas normām.
Algoritmus iedala lineāros, sazarotos un cikliskos.
Tējas pagatavošanas process ir lineārs algoritms, kur darbības izpilda citu pēc citas noteiktā secībā. Bet ne vienmēr tas ir iespējams.
Iedomāsimies, ka mums nav tējkannas, kur ieliet ūdeni vai cukura, ko pievienot tējai. Tāpēc nepieciešams uzlabot algoritmu, iekļaujot dažādas pārbaudes, lai pārliecinātos, vai mums ir viss nepieciešamais rezultāta sasniegšanai.
Attēlā parādīta blokshēma ar zarošanās konstrukciju. Romba figūrā ir lasāms nosacījums. Ja tas ir patiess, izpildās viena darbība, ja ne - tad otra.
Bet daudzos algoritmos ir darbības, kas daudzkārt atkārtojas. Ja vēlamies tējai pievienot 3 tējkarotes cukura, tad viena darbība jāizpilda 3 reizes. To sauc par ciklu ar 3 iterācijām.
Attēlā redzama blokshēma ar ciklisku konstrukciju.
Zili iekrāsotās darbības var atkārtoties neskaitāmas reizes.
Šādi algoritmu var papildināt ar vairākiem cikliem. Piemēram, ja ūdens nav gana atdzisis, tad turpinām gaidīt, līdz tas atdzisīs.
Kārtošanas algoritmus izmanto, lai haotiskus datus sakārtotu pieaugošā vai dilstošā virknē. Tie var būt taisnstūru malu garumi, cilvēku vārdi, preču cenas utt.
Kārtošanas algoritmi ir dažādi, bet aizved pie viena un tā paša rezultāta.
Kārtojamie dati sadalās sakārtotajā daļā un nesakārtotajā daļā.
Viens no vienkāršākajiem algoritmiem, kas vairākkārt pārbauda visus virknes skaitļus pa pāriem un maina tos vietām.
Skaitļu virknē jāatrod lielākais tās skaitlis.
Virknes mazāko vērtību meklē identiskā veidā, tikai salīdzināšana notiek pretēji.
Procesu, kad visi virknes elementi tiek secīgi pārbaudīti, sauc par lineāro meklēšanu.
Izmanto, kad skaitļu virknē jāatrod konkrēts skaitlis.
To dara šādi:
Attēlā redzams, kā virknē tiek meklēts skaitlis 41
avots: codecademy.com
Bināro meklēšanu iespējams izmantot tikai sakārtotai virknei!
Kārtojot datus, nepieciešams mainīt vietām kopas elementus. Tam izmanto vienu no trim paņēmieniem.
Ja šķidrumus divās glāzēs jāapmaina vietām, vajadzēs trešo glāzi. Programmēšanā tam izmanto trešo mainīgo.
Izmanto skaitļu summu.
a = 3, b = 5
a = a + b
b = a - b
a = a - b
Sastāda vienādību, kur abas tās puses ir apgrieztas. Labās puses vērtības piešķir attiecīgajiem kreisās puses mainīgajiem
a, b = b, a