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 2021. októberi 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ő 2021. november 15-én LEJÁRT.


I. 544. Óvodások névre szóló dobozokban üveggolyókat kapnak ajándékba, mindannyian azonos számút. Sajnos szállítás közben a golyók kipotyogtak a dobozokból, de nem vesztek el. Átadás előtt a dobozokat egy sorba helyezték el és számolgatás nélkül, találomra a dobozokba tették a golyókat. Az óvónő igazságos szeretett volna lenni, és miután a golyók száma biztosan a gyerekek számának többszöröse, átrendezte a golyókat úgy, hogy mindegyik dobozban azonos számú golyó legyen. Ezt úgy végezte el, hogy csak szomszédos dobozok között helyezett át golyókat, ha szükséges volt.

Készítsünk programot i554 néven, amely megadja, hogy minimum hány áthelyezést kellett az óvónőnek elvégeznie.

A program standard bemenetének első sorában a dobozok \(\displaystyle N\) (\(\displaystyle 2\le N\le 1000\)) száma van. A következő sorban az \(\displaystyle N\) dobozban lévő golyók száma szerepel (\(\displaystyle 1\le \mathrm{DB}_{i}\le 1000\)). A golyók számának összege osztható \(\displaystyle N\)-nel.

A program standard kimenetén a mozgatások számának minimuma szerepeljen.

Beküldendő egy tömörített i554.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)

megoldás, statisztika


I. 545. A feladat a lapban megjelent ,,Titkos üzenet, száll a széllel'' című cikk elolvasása után érthető és oldható meg.

Hozzuk létre a vigenere munkafüzetet. A munkalap új neve legyen Tábla. Állítsuk be az oszlopok szélességét úgy, hogy a cellák nagyjából négyzet alakúak legyenek. Hozzuk létre a Titkosítás és Dekódolás munkalapokat és állítsuk a cellákat itt is nagyjából négyzet alakúra.

A C2:AK2 tartományba gépeljük be a magyar egybetűs ábécét, ezen alapadatokat felhasználva, csupán másolással és képletekkel hozzuk létre a Vigenère-táblát, alkalmazzunk a minta szerinti színezést és keretezést. Hajtsuk végre a mintákról leolvasható formázásokat.

A Titkosítás munkalapra egy maximum 20 karakteres kulcsot és legfeljebb 10 darab 0-100 karakteres nyers szöveget lehessen bevinni. Ezek bevitele után jelenjen meg a megfelelő helyen a nyers szöveg Vigenère-kódolt változata. Minden sort külön üzenetként kezeljen a munkafüzet. A kódolt változat ne jelenjen meg, amíg valamelyik adat nem megfelelő hosszú (\(\displaystyle 0< \text{kulcshossz} < 21\) és \(\displaystyle 0 \le \text{sorhosszak} < 101\)). Ha valamelyik feltétel nem teljesül, arról a minták szerinti hibaüzenetek tájékoztassanak.

A Dekódolás munkalap működjön hasonlóan, csak erre a kódolt szövegsorokat lehessen beírni és a visszafejtett szöveget megkapni.

A két új munkalapon a 30. sor alatt végezhetünk segédszámításokat. A kész Vigenère-táblát átmásolhatjuk mindkettőre. A megoldáshoz makró vagy más program nem használható, csak a táblázatkezelő beépített függvényei.

Beküldendő egy i555.zip tömörített állományban a forrásprogram és egy rövid dokumentáció, amely megadja, hogy a program milyen táblázatkezelő program melyik verziójában készült és egy néhány soros magyarázat arról, miként készült a Vigenère-tábla a Tábla munkalapon.

A feladatban szereplő munkafüzetekről mintaképek:

(10 pont)

megoldás, statisztika


I. 546. (É). Az Intel Atom processzorokkal kapcsolatban szeretnénk néhány kérdésre választ kapni. A kérdések megválaszolásához több alkalmazást kell használnunk. Először egy böngészőre lesz szükségünk:

1. Az intel.com oldalon az Atom processzorok specifikációjáról szóló oldalról töltsünk le adatokat! Keressük fel a következő oldalt: https://ark.intel.com/content/www/us/en/ark/products/series/29035/intel-atom-processor.html

