MFP04a - 1. házi feladat (alice) "Bűvös négyzetek" ================= A program bemenetén (stdin) egész számok jelennek meg, minden sorban egy. A program feladata az, hogy minden N számra válaszként az N méretű bűvös négyzet megoldásait a program kimenetére írja. A program álljon le, ha a 0 (nulla) számot kapja a bemenetén. A bűvös négyzet feladat definíciója a következő: (google search, "bűvös négyzet", I'm feeling lucky). A kimenet formája a következő: #[négyzet mérete] +[első megoldás: négyzet elemei felsorolva soronként] +[második megoldás: négyzet elemei felsorolva soronként] ... +[utolsó megoldás: négyzet elemei felsorolva soronként] Egy lehetséges "párbeszéd" például a következő: 3 # 3 + 4 9 2 3 5 7 8 1 6 (...további megoldások...) 0 A feladatot nem akárhogyan kell megoldani! 1. A bűvös négyzet megoldásait természetesen egy constraint megoldó rész szolgáltassa. (Hogy gyakoroljátok a constraint programozást!) 2. A program három fő részből kell álljon: - beolvasó: az inputból egy int list listát állít elő; - megoldó: int list listából megoldások listájának listáját állítja elő, vagyis int list list list típusú az eredménye. (Egy megoldás egy int list, egy négyzet összes megoldása int list list, a négyzetek listájára a válasz ezért int list list list.) - kiíró: az eredménylistát kiírja az stdout-ra. Természetesen nem egyszerre akarjuk megkapni az eredményt az összes input számra, ezért a program részeinek párhuzamosan kell futni, és az elkészült eredményeket folyamatosan ki kell írni. (Hogy gyakoroljátok a concurrent programozást.) 2004. október (Szerző: Békés András György)