Reklám (2023 október)

Kategória: python - emelt szint

Feladat leírása

Reklám (2023 október) illusztráció

Egy termék hirdetésének hatékonyságát vizsgálták három, egymáshoz hasonló lélekszámú
városban. Egy 30 napos időszak középső tíz napján zajlott reklámkampány a három város közül
kettőben. Az egyik városban a helyi televízióban reklámozták a terméket, a másik városban
utcai plakáton hirdették, mindkét városban az időszak 11-edik napjától a 20-adik napjáig.
A harmadik városban nem volt reklámkampány, illetve az előbbi két városban sem volt
az időszak első 10 és az utolsó 10 napján. 

A kampány sikerességét a 30 nap során a három városból leadott rendelések alapján mérték.
Ezek az adatok megtalálhatók a rendel.txt szöveges állományban, melynek néhány sora
a következő: 

13 PL 2
13 PL 1
13 TV 1
13 NR 1
13 TV 3 

A rendelések időrendben vannak, minden sorban egy-egy rendelés szerepel. Egy soron belül
az első szám a rendelés napja, a következő két betű azt a várost jelöli, ahol a rendelést leadták,
míg a harmadik elem a termékből rendelt darabszám. Az adatokat a soron belül szóközök
választják el egymástól. A fenti példában látható rendelések mind a 13. napon történtek. Az első
két rendelést abban a városban adták le, ahol plakáton hirdettek (PL). A harmadik és ötödik
rendelést abban a városban adták le, ahol a helyi televízióban hirdettek (TV). A negyedik
rendelést abban a városban adták le, ahol nem volt reklámkampány (NR). Az első példában
látható rendeléssel 2 terméket, az utolsó rendeléssel 3-at, míg a középső három rendelés
mindegyikével 1–1 terméket rendeltek.

Egy-egy napon általában több rendelés érkezett, és tudjuk, hogy minden nap rendeltek
valamelyik városból, de nem feltétlenül rendeltek minden nap mindhárom városból. Az összes
rendelések száma 1000-nél kevesebb, és minden rendelésben a darabszám 10-nél kisebb. 

Készítsen programot, amely a három városból származó rendelések adatait felhasználva
az alábbi feladatokat oldja meg! A program forráskódját mentse reklam néven! A program
megírásakor a bemeneti állományban található, vagy a felhasználó által megadott adatok
helyességét, érvényességét nem kell ellenőriznie, feltételezheti, hogy azok a leírtaknak
megfelelnek.

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre
a feladat sorszámát (például: 2. feladat) és utaljon a megjelenítendő tartalomra! Ha
a felhasználótól kér be adatot, jelenítse meg a képernyőn, hogy milyen értéket vár!
Az ékezetmentes kiírás is elfogadott a képernyőn történő megjelenítés és a szöveges
állományba való írás során. 


Részfeladatok

  1. 1. Olvassa be és tárolja el a további feldolgozáshoz a rendel.txt állomány tartalmát! 

  2. 2. Állapítsa meg, hogy hány rendelés történt a teljes időszakban, és írja a képernyőre a rendelések számát!

  3. 3. Kérje be a felhasználótól egy nap számát, és adja meg, hogy hány rendelés történt az adott napon! 

  4. 4. Számolja meg, hogy hány nap nem volt rendelés a reklámban nem érintett városból, és írja ki a napok számát! Ha egy ilyen nap sem volt, akkor írja ki „Minden nap volt rendelés a reklámban nem érintett városból” szöveget! 

  5. 5. Állapítsa meg, hogy mennyi volt az egy rendelésben szereplő legnagyobb darabszám, és melyik volt az a nap, amikor az első ilyen számú rendelést leadták! Az eredményt a lenti minta szerint írja ki! 

  6. 6. Készítsen függvényt osszes néven, amely megadja, hogy mennyi volt egy adott városból egy adott napon a rendelt termékek száma! A függvény bemenete a három város egyikére utaló kétbetűs szöveg és a nap sorszáma legyen. Amennyiben szükséges, akkor további paramétert is felvehet a rendelések adatainak elérése érdekében. A függvény visszaadott értéke a rendelt darabszámok összege legyen! A függvényt például a következő módon lehessen meghívni: osszes("PL", 7). A függvényt a későbbiekben felhasználhatja a további feladatok megoldásakor. 

  7. 7. Számítsa ki, hogy a kampány utáni első napon, azaz a 21-edik napon melyik városból mennyit rendeltek a termékből! Az eredményt a lenti mintának megfelelő formában írja ki! 

  8. 8. Összesítse városonként, hogy hány rendelés érkezett az első 10, a 11-20-adik valamint a záró 10 napon! Az eredményt (a fejlécet is beleértve) táblázatos formában, tabulátorokkal tagoltan jelenítse meg a képernyőn, illetve írja azonos formátumban a kampany.txt szöveges állományba! 

  9. 9. Készítsen táblázatkezelő alkalmazás segítségével halmozott oszlopdiagramot az előző feladatban kiszámított adatok felhasználásával! Töltse be a kampany.txt szöveges állományból az adatokat, vagy ha nem tudta megoldani az előző feladatot, akkor gépelje be a mintában szereplő értékeket! A városok sorrendje a mintától eltérő is lehet!

  10. 10. A diagram címét, jelmagyarázatát és tengelyfeliratait a minta szerint alakítsa ki! A munkafüzetet mentse kampany néven a táblázatkezelő program alapértelmezett formátumában!


Mintaképek