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/S. 19. feladat (2017. szeptember)

I/S. 19. Keressük meg azt a legkisebb \(\displaystyle b\) nevezőjű \(\displaystyle \frac{a}{b}\) törtet, amelynek \(\displaystyle t\) tizedes jegyre kerekített értéke megegyezik egy \(\displaystyle t\) tizedes jegyet tartalmazó \(\displaystyle r\) tizedes törttel.

A feladatot megoldó program olvassa be a standard bemenetről \(\displaystyle r\) és \(\displaystyle t\) szóközzel elválasztott értékét (tizedesvessző helyett pontot használjunk), majd írja a standard kimenet egyetlen sorába szóközzel elválasztva \(\displaystyle a\) és \(\displaystyle b\) egészeket.

Példák:

Bemenet Kimenet
3.141592653 9 103993 33102
2017.0901 4 223897 111
1.2345678901234 13 2743458 2222201

Korlátok: az \(\displaystyle r\) pozitív szám \(\displaystyle e\) egész és \(\displaystyle t\) tizedes jegyet tartalmaz \(\displaystyle (1 \le e,t \le 14)\), \(\displaystyle (1 \le e+t \le 15)\).

Értékelés: a megoldás lényegét leíró dokumentáció 1 pontot ér. További 9 pont kapható arra a programra, amely a korlátoknak megfelelő bemenetekre helyes kimenetet ad 1 másodperc futásidő alatt. Részpontszám kapható arra programra, amely csak kisebb \(\displaystyle e\), \(\displaystyle t\) értékek esetén ad helyes eredményt 1 másodpercen belül.

Beküldendő egy is19.zip tömörített állományban a megoldást leíró dokumentáció és a program forráskódja.

(10 pont)

A beküldési határidő 2017. október 10-én LEJÁRT.


A feladattal lényegében ekvivalens példa volt az első S feladat – de ezt csak a kitűzés után vettük észre. Az S.1. feladat megoldását a beküldési határidőig elrejtettük a honlapon. Most újra elérhető, érdemes ránézni: S.1. feladat.

Sokféle megoldás érkezett, mintamegoldásként is több, lényegesen eltérű programot és dokumentációt adunk közre.

Az első Noszály Áron 10. osztályos, debreceni versenyző munkája: is19na.pdf, is19na.cpp.

A második megoldás Gáspár Attila 11. osztályos, miskolci versenyző munkája (a lánctörtekkel kapcsolatos S.1. leírás alapján érthető a rövid dokumentáció): IS19ga.txt, IS19ga.cpp.

A harmadik megoldás Csertán András 11. osztályos, nagykanizsai versenyző munkája. A dokumentáció

1-től kezdve lineárisan keressünk olyan b nevezőt, amihez van olyan a számláló, melyre \(\displaystyle \frac{a}{b}=r\). Egy adott \(\displaystyle b\)-hez csak \(\displaystyle b*r\) egészre kerekített értéke lehet az \(\displaystyle a\). Az \(\displaystyle \frac{a}{b}\) hányados akkor jó, ha \(\displaystyle \frac{a}{b} \cdot 10^t\) egészre kerekített értéke egyenlő \(\displaystyle r \cdot 10^t\) egészre kerekített értékével. (Így megtudjuk, hogy \(\displaystyle t\) tizedes jegyre kerekítve megegyezik-e \(\displaystyle \frac{a}{b}\) és \(\displaystyle r\).)

A program: is19csa.cpp


Statisztika:

18 dolgozat érkezett.
10 pontot kapott:Csertán András, Gáspár Attila, Horváth Botond István, Janzer Orsolya Lili, Noszály Áron, Tóth 827 Balázs.
9 pontot kapott:Busa 423 Máté, Csala Bálint, Csala Péter, Horcsin Bálint, Kovács 732 Dániel, Vári-Kakas Andor.
8 pontot kapott:1 versenyző.
7 pontot kapott:1 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:1 versenyző.
0 pontot kapott:2 versenyző.

A KöMaL 2017. szeptemberi informatika feladatai