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 2022. márciusi 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ő 2022. április 19-én LEJÁRT.


I. 559. Egy számítógépes játékban két háromfős csapat játszik egymással. A játékosok a korábbi játszmák eredményei alapján pontszámokkal rendelkeznek, melyeket a győzelmeik és vereségeik alapján számít ki a játékprogram. A kapott pontok minden esetben pozitív egész számok.

A számítógépes játékban egy játszmába hat játékos jelentkezik be. Kezdetben az első három bejelentkező játékos az első, a másik három pedig a második csapatba kerül. A program igyekszik a pontszámok alapján egyenlő erősségű csapatokat létrehozni. A csapatok erősségét a játékosok pontszámának összegével adjuk meg. A csapatok elosztását úgy végzi a program, hogy legföljebb egy játékost az egyik csapatból kicserél egy másik játékosra a másik csapatból. A játszmában a 6 játékos úgy alkot két csapatot, hogy legföljebb egy ilyen cserével a két csapat erőssége a lehető legkevésbé térjen el egymástól.

Készítsünk programot, amely a 6 játékos pontszáma alapján megad egy elosztást. Ha több ilyen elosztás lehetséges, akkor bármelyik megadható.

A bemenet egyetlen sorában a játékosok pontszáma szerepel egy-egy szóközzel elválasztva. Az \(\displaystyle i\)-edik szám az \(\displaystyle i\)-edik játékos pontszáma.

A kimenet egyetlen sorában a csapatok elosztása szerepel: az első három szám az egyik csapat, míg a második három szám a második csapat tagjait jelenti. Amennyiben nem szükséges cserélni, akkor az 1 2 3 4 5 6 számsorozatot kell kiírni szóközzel elválasztva. Ha történt csere, akkor a megfelelő helyen lévő sorszámokat kell cserélni.

BemenetKimenet
125 68 93 77 83 119 6 2 3 4 5 1

Magyarázat: az 1. játékost cseréltük a 6. játékosra. Így a 6., a 2. és a 3. játékos alkotja az egyik csapatot, melynek erőssége \(\displaystyle 119+68+93=280\), valamint a 4., 5. és 1. játékos alkotja a másik csapatot, melynek erőssége \(\displaystyle 77+83+125=285\).

Beküldendő egy i559.zip tömörített állományban a forrásprogram és egy rövid dokumentáció, amely megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)

megoldás, statisztika


I. 560. A hagyományos keresztrejtvényben a szavak elválasztására fekete mezők szolgálnak. A megfejtésekkel az üres mezők vízszintesen balról jobbra, illetve függőlegesen felülről lefelé tölthetők ki. A mezők számozása a bal felső sarokból indul. Minden olyan mező számot kap, ahol vízszintesen, vagy függőlegesen megfejtés kezdődik, tehát egy mezőt akkor kell számozni, ha üres, és teljesül rá, hogy felette fekete, alatta pedig üres mező van, vagy hogy tőle balra fekete, jobbra pedig üres mező található. A keresztrejtvény egybetűs szavakat általában nem tartalmaz. Ha a mező a keresztrejtvény szélénél van, akkor a keresztrejtvény szélét fekete mezőnek tekintjük.

A honlapunkról letölthető keresztrejtveny.txt tabulátorokkal tagolt adatfájlban egy \(\displaystyle 10\times 10\)-es keresztrejtvény hálója van leírva. A fekete mezőket ,,f'' az üreseket pedig ,,.'' karakter ábrázolja.

Feladatunk, hogy táblázatkezelő program segítségével a szabályoknak megfelelően számozzuk be a keresztrejtvény mezőit és jelenítsük meg a mintának megfelelően.

A megoldás során tetszőleges oszlopokban végezhetünk segédszámításokat, de ezek értelmezését segítsük elő feliratokkal. A formázást a mintának megfelelően végezzük el, úgy, hogy a megjelenés kövesse a forrás esetleges változását. A megoldásban saját függvény vagy makró nem használható.

