A KöMaL 2024. novemberi 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ű feladatokA beküldési határidő 2024. december 16-án LEJÁRT. |
I. 639. Ismerjük egy vállalkozás dolgozóinak életkorát egy adott sorrendben. Az életkoruk alapján csoportokat szeretnénk kialakítani. Egy csoportba tesszük azokat, akiknek életkora legfeljebb 1 évvel tér el valakitől a csoportban. Például, ha a cégnél dolgozik egy 34 éves, egy 35 éves és egy 36 éves ember, akkor ők egy csoportba tartoznak.
Készítsünk programot i639 néven, amely \(\displaystyle N\) (\(\displaystyle 1\leq N\leq 100\)) dolgozó \(\displaystyle E_i\) (\(\displaystyle {20\leq E_i\leq 90}\)) életkorának ismeretében meghatározza a csoportok számát, a legnagyobb csoport létszámát és azt, hogy ebből a csoportból hányadik az első és az utolsó dolgozó.
A program standard bemenetének első sorában a dolgozók \(\displaystyle N\) száma található. A következő sorban az \(\displaystyle N\) dolgozó életkora szerepel egy-egy szóközzel elválasztva.
A program a standard kimenetre írja ki soronként a csoportok számát, a legnépesebb csoport létszámát, a csoport első tagjának és utolsó tagjának sorszámát.
Példa:
Magyarázat: a bemenetben szereplő életkorok csoportokba sorolását a különböző színek jelzik. A zöld színű korcsoportban vannak a legtöbben.
Beküldendő egy tömörített i639.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ó.
(10 pont)
I. 640. A Normál utcában a házak mérete és a szomszédos kapuk távolsága egyenlő egymástól. Az utca egyik oldalán a páros, a másik oldalán a páratlan házszámok vannak 1-től 50-ig. Az utcában minden szabályosan ismétlődő, kivétel a közvilágítás, a telepített lámpák elhelyezése.
Néhány lámpaoszlopot már telepítettek a házak kapuja elé. Egy-egy lámpa az azonos utcaoldalon a saját, az előző és az utána következő, valamint az úttest túloldalán szemben lévő ház előtti járdát világítja meg. A házak elé legfeljebb egy lámpaoszlopot telepítettek, és az utca első vagy utolsó házai előtt nincs lámpaoszlop.
Készítsünk programot i640 néven, amely a következő feladatokat megoldja, illetve a kérdésekre válaszol.
A program standard bemenetének első sorában a már az utcába telepített lámpaoszlopok száma \(\displaystyle N\) (\(\displaystyle 0\leq N\leq 46\)) van. A következő sorban \(\displaystyle N\) darab házszám van növekvő sorban, amely megadja, hogy hányas számú házak kapuja előtt áll lámpaoszlop.
A program standard kimenetére írjuk ki a feladatok megoldását a mintához hasonló formában.
- Írjuk ki a Normál utca páratlan és a következő sorban a páros oldalának házszámait úgy, hogy a megvilágított járdájú házak házszáma elé a „.'' karaktert, különben szóközt írjunk.
- Határozzuk meg azokat a házszámokat, amelyek előtt már áll lámpaoszlop, de ha azok közül valamelyiket leszerelnénk, akkor a megvilágítás nem változna.
- Soroljuk fel azoknak a házaknak a házszámát, amelyek elé egy lámpát telepítve a megvilágított házak száma 4-gyel, 3-mal, 2-vel, 1-gyel növekedne, vagy nem növekedne. Vegyük figyelembe, hogy utcavégi ház elé nem lehet lámpaoszlopot telepíteni.
- Világítsuk meg a teljes utcát a lehető legkevesebb új lámpaoszlop telepítésével. Adjuk meg a házszámokat egy ilyen telepítéshez növekvő sorrendben. Több lehetséges megoldás esetén elegendő egyet megadni.
Példa:
Beküldendő egy tömörített i640.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ó.
(10 pont)
I. 641. A feladat a szeptemberi számban megjelent I. 633. feladat folytatása.
Most háromféle speciális prímet keresünk az első százezer prímszám között, ezek a palindromprímek, a mírpszámok és a Bölcsföldi-Birkás prímek. Nézzük is ezek definícióit:
Palindromprímnek nevezzük azt a \(\displaystyle p\) prímszámot, amelynek \(\displaystyle 10\)-es számrendszerbeli alakja palindrom, vagyis balról és jobbról olvasva ugyanaz a szám. Például: a \(\displaystyle 12421\) ilyen prím.
Mírpszámnak azt a prímet nevezzük, amelynek \(\displaystyle 10\)-es számrendszerbeli alakja visszafelé (jobbról balra) olvasva is prím, de a szám nem palindromprím. Például: az \(\displaystyle 1009\) ilyen szám, hiszen nem palindrom, de a \(\displaystyle 9001\) is prím.
Bölcsföldi-Birkás prímnek azt a prímet nevezzük, amelynél az egyes számjegyek, a számjegyek száma és azok összege is prím. Például: a \(\displaystyle 757\) ilyen szám, hiszen számjegyei (\(\displaystyle 5\) és \(\displaystyle 7\)) prímek, a számjegyek száma (\(\displaystyle 3\)) is prím és a számjegyek összege (\(\displaystyle 19\)) is prím.
- Egy üres táblázatkezelő munkafüzetben nevezzük át „prím100000''-re a munkalapot, a munkafüzetet mentsük prim_2-resz néven.
- Illesszük be az A3 cellától az első \(\displaystyle 100\,000\) prím listáját a 100000prim.txt fájlból. Az első két sorba oszlopfeliratok kerülhetnek a számításokhoz.
- Válogassuk ki a három prímcsoport első \(\displaystyle 100\,000\) prím közé eső tagjait. A számításokat ezen a munkalapon végezzük.
- Hozzunk létre egy spec nevű munkalapot, amelynek A, B és C oszlopaiban szerepeljen az első sorban a prímcsoportok neve, majd alattuk növekvő sorrendben helykihagyás nélkül az adott csoportok prímszámai.
- Ezek után végezzünk statisztikai vizsgálatokat, amelyekben a legfeljebb hatjegyű prímeket vizsgáljuk, mert nincs a listában az összes hétjegyű prímszám.
- Határozzuk meg, hogy a pontosan egy-, kettő-, \(\displaystyle \ldots\), hatjegyű természetes számok hány százaléka prím. Készüljön erről oszlopdiagram külön diagramlapra, amelynek neve legyen százalék.
- Határozzuk meg, hogy a prímekben hányszor fordulnak elő az egyes számjegyek, például a \(\displaystyle 89393\) számban van két hármas, egy nyolcas és két kilences számjegy. Készüljön erről oszlopdiagram külön diagramlapra a minta szerint, melynek neve legyen számjegyek.
- Jelenítsük meg az A100004-es cellában az alábbi szöveget: „táv > 99'' és a B100004-es cellában adjuk meg, hogy hány esetben fordul elő, hogy két egymást követő prímszám különbsége legalább \(\displaystyle 100\).
- Jelenítsük meg az A100005-ös cellában az alábbi szöveget: „maxtáv'' és a B100004 es cellában az első \(\displaystyle 100\,000\) prím esetén a szomszédos prímszámok maximális különbségének értékét, a C100004 és D10004 cellákban pedig a két szóban forgó prímszámot.
A 6., 7. és 8. pont módosításaival elérhető, hogy 5 MB alá kerüljön a fájlméret, és feltölthető legyen a megoldás.
- A prim100000 munkalapon cseréljük le oszloponként az első tizenhét sor utáni képleteket az értékükre. Hasonlóan járjunk el a 100002 sor alatti adatokkal és a két diagram adataival, továbbá a teljes spec munkalappal. Ezzel is csökkentjük a fájl méretét.
- Töröljük a prim100000 munkalap 20000:80000 sorának tartalmát.
- Végül a munkafüzetet mentsük az eredeti nevén xlsb formátumban (bináris munkafüzetként).
Segédszámításokat a prím100000 munkalapon a B, a spec munkalapon pedig a D oszloptól jobbra lehet végezni. A megoldásban saját függvény vagy makró nem használható.
Beküldendő az i641.zip tömörtett állomány a munkafüzettel és egy rövid dokumentációval, amelyben szerepel a kiválogatások magyarázata, a táblázatkezelő neve, verziószáma.
Letölthető fájl: 100000prim.txt
(10 pont)
I. 642. Néhány hazai meteorológiai állomás 1985 és 2019 között mért éves adatait vesszük górcső alá.
- Nyissunk egy üres táblázatkezelő munkafüzetet. Töltsük be egy üres munkalapra az A1 cellától kezdve az UTF-8 kódolású, tabulátorokkal tagolt metadat.txt fájl tartalmát. A munkalap kapja a metadatok nevet. Munkánkat mentsük idojaras néven a táblázatkezelő alapértelmezett formátumában.
- Formázzuk meg az adatokat a minta és a leírás szerint.
- Egyesítsük az A1:AJ1cellatartományt;
- szegélyezzük a munkalap adatokat vagy képleteket tartalmazó celláit;
- a munkalap betűtípusa legyen Arial, az alap betűméret 11 pont;
- az első sor betűmérete legyen 16 pontos, a betűk félkövérek;
- állítsunk be olyan oszlopszélességet, hogy minden adat látható legyen;
- a második sor legyen kb. dupla magasságú, a betűstílus legyen félkövér, a cellák függőlegesen és vízszintesen középre igazítottak az A2-es cellát kivéve – lásd a mintát;
- minden cella, amely képletet tartalmaz legyen sárga háttér- és zöld betűszínű;
- a mintákon halványsárga tónusú cellák kapjanak a minták szerinti tónust és félkövér betűtípust.
- Számítsuk ki az Országos átlagot tartalmazó sorokba az adott meteorológiai jellemzők évenkénti átlagát az összes évre, és az AK oszlopba az évek során mért legnagyobb értékét.
- Számítsuk ki a 70. sorban az egyes évek esőmentes napjainak számát.
- A 71. sor adatcelláiba kerüljön az adott évszám, amennyiben a lehullott csapadékösszeg nem érte el a 450 mm-t, különben a cella maradjon üres. A B72-es cellába számítsuk ki a teljes 1985–2019-es időszak évi csapadékátlagát.
- Az A74-es cellába kerüljön annak a mérőállomásnak a helye, ahol az évi legtöbb csapadékot mérték.
- Az A76-os cellába kerüljön annak a mérőállomásnak a helységneve, ahol a leghidegebb hőmérsékletet mérték, a B76-os cellába pedig az évszám, amikor feljegyezték a mért értéket.
- Készítsünk új diagramlapra halmozott oszlopdiagramot az évenkénti esős és esőmentes napok számáról a minta szerint. A diagramlap neve Esős napok legyen.
- Készítsünk új diagramlapra grafikont Budapest, Kecskemét és Kékestető átlaghőmérsékletéről. Jelenítsük meg az egyes adatsorok lineáris trendjét is a minta szerint. A diagramlap neve Átlaghőmérsékletek legyen.
- Készítsünk új diagramlapra grafikont a fagyos és hőségnapok alakulásáról. A fagyos napként való megjelölés feltétele, hogy a napi minimum-hőmérséklet 0 °C, vagy az alatt legyen. Hőségnap alatt azokat a napokat értjük, amikor a napi maximum-hőmérséklet eléri vagy meghaladja a 30 °C-ot. Jelenítsük meg az egyes adatsorok lineáris trendjét is a minta szerint. A diagramlap neve Fagyos és hőségnapok legyen.
Segédszámításokat az AL oszloptól jobbra, illetve a 78. sortól lefelé végezhetünk. A megoldásban saját függvény vagy makró nem használható.
Beküldendő egy tömörített i642.zip állományban a táblázatkezelő munkafüzet, illetve egy rövid dokumentáció, amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma.
Az adatok forrásai:
https://www.ksh.hu/docs/hun/xstadat/xstadat_eves/i_met002ca.html
https://www.ksh.hu/ffi/3-8.html
Letölthető fájl: metadatok.txt
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.