2024(e)ko otsailaren 7(a), asteazkena

4. astea | agindu errepikakor baten fluxua









Agindu errepikakorretan programaren fluxuak atzera egiten du ondoko irudian ikus daitekeen bezala, bertan baldintzazko agindu baten fluxua eta agindu errepikakor baten fluxua alderatzen dira:


Agindu errepikakorren helburua sententzia bat (edo sententzia multzo bat) errepikatu ahal izatea da. Hortaz, agindu errepikakor batean hiru ezaugarri ezagutuko dira:
  1. Eskuineko irudiak adierazten duen sententzia errepikakorrean begizta bat dagoela (begiztaren bukaeran aurrerantz linealki egin beharrean, atzerantz egiten du).
  2. Errepikatu beharreko sententzia (edo sententzia multzoa) bigarren ezaugarria litzateke. Horri iterazioaren sententzia esaten zaio.
  3. Azkenik, begiztatik noiz irten behar den zehazten duen baldintza aldez aurretik definiturik egongo da. Baldintza horrek, uneoro, aditzera ematen du programak beste iterazio bat burutu behar duen, ala bestela begiztatik irtetea dagokion.

Adibide bat egin dezagun, iMuga zenbakia teklatuaren bitartez irakurri eta iBatukaria lortuko dugu, non iBatukaria hau den:
iBatukaria = 1 + 2 + 3 + 4 + ... + iMuga

Hemen daukazu ForBat1.pas iturburu-programa


Aurreko programari dagozkion aldaketak egin ondoko hauek lortzeko:

Faktoriala den liBiderkaria kalkulatu liBiderkaria = 1 *2 *3 * ... *(iMuga-1) *iMuga
Batukaria alderantziz kalkulatu iBatukaria = iMuga +(iMuga-1) +(iMuga-2) + ... +3 +2 +1
Zenbaki negatiboekin lan eginez hau kalkulatu iBatukaria = -1 -2 -3 - ... -(iMuga-1) -iMuga
Zenbaki negatibo eta positiboekin hau kalkulatu iBatukaria = -1 +2 -3 + ... ∓iMuga
Bi zenbaki ezagunen arteko batukaria kalkulatu iBatukaria = iBeheMuga +(iBeheMuga+1) +(iBeheMuga+2) + ...               +(iGoiMuga-2) +(iGoiMuga-1) +iGoiMuga
iMuga bakoitia izanik, bakoitien batukaria lortu iBatukaria = 1 +3 +5 + ... +(iMuga-2) +iMuga

 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.