Loading [MathJax]/jax/output/HTML-CSS/jax.js
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 800×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 r21+r22;

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

(r21x1+r22x2r21+r22;r21y1+r22y2r21+r22);

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

(r21vx1+r22vx2r21+r22;r21vy1+r22vy2r21+r22);

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