2. Jelöljük be az összes processzort (Compare – All), majd válasszuk az összehasonlításukat (Compare). A megjelenő oldalon kérjük az összehasonlítás eredményének letöltését (Export comparison), majd mentsük le és nyissuk meg a letöltött táblázatot.

3. Az adatokat tartalmazó táblázatot mentsük intelatom néven a táblázatkezelő alapértelmezett formátumában.

4. A letöltött adatok munkalapján minden adatot jelöljünk ki, majd nyissunk egy új munkalapot database néven. Illesszük be ide az adatokat transzponálva – tehát úgy, hogy az oszlopok és sorok felcserélődjenek.

5. Nézzük át az adatokat, állítsunk be megfelelő oszlopszélességeket, töröljük a teljesen üres oszlopokat a táblázatból, valamint az első oszlopban lévő teljes nevet, mivel az megadható más oszlopok adataiból.

6. Töröljük az Intel, valamint az Atom® szövegrészeket a teljes munkalapról, ahol utána szóköz következik, ott azt is.

7. Az adatoszlopok értelmezése mellett, fordítsuk magyarra a táblázat fejlécét a mintának megfelelően.

8. Cseréljük a számot tartalmazó oszlopokban a tizedespontokat vesszőre.

9. Töröljük a számok mellől a mértékegységeket és a felesleges szóközöket a Csíkszélesség, az Ajánlott ár, a Frekvencia, a TDP, és a Tranzisztorok száma oszlopokban. A Frekvencia oszlopban a MHz értékeket váltsuk GHz értékekre.

10. Rendezzük az adatokat a Sorozat, azon belül a Kódjel oszlop szerint növekvő sorrendbe.

11. Mentsük a táblázatot, majd egy adatbázis-kezelő alkalmazással hozzunk létre egy üres adatbázist intelatom néven, és importáljuk a táblázatból az adatokat.

12. Az importált adatokat tartalmazó tábla neve atom legyen, a típusokat értelemszerűen állítsuk be, és adjunk hozzá automatikus értékekkel (számláló) elsődleges kulcsot.

Készítsünk lekérdezéseket az alábbi kérdések megválaszolására. A lekérdezéseket a zárójelben lévő néven mentsük el.

13. Melyek azok az Atom processzorok (Sorozat és Kódjel), és hány processzormaggal készültek (Magok száma), amelyeket mobil gépekbe szántak és 2014 második félévében adtak ki? (13obil14)

14. Melyek azok az Atom processzorok (Sorozat, Kódjel, Frekvencia), amelyek a legnagyobb frekvenciával dolgoznak a 22 nanométeres csíkszélességgel készült Atom processzorok közül? (14maxf22)

15. Melyik foglalattípushoz hány processzor készült, és mennyi azok legkisebb és legnagyobb fogyasztása? Csak azokkal a processzorokkal dolgozzunk, ahol a Foglalat és a TDP mező nem üres. (15foglalatok)

16. Adjuk meg a különböző csíkszélességű processzorok átlagos fogyasztását a fogyasztás szerint csökkenő sorrendben. (16fogyaszt)

17. Készítsünk listát a C sorozat szerverprocesszorairól a Magok száma és a Szálak száma szerint csökkenő sorrendben. A listában szerepeljen a Kódjel, a Frekvencia, az Ajánlott ár, valamint a processzormagok és szálak száma. (17csorozat)

Beküldendő egy i556.zip tömörített állományban a megoldásként kapott munkafüzet és adatbázis, valamint egy rövid dokumentáció, amely megadja, hogy a két állomány melyik táblázatkezelő és adatbázis-kezelő program melyik verziójában készült.

(10 pont)

megoldás, statisztika


I/S-jelű feladatok

A beküldési határidő 2021. november 15-én LEJÁRT.


