Harmadik beadandó feladat 2013.04.30 -- 2013.05.31: (1 vagy 2 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. (1 pont).

Két pontot ér a megoldás, ha egyszintű beágyazott elágazásokra is működik, azaz ha az elágazásokon belül lehetnek újabb elágazások is (de a belső elágazásokon belül már nem). (Az ebben az esetben is feltehető, hogy cikluson belül nincs újabb ciklus vagy elágazás és elágazáson belül sincs ciklus.)

Példa bemenet (a fájlban a FOR itt is mindig egy sorban van megadva):

import sys

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

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

IF n > 5 BLOCKB IF n > 10 BLOCKB print n BLOCKE ::: print "Nagyobb 5!"  ::: IF n < 20 BLOCKB print "Kisebb 20!" BLOCKE ::: print "Ez a vege!" BLOCKE

Példa kimenet:

import sys

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

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

if n > 5 :
    if n > 10 :
        print n
    print "Nagyobb 5!"
    if n < 20 :
        print "Kisebb 20!"
    print "Ez a vege!"

A program neve ebben az esetben is 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: http://matej.web.elte.hu/scny2013/bead/b3/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.