MFP05A - 3. 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ő: (továbbá lásd: google search, "bűvös négyzet"). 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 egy korlátalapú megoldó rész szolgáltassa (a korlátalapú programozás gyakorlására). 2. A program három fő részből álljon: - beolvasó: a bemenetből egy int list listát állítson elő; - megoldó: az int list listából megoldások listájának listáját állítsa elő, vagyis int list list list típusú legyen 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 írja ki a kimenetre (stdout). 3. Természetesen nem egyszerre akarjuk megkapni az eredményt az összes beírt számra, ezért a program részeinek párhuzamosan kell futniuk, és az elkészült eredményeket folyamatosan kell kiírniuk. (A párhuzamos és elosztott programozás gyakorlására.) 2005. október 18. (Szerző: Békés András György)