Az S. 31. feladat (2007. december) |
S. 31. Egy matematika órán unatkozó diák olyan 5×5-ös táblázatokat talált ki, amelyek egyenleteket tartalmaznak. Az egyenletekben, melyek egyes részei a táblázat celláiba kerülnek, egybetűs ismeretlenek, a négy alapművelet jele, és persze az egyenlőségjel fordul elő. Tekintsük például a következő ilyen táblázatot:
A táblázat sorait balról jobbra, oszlopait és két főátlóját felülről lefelé kiolvasva egy nyolc egyenletből álló egyenletrendszert kapunk. A kapott egyenletrendszer olyan, hogy annak megoldása során mindig van olyan egyenlet, amelyből a többi egyenlettől függetlenül következtetni lehet valamely ismeretlen értékére, vagy két ismeretlen közötti egyszerű kapcsolatra.
A fenti példában az alsó sor alapján d=0, vagy e=1 csak ezt az egyenletet megvizsgálva adódik. Az első oszlopból ugyanakkor a=0 érték következik, amiből az első sorban b=c. A megoldást hasonló módon folytatva a végeredmény: a=d=0, b=c=e=bármi, vagy a=0, e=1, b=c=1+d és d bármi.
Készítsünk programot, amely tetszőleges, az előbbi táblázat formájában helyesen felírt egyenletrendszert megold. A program a táblázatot a parancssor első paramétereként átadott bemeneti szöveges állományból olvassa. Az állomány öt egymás utáni sorában egy-egy szóközzel elválasztva a táblázat egyes celláiban található ismeretlenek és matematikai jelek szerepelnek. A program írja a standard kimenetre abc sorrendben az egyes ismeretlenek kiszámított értékeit (például ,,a=3.25'', vagy ,,a értéke tetszőleges'' alakban), illetve a ,,nincs megoldás'' szöveget, ha az egyenletrendszer megoldhatatlan.
Beküldendő a program forráskódja (s31.pas, s31.cpp, ...), valamint a program rövid dokumentációja (s31.txt, s31.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
Javasolta: Tálas András (Budapest, 12. évf.)
(10 pont)
A beküldési határidő 2008. május 15-én LEJÁRT.
Statisztika:
2 dolgozat érkezett. 4 pontot kapott: 2 versenyző.
A KöMaL 2007. decemberi informatika feladatai