2017. szeptember 12., kedd

2017.09.12. Ismétlés, gyakorlás

Leírtunk az alap algoritmusokhoz egy részben általánosítható megoldási módszert.
(A nyelvezete nem a hivatalos leíró nyelv, amivel algoritmusokat lehet leírni, hanem "konyhanyelv".)

Házi feladat: áttanulmányozni ezt a leírást, értelmezni egyesével az alap algoritmusok esetében.

Bianka jegyzete ellenőrzés után, köszönet érte:

1.    Elolvasom a feladatot végig!
2.    Eldöntöm, hogy a ciklusnak végig kell-e mennie a tömbön. (Azt a kérdést kell eldöntenem, hogy meg kell-e vizsgálni egyesével az összes elemet ahhoz, hogy ki tudjam írni a végeredményt minden esetben.)
3.    Ha meggyőződtem róla, hogy végig kell menni a tömbön, akkor választok egy ciklus fajtát: for vagy while ciklus.
     3/1.   For ciklust akkor választok, ha nem fordulhat elő az az eset, hogy a tömbön belül valamelyik elemnél meg kell állni a ciklus futásának.
     3/2.  A while ciklust minden esetben választhatom, különösen alkalmas abban az esetben, ha valamelyik elemnél  meg kell állni a ciklus futásának.
      4.  Megírom a ciklust “üresen”. While ciklus esetén definiálom a ciklus változót, megadom a kezdőértékét. A ciklus feltételében megadom, hogy a ciklusváltozó a tömb hosszáig menjen. Végül gondoskodok róla, hogy a ciklus változó értéke emelkedjen. For ciklus esetén ugyanezeket az adatokat kell megadni a for kulcsszó utáni zárójelben.
       5. Ha a ciklusnak meg kell majd tudni állnia a tömb valamelyik elemén, akkor két lehetőség közül választhatok.
       5/1. Első lehetőség: összetett feltétel alkalmazásával (amiben && van). Ilyenkor a ciklus feltételében az && után egy második részfeltételt kell megadni, ami azt vizsgálja, hogy az adott elem megfelel-e a feltételnek. A feltételt tagadó formában kell megfogalmazni, így a ciklus addig fog futni, amíg meg NEM találja az adott elemet. A ciklus összetett feltétele úgy működik, hogyha mindkét része igaz, akkor fut a ciklus, tehát elvégzi a ciklusmagban lévő utasításokat, ha viszont bármelyik része hamis, akkor a program a ciklus utáni első utasításra ugrik.
      5/2. Második lehetőség: Logikai változó használatával: Ilyenkor, a ciklus ELŐTT definiálunk egy logikai változót, aminek az értékét hamisra állítjuk. A ciklus feltételében a logikai változót tagadó formában adjuk meg, ezáltal bebiztosítva azt, hogy a ciklus elinduljon. A logikai változót a ciklus belsejében a feladatnak megfelelő feltételtől függően igazra állítjuk (pl. ha megtaláltuk az elemet).
       6. A mintafeladatokban több esetben feltételt kell alkalmazni a ciklus belsejében/magjában. Meg kell gondolni, hogy ilyenkor egy- vagy kétágú szelekcióra van-e szükség. Általában egyágú kell, kétágúra akkor lehet szükség, ha a feladat külön kéri.
       7. El kell dönteni, hogy a megfelelő kiírásokat tehetem-e a ciklus belsejébe, vagy nem. Általában a ciklus belsejében még a végeredményt nem tudjuk kiírni. A kiírásokat a ciklus futása után helyezzük el általában. Ez akkor is jó így, ha a ciklus futása valahol a tömb belsejében megállt. A kiírásokat feladattól függően egy- vagy kétágú szelekcióval lehet megoldani.
      8. Ha a feladat kéri, hogy írjuk ki az adott elem indexét, akkor arra általában a ciklusváltozó vagy annak eggyel csökkentett vagy növelt értéke alkalmas.
      9. Részeredményeket a ciklus belsejében, végeredményt a ciklus után ellenőrzésképpen erősen javasolt kiírni. (Végül megjegyzésbe kell tenni.)