Bevezetés

Mi a program?

Többé-kevésbé minden olvasó találkozott már a "program" fogalmával.

A program utasítások egy sorozata, melyeket indítás után a gép előírt sorrendben, a külső felhasználó közreműködése nélkül hajt végre; ugyanúgy, mintha a billentyűzetről gépeltük volna be a parancsokat. (Ez a program futtatása.)

A programsorokat begépelve nem látunk eredményt: a gép az utasításokat tárolja, s csak a futtatásra következik be a végrehajtás.

A Casio CFX-9850 és a TI-83, valamint a későbbi Casio-, ill. Texas-verziók  programozható zsebszámológépek, a grafikus kalkulátor előnyös tulajdonságain túl programok készítésére és futtatására is alkalmasak. Ebben a cikkben néhány rövid programot írunk meg.

Feltételezzük, hogy az Olvasó már készített egy-két egyszerű programot, s így a programkészítés alapjaival tisztában van. Ha valaki teljesen kezdő, akkor sem kell kétségbe esnie: elég pl. a kalkulátorok gépkönyvének programozás-fejezeteit fellapoznia. Itt a szerzők érthetően és tömören összefoglalták a bevezető ismereteket.

Az egyes gépekkel kapcsolatban további sok érdekes információ olvasható a www.casio.com és a www.ti.com/calc címeken.

Reméljük, hogy a cikk olvasása után minél több Olvasó kedvet kap további programok készítésére.

Mikor nem érdemes programot készíteni?

Ne készítsünk olyan programot, amelyet maga a kalkulátor is el tud végezni a hagyományos üzemmódjában. (Ráadásul nálunk sokkal ügyesebben teszi ezt.) Ilyen téma pl. a függvényábrázolás vagy egyenletmegoldás.

Mikor érdemes programot készíteni?

A feladatok fajtái szerint vizsgálva általában olyan képletek, formulák, eljárások esetében készítünk programot, amelyeket gyakrabban használunk, vagy ha ritkábban alkalmazzuk is őket, esetleg bonyolult, időigényes a begépelésük.

A feladatok végrehajtása szempontjából akkor érdemes programot használnunk, ha a megoldás sok "robotmunkával" jár (nagy az idő- vagy számolásigénye), vagyis ha nagyszámú automatizálható műveletet hajtunk végre.

Végül módszertani szempontból példákat mutathatunk az alábbi módszerekre és eljárásokra:
- próbálgatás, sejtés;
- ellenpélda, konstrukciós vagy lehetetlenségi bizonyítás;
- összes eset rendszeres vizsgálata;
- nem-matematikai módszerek alkalmazása stb.

A fentieket figyelembe véve ebben a cikkben elsősorban konkrét (matematikai) célfeladatokat oldunk meg; olyan célfeladatokat, amelyek megoldása folyamán praktikusan és eredményesen tudjuk alkalmazni a zsebszámológépet.

Az alábbiakban felsoroljuk a cikkben tárgyalt feladatokat. (A Casio, ill. Texas szavak azt jelzik, hogy a feladat konkrét, futtatható kódolását is elkészítettük ezekre a gépekre; a dőlt betűs megjegyzések pedig módszertani jellegűek.)

A tárgyalt feladatok

1. (Casio, Texas) Másodfokú megoldóképlet (műveleti sorrend problémája)

2. (Casio) Határozzuk meg azokat a természetes számokat, amelyek 13-mal nagyobbak a számjegyeik szorzatánál. (célfeladat)

3. (Texas) Háromszög alapadatai a három oldalból (függvénytábla-pótlás; összetett feltétel, ill. max függvény; más kalkulátor- funkciók (sorozatok) elérése)

4. (Texas) Határozzuk meg azokat a négyzetszámokat, amelyek 184-re végződnek!

5. (Texas) Vannak-e olyan pozitív egész számok, amelyek 1999-re végződnek és 17-tel oszthatók? (sejtés szerepe)

6. (Casio, Texas) Számoljuk ki annak a valószínűségét, hogy n ember születésnapja az év n különböző napjára esik (366 nappal számoljunk). (csak számol a program; számábrázolási problémák)

7. Vizsgáljuk meg 300 kockadobás értékeit s pl. a dobott számok átlagát.

8. Vizsgáljunk meg 100 érmedobást. (Pl. keressük meg a leghosszabb „fej” sorozatot.) (műveletek sorozat elemeivel)

9. (Casio, Texas) Döntsük el egy számról, hogy prím-e.

10. Észrevehetjük, hogy a P(n) = n2 + n + 41 polinom az n = 0, 1, 2, 3, ... helyeken rendre a 41, 43, 47, 53, ... stb. értékeket veszi fel, amelyek prímszámok. A felvethető kérdések:
a) Lehetséges-e, hogy minden n értékre P(n) prímszám? (Nyilván nem.)
b) Adjunk meg (minél) több n értéket, melyre P(n) nem prím!
c) Adjuk meg a legkisebb n természetes számot, amelyre P(n) nem prím! (külső program hívása, paraméterátadás; matematikai kezelhetetlenség)

11. Határozzuk meg azt a legkisebb természetes számot, amely után 8 szomszédos összetett szám következik. (matematikai kezelhetetlenség)

Számológéppel támogatott problémamegoldás

12. (Casio) Vannak-e olyan pozitív egész számok, amelyek 2001-re végződnek és 17-tel oszthatók? (sejtés szerepe)

13. Vannak-e olyan  alakú számok, amelyek 17-tel oszthatók?

14. Keressük meg azokat a "szomszédos" kettőhatványokat, amelyek különbsége osztható 17-tel. (matematikai hatékonyság)

15. 10 golyót néhány kupacra osztunk szét. Ezután minden kupacból kiveszünk egy golyót, s ezekből egy új kupacot készítünk. Ezt az eljárást folytatva mit tapasztalunk?

16. Mutassuk meg, hogy a számológép:
a) Teljesen alkalmatlan a 'kis Fermat-tétel' vizsgálatára (p osztja az s = ap–1 – 1 kifejezést, ha p prím és (a, p) = 1). A programban a = 2 választással p a páratlan számokon fusson.
b) Alkalmassá tehető a tétel vizsgálatára. (a matematikai műveltség szerepe)

17. (Casio, Texas) Határozzuk meg az f0 = 1, f1= (1 –√5)/2 kezdőtagokkal adott fn+2 = fn+1 + fn sorozat tagjait. Mi lehet a sorozat határértéke? (hamis sejtés a határértékre).

Számábrázolási problémák - (kellemetlen) meglepetések

1. Tényleges határérték a 17. feladatban

2. Ugyanez a feladat gépi vizsgálattal

3. P = 11111111111 prímtesztje

4. A születésnap-paradoxon program leállása

A cikk felépítése

A cikk négy részből áll. Ezen bevezető első rész után a második, ill. harmadik egység tartalmazza a Texas, ill. Casio gépekre írt programok listáját. Egyes feladatok kódolását mindkét gépre elvégeztük. Ennek az az oka, hogy a negyedik részben néhány általános észrevételt teszünk, s itt hivatkozunk ezekre a programokra. Ugyancsak itt, a negyedik egységben található a gépi számábrázolás problematikájáról egy rövid ismertető, továbbá az első rész kitűzött és a cikkben nem tárgyalt feladatai közül néhányhoz útmutatást adunk.

Minden kedves Olvasónak jó munkát kívánok!

Az utolsó frissítés időpontja 2003.09.12. Bármilyen észrevételt érdeklődéssel várok a gyuszi@fazekas.hu címen.