Kaj se bomo v tem poglavju naučili?
Naučili se bomo, katere so osnovne zahteve algoritma, kaj algoritem
predstavlja in kateri so osnovni gradniki algoritma.
Algoritem je seznam pravil, ki jih je treba upoštevati pri reševanju
problema.
Algoritem je podrobna vrsta navodil za izvajanje nekega dela ali reševanje problema. Netehnično gledano uporabljamo algoritme v vsakodnevnih nalogah, kot je recept za peko kolačkov ali priročnik v smislu "naredi sam".
Primer problema: Želiš ocvreti jajce Postopek (algoritem):
1. Vzemi ponev ponev. 4. itd. |
Ali si pri postopku cvrtja jajca pozabil, da moraš ponev segreti? Ali
najprej vanjo dati malo olja? Ali moraš olje dodati, preden segrevaš
ponev, ali pa najprej segreješ ponev in šele nato dodaš olje? Na taka
vprašanja naletiš pri pripravi postopka (algoritma) za to nalogo.
Ko se navadimo pisanja preprostih algoritmov, jih lahko poskusimo zapisati
s psevdokodo. Psevdokoda je zapis algoritma na način, ki spominja na
računalniško kodo. To ni nek poseben programski jezik. Algoritme zapišemo
tako, ker bolje vidimo, kako bo na koncu izgledal računalniški program, pa
tudi zato, ker lahko tako lažje opazimo kakšne logične probleme v
algoritmu.
Za primer našega algoritma za cvretje jajca bi taka psevdokoda lahko izgledala tako:
Pridobi (ponev)
če imaš (olje)
Vzemi (olje)
sicer
Če želiš(olje)
Potem kupi
(olje)
sicer
končaj
//in ostani lačen
Vklopi (kuhalnik)
.......
Algoritem pa lahko predstavimo tudi v grafični obliki s takoimenovanim diagramom poteka. Pri tem si pomagamo s simboli, kot jih prikazuje leva slika.
|
Diagram poteka postopka za cvrtje jajca:
Tako bi izgledal diagram poteka, ki ponazoruje algoritem za cvretje jajca. Vidimo še, kako lahko v tak diagram dodajamo komentarje. In opazimo, da postane tak grafični način za bolj kompleksne postopke kar nepregleden.
Psevdokoda je bolj kompaktna in zato tudi bolj pregledna. |
Algoritmi morajo imeti svoje korake v pravem zaporedju. Pomisli na algoritem za jutranje oblačenje. Kaj, če si oblekel plašč pred svojim puloverjem? Tvoj plašč bi bil pod puloverjem in to bi bilo neumno! Ko pišemo algoritem, je vrstni red navodil zelo pomemben.
Računalniki uporabljajo algoritme za seznam podrobnih navodil za izvedbo operacije. Če na primer računamo plačo delavca, računalnik uporablja algoritem. Za izpolnitev te naloge je treba v sistem vnesti ustrezne podatke. Z vidika učinkovitosti lahko različni algoritmi enostavno in hitro izvedejo operacije ali rešijo probleme.
S pomočjo računalnika lahko hitro in enostavno rešujemo raznotere
probleme. Pri tem pa se moramo zavedati, da računalnik sam po sebi ne zna
narediti ničesar. Vedno naredi samo in natančno to, kar mu ukažemo. Skupek
navodil oz. zaporedje nalog, ki jih mora računalnik izvesti, da rešimo nek
problem, je algoritem.
Za uspešno rešitev problema pa moramo problem najprej dobro poznati. Ko se
seznanimo s problemom, ga moramo "razstaviti" na več manjših problemov in
le-te na še manjše probleme. Tako daleč, da imamo na koncu skupek majhnih
problemov, od katerih vsakega lahko rešimo z enostavno operacijo. Vsakemu
od teh delčkov nato določimo aktivnost za rešitev in jo povežemo v
algoritem.
Algoritem predstavlja torej množico ukazov, ki so drug za drugim izvajajo
in privedejo do končne rešitve problema. Skupin različnih ukazov
niti ni hudo dosti. Pomembno je, da se vsak algoritem začne in konča.
Naslednji primer: Problem iskanja prostega parkirnega mesta na parkirišču (včasih za voznika kar nerešljiv problem )
Poiskati moram prosto parkirno mesto! In to čimprej. Preden me ne prehiti kdo drug. Če ga bom sploh našel. Parkirati moram tako, da me ne bodo zaparkirali! Kakšno strategijo iskanja naj uberem?
Parkirno mesto lahko iščemo na različne načine. Tako imamo lahko različne algoritme. Razmišljati moram algoritmično. |
Algoritem je navodilo, s katerim rešujemo določen problem.
Običajno je zapisan kot seznam korakov, ki nas pripeljejo do rešitve
problema. Kako podrobno razdelamo korake, je odvisno od tega, kdo izvaja
algoritem (človek, računalnik). Če algoritem izvaja računalnik, potem
govorimo o računalniškem programu. Primer algoritma iz vsakdanjega
življenja je tudi kuharski recept.
Algoritmično razmišljanje, posebej z uporabo konstrukta if-then (če, tedaj..), lahko pomaga rezumeti problem in poiskati čim boljšo rešitev. Šele, ko se poglobimo v koncept, razumemo njegov pomen. Algoritem je preprosto niz pravil, ki jih je treba upoštevati. Osnovna struktura izvedbenih
namer je naslednja: |
Algoritmično razmišljanje ali sposobnost definiranja jasnih korakov pri
reševanju problema je ključnega pomena pri predmetih, kot so matematika in
znanost. Algoritme pogosto uporabljamo, ne da bi se tega zavedali, zlasti
v matematiki. Pri deljenju z večmestnimi števili uporabljamo algoritem,
pri katerem iteriramo skozi številke deljenega števila. Za vsako številko
deljenega števila moramo deliti, množiti in odštevati. Algoritmično
razmišljanje omogoča da razčlenimo probleme in konceptualiziramo rešitve v
smislu diskretnih korakov v postopku.
Otroci lahko okrepijo svoje sposobnosti algoritmičnega razmišljanja tako,
da planirane dejavnosti (korake) zapišejo (zakodirajo). Za dokončanje
ugank otroci oblikujejo preproste algoritme, ki temeljijo na zaporedju,
ponavljanju in pogojni logiki za reševanje zabavnih problemov. Kot pri
vseh spretnostih lahko otroci izboljšajo svoje algoritmično razmišljanje z
vsakodnevno prakso in z dokončanjem kreativnih projektov za uporabo svojih
veščin.