Feladat: S.21 Korcsoport: - Nehézségi fok: -
Füzet: 2006/november, 492. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy pontszerű, tökéletesen rugalmasan ütköző golyó mozgását vizsgáljuk egy olyan téglalap alakú terepasztalon, amely sokszögeket tartalmaz. A golyót a terepasztal falának adott pontjából adott kezdősebességgel indítjuk. A golyó egyenesen halad, amíg az asztalon lévő sokszögek oldalával vagy csúcsával nem ütközik. Az oldalakkal való ütközéskor az oldalra merőleges sebességkomponens ellentétére változik. A csúcsokkal való ütközést úgy tekintjük, mintha a golyó a csúcsban találkozó két oldal mindegyikével ütközött volna. A golyó mozgását addig vizsgáljuk, amíg el nem éri a terepasztal egyik oldalát.
A terepasztalt és a sokszögeket koordináta-rendszerben írjuk le. Ezek leírása a program bemeneti szöveges állományában található. Az állomány első sora a terepasztal oldal-egyeneseit, második sora a golyó kezdeti helyét és sebességkomponenseit, minden további sora egy-egy sokszög csúcsainak egész koordinátáit tartalmazza. A bemeneti állomány üres sort vagy mást nem tartalmaz. Minden szereplő koordináta 1000-nél kisebb abszolút értékű egész szám.
Példa: A terepasztalt az x=-200, x=+100, y=-150, y=300 egyenletekkel meghatározott egyenesek határolják. A bemeneti állomány első sorában a -200 100 -150 300 számok szerepelnek szóközzel elválasztva.
A golyót a (-200;0) pontból indítjuk az (5;12) sebességvektorral. A bementi állomány második sorában szóközzel elválasztva a -200 0 5 12 számok szerepelnek.
A terepasztalon egy (-20;50), (0;-40) és (50;30) koordinátájú csúcsokkal meghatározott háromszög található. A bemeneti állomány egy sora szóközzel elválasztva a -20 50 0 -40 50 30 számokat tartalmazza. A sokszögek oldalait az egymás utáni csúcsok összekötésével kapjuk. Az utolsó csúcspontot a legelsővel összekötve zárjuk az alakzatot.
A program a bemeneti állomány nevét a standard bemenetről olvassa, tehát indítása S21 bemeneti.txt. A program feladata grafikusan szemléltetni a golyó mozgását a terepasztalon, és megadni annak a pontnak a koordinátáit, ahol először az asztal széléhez ér.
Beküldendő a program forráskódja (S21.pas, S21.cpp, ...), valamint a rövid dokumentációt tartalmazó S21.txt szöveges állomány.