Ohjeet

Iteraatio


Iterointi on yleinen nimitys menetelmille, joissa samoja työvaiheita toistetaan niin kauan, kunnes toistot halutaan lopettaa. Iteroinnissa toistettavaa työvaihetta kutsutaan iteraatioksi tai iterointiaskeleeksi. Ohjelmointikielissä yleisen silmukkarakenteen yhtä kierrosta kutsutaan iteraatioksi.

Esimerkki: talossa kävely
Ohjeet talosta poistumiseen. Käytössä on komennot
Liiku eteenpäin
  • Käänny oikealle/vasemmalle

Tietokoneen noudattamaa ohjeiden sarjaa kutsutaan algoritmiksi. Ohjeet voisivat olla seuraavanlaiset:
  • eteenpäin
  • käänny vasemmalle
  • eteenpäin
  • käänny vasemmalle
  • eteenpäin
  • käänny vasemmalle
  • eteenpäin
  • käänny vasemmalle

Eo. kahdeksan rivin koodi voidaan kirjoittaa lyhyemmin käyttäen toistoa:

Toista 4 kertaa:
eteenpäin
käänny vasemmalle

Vähempi koodin määrä nopeuttaa tietokoneen toimintaa. Silmukat, kuten edellä, lyhentävät koodin pituutta. Silmukan koodi toistetaan, kunnes ehto täyttyy.

Makecoden silmukat



Molemmat silmukat, toista ja kun-suorita, voidaan toistaa n kertaa. Esimerkiksi, jos talossa on 32 porrasta, niissä kulkeminen vaatii, että otat yhden askeleen 32 kertaa.

Kun-suorita silmukalla on ehto, jonka täyttyessä silmukka läpikäynti loppuu. Ehdon arvo muuttuu ja kun se toteutuu, silmukka loppuu.

”Kohteelle-suorita” (for) silmukalla on ehto (”indeksi”, oletus, jonka voit muuttaa), jonka täyttyessä silmukka läpikäynti loppuu. Ehdon arvo muuttuu ja kun se toteutuu, silmukka loppuu.

”Kun <tosi>” silmukka on ohjelma, joka jatkaa suoritustaan ikuisesti, jos sitä ei muuten keskeytetä. ”Kun <tosi>” silmukka kulkee niin kauan kuin sen sisällä oleva ehto on totta. Esimerkiksi "kun <hiukset ovat sekaisin>’" kampaisi hiuksia, kunnes hiukset ovat siistit  eli kun sekaisin ehto olisi väärä.


Minecraftissä ”kun <tosi> suorita” bloki voisi toimia niin, että se toistuu niin kauan kuin agentti havaitsee punakiveä sen alapuolella. Voit ajatella ”kun <tosi> suorita” blokia ”toista” blokina yhdistettynä ”jos”-ehdolla

- Jos alla on punakiveä, tee nämä asiat…