BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak
Nappali tagozat
2004/2005. tanév, tavaszi félév

Deklaratív programozás

1. SML kis házi feladat

2005. március 31.
(A beadási határidő változott, jav. 2005. ápr. 6.)

A kis házi feladat beadása nem kötelező.

A feladat

Nagyfejűnek nevezünk egy számsorozatot, amelynek első eleme nem kisebb az utolsónál, második eleme nem kisebb az utolsó előttinél s.í.t. Pontosítva: Írjon olyan SML-függvényt nagyfeju néven, amely kielégíti az alábbi specifikációt:
(* nagyfeju : int -> int
   nagyfeju a = b, ahol b >= 2 a legkisebb olyan természetes szám, amelyre
   a b alapú számrendszerben felírt a szám nagyfejű számsorozatot ad eredményül
*)
Segédfüggvényeket definiálhat. A jobbrekurzív függvényekből generált számítási folyamatok kevesebb tárterületet használnak, mint a nemjobbrekurzív függvényekből generáltak, ezért ajánljuk, hogy jobbrekurzív függvényeket írjon, ám ez nem kötelező, a pontozásba nem számít bele.

Példák

nagyfeju 4  = 2   (* mert 42 = 1 0 0 nagyfejű *)

nagyfeju 10 = 3   (* mert 103 = 1 0 1 nagyfejű, de 102 = 1 0 1 0 nem az *)

nagyfeju 143 = 11 (* mert 14311 = 1 2 0 nagyfejű, de ... *)

nagyfeju 293 = 18 (* mert 29318 = 16 5 nagyfejű, de ... *)

Tudnivalók a beadásról

A programot az Elektronikus Tanársegéd segítségével Weben keresztül lehet beadni, a HF beadás menüpont alatt. Ez az első SML kis házi feladat, ezért khf-ml1.sml néven kell beküldeni a megoldást. A névben meg kell különböztetni a kis- és nagybetűket. A beadási határidő 2005. április 11., hétfő 24:00.

A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a 100 pontból).