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

Deklaratív programozás

1. Prolog kis házi feladat

2004. szeptember 22.

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

A feladat

Dadogónak nevezünk egy jelsorozatot, ha páros (2n) hosszú, és az első n eleme megegyezik a hátsó n elemmel. Például 10311031 dadogó, de 101 nem dadogó.

Írjon egy olyan int dadogo(int a){...} C függvényt, amelynek eredménye a legkisebb olyan b ≥ 2 természetes szám, hogy az a szám b alapú számrendszerben felírt alakja (amelyben számeleji nullákat nem engedünk meg) egy dadogó jelsorozat.

/* int dadogo(int a) = b, ha b (b>=2) a legkisebb olyan természetes szám,
   hogy b alapú számrendszerben felírva a-t egy dadogó jelsorozatot kapunk */

Példák

| * dadogo(4);
3
| * dadogo(10);
2
| * dadogo(8);
3
| * dadogo(5);
4
| * dadogo(6211);
6210
|* dadogo(123456789);
11408
A programot CÉKLA nyelven kell elkészíteni, amely a C deklaratív résznyelve. Ügyeljünk arra, hogy a CÉKLA nem támogatja a C++-ban megszokott // jelölést a megjegyzések esetén.

A programnak működnie kell az adott C/Cékla implementáció által megengedett tetszőleges a számra. Törekedjen arra, hogy a számítások során ne használjon az adott a számnál nagyobb számokat!

A feladat megoldása során nem feltétlenül szükséges jobbrekurziót használnia.

Beadás, tudnivalók

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ő Prolog kis házi feladat, ezért khf-pl1.c néven kell beküldeni a megoldást. A névben meg kell különböztetni a kis- és nagybetűket.

A programok készülhetnek MS DOS vagy MS Windows alatt is, de Linux operációs rendszer alatt is működniük kell. A beadási határidő október 5., kedd 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).