Mintapélda
A
programozási tételek valójában olyan
típusalgoritmusok, amelyek az
algoritmizálás során gyakran felmerülő feladatokra adnak megoldást. Ilyenformán a
programozási munka fontos építőelemei, használatuk megkerülhetetlen, hiszen ezeknek
köszönhetően készítünk egységes, jól követhető forráskódokat.
A fent említett gyakori feladok közös jellemzője, hogy általában egy-egy
tömb típusú
változóban eltárolt adathalmazzal kapcsolatban megfogalmazódó
kérdésre kell
válaszolnunk. A programozási tételek elnevezései épp e kérdések lényegére utalnak.
A legegyszerűbb programozási tételek a következők:
1. Sorozatszámítás
Kevéssé beszédes neve arra utal, hogy pl. egy számsorozat összegét, vagy átlagát
kell meghatározni. Éppen ezért gyakran nevezik speciálisan összegzés
programozási tételének is.
Ennek ellenére nem csak számokról lehet szó benne, hiszen a sorozatszámítás
tételével határozható megy egy római szám értéke is, ahol a sorozatot épp a
kérdéses római szám betűi jelentik.
2. Megszámolás
Itt egy adatokat tartalmazó sorozat (tömb) elemeiről azt szeretnénk tudni,
hogy hány darab olyan eleme van, ami számunkra valamilyen szempontból
érdekes lehet.
Éppen ezért ehhez a tételhez kiindulásként mindig tartozik egy tulajdonság is
ami leírja a megszámolandó elemek jellemzőjét.
3. Maximumkiválasztás
Egy sorozat elemeiből meghatározza a legnagyobb értékű elem sorszámát - vagy
szükség szerint az értékét is.
Sajátossága, hogy a benne szereplő összehasonlítást jelentő relációjel megfordításával
minimumkiválasztás valósítható meg, ami lényegében ugyanez a típusalgoritmus.
4. Eldöntés
E tétel lényege, hogy megmondja, van-e egy bizonyos tulajdonságú elem az
adott sorozatban. Fontos, hogy csak erre a kérdésre kell válaszolnunk, de arra már
nem, hogy melyik (vagy melyek) ez(ek) az elem(ek).
Akárcsak a megszámolásnál, itt is lényeges kiindulási pont a kérdéses tulajdonság.
Ám míg a megszámolás eredményéhez szükséges végigvizsgálni az összes lehetséges
elemet, az eldöntés esetén abban az esetben, ha találtunk egy megfelelő elemet,
a vizsgálat befejezhető, hiszen a kérdés megválaszolható.
5. Kiválasztás
Ennél a kérdésnél biztosan tudjuk, hogy létezik olyan adat, amit keresünk,
és éppen az a cél, hogy megmondjuk, melyik az. Csak egyetlen adat
sorszámára van szükségünk, akkor is, ha esetleg több létezik.
Ezzel a típusalgoritmussal oldható meg egyebek mellett pl. két szám legkisebb közös
többszörösének (vagy legnagyobb közös osztójának) a meghatározása.
6. Keresés
Ez az algoritmus valójában az előző kettő egybeépítése: arra is kíváncsiak vagyunk,
hogy van-e egy bizonyos tulajdonságú elem, vagy nincs - illetve ha van, akkor
melyik az. Itt is csak egyetlen adatra van szükségünk, hiába is lenne több, és
szintén sorszámot várunk eredményül.
Pontosítva az elnevezést szokták lineáris keresésnek is nevezni, megkülönböztetendő
más egyéb keresési algoritmusoktól.
Ezen összefoglaló figyelembevételével készítsünk programot, mely JavaScript nyelven bemutatja
a fenti programozási tételek működését.
A feladat megvalósítása során minden esetben állítsunk elő véletlenszerűen 10 darab évszámot
legfeljebb száz évre visszamenőleg (akár egyezőek is lehetnek közöttük), majd programunk
segítségével válaszoljuk meg az alábbi kérdéseket.
1. Mennyi a számok összege és átlaga?
2. Hány szökőév van az évszámok között?
3. Melyik a legnagyobb elem? Mi a sorszáma, és az értéke?
4. Van-e köztük évszám az előző 5 évből?
5. Hányadik adat jelöl XX. századi évet?
6. Hányadik adat jelöl XXI. századi évet?
Az alábbi képre kattintva egy lehetséges megvalósítás tesztelhető: