A KöMaL 2005. januári informatika feladatai
Kérjük, ha még nem tetted meg, olvasd el a versenykiírást.
Feladat típusok elrejtése/megmutatása:
![]() |
I-jelű feladatokA beküldési határidő 2005. február 15-én LEJÁRT. |
I. 94. Kísérletezzünk, gondolkozzunk!
Készítsünk programot, amely a futás elején bekéri az \(\displaystyle a\) paraméter értékét (valós szám), majd megjeleníti a képernyőn az \(\displaystyle {(x^2+y^2)}^2=(x+ay) x^2\) egyenletű síkgörbét. Ügyeljünk a képernyőn való ,,szép'' megjelenítésre. Demo verzióval mutassunk példát az \(\displaystyle a\) paraméter ,,érdekes'' értékeire is.
Beküldendő a program (i94.pas).
(10 pont)
I. 95. Egy összefüggő számítógépes hálózat csomópontokból és csomópontpárokat összekötő kábelekből áll. Ezt biztonságosabbá szeretnénk tenni, vagyis olyanná, hogy ha a kábelek bármelyike (de csak az egyike!) elszakad, a hálózat attól még összefüggő maradjon. Adjunk meg minél kevesebb csomópontpárt, melyek közé kábelt téve a hálózat biztonságosabbá válik.
Az egyes csomópontokat pozitív egész számokkal jelöljük. A program olvassa be a csomópontpárokat megadó számpárokat, soronként két egész számot, szóközzel elválasztva. A beolvasás végét két nulla jelzi, szintén szóközzel elválasztva. Ugyanilyen formátumban írja ki a képernyőre a szükséges kábeleket jellemző csomópontpárokat.
Fontos! A megoldást programmal fogjuk ellenőrizni, úgyhogy semmi mást ne írjon ki a képernyőre, és ne tegye lapozhatóvá a kimenetet!
(Tipp: teszteléshez átirányíthatjuk az stdin-t).
Beküldendő a program (i95.pas).
(10 pont)
I. 96. Egy sorozat első \(\displaystyle n\) tagja nem határozza meg a sorozat többi tagját: bárhogyan folytathatjuk a tagok felsorolását.
Mi most az \(\displaystyle (n+1)\)-edik tag meghatározására a következő eljárást írjuk elő (\(\displaystyle n \ge 2\) legyen pozitív egész szám):
Képezzük a szomszédos tagok különbségét úgy, hogy a nagyobb indexűből kivonjuk a kisebb indexűt. A kapott különbségsorozattal ismét elvégezzük ezt az eljárást.
Néhány lépés után konstans sorozatot kapunk, amelyben már nincsenek különböző tagok. Ez legkésőbb az \(\displaystyle (n-1)\)-edik lépésben bekövetkezik, mert annak egyetlen tagja van. Például (most még csak a nagyobb méretű, sötétebb számokat nézzük!):
\(\displaystyle {|r|r|r|r|r|r|r|} \hline \phantom{\textbf{1}}\textbf{1}&\phantom{\textbf{1}}\textbf{4}&\textbf{9}&\textbf{16}&\textbf{25}&{\small 36}&\phantom{\textbf{11}}\\ \hline \textbf{3}&\textbf{5}&\textbf{7}&\textbf{9}&{\small 11}&\phantom{\textbf{11}}&\\ \hline \textbf{2}&\textbf{2}&\textbf{2}&{\small 2}&&&\\ \hline \textbf{1}&\textbf{2}&\textbf{6}&\textbf{17}&{\small 39}&&\\ \hline \textbf{1}&\textbf{4}&\textbf{11}&{\small 22}&&&\\ \hline \textbf{3}&\textbf{7}&{\small 11}&&&&\\ \hline \textbf{4}&{\small 4}&&&&&\\ \hline \)
\(\displaystyle Ekkor előírjuk, hogy az \)
(n+1)\(\displaystyle -edik tagot úgy kell megállapítani, hogy ismét elvégezve az eljárást, a konstans sorozat továbbra is konstans sorozat maradjon. Ebből a konstansból visszafelé lépegetve készítsük el az \)(n+1)\(\displaystyle -edik tagot. (Ezt mutatják példáinkon a kisebb méretű, világosabb számok.)
Készítsünk táblázatot (i96.xls), amely egy sorozat első \)n\(\displaystyle tagjához a most adott eljárással megkeresi a megfelelő \)(n+1)\(\displaystyle -edik tagot.
Beküldendő a táblázat (i96.xls). Szükség esetén az első mezőbe (\texttt{A1}) beírhatjuk a használati utasítást.
{\Large}*\)\par
Felhívjuk versenyzőink figyelmét a 2004. szeptemberi szám 357. oldalán közölt formai követelmények pontos betartására (megjegyzések, ADATOK)!
(10 pont)
![]() |
S-jelű feladatokA beküldési határidő 2005. február 15-én LEJÁRT. |
S. 5. Írjunk programot Escher-szerű hiperbolikus csempézések készítésére. (Lásd cikkünket a 2–9. oldalakon.) A program csempézze ki a körmodellt háromszögekkel, és mindegyik csempébe rajzoljon be egy mintát, amit egy külön fájlban adunk meg.
A program bemenete a következő elemekből áll:
- [– ] A csempeháromszög szögei. A szögeket \(\displaystyle \frac{180^\circ}{p}\), \(\displaystyle \frac{180^\circ}{q}\), \(\displaystyle \frac{180^\circ}{r}\) alakban adjuk meg, ahol \(\displaystyle p\), \(\displaystyle q\), \(\displaystyle r\) pozitív egész számok és
- [– ] A csempe mintája. A mintát egy színes, bináris PPM formátumú képfájlban adjuk meg. A csempe három csúcsát három koordinátapárral írjuk le.
- [– ] A készítendő kép mérete és az output fájl neve. A kép mindig négyzet alakú lesz, a méret ezért egyetlen \(\displaystyle m\) pozitív egész szám, legfeljebb \(\displaystyle 2048\).
\(\displaystyle \frac1p+\frac1q+\frac1r<1. \)
A kiinduló \(\displaystyle ABC\) csempeháromszöget úgy kell elhelyezni, hogy az \(\displaystyle A\) csúcs a modell középpontja legyen, a \(\displaystyle B\) csúcs pedig ettől vízszintesen jobbra helyezkedjen el (lásd az ábrát).

A program az adatokat a parancssorból vegye a következő sorrendben:
\verb"(programnév)" \(\displaystyle p\) \(\displaystyle q\) \(\displaystyle r\) \verb"csempeminta.ppm" \(\displaystyle a_1\) \(\displaystyle a_2\) \(\displaystyle b_1\) \(\displaystyle b_2\) \(\displaystyle c_1\) \(\displaystyle c_2\) \verb"output.ppm" \(\displaystyle m\)
(A \verb"csempeminta.ppm" és az \verb"output.ppm" helyén természetesen más fájlnevek fognak állni.) A program a megadott adatok alapján készítse el a szintén PPM formátumú képfájlt. A minta rajzolásakor a cikkben leírt súlyponti koordinátás módszert alkalmazza.
A PPM formátumról és további tudnivalókról részletesebben írunk a http://www.komal.hu/verseny/2005-01/S.h.shtml oldalon.
(10 pont)
Figyelem!
Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.

