Zer da egoera-makina bat?
Egoera-makina bat, unean gertatzen ari denaren baina baita aurretik ere zuen egoeraren arabera, modu batera edo bestera erreakzionatzen duen programa bat da.
Beraz, bere sarrera eta irteeren menpe baino gehiago dagoen programa bat da, memoria du, bere portaeran eragina duten egoerak daude. Adibidez, imajina dezagun, gose zaudenean jaten ematen dizun programa bat sortu nahi duzula. Gose egotea bada baldintza bakarra, aurkituko duzun lehenengo gauza jango duzu. Aldiz, programa bera egoera-makina batekin egiten badugu, prozesua konplexuagoa izango da. Gose bazaude jan nahi duzu baina eguerdian pizza bat jan duzu eta orain zerbait osasuntsuagoa jan nahi duzu. Gainera, oraindik ez da afaltzeko ordua. Hoberena barazkiak jatea izango da!
|
 |
Gabonetako argiak. Gure lehen egoera-makina
Aurten denbora libre asko izan dut, ondorioz, Gabonetako pinuari argiak jartzeko LED pilo bat erosi ditut. Aurretik eginda etortzen diren argiak aztertu ditut eta, normalean, hiru egoera desberdin dituzte: LEDak itzalita, batera dir-dir egiten duten LEDak eta txandaka dir-dir egiten dutenak. Argiek duten portaera honetan oinarrituta, sakagailua sakatzen dudan bakoitzean argiak hurrengo egoerara pasatzea nahi dut.
|
 |
Egoera-makinadun programa batean bi zati daude beti. Bat egoera bakoitzaren egikaritzea izango da eta bestea egoeren arteko aldaketa.
Egoera bakoitzaren egikaritzea
Gure argiek hiru programazio modu edo egoera izatea nahi dugu: LEDak itzalita, aldi berean dir-dir egitea eta txandaka dir-dir egitea. Lehenik eta behin, egoera izeneko aldagai orokor bat erazugutuko dugu, uneko egoera gordetzeko balioko diguna.

 |
egoera aldagaiak izango duen balioaren arabera LEDak modu batera edo bestera jokatzea nahi dugu. Horretarako Honen balioa egiztatu funtzioa erabiliko dugu.
Lehenengo egoeran, 0 zenbakiarekin adieraziko duguna, bi LEDak itzaliko dira. Bigarren egoeran edo 1 egoera, guztiak aldi berean piztu eta itzaliko dira eta hirugarren egoeran edo 2 egoera, berriz, txandaka piztuko dira.
Karga ezazu programa egoera aldagaiaren hasierako balioa aldatuz. Bere balioaren arabera egoera bat edo bestea nola exekutatzen den egiaztatuko duzu.
|
Egoeren arteko aldaketak
Sakagailuari eragiten diogun bakoitzean hurrengo egoerara pasatzea nahi dugu.
Batzuetan, sakagailua zanpatzean zure programak pultsazio bat baino gehiago detekta ditzake eta modu okerrean funtziona dezake. errebote-efektu bezala ezagutzen da. Saihesteko … den bitartean, exekutatu begizta erabil dezakegu, barruan itxaronaldi txiki batekin. Horrela programak ez du aurrera egingo sakagailua zanpatzeaz utzi arte.
Egoeraz aldatzeko, sakagailua sakatzen dugun bakoitzean egoera aldagaiari 1 gehituko diogu. Halere, 2 egoeran egongo bagina, sakagailua berriro sakatzean 3, 4, 5, eta abar egoeretara pasako ginateke. Jatorrizko egoerara bueltatzeko egoera aldagaia berrasieratu beharko dugu. Horregatik Baldin eta…bada, exekutatu…Bestela exekutatu… erabili beharko dugu. Badlin eta egoera 2 baino txikiagoa balitz, egoeraren balioa 1ean handituko litzateke, aitzitik, 2 edo 2 baino handiagoa balitz, aldagaiaren balioa 0ra berrasieratuko litzateke. Gehitu bloke hauek Honen balioa egiaztatu… blokearen aurretik eta programa kargatu. Zure argi programagarriak sortu dituzu!
|
|
Bada oraindik gehiago
Ondoren praktikatzen jarraitzeko ideia batzuk proposatzen dizkizugu:
- Semaforo bat eraiki eta programatu ezazu bitbloq 2rekin egoera-makina bat eta semaforoa berdean jartzea eskatzeko botoi bat erabiliz.
- Zure jukeboxa sortu egoera-makina bat, burrunbagailua eta sakagailua erabiliz.
Egoera-makinak esparru askotan erabiltzen dira. Zure garbigailu edo labearen programa desberdinetatik hasita, industria-makina, mugikor edo ordenagailuetara.Geroz eta gehiago praktikatu, orduan eta erraztasun handiagorekin erabiliko dituzu. Ez izan zalantzarik eta has zaitez programatzen!