Informatika2-2018/HF6

A MathWikiből
(Változatok közti eltérés)
a (Program)
 
(egy szerkesztő 2 közbeeső változata nincs mutatva)
6. sor: 6. sor:
 
* beolvas egy <tt>.csv</tt> fájlt
 
* beolvas egy <tt>.csv</tt> fájlt
 
* kiszedi belőle a '''NEPTUN''', '''ZH''' és '''potZH''' mezők adatait
 
* kiszedi belőle a '''NEPTUN''', '''ZH''' és '''potZH''' mezők adatait
 +
** érdemes a <tt>csv.DictReader</tt> 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
 
* 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.
 
** 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énynövekedését az eredeti ZH-hoz képest.
+
* 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ó  
 
** 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: <tt>float("inf")</tt>
 
** Ha az eredeti ZH 0 pontos vagy nem írt, akkor végtelen a teljesítménynövekedés: <tt>float("inf")</tt>
15. sor: 16. sor:
  
 
== Argumentumok ==
 
== Argumentumok ==
A program használja az [https://docs.python.org/2/library/argparse.html argparse] modult a bemeneti ás kimeneti fájl nevének meghatározására.
+
A program használja az [https://docs.python.org/2/library/argparse.html argparse] modult a bemeneti és kimeneti fájl nevének meghatározására.
 
Az argumentumok legyenek:
 
Az argumentumok legyenek:
 
* <tt>-f</tt> vagy <tt>--file</tt> a bemeneti fájl
 
* <tt>-f</tt> vagy <tt>--file</tt> a bemeneti fájl
29. sor: 30. sor:
 
   -o OUTPUT, --output OUTPUT
 
   -o OUTPUT, --output OUTPUT
 
                         output file (default: output.csv)
 
                         output file (default: output.csv)
 +
 +
== Segítség ==
 +
Érdemes megnézni az [http://sandbox.hlt.bme.hu/~gaebor/ea_anyag/Info2/ ea_anyag/Info2/] mappában található <tt>extract_points_from_cc.py</tt> 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==
 
== Beadás==

A lap jelenlegi, 2018. április 16., 23:56-kori változata

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