Beküldendő egy tömörített i560.zip állományban a megoldást tartalmazó munkafüzet és a megoldás rövid leírását bemutató dokumentáció.

Letölthető állomány: keresztrejtveny.txt

(10 pont)

statisztika


I. 561. (É). Egy nagy, nemzetközi ékszerforgalmazó cég elérkezettnek látta az időt, hogy Magyarországon is megjelenjen. Kezdetben a budapesti plázákban nyitottak négy boltot. Ezek négyhavi forgalmi adatai alapján készítsünk adatbázist ekszerboltok néven.

1. Importáljuk az adatbázisba a szövegfájlok nevével megegyező táblákba a boltok.txt, a forgalom.txt és a honap.txt szövegfájlok tartalmát. A fájlok UTF-8 kódolásúak, tabulátorral tagoltak, első sorukban a mezőnevek szerepelnek. A forgalom táblához adjuk hozzá a vid mezőt.

A datum megjelenése legyen rövid dátum, az idopont mező legyen rövid idő. A pénzösszegeket mindenhol forint pénznem formában, 0 tizedesjeggyel jelenítsük meg.

A táblák kapcsolata:

A következő feladatok megoldásánál a lekérdezéseket és a jelentést a zárójelben olvasható néven mentsük. Ügyeljünk arra, hogy a megoldásban pontosan a kívánt mezők szerepeljenek.

2. Határozzuk meg az egyes boltok négyhavi összbevételét boltonként. Csak a bolt címét és az összbevételt írassuk ki. (2bevetel)

3. Készítsük el a havi forgalmi jelentést a minta szerint. (3havijel)

4. Mikor, melyik boltban (elég a cím mező) vásároltak 500\(\displaystyle \,\)000 Ft felett? Időrendben listázzuk ki az adatokat a vásárlás összegével együtt. (4draga)

5. A boltvezetők jutalékot kapnak a készpénzes vásárlások után. A jutalék összege a vásárlás összegének fixen rögzített százaléka. Adjuk meg, hogy ki az a boltvetető, aki a legtöbb jutalékot kapta. (5legjobb)

6. Áprilisban húsvét előtt (elsejétől tizenhatodikáig) a boltokban akciós áron adtak minden terméket. A cég vezetése kíváncsi arra, hogy ezeken a napokon naponta mekkora volt az egyes boltok bevétele és ez hány eladásból származik? Adjuk meg a választ, rendezzük dátum és azon belül a bolt irányítószáma szerint. Ezeken túl a bolt címe, a napi vásárlások összege és száma jelenjen meg. (6akcio)

7. Nem tanácsos éjszakára sok pénzt tartani a boltokban, Ezért egy pénzszállító cég esténként a napi bevétel 150\(\displaystyle \,\)000 Ft feletti részét begyűjti és elszállítja a bankba. A cég tarifája a bankba szállított pénz 2%-a. Mennyi a pénzszállító cég bevétele az ékszerbolthálózattól a négy hónap alatt? (7szallitas)

8. Az alkalmazottakban felmerült, hogy szóba jöhetne a hétvégi zárvatartás, ezért a vezetőség szeretné megtudni a hétvégi, illetve hétköznapi bevételek átlagát. Ha a hétvégi lényegesen elmarad a hátköznapitól, a vezetés megfontolja az ötletet. Azt, hogy egy adott nap a hét melyik napja, a WeekDay függvény segítségével deríthető ki. Használatának nézzünk utána a súgóban. (8ahetvege, 8bhetkoznap)

Beküldendő egy tömörített állományban az ekszerboltok adatbázis és egy rövid dokumentáció, amely tartalmazza az alkalmazott adatbázis-kezelő program nevét és verziószámát.

Letölthető állományok: bolt.txt, forgalom.txt, honap.txt.

(10 pont)

megoldás, statisztika


I/S-jelű feladatok

A beküldési határidő 2022. április 19-én LEJÁRT.


I/S. 61. Egy távoli országban \(\displaystyle N\)-féle papírpénz van forgalomban, az \(\displaystyle i\)-edik értéke \(\displaystyle P[i]\). A \(\displaystyle P[i]\) értékek páronként különböznek, nincs két egyenlő. Egy pénzrendszer észszerű, ha nem létezik olyan \(\displaystyle x\) és \(\displaystyle y\) értékű papírpénz, amelyekre teljesül az \(\displaystyle x < y < 2x\) egyenlőtlenség. Tudjuk, hogy kezdetben a pénzrendszer észszerű. Szeretnénk bevezetni egy új, az eddigiektől különböző értékű papírpénzt úgy, hogy a pénzrendszer továbbra is észszerű maradjon. Továbbá az új papírpénz értéke legyen pozitív egész, és nem nagyobb, mint \(\displaystyle K\). Adjuk meg, hogy hányféleképpen választhatjuk meg az új papírpénz értékét.

Bemenet: az első sorában az \(\displaystyle N\) és \(\displaystyle K\) számok találhatók szóközzel elválasztva. A következő sor \(\displaystyle N\) számot tartalmaz: az \(\displaystyle i\)-edik szám \(\displaystyle P[i]\), azaz az \(\displaystyle i\)-edik papírpénz értéke.

Kimenet: egyetlen sorában egy szám szerepeljen: hányféleképpen választhatjuk meg az új papírpénz értékét.

Bemenet (a / jel sortörést helyettesít) Kimenet
2 11 / 2 5 3

Magyarázat: az 1, a 10 és a 11 értékeket választhatjuk.

Korlátok: \(\displaystyle 1 \le N \le 100\), \(\displaystyle 1 \le K \le 10^{9}\), \(\displaystyle 1 \le P[i] \le 10^{9}\) páronként különböznek. Időlimit: 0,4 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle 1 \le K \le 10^{5}\) esetén a program helyes kimenetet ad.

Beküldendő egy is61.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)

statisztika


S-jelű feladatok

A beküldési határidő 2022. április 19-én LEJÁRT.


S. 160. Ádám meg szeretné látogatni Évát. A kettejük közt lévő utak hálózata leírható egy irányítatlan gráffal, melyben a csúcsok a kereszteződések és az élek a köztük lévő utak. Ádám az egyes sorszámú kereszteződésből indul és a legnagyobb, \(\displaystyle N\)-es sorszámúba szeretne eljutni.

Ádám eddig mindig a két pont közötti legrövidebb utak valamelyikén ment. Adjuk meg, hányféle különböző legrövidebb út van a két pont között.

Mivel gyakran megy látogatóba, unja már ezeket a lehetőségeket, így most egy olyan útvonalat szeretne választani, amelynek hossza szigorúan nagyobb, mint a legrövidebb út hossza. Adjunk meg, hogy legalább mekkora lesz az új útvonal hossza.

Bemenet: az első sor tartalmazza a kereszteződések \(\displaystyle N\) és az utak \(\displaystyle M\) számát. A következő \(\displaystyle M\) sor mindegyike egy-egy utat ír le a két végpontjával.

Kimenet: az első sorába a legrövidebb utak száma kerüljön. A kimenet második sorába írjuk az új útvonal minimális hosszát. Ha nincs a legrövidebbnél hosszabb út, akkor -1-et kell kiírni.

Minta:

Bemenet (a / jel sortörést helyettesít) Kimenet (a / jel sortörést helyettesít)
3 3 / 1 2 / 2 3 / 3 1 1 / 2

Korlátok: \(\displaystyle 2\le N\le 300\). Időlimit: 1 mp.

Értékelés: a pontok 50%-a kapható arra a megoldásra, amelynél a kimenet első sora helyes.

Beküldendő egy s160.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)

statisztika


Figyelem!

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