Informatika2-2018/HF6

A MathWikiből

Tartalomjegyzék

6. Házi

Program

Egy programot kell írni ami

  • beolvas egy .csv fájlt
  • kiszedi belőle a NEPTUN, ZH és potZH mezők adatait
    • érdemes a csv.DictReader osztályt használni, mert nem feltétlenül ugyanolyan sorrendben lesznek az oszlopok
  • kiírja azon hallgatókat akik írtak egyáltalán pótZH-t
    • figyeljünk arra, hogy aki nem írta meg valamelyik ZH-t annak üres az a mezője.
  • ezen hallgatókhoz kiszámítja a pótZH relatív teljesítmény-növekedését az eredeti ZH-hoz képest.
    • ez a (pótZH-ZH)/ZH képlettel számolható
    • Ha az eredeti ZH 0 pontos vagy nem írt, akkor végtelen a teljesítménynövekedés: float("inf")
    • kivéve ha a pótZH is 0, mert akkor mindenképp 0, akármi is volt a sima ZH
  • Írja ki a program az említett adatokat egy másik fájlba, .csv formátumban, két oszlopban: NEPTUN és JAVUL mezőkkel, a NEPTUN kód szerint sorba rendezve.

Argumentumok

A program használja az argparse modult a bemeneti és kimeneti fájl nevének meghatározására. Az argumentumok legyenek:

  • -f vagy --file a bemeneti fájl
  • -o vagy --output a kimeneti fájl, default értéke "output.csv"
  • Legyen help menüje, ezt elvileg automatikusan megcsinálja az argparse modul. Például
> python T0_HF6_borbely.py --help
usage: T0_HF6_borbely.py [-h] [-f FILE] [-o OUTPUT]

optional arguments:
 -h, --help            show this help message and exit
 -f FILE, --file FILE  input file (default: E0.csv)
 -o OUTPUT, --output OUTPUT
                       output file (default: output.csv)

Segítség

Érdemes megnézni az ea_anyag/Info2/ mappában található extract_points_from_cc.py fájlt.

Példa

Például erre a fájlra:

ZH,potZH,NEV,NEPTUN
0,,Júdea Népe Front,GM6MRT
17,,Munka István,NC3J0K
,0,Brian,RQQCFE
19,9,Poncius Pilátus,BQ6IAJ
1,,N. Jézus,QDMXVF
18,,Kapuk Vilmos,D1CXLO
0,,"Lovagok, aki azt mondják NI",CZN5JA
,1,"Robin, a bátor",BWQ5AU
17,19,"Gelehed, a szűzi",BY9B8G

Ezt kell kiadnia:

NEPTUN,JAVUL
BQ6IAJ,-0.5263157894736842
BWQ5AU,inf
BY9B8G,0.11764705882352941
RQQCFE,0

Beadás

Határidő: 2018-04-22 23:59

A teljes feladat 5 pontos, de lehet részpontot kapni. Ha nem megy valami akkor érdemes egyszerűsíteni a feladaton, hogy részpontra még legyen esély. De ha nem is fut le a program, akkor 0 pont.

A programot egyetlen python (.py) fájlmellékletként kell elküldeni a math-os címetekről a tavalyi címre:

  • info1hazi KUKAC gmail PONT com
  • a fájl neve a <tankör>_HF<a feladat száma>_<felhasználói név>.py formátumot kövesse. Például nekem ez lenne: T0_HF5_borbely.py
Személyes eszközök