Script nyelvek beadandó feladatok felsőfokú szakképzéseseknek

Negyedik beadandó feladat 2013.05.14 -- 2013.06.14:
(1 pont)


RUBY beadandó!

Adott egy adatfájl, ami tartalmaza egy terem beosztását a következő alakban (az egyes elemek TAB-al és esetleg további space-ekkel vannak elválasztva, illetve a sor elején is mindig található egy TAB) :


Hétfo 8:00 10:00 ETR_28135 lh1n1522 Vízföldrajz EA eloadás 1
Hétfo 12:00 14:00 ETR_28134 lh1n1544 Természetföldrajzi szintézis EA eloadás 1
Hétfo 14:00 16:00 ETR_23516 IP-08cSCNYE Scriptnyelvek eloadás 1
Kedd 8:00 10:00 teremtatk Teremfoglalás - TÁTK teremfoglalás 13
Kedd 10:00 12:00 ETR_29205 og1n1K19 Földfizika eloadás 1
Kedd 12:15 13:00 ETR_30934 wxxxsote001 Gyógyszerészeti növénytan EA eloadás 1
Kedd 13:00 14:00 ETR_69880 IP-08WF1EG Web fejlesztés 1 EA+GY (BSc 08 T) eloadás 1
Szerda 9:00 12:00 ETR_29109 bb1n1418 Növényélettan - I. EA eloadás 1
Szerda 12:00 14:00 ETR_27255 ga1n1022 Környezetgeológia eloadás 1
Szerda 14:00 15:00 ETR_64212 IP-08bcAN3G Analízis 3 EA+GY eloadás 1
Szerda 15:00 16:00 ETR_64815 IP-08bEVALK1EG Eseményvezérelt alkalmazások fejlesztése 1 EA+GY. (BSc,08,B) eloadás 1
Szerda 16:00 17:45 ETR_55797 IP-08abcFNYEG Formális nyelvek és automaták EA+GY. (BSc 08 A,B,C) eloadás 2
Csütörtök 8:00 11:00 ETR_29112 bb1n1630 Állatélettan - II. EA eloadás 1
Csütörtök 11:00 12:00 ETR_41670 IP-tWF2E Web-fejlesztés 2. EA (T) eloadás 1
Csütörtök 12:00 14:00 TÁTK_57550 NTb24 Nemzetközi gazdaságtan II. eloadás 1
Csütörtök 14:00 16:00 TÁTK_52425 TT123 Kommunikációelmélet eloadás 1
Péntek 8:00 10:00 ETR_29094 bb1n1413 Növényrendszertan - II. EA eloadás 1
Péntek 10:00 12:00 TÁTK_52468 TTD501 A kultúra arcai II. gyakorlat 1
Péntek 12:00 14:00 TÁTK_53314 SZ322 Statisztika 1 eloadás 1
Péntek 14:00 16:00 ETR_28974 xh1n1322 Az Európai Unió EA eloadás 1


Készíts olyan ruby programot, ami a fentiek alapján elkészít két fájlt. Az első (legyen a neve "pentek.txt") a pénteki előadások nevét tartalmazza a következő alakban:

Növényrendszertan - II. EA
Statisztika 1
Az Európai Unió EA

A második pedig (legyen a neve "tiz.txt") a 10:00-tól 12:00-ig tartó órák kódját a következő alakban:

ETR_29205
TÁTK_52468

A program neve legyen "bead5.rb", az inputfájl neve legyen a program parancssori paramétere. További követelmény, hogy a program hianyzó paraméter esetén: "Keves parameter!", míg rosszul megadott paraméter esetén: "Nincs ilyen file!" hibaüzenetet adjon.

Minta fájlok: terem.txt, pentek.txt, tiz.txt,

Beadás módja: a https://pnyf.inf.elte.hu/ebr beadandó szerveren keresztül.




Harmadik beadandó feladat (ugyanaz, mint nappali egypontos része) 2013.04.30 -- 2013.05.31:
(1 pont)


Vegyünk egy olyan programozási nyelvet, amelyben a szekvenciát "utasitas ::: utasitas" szerkezet, az elágazást "IF feltetel BLOCKB utasitasok BLOCKE" szerkezet, míg a ciklust "FOR szekv BLOCKB utasitasok BLOCKE" szerkezet jelöli és legyen adott egy ilyen nyelven írt program (a szerkezetekben az utasítások helyes python utasítások):

import sys

n = int(sys.argv[1]) ::: print "A program eleje!"

FOR k in range(1,n) BLOCKB print "Az ertek:" ::: print k BLOCKE

IF n < 5 BLOCKB print n ::: print "Kisebb, mint 5!" BLOCKE

Készíts olyan programot, ami a fentiek alapján egy helyes python programot készít "for", illetve "if" szerkezeteket használva a belső blokkokat mindig 1 db TAB-al beljebb kezdve:

import sys

n = int(sys.argv[1])
print "A program eleje!"

for k in range(1,n) :
     print "Az ertek:"
     print k

if n < 5 :
     print n
     print "Kisebb, mint 5!"

Feltehető, hogy a ciklusokon/elágazásokon belül nincs újabb ciklus/elágazás. A program neve legyen "bead3.py", az inputfájl neve legyen a program parancssori paramétere, az elkészített fájl neve pedig legyen "out.py". További követelmény, hogy a program hianyzó paraméter esetén: "Keves parameter!", míg rosszul megadott paraméter esetén: "A megadott inputfajl nem letezik!" hibaüzenetet adjon.

Minta fájlok és ellenőrző szkript: check.zip. (Nektek csak az egypontos részt kell figyelni!) Beadás módja: a https://pnyf.inf.elte.hu/ebr beadandó szerveren keresztül. Regisztrációt követően lehet belépni és a megfelelő beadandónál zip-pel tömörített formában lehet feltölteni a kész programot.




Második beadandó feladat (ugyanaz, mint nappalin)(bead2.py), 2013.04.03 -- 2013.05.01:
(1 pont)


Adott egy adatfájl, ami egy adott reptérről induló gépek menetrendjét tartalmazza a következő alakban:
Járatszám	Hova	Tervezett	Várható	Term.	Megj.
W6201	London Luton	06:00	06:37	1	Felszállt
LH1685 	Munich 	06:50 	07:08 	2A 	Felszállt
SN7158 	Munich 	06:50 	07:08 	2A 	Felszállt
UA9143 	Munich 	06:50 	07:08 	2A 	Felszállt
LH3449	Frankfurt	 07:05	07:15	2A	Felszállt
BA4450	London-LGW	07:20	07:34	2B	Felszállt
BT5770	Berlin TXL	07:25	07:25	2A	Felszállt
AA7277	Frankfurt	07:45	07:54	2A	Felszállt
LH1335 	Frankfurt 	09:45 	09:56 	2A 	Felszállt
AC9039 	Frankfurt 	09:45 	09:56 	2A 	Felszállt
EZS4238	Paris ORY	10:25	10:15	1	Felszállt
MA4869	London LHR	12:45	12:55	2B	Felszállt
MA110	Kiev	12:50		2B
MA6558	Paris CDG	12:50		2A
LH3445	Frankfurt	15:35		2A
SK3772	Frankfurt	15:35		2A
MA614	London-LGW	16:30		2B
BA4452	London-LGW	16:30		2B
MA240	Beirut	23:10		2B
(A járatszám minimum 5, maximum 7 hosszú, a lufthansa járatok esetén 'LH' karakterekkel kezdődő karaktersorozat, a várható felszállási időpont nem szerepel kötelezően, ilyenkor a várható időpont a tervezettel egyezik meg.)

Készíts olyan programot, ami a fentiek alapján "+f" kapcsoló hatására egy olyan fájlt készít, amely a Frankfurtba induló járatok járatszámát tartalmazza, míg "+l" kapcsoló hatására olyat, ami a késve elindult Lufthansa járatok járatszámát és késését percben (vesszővel elválasztva).

Pl. a fenti input.txt esetén: "python bead2.py +f input.txt" eredménye:


LH3449
AA7277
LH1335
AC9039
LH3445
SK3772


"python bead2.py +l input.txt" eredménye:


LH1685,18
LH3449,10
LH1335,11


A program neve legyen "bead2.py", az inputfájl neve legyen a program parancssori paramétere, az elkészített fájl neve pedig mindkét esetben legyen "eredmeny.txt". További követelmény, hogy a program hianyzó (azaz kettőnél kevesebb) paraméter esetén: "Nincs argumentum!", míg rosszul megadott fájlnév paraméter esetén: "Nincs ilyen file!" hibaüzenetet adjon.

Minta fájlok és ellenőrző szkript: check.zip. Beadás módja: a https://pnyf.inf.elte.hu/ebr beadandó szerveren keresztül. Regisztrációt követően lehet belépni és a megfelelő beadandónál zip-pel tömörített formában lehet feltölteni a kész programot (csak a "bead2.py"-t kell).




Első beadandó feladat (ugyanaz, mint nappalin)(bead1.py), 2013.03.13 -- 2013.04.12:
(1 pont)


Adott egy adatfájl, ami különböző személyek heti utalásait tartalmazza (feltehető, hogy mindegyik személyhez tartozik legalább egy adat), egy utalás egy azonosítót és egy értéket tartalmaz (valahány szóközzel elválasztva). Emellett a fájl üres sorokat is tartalmazhat:

Kiss Ádám

12  2345
45 6780
63 3210
Nagy Péter
10 15430
11   1230
23 3450

Fehér Zsolt
2 12130
11 32410
15 4520


Készíts olyan programot, ami a fentiek alapján egy olyan fájlt készít, amely minden személy esetén megadja a heti legnagyobb utalás azonosítóját a következő alakban:

Kiss Ádám 45
Nagy Péter 10
Fehér Zsolt 11

A program neve legyen "bead1.py", az inputfájl neve legyen a program parancssori paramétere, az elkészített fájl neve pedig legyen "eredmeny.txt". További követelmény, hogy a program hianyzó paraméter esetén: "Nincs argumentum!", míg rosszul megadott paraméter esetén: "Nincs ilyen file!" hibaüzenetet adjon.

Minta fájlok: adatok2.txt, adatok3.txt, eredmeny2.txt, eredmeny3.txt.
A program működését tesztelni lehet a következő scripttel: check.py (javított verzió). (Használat: az elkészített bead1.py-t és az előbbi 5 fájlt egy könyvtárba helyezve: "python check.py"). A script csak az alapvető működést vizsgálja, ha "Jó eredmény!"-t jelez, még nem biztos, hogy 1 pontos a program, viszont ha nem ezt jelzi, akkor biztosan 0 pontos.

Beadás módja: a https://pnyf.inf.elte.hu/ebr beadandó szerveren keresztül. Regisztrációt követően (a Neptun azonosítóval) lehet belépni és a megfelelő beadandónál zip-pel tömörített formában lehet feltölteni a kész programot (csak a "bead1.py"-t kell). A szerver nem ellenőrzi automatikusan a beadott program helyességét. Az ellenőrzést segítő minta fájlok néhány napon belül felkerülnek az oldalra.