17. Bumm
Bumm! játék
Kisebb gyerekek szokták játszani a Bumm! nevű társasjátékot. A játékosok 1-től kezdve egy határszámig egyesével mondják a következő számot, de az úgynevezett tiltott szám és többszörösei helyett azt kell mondani, hogy „Bumm!” Aki eltéveszti, zálogot ad.
Feladat
Készítsünk a játék szabályainak megfelelő sorozatot!
15 3
1 2 Bumm! 4 5 Bumm! 7 8 Bumm! 10 11 Bumm! 13 14 Bumm!
Nehezítés
A játék nehezebb változata, hogy akkor is Bumm!-ot kell mondani, ha a szám tartalmazza a tiltott számot számjegyként. A program elkészítése szövegfüggvények ismeretét igénylő feladat.
15 3
1 2 Bumm! 4 5 Bumm! 7 8 Bumm! 10 11 Bumm! Bumm! 14 Bumm!
C# játszótér
Python játszótér
18. Robot
Így működik
Egy egyszerű robot a végrehajtandó parancsokat betűkkel kapja. Négy utasítást ismer csupán: egységnyit megy előre, hátra, jobbra vagy balra az E, H, J vagy B utasítás hatására.
Feladat
Készítsünk programot, amely a parancssort egyszerűsíti, vagyis a kezdőpontból a végpontba a legkevesebb utasítással juttatja el a robotot. (Rajzolni a megoldásban nem kell, azok most csak az értelmezést segítő ábrák.)
Az ábrán kék színnel az eredeti parancssor végrehajtásának rajza és pirossal az egyszerűsített változat.
EEEJJEEBHBEBHBEB
BBBEEEEE
Minta a szöveges kimenet kialakításához:
Kérem a robot parancsait: EEEJJEEBHBEBHBEB
A legrövidebb út parancssora: BBBEEEEE
C# játszótér
Python játszótér
19. Fibonacci-számok
A Fibonacci-számok és az aranymetszés
A Fibonacci-számsorozat az egyik legismertebb rekurzív sorozat. A sorozat nulladik eleme a 0, az első eleme az 1. A további elemeket úgy kapjuk, hogy előző két elem összegét vesszük:
Matematikai formában
A Fibonacci-számok gyakran előfordulnak a természetben is, például a virágok szirmainak száma gyakran ezen sorozat elemeit követi.
De van egy másik érdekesség is. Az aranymetszés szabályát gyakran használják a művészetekben. Két szám (
Matematikai felírása
Ha a Fibonacci-sorozat aktuális tagjának értékét elosztjuk az előző tag értékével, akkor megközelítőleg ugyanezt az értéket fogjuk kapni. Minél nagyobb tagnál végezzük el a számítást, annál pontosabb lesz az eredmény. Győződjünk meg erről magunk is!
Feladatok
- Írjunk programot, amely bekéri, hogy hányadik tagig jelenjenek meg a Fibonacci-számok!
- Derítsük ki, hogy az általunk használt programozási környezetben hogyan lehet ellenőrizni azt, hogy valóban számot adott-e meg a felhasználó!
- Amennyiben nem szám lett megadva, írjunk ki egy figyelmeztető üzenetet, és álljon le a program futása!
- A sorozat tagjait a mintafuttatásban látható módon jelenítsük meg! A harmadik oszlopban számoljuk ki az arányszámot a második tagtól kezdve, és jelenítsük meg 3 tizedesjegy pontossággal!
- Derítsük ki, hogy hány tagig kapunk helyes eredményt akkor, ha az int típust használjuk!
Milyen módszerrel lehetne még több tagig kiszámoltatni az eredményt?
Mintafuttatások
Mintafuttatás hibás számmegadás esetén:
Fibonacci számok
================
Hányadik tagig írjam ki a Fibonacci számokat? száz
Nem számot adott meg! Kérem próbálja újból!
Mintafuttatás helyes számmegadás esetén:
Fibonacci számok
================
Hányadik tagig írjam ki a Fibonacci számokat? 12
0 0
1 1
2 1 1
3 2 2
4 3 1,5
5 5 1,667
6 8 1,6
7 13 1,625
8 21 1,616
9 34 1,62
10 55 1,618
11 89 1,619
12 144 1,618
Python játszótér
C# játszótér
20. Számsorozatok
Eszközök
- Készítsünk algoritmusokat mondatszerű leírással, amelyek számsorozatokat állítanak elő!
- Oldjuk meg a feladatokat ciklusutasítások használatával!
- Készítsük el a számsorozatokat ciklusutasítás használata nélkül, rekurzív függvényekkel.
- A kész algoritmusokat kódoljuk programozási nyelven!
Feladatok
- Írjunk algoritmust, ami egy n magas számhegyet hoz létre!
Bemenet:
5
Kimenet:
1 2 3 4 5 4 3 2 1
- Az előző algoritmusunkat bővítsük azzal, hogy k magas számhegységet hozunk létre!
Bemenet:
4
Kimenet:
1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1
- Írjunk algoritmust, amely egy n értékű számlépcsőt hoz létre!
Bemenet:
6
Kimenet:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6
- Írjuk fel az alábbi összefüggésekkel megadott sorozat első n elemét ciklussal:
és