I/S. 56. Adott egy \(\displaystyle N\) elemű \(\displaystyle T\) tömb, amelynek az \(\displaystyle i\)-edik elemét \(\displaystyle T[i]\)-vel jelöljük \(\displaystyle (1\le i\le N)\). Adjuk meg, hogy hány olyan \(\displaystyle (i, j)\) pár van, ahol \(\displaystyle 1\le i < j\le N\), \(\displaystyle T[i] > T[j]\), valamint \(\displaystyle T[j]-T[i]\) és \(\displaystyle j-i\) egyaránt páros számok.

A bemenet első sorában az \(\displaystyle N\) szám található. A következő sorban \(\displaystyle N\) szám található: a \(\displaystyle T\) tömb elemei.

A kimenet egyetlen sorában adjuk meg, hogy hány olyan \(\displaystyle (i, j)\) számpár van, amely a feltételeknek eleget tesz.

Az \(\displaystyle i=1\), \(\displaystyle j=3\) indexű elemekből áll az egyetlen megfelelő pár.

Korlátok: \(\displaystyle 2\le N\le {10}^{5}\), \(\displaystyle -{10}^{9}\le T[i]\le {10}^{9}\). Időlimit: 0,3 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle N\le 100\).

Beküldendő egy is56.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)


S-jelű feladatok

A beküldési határidő 2021. november 15-én LEJÁRT.


S. 155. Egy titkosszolgálat tagjai laza kapcsolatban állnak egymással. Ha egy tag megkap egy titkos információt, azt csak a bizalmasainak adja tovább, kivéve annak, akitől a hírt kapta. Így előfordulhat, hogy egy hír olyan ügynökhöz kerül, aki már hallotta azt. Ezt mindenképp el szeretnék kerülni.

A szolgálat tagjait pozitív egész számok jelölik. A titkosszolgálat vezetője minden tagtól bekérte, hogy kik a bizalmasai. A kapott információkat mappákban helyezte el, így mindegyik nappában egy-egy számpár szerepelt: két olyan ügynök sorszáma, akik kölcsönösen bíznak egymásban.

A titkosszolgálat vezetője sorba állította a mappákat, és a hírek továbbítására a következő stratégiát gondolta ki: minden hír esetén kiválaszt egy \(\displaystyle i\) és egy \(\displaystyle j\) számot, majd a hír továbbításánál csak azokat a \(\displaystyle k\) sorszámú mappákat tartja meg, melyekre \(\displaystyle i\le k\le j\). A hírt a kiválasztott mappákban szereplő egyik személlyel közli. Ezután mindenki csak olyan ügynöknek adhatja tovább a hírt, akivel a közös mappájuk a kiválasztottak között szerepel. Adjuk meg, hányféleképpen választhatja ki az \(\displaystyle i\) és \(\displaystyle j\) számokat úgy, hogy a megtartott mappákban szereplő bármely ügynöktől indulva a hír nem jut el kétszer egyik ügynökhöz sem.

Bemenet: az első sor tartalmazza az ügynökök \(\displaystyle N\), és a kapcsolatok \(\displaystyle M\) számát. A következő \(\displaystyle M\) sor mindegyike egy bizalmi kapcsolatot ír le, abban a sorrendben, ahogy a vezető rendezte.

Kimenet: a kimenet első és egyetlen sorába a megfelelő \(\displaystyle (i,j)\) párok számát kell írni. (Két pár akkor különböző, ha legalább az egyik tagja különböző.)

Minta:

Bemenet (a / jel sortörést jelent)Kimenet
4 5 / 1 3 / 3 2 / 2 1 / 1 4 / 4 210

Magyarázat: a lehetséges \(\displaystyle (i, j)\) párok: \(\displaystyle (1, 1)\), \(\displaystyle (1, 2)\), \(\displaystyle (2, 2)\), \(\displaystyle (2, 3)\), \(\displaystyle (2, 4)\), \(\displaystyle (3, 3)\), \(\displaystyle (3, 4)\), \(\displaystyle (4, 4)\), \(\displaystyle (4, 5)\), \(\displaystyle (5, 5)\).

Korlátok: \(\displaystyle 3\le N,M\le 10\,000\). Időlimit: 0,5 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle N,M\le 100\).

Megjegyzés: egy-egy hírt nem feltétlenül kap meg minden ügynök.

Beküldendő egy s155.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)


Figyelem!

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