Algoritem z odločitvijo

Ko boš predelal vsebino te spletne strani, boš znal: 

  • Analizirati preprost problem in problem razdeliti na manjše podprobleme
  • Napisati algoritem z odločitvijo, ki reši preprost vsakdanji problem.
  • Narisati diagram poteka za problem z odločitvijo.

Poudarki: 

  • Pojasnilo osnovnih pojmov, ki so povezani s pisanjem algoritmov z odločitvijo.
  • Postopek analiziranja problemov in pisanja algoritmov.
  • Nasveti za lažje pisanje algoritmov.

Večino opravil opravljamo po ustaljenem postopku, za katerega smo ugotovili, da je najbolj primeren. Poglejmo si naslednji primer 

Makarone skuhamo tako, da:

  • v ustrezno posodo nalijemo vodo,
  • dodamo primerno količino soli,
  • postavimo posodo na štedilnik,
  • vključimo štedilnik,
  • pogledamo ali voda vre,
  • če ne vre, nekoliko počakamo in nato ponovimo prejšnji korak,
  • v vrelo vodo nasujemo želeno količino makaronov
  • počakamo toliko časa, kot je zapisano na embalaži,
  • Poskusimo, ali so makaroni kuhani,
  • če makaroni niso kuhani, počakamo nekaj trenutkov in ponovimo prejšnji korak,
  • ko so makaroni kuhani, ugasnemo štedilnik
  • posodo odstavimo s štedilnika
  • odcedimo vodo z makaronov. 

Cookbook by RitaE, free to use under the Pixabay license, accessible at https://pixabay.com/photos/cookbook-recipes-food-cook-a-book-746005/

Animation Cooks! How to Cook Pasta by Valio Animation, CC, accessible at Animation Cooks! How to Cook Pasta

 

Celotno naše življenje je sestavljeno iz zaporedja opravil. Le teh stalnih zaporedji smo vajeni tako, da se sploh ne zavedamo, da jih izvajamo. 

Kot smo videli pri algoritmu za kuhanje makaronov je vrstni red korakov zelo pomemben. Paziti moramo, da si koraki smiselno sledijo eden za drugim. Nemogoče bi bilo najprej stresti makarone v posodo, jih skuhati in šele nato dodati vodo. 

Poznamo tako vsakdanje algoritme oz. ustaljene postopke za določena opravila, kot tudi računalniške algoritme.  

Kako se lotimo izdelave algoritma? Najprej analiziramo problem. Ugotovimo, kaj je cilj pri našem opravilu oz. programu cilj . Naš problem razdelimo na več korakov npr. priprava sestavin, kihanje, postavitev na krožnik.

Sledi zapis algoritma po korakih, tako, kot smo zapisali pri postopku kuhanja makaronov. Nato lahko narišemo diagram poteka. Lahko pa ta korak tudi izpustimo in zapisane korake spremenimo v računalniški jezik in napišemo program, ki ga bo računalnik znal izvesti. 

Zelo preprost algoritem za umivanje zob je na primer sestavljen iz naslednjih korakov:

    1. nanesite zobno pasto na zobno ščetko
    2. z zobno ščetko očisti zobe
    3. spiranje zobne ščetke

     

     

    Vsak korak je navodilo, ki ga je treba izvesti. Zaporedje je vrstni red izvajanja korakov.

    Zakaj je zaporedje pomembno?

    Ključno je, da se koraki v algoritmu izvajajo v pravilnem vrstnem redu – sicer algoritem ne bo deloval pravilno. Recimo, da so koraki algoritma za čiščenje zob v tem zaporedju:

       

      1. uporabite zobno ščetko za čiščenje zob
      2. nanesite zobno pasto na zobno ščetko
      3. splakniti zobno ščetko

      Za čiščenje zob bi se še vedno uporabljala zobna ščetka in na ščetko bi se še vedno nanašala zobna pasta. Ker pa sta koraka 1 in 2 v napačnem zaporedju, se zobje ne bi očistili z zobno pasto in zobna pasta bi bila zapravljena.

       

      Človek bi ugotovil, da je na začetku postopka pozabil dodati zobno pasto, računalnik pa ne bi vedel, da je kaj narobe.

       

      Računalnik lahko naredi le tisto, za kar je programiran. Če so koraki programirani v napačnem zaporedju, bo računalnik opravil naloge v tem zaporedju – tudi če je to napačno.

      Nasveti za pisanje algoritma: 

      • problem najprej dobro analiziraj,
      • zapiši kateri koraki se ti zdijo najbolj pomembni,
      • oblikuj take ukaze, da bodo razumljivi vsem bralcem ne samo tebi.

      Vsebina na tej spletni strani povzeta po:

        • Rugelj Jože, Šlenc Tihomil, in Kajtna, M. L. (2009). Računalništvo: Učbenik Za Izbirne Predmete Urejanje Besedil, Računalniška Omrežja in multimedija za 7. Ali 8. Ali 9. Razred Osnovne šole. DZ
        • Wechtersbach, R. (2008). Računalništvo. Učbenik za Računalniško opismenjevanje in izbirne predmete Oblikovanje besedil, Multimedija in Računalniška omrežja v 7., 8. in 9. razredu devetletne osnovne šole. Grosuplje, Saji.
        • Sequencing in algorithms – Sequencing – KS3 Computer Science Revision. BBC Bitesize. https://www.bbc.co.uk/bitesize/guides/zsf8d2p/revision/1
      Dostopnost