Ugrás a tartalomhoz

Algoritmizálás, programozás (Tehetséggondozó irány)

Lecke terület kezdete

Sorozat

Feladat szekció

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önnyű

Készítsünk a játék szabályainak megfelelő sorozatot!

Bemenet:
15 3
Kimenet:
1 2 Bumm! 4 5 Bumm! 7 8 Bumm! 10 11 Bumm! 13 14 Bumm!

Nehezítés

Közepes

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.

Bemenet:
15 3
Kimenet:
1 2 Bumm! 4 5 Bumm! 7 8 Bumm! 10 11 Bumm! Bumm! 14 Bumm!
Feladat szekció vége

C# játszótér

Összecsukás
Teljes képernyő

Python játszótér

Összecsukás
Teljes képernyő
Feladat szekció

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.

Bemenet:
EEEJJEEBHBEBHBEB
 
Kimenet:
BBBEEEEE
 
Minta a szöveges kimenet kialakításához:
Kérem a robot parancsait: EEEJJEEBHBEBHBEB
A legrövidebb út parancssora: BBBEEEEE
Feladat szekció vége

C# játszótér

Összecsukás
Teljes képernyő

Python játszótér

Összecsukás
Teljes képernyő
Feladat szekció

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:
0,1,1,2,3,5,8,13,21,34

F0=0,F1=1;nN{0,1}:Fn=Fn1+Fn2

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 (a és b, ahol a>b) az aranymetszés szerint aránylik egymáshoz, ha a kettő összege (a+b) úgy aránylik a nagyobb részhez (a), ahogy a nagyobb rész (a) a kisebb részhez (b). Ha az a és b számok arányát vizsgáljuk, akkor az arányszám közelítőleg 1,618.

a+ba=ab1,618

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

  1. Írjunk programot, amely bekéri, hogy hányadik tagig jelenjenek meg a Fibonacci-számok!
  2. 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ó!
  3. Amennyiben nem szám lett megadva, írjunk ki egy figyelmeztető üzenetet, és álljon le a program futása!
  4. 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!
  5. 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
Feladat szekció vége

Python játszótér

Összecsukás
Teljes képernyő

C# játszótér

Összecsukás
Teljes képernyő
Feladat szekció

20. Számsorozatok

Eszközök

  1. Készítsünk algoritmusokat mondatszerű leírással, amelyek számsorozatokat állítanak elő!
    1. Oldjuk meg a feladatokat ciklusutasítások használatával!
    2. Készítsük el a számsorozatokat ciklusutasítás használata nélkül, rekurzív függvényekkel.
  2. A kész algoritmusokat kódoljuk programozási nyelven!

Feladatok

  1. Írjunk algoritmust, ami egy n magas számhegyet hoz létre!
Bemenet:

 5
Kimenet:
1 2 3 4 5 4 3 2 1
  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
  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
  1. Írjuk fel az alábbi összefüggésekkel megadott sorozat első n elemét ciklussal:

a1=1
és
an=43an1

Feladat szekció vége

C# játszótér

Összecsukás
Teljes képernyő

Python játszótér

Összecsukás
Teljes képernyő
Lecke terület vége