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 I. 223. feladat (2009. november)

I. 223. Készítsünk szimulációs programot, amely síkbeli színes buborékok életét szemlélteti. A szimulációban látható buborékok egyszínű körlapok, amelyek egy \(\displaystyle 800\times 600\)-as képben mozognak, illetve egymásba alakulnak. A buborékok helyzete és sebessége egy-egy valós számpárral, sugara egy valós számmal, színe RGB kódolással bájt méretű számhármassal adható meg. A buborékokhoz tömeget is rendelünk, melynek nagysága a buborék sugarának négyzetével egyenlő, azaz annak képzeletbeli területével arányos. A buborékok a képben a sebességük alapján minden szimulációs lépésben elmozdulnak. Amennyiben a kép határain kívülre kerülnek, úgy az ellentétes oldalon azonos sebességgel folytatják útjukat, most már a kép belseje felé. Amikor két buborék először egymásba ér, akkor összeolvadnak, és kettőjük helyett egy új buborék keletkezik, amelynek

i) tömege a két találkozó buborék tömegének összege, azaz \(\displaystyle r_1^2 +r_2^2\);

ii) középpontja a két buborék középpontjának súlyozott közepe, azaz koordinátái:

\(\displaystyle \left(\frac{r_1^2 \cdot x_1 +r_2^2 \cdot x_2}{r_1^2 +r_2^2};\frac{r_1^2 \cdot y_1 +r_2^2 \cdot y_2}{r_1^2 +r_2^2}\right); \)

iii) sebességének koordinátái az impulzus-megmaradás alapján hasonló módon

\(\displaystyle \left(\frac{r_1^2 \cdot vx_1 +r_2^2 \cdot vx_2}{r_1^2 +r_2^2};\frac{r_1^2 \cdot vy_1 +r_2^2 \cdot vy_2}{r_1^2 +r_2^2}\right); \)

iv) míg színének R, G és B összetevői szintén az egyes színösszetevők tömegükkel súlyozott közepével számítandók ki. Amennyiben egy új buborék olyan méretű, hogy egy másik buborékba ér, úgy azzal szintén összeolvad az előző szabályok szerint.

A szimuláció kezdetén meglévő buborékok adatait a program a parancssor első argumentumaként megnevezett szöveges állományból olvassa, melynek minden egyes sora egy-egy buborék leírása szóközzel elválasztott megfelelő értékekkel a következő sorrendben: helyx helyy sebességx sebességy sugár vörös zöld kék.

Például:

Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az i223.exe és más, a fordító által generált kiegészítő állományok nélkül) egy tömörített mappában (i223.zip).

(10 pont)

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


A programokat az alábbi tesztállományokkal vizsgáltuk: teszt.zip.

Mintamegoldásként Szabó Attila pécsi, 9. osztályos tanuló Free Pascalban készült (i223.pas) és Balla Attila budapesti, 12. osztályos diák Delphiben készült (i223.zip) munkáját adjuk közre.


Statisztika:

8 dolgozat érkezett.
10 pontot kapott:Balla Attila, Barta 111 János, Nagy 111 Miklós, Szabó 928 Attila.
8 pontot kapott:1 versenyző.
7 pontot kapott:2 versenyző.
5 pontot kapott:1 versenyző.

A KöMaL 2009. novemberi informatika feladatai