Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az S. 21. feladat (2006. november)

S. 21. 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.

(10 pont)

A beküldési határidő 2006. december 15-én LEJÁRT.


A feladat megoldásához koordináta-geometriai összefüggések pontos programozásával lehetett eljutni.

Két mintamegoldást mutatunk be: az egyik Windows környezetben a házi használatra ingyenes Microsoft VC++ Express változatával készült, Kezes Balázs érsekújvári diák munkája (megoldas1.cpp) és C++ nyelven készült; a másik Gilián Zoltán székesfehérvári tanuló FreePascal programja (gilianzoltan.pas).


Statisztika:

9 dolgozat érkezett.
10 pontot kapott:Csernai Kornél, Fehér András, Gilián Zoltán, Györök Péter, Kezes Balázs.
4 pontot kapott:1 versenyző.
3 pontot kapott:1 versenyző.
2 pontot kapott:1 versenyző.
1 pontot kapott:1 versenyző.

A KöMaL 2006. novemberi informatika feladatai