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 2023. decemberi 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. január 15-én LEJÁRT.


I. 607. Nevezzük közepes számoknak azokat a pozitív egész számokat, amelyek számjegyeinek számtani közepe osztója a számnak. Ilyenek például az egyjegyű számok, és ilyen szám a 15 vagy a 48. Készítsünk programot i607 néven, amely megadja, hogy adott intervallumban hány közepes szám található.

A program standard bemenetének egyetlen sorában a zárt intervallum két végpontja, két egész szám található egy szóközzel elválasztva. A program a standard kimenetre írja ki az intervallumba eső közepes számok darabszámát.

Példák:

BemenetKimenet
10 50 10
100 200 19
1000 1500 77

Beküldendő egy tömörített i607.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. 608. Egy vasútvonal állomásain a szabadban tárolják a betakarított cukorrépát. A cukorgyári kampány előtt az egyik állomásra fedett tárolót szeretnének építeni és a termést odaszállítani a többi állomásról, hogy a répa minőségromlása minél kisebb legyen. Melyik állomásra tervezzék a fedett tárolót, ha a költség a szállítási út hosszával és a szállított tömeggel is egyenesen arányos?

Készítsünk programot i608 néven, amely a megadja az \(\displaystyle N\) állomás előző állomástól mért \(\displaystyle H[N]\) távolságának és az ott tárolt cukorrépa \(\displaystyle T[N]\) tömegének ismeretében, hogy melyik állomáson legyen a fedett tároló a minimális szállítási költség mellett.

A program standard bemenetének első sorában a vasútállomások (\(\displaystyle 1\le N\le 100\)) száma található. A következő \(\displaystyle N\) sorban a vasútállomások (\(\displaystyle 1\le H[i]\le 50\)) kilométerben mért távolsága szerepel az előző állomástól, és az ott tárolt (\(\displaystyle 1\le T[i]\le 1000\)) cukorrépa tömege van tonnában megadva. Az első állomásnál 0 távolság szerepel.

A program a standard kimenetre írja ki, hogy hányadik vasútállomásra érdemes tervezni a fedett tárolót és mennyi az ideszállítás költsége. Több azonos költségű megoldás esetén a kisebb sorszámú vasútállomást adjuk meg.

Példa:

Magyarázat:

Beküldendő egy tömörített i608.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. 609. Vizsgáljuk a következő állítást: azoknak a pontosan ötjegyű számoknak a száma, amelyeknél vagy a számjegyek összege és a számjegyek szorzata is egy pozitív egész szám négyzete, vagy a számjegyek összege és a számjegyek szorzata is egy pozitív egész szám köbe, maga is négyzetszám és köbszám egyszerre. Igazoljuk az állítást táblázatkezelő segítségével az alábbi feladatok megoldásával:

1. Hozzunk létre otjegyu néven egy munkafüzetet.

2. Legyen három munkalapja eredmeny, negyzet és kob néven.

3. Válogassuk ki a negyzet munkalapon az ötjegyű számok közül azokat, amelyeknél a számjegyek összege és a számjegyek szorzata is egy pozitív egész szám négyzete.

4. Válogassuk ki a kob munkalapon az ötjegyű számok közül azokat, amelyeknél a számjegyek összege és a számjegyek szorzata is egy pozitív egész szám köbe.

5. Soroljuk fel az eredmeny munkalap B oszlopában a B1 cellától kezdve a negyzet munkalapról kiválogatott számokat növekvő sorrendben.

6. Soroljuk fel az eredmeny munkalap C oszlopában a C1 cellától kezdve a kob munkalapról kiválogatott számokat növekvő sorrendben.

7. Az eredmeny munkalap A oszlopában sorjázzanak a számok 1-től kezdődően mindaddig, míg a B vagy C oszlop tartalmaz adatot.

8. Az eredmeny munkalap D1 és E1 cellájában jelenjen meg a B, illetve C oszlopban lévő számok száma.

9. Végül az F1:H1 tartományban jelenítsük meg ezek összegét, annak négyzet- és köbgyökét.

Segédszámításokat a negyzet és a kob munkalapokon végezhetünk. A megoldásban saját függvény vagy makró nem használható.

Beküldendő egy tömörített i609.zip állományban a táblázatkezelő munkafüzet, illetve egy rövid dokumentáció, amelyben szerepel a megoldáskor alkalmazott módszer, a táblázatkezelő neve, verziószáma.

(10 pont)

megoldás, statisztika


I. 610. Egy iskola menzája nem túl népszerű, a befizetett ebédet sokszor nem eszik meg tanulók. Mivel az ebéd kiadásakor a tanulók mágneskártyával igazolják magukat, ezért elektronikusan rendelkezésre állnak az iskola ebédelési adatai, amelyek az ebed.txt szöveges állományban találhatók. Az állomány egy-egy sorából kiolvasható, hogy melyik tanulónak hány napra fizettek be az A menü vagy a B menü kínálatából, illetve hány napon fogyasztotta el valóban az ebédet. Az adatokat felhasználva adatbázis-kezelő alkalmazás segítségével vagy SQL parancsok segítségével oldjuk meg a következő feladatokat.

1. Készítsünk új adatbázist ebed néven. A forrásként kapott – tabulátorokkal tagolt, UTF-8 kódolású – szöveges állományt az ebed nevű táblába importáljuk. Az állomány első sora a mezőneveket tartalmazza. A létrehozás során állítsuk be a megfelelő típusokat és a kulcsot.

Tábla:

A tanuló azonosítójának első négy karateréből képzett szám megadja, hogy a tanuló melyik évben érkezett az iskolába, az ötödik karakter megadja az osztályának betűjelét, a többi karakter a tanuló egyedi azonosítója.

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

Melyik diákok fizettek elő legalább egy napra B menüt a 2014-ben induló C osztályból? Adjuk meg a tanulók nevét ABC sorrendben. (2bmenuc)

3. Lekérdezéssel adjuk meg azoknak a tanulóknak a nevét és azonosítóját, akiknek befizettek A menüs ebédet, és ők azt mind elfogyasztották. (3amegette)

4. Készítsünk lekérdezést, amely megadja a nevüket azoknak, akik a 2015-ben indult C osztályba járnak és legalább egy napra be vannak fizetve ebédelni. (4ebed15C)

5. Lekérdezés segítségével listázzuk ki, hogy melyik osztályban hány olyan tanuló van, aki legalább öt napi ebédet elfogyasztott. (5otebed)

6. Készítsünk lekérdezést, amely megadja azokat a tanulókat, akik azonos névvel szerepelnek az adatbázisban. (6nevazon)

7. Lekérdezés segítségével listázzuk ki, hogy a C osztálytípusba járó tanulóknál mennyi a menü fogyasztásának és befizetésének aránya. A listában azok szerepeljenek az arány szerint növekvő sorrendben, akiket legalább egy napra befizettek. (7arany)

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

Beküldendő egy tömörített i610.zip állományban az adatbázis adatokat és lekérdezéseket is tartalmazó állománya, vagy az SQL-ben készült megoldások esetén az adatbázist és a táblát létrehozó és a kérdésekre választ adó lekérdezések egy szöveges állományban. Mellékeljünk egy rövid dokumentációt, amelyben szerepel a megoldáskor alkalmazott adatbáziskezelő vagy SQL rendszer neve.

(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.