Harmadik beadandó feladat (bead2.py), 2012.05.08 -- 2012.06.01: (2 pont)

Adott egy forrásfájl egy olyan egyszerű programozási nyelven, melyben csak értékadások, függvénydefiníciók és függvényhívások szerepelnek.

A függvény definíciók szintaxisa a következő alakú:

    függvénynév(paraméterek) begin  utasítás_1;;;  utasítás_2 ;;; ... ;;; utasítás_n end;

A függvényblokk utasításait ;;; karakterek (és space-ek) választják el.

Példa forráskód:

fv (x,y,z) begin  print x;;;  print y ;;; return x + y + z end;
x = fv(2,34,5)

g (x) begin y = x + 45 ;;;  return y end;

z = g(23)
r = 53
h (x,y,z,r) begin  print x;;;  print y ;;; print z;;;print r;;;return x + y + z end;

Készíts olyan programot, ami a fenti programból egy helyes szintaxisú python fájlt készít a belső függvényblokkokat 4 space-el beljebb kezdve:

def fv (x,y,z) :
    print x
    print y
    return x + y + z
x = fv(2,34,5)

def g (x) :
    y = x + 45
    return y

z = g(23)
r = 53
def h (x,y,z,r) :
    print x
    print y
    print z
    print r
    return x + y + z

Minta fájlok: inp.txt, out.txt.

Egészítsd ki a fenti programozási nyelvet egy egyszerű elágazás konstrukcióval:

    if feltétel begin utasítás_1;;;  utasítás_2 ;;; ... ;;; utasítás_n end;

Az elágazás szerepelhet függvénydefinícióban is, de az feltehető, hogy elágazáson belül már nincs újabb elágazás.

Példa forráskód:

fv (x,y,z) begin  print x;;; print y;;;  if x > 0 begin print "Nagyobb!" end; ;;;return x + y + z end;

x = fv(2,34,5)

g (x) begin y = x + 45;;; if x < 0 begin print "Kisebb!" end; ;;; if x =0 begin return 12  end; ;;; return y end;

z = g(23)

if x > 0 begin print "Nagyobb!" end;
r = 25

Készíts olyan programot, ami a fenti programból egy helyes szintaxisú python fájlt készít a belső függvényblokkokat 4 space-el beljebb kezdve:

def fv (x,y,z) :
    print x
    print y
    if x > 0 :
        print "Nagyobb!"
    return x + y + z

x = fv(2,34,5)

def g (x) :
    y = x + 45
    if x < 0 :
        print "Kisebb!"
    if x =0 :
        return 12
    return y

z = g(23)

if x > 0 :
    print "Nagyobb!"
r = 25
Minta fájlok: inp2.txt, out2.txt.

A program neve mindkét esetben legyen "bead3.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 fájlnév paraméter esetén: "Nincs ilyen file!" hibaüzenetet adjon.