Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

A KöMaL 2024. szeptemberi informatika feladatai

Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.


Feladat típusok elrejtése/megmutatása:


I-jelű feladatok

A beküldési határidő 2024. október 15-én LEJÁRT.


I. 631. Anna, Béla és Csilla egy geometriai játékot játszanak. A játék minden körében mindhárman gondolnak egy pozitív egész számra 1 és 100 között, majd megmondják egymásnak a gondolt számokat, és a következők szerint kapnak pontokat: ha a három számot három szakasz hosszának tekintjük, és azokból \(\displaystyle \ldots\)

  • összeállítható egy derékszögű vagy egyenlő szárú háromszög, akkor Anna kap A pontot;
  • összeállítható egy nem speciális, azaz sem nem derékszögű, sem nem egyenlő szárú háromszög, akkor Béla kap B pontot;
  • nem képezhető háromszög, akkor Csilla kap C pontot.

Készítsünk programot i631 néven, amely modellezi a játékot, és \(\displaystyle 10\,000\) kör alapján megadja, hogy hány pontot szerzett a három játékos.

A program standard bemenetének egyetlen sorában a három játékos által egy körben szerezhető pontok száma, A, B és C szerepel egy-egy szóközzel elválasztva.\(\displaystyle ^1\)

Példa bemenetKimenet
25 3 27375 14247 9912

(A kimenet a véletlenszerű értékek miatt csak tájékoztató jellegű.)

Beküldendő egy tömörített i631.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

\(\displaystyle ^1\) Felhívjuk a versenyzők figyelmét a standard bemenet és kimenet használatára ebben és a további feladatokban: a beolvasás és kiírás során ne jelenítsenek meg semmilyen üzenetet vagy magyarázó szöveget, csak a feladat által kért értékeket. Ha a beolvasás egy sorban három egész szám, akkor a program ezt fogja kapni bemenetként, nem szabad feltennie kérést vagy figyelmeztető szöveget a beolvasáshoz. Ha a várt kimenet egy sorban három szám, akkor a programnak a három számot kell kiírnia egy sorba, semmi mást.

(10 pont)

megoldás, statisztika


I. 632. Az első \(\displaystyle N\) pozitív egész számot sokféle módszerrel növekvő sorba lehet rendezni. Vannak egyszerű, de kevésbé hatékony és vannak hatékony, de bonyolultabb módszerek. Készítsünk programot i632 néven, amely egy \(\displaystyle N\) (\(\displaystyle 1\le N\le 1000\)) hosszúságú sorozatot a következő módszerrel rendez. Egy elemi lépés során a sorozat bal oldaláról egy választott szakaszt megfordítunk. A mintán szürke háttér mutatja a megfordítandó részsorozatot (1. ábra).

1. ábra

Az elemi lépések megfelelő sorozatával a számsor rendezhető. Próbáljuk meg a feladatot minél kevesebb lépésben megoldani. A program standard bemenetének első sorában a sorozat \(\displaystyle N\) hossza található. A bemenet második sorában a rendezendő \(\displaystyle N\) darab egész szám áll egy-egy szóközzel elválasztva. A program a standard kimenetre írja ki minden elemi lépés után a sorozat tagjait szóközzel elválasztva (2. ábra).

2. ábra

Beküldendő egy tömörített i632.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

Felhívjuk a versenyzők figyelmét a standard bemenet és kimenet használatára ebben és a további feladatokban: a beolvasás és kiírás során ne jelenítsenek meg semmilyen üzenetet vagy magyarázó szöveget, csak a feladat által kért értékeket. Ha a beolvasás egy sorban három egész szám, akkor a program ezt fogja kapni bemenetként, nem szabad feltennie kérést vagy figyelmeztető szöveget a beolvasáshoz. Ha a várt kimenet egy sorban három szám, akkor a programnak a három számot kell kiírnia egy sorba, semmi mást.

(10 pont)

megoldás, statisztika


I. 633. A prímek között a matematikusok sok speciális részhalmazt hoztak már létre az elemeik különleges tulajdonságai alapján a Fermat-prímektől a Mersenne-prímeken át a Sophie Germain-prímekig. Mi most négyféle speciális prímet keresünk egymillió alatt, ezek az ikerprímek, az additív prímek, a balról és a jobbról csonkolható prímek. Nézzük ezek definícióit:

Ikerprímnek nevezzük a \(\displaystyle p\), \(\displaystyle p+2\) számpárt, ha \(\displaystyle p\) is és \(\displaystyle p+2\) is prím. Például a 2999 és a 3001 ikerprímek.

Additív prímnek nevezzük azt a \(\displaystyle p\) prímszámot, amely számjegyeinek összege is prím. Például a \(\displaystyle 845987\) additív prím, mert a számjegyeinek összege \(\displaystyle 8+4+5+9+8+7=41\) szintén prím.

Balról csonkolható prímnek nevezzük azt a \(\displaystyle p\) prímszámot, amelyben nincs \(\displaystyle 0\) számjegy és a balról (az első számjegy elhagyásával) csonkolható része is balról csonkolható prím, például az \(\displaystyle 1613\) első jegyét elhagyva \(\displaystyle 613\)-at kapunk, ez prím, és tovább csonkolva a \(\displaystyle 13\) és a \(\displaystyle 3\) is prím.

Jobbról csonkolható prímnek nevezzük azt a \(\displaystyle p\) prímszámot, amelyben a jobbról (az utolsó számjegy elhagyásával) csonkolható része is jobbról csonkolható prím, például az \(\displaystyle 3137\) utolsó számjegyét elhagyva \(\displaystyle 313\)-at kapunk, ez prím, és tovább csonkolva a \(\displaystyle 31\) és a \(\displaystyle 3\) is prím.

  1. Egy üres táblázatkezelő munkafüzetben nevezzük át a munkalapot „prímek”-re.
  2. Illesszük be az A2 cellától az egymillió alatti prímek listáját a primek.txt fájlból.
  3. Mentsük el a munkafüzetet négy példányban iker, additiv, balcsonk és jobbcsonk neveken.
  4. Hozzunk létre mindegyik munkafüzetben egy-egy a nevükkel megegyező nevű munkalapot.
  5. Válogassuk ki a négy munkafüzetben a négy prímcsoport \(\displaystyle 1\,000\,000\) alatti tagjait.
  6. Jelenítsük meg az iker, az additiv, a balcsonk és a jobbcsonk munkalapokon növekvő számsorrendben a találatokat: az iker munkalapon az A és B oszlopban a prímpár két tagját; a többinél az A oszlopban.
  7. Beküldés előtt – a méretkorlát miatt – mind a négy munkafüzetben a munkalap nevével azonos munkalapon cseréljük le az adatokat az értékükre, majd a prímek munkalapon töröljük a számításokat nagyjából a 15. sortól lefelé, ha felette világos a számítási módszer.

Minták:

Segédszámításokat a prímek munkalapokon a B oszloptól jobbra lehet végezni. A megoldásban saját függvény vagy makró nem használható.

Beküldendő egy tömörített i633.zip állományban az iker, additiv, balcsonk és jobbcsonk táblázatkezelő munkafüzet és egy rövid dokumentáció, amelyben szerepel a kiválogatások magyarázata, a táblázatkezelő neve, verziószáma.

Letölthető fájl: primek.txt.

Felhívjuk a versenyzők figyelmét a standard bemenet és kimenet használatára ebben és a további feladatokban: a beolvasás és kiírás során ne jelenítsenek meg semmilyen üzenetet vagy magyarázó szöveget, csak a feladat által kért értékeket. Ha a beolvasás egy sorban három egész szám, akkor a program ezt fogja kapni bemenetként, nem szabad feltennie kérést vagy figyelmeztető szöveget a beolvasáshoz. Ha a várt kimenet egy sorban három szám, akkor a programnak a három számot kell kiírnia egy sorba, semmi mást.

(10 pont)

megoldás, statisztika


I. 634. A szabályos \(\displaystyle 8\times 8\)-as sakktábla \(\displaystyle a\), \(\displaystyle b\), \(\displaystyle \ldots\), \(\displaystyle g\), \(\displaystyle h\) jelzésű oszlopokból és \(\displaystyle 1\), \(\displaystyle 2\), \(\displaystyle \ldots\), \(\displaystyle 7\), \(\displaystyle 8\) jelzésű sorokból áll. A tábla bal felső mezője az \(\displaystyle a8\), ennek színe fehér, a \(\displaystyle b8\) mező fekete. Az éllel összeérő mezők színe ellentétes, a csúccsal összeérő mezők színe azonos. A játék kezdetén az 1. és 2. sor-ban helyezkednek el a világos, míg a 7. és 8. sorban a sötét sakkfigurák.

A két szélső sorba kerülnek a tisztek az alábbi sorrendben: bástya, huszár, futó, vezér, király, futó, huszár és bástya. A két vezér a színével azonos színű mezőn áll.

A 2. sort a világos gyalogok foglalják el, míg a sötét tiszteket védő gyalogok a 7. sort töltik meg.

  1. Nyissunk meg egy üres táblázatkezelő munkafüzetet, majd mentsük el sakklepes fájlnéven.
  2. Hozzuk létre a minta szerint jelzett helyen a kezdőállást mutató táblát.
    1. Gépeljük be a szövegeket;
    2. a sorok és oszlopok méretét állítsuk be úgy az egész munkalapon, hogy nagyjából négyzet alakúak legyenek a cellák, és elférjen bennük a minta szerinti tartalom;
    3. az A1:J10 tartomány celláit igazítsuk vízszintesen és függőlegesen is középre;
    4. a B2:I9 tartomány\(\displaystyle \ldots\)
      1. celláit szegélyezzük,
      2. celláinak betűszíne legyen piros (RGB 255;0;0),
      3. egészén feltételes formázással érjük el a pepita mintázatot.

  3. Másoljuk át az eddig elkészült táblázatrészt a Q1:Z10 tartományra.
  4. Hozzuk létre és formázzuk a minta szerint a K2:P6 és a K11:Z11 tartományt.
  5. Az eredeti B2:I9 tartományba gépeljünk be egy sakkállást.
  6. A továbbiakban egy sakklépést vizsgálunk. Ha az L3 és az O3 cellákba begépelünk egy-egy különböző szabályos sakktábla mezőazonosítót, akkor jelenjenek meg a tervezett lépés adatai, különben a mintán világoskék cellák maradjanak üresen:
    1. Az L4 cellában legyen a Honnan mezőn álló bábu színe, vagy „A mező üres” felirat.
    2. Az L5 cellába kerüljön a Honnan mezőn álló bábu megnevezése, vagy „A mező üres” felirat.
    3. Az L6 cellában jelenjen meg annak a bábunak a megnevezése, amelyik a Hová mezőn áll, vagy ha üres, akkor a „nem” felirat.
    4. Az M11 cellában szerepeljen az „Igen” szöveg, ha a lépés szabályos, illetve a „Nem” szó, és ettől egy vesszővel elválasztva ennek magyarázata, ha a lépés szabálytalan. A lehetséges magyarázatokat a magyarazat.txt fájl tartalmazza. (Ha több kizáró ok is van, a magyarazat.txt sorrendje szerinti elsőt adjuk meg.) Ez utóbbi esetben a cella színe váltson pirosra (RGB 255;0;0) és betűszíne sárgára (RGB 255;255;0).

Aki nem ismeri a szabályos sakklépéseket, az interneten megtalálhatja. Mivel a királlyal lehet sáncolni, vagy sakkba lépni, ezért a királyok lépését nem vizsgáljuk.

Minták:

A megoldásban saját függvény vagy makró nem használható.

Beküldendő egy tömörített i634.zip állományban a sakklepes táblázatkezelő munkafüzet és egy rövid dokumentáció, amelyben szerepel a táblázatkezelő neve, verziószáma.

Letölthető fájl: magyarazat.txt

Felhívjuk a versenyzők figyelmét a standard bemenet és kimenet használatára ebben és a további feladatokban: a beolvasás és kiírás során ne jelenítsenek meg semmilyen üzenetet vagy magyarázó szöveget, csak a feladat által kért értékeket. Ha a beolvasás egy sorban három egész szám, akkor a program ezt fogja kapni bemenetként, nem szabad feltennie kérést vagy figyelmeztető szöveget a beolvasáshoz. Ha a várt kimenet egy sorban három szám, akkor a programnak a három számot kell kiírnia egy sorba, semmi mást.

(10 pont)

megoldás, statisztika


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.