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

A KöMaL 2008. novemberi 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ű feladatok

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


I. 196. Keressük meg a \sin x+\cos x+\mathop{\rm tg} x+\mathop{\rm ctg} x=x egyenlet legkisebb abszolút értékű gyökét legalább 12 tizedes jegy pontossággal.

Beküldendő az egyenlet legkisebb abszolút értékű gyöke és a feladat megoldási menetének leírása (i196.txt, i196.pdf, ...), valamint minden egyéb, a megoldás során fölhasznált saját készítésű számítógépes termék (ábra, forráskód, táblázat, ...).

(10 pont)

statisztika


I. 197. Egy áruházban N különféle terméket szeretnénk megvenni, több részletben, minden alkalommal néhány terméket megvásárolva. Írjunk programot, mely a termékek árainak ismeretében meghatározza, hogy azokat milyen felosztásban vegyük meg ahhoz, hogy az egyes vásárlások során az 5-ösökre való kerekítésből adódó hibák összességében számunkra a lehető legnagyobb megtakarítást eredményezzék.

A program a termékek számát és árait a standard bemenetről olvassa. Minden sorban egy-egy bevásárlólista leírása szerepel: a megvásárolni kívánt termékek N (1\le N\le 10\;000) száma, majd a1,...,aN, szóközzel elválasztott pozitív egész számok, a termékek árai. Egy listán a termékek árösszege legfeljebb 1\;000\;000\;000, a bemenet végét egy ,,0'' tartalmú sor jelzi.

A program bevásárlólistánként egy sort, ebben pedig egyetlen számot írjon a standard kimenetre: az adott listán szereplő összes termék optimális felosztásban történő megvásárlása esetén a kerekítési hibákból adódó összes hasznunkat vagy veszteségünket.

Beküldendő a program forráskódja (i197.pas, i197.cpp, ...), valamint a program rövid dokumentációja (i197.txt, i197.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztőkörnyezetben fordítható.

(10 pont)

megoldás, statisztika


I. 198. Szimuláljuk táblázatkezelő segítségével egy vízszintes, egyenletesen forgó korong közepéről elindított m tömegű test mozgását. A korong az óramutató járásával ellentétes irányban forog függőleges szimmetriatengelye körül, bármely pontjának vk sebessége (ún. kerületi sebessége) a középpontból az adott pontba húzott egyenesre merőleges irányú, nagysága a középponttól mért távolsággal egyenesen arányos. A pontszerűnek tekinthető, m tömegű testet a korong középpontjából indítjuk V0 kezdősebességgel, majd magára hagyjuk. A testre ezután (vízszintesen) csak a korong által kifejtett állandó nagyságú Fs csúszási súrlódási erő hat, melynek iránya ellentétes a test koronghoz viszonyított sebességével.

Vizsgáljuk a folyamatot egy olyan derékszögű koordináta-rendszerben, melynek origója a korong középpontja, és az x tengely V0 irányába mutat. A szimulációt úgy végezzük, hogy a folyamatot \Deltat nagyságú időközökre osztjuk, mely időközökön belül a vizsgált fizikai mennyiségeket állandónak tekintjük. A kiindulási állapot után bármely időpont aktuális értékeiből a \Deltat-vel későbbi időpont értékeit a következő módon számítjuk ki:

\bullet a test helyzetét leíró x és y koordinátákat minden esetben az előző időszak vx és vy sebességkoordinátáinak \Deltat-szeresével növeljük;

\bullet kiszámítjuk a test középponttól mért r távolságát, valamint a korong adott pontbeli sebességének vkx és vky összetevőit;

\bullet kiszámítjuk a korong testtel érintkező pontja és a test sebességvektorainak különbségét, mivel ezzel egyező irányú lesz a testre ható súrlódási erő;

\bullet kiszámítjuk a súrlódási erő komponenseit, majd a segítségükkel a gyorsulások koordinátáit;

\bullet a gyorsulások komponenseit \Deltat-vel szorozva megkapjuk a sebességváltozásokat: ezekkel növeljük a következő szimulációs lépésben a sebességet.

A test tömegét, a kezdeti sebességet, a súrlódási erő nagyságát, a szimulációs lépések között eltelt időt és a korong középponttól 1 méterre lévő pontjának kerületi sebességét a táblázat első öt sorában adjuk meg a mintának megfelelően. A táblázat további soraiban a test mozgását leíró mennyiségek legalább 300 értékét számítsuk ki, és a mozgás pályáját ábrázoljuk megfelelő diagramon.

Beküldendő a táblázatkezelő munkafüzet (i198.xls, i198.ods, ...), illetve egy rövid dokumentáció (i198.txt, i198.pdf, ...) amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

megoldás, statisztika


S-jelű feladatok

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


S. 39. Készítsünk számológépet, mely képes összetett számtani kifejezések kiértékelésére. A kifejezésekben egész számok, zárójelek és a négy alapművelet jele (+,-,*,/) szerepelhetnek. A műveleti sorrend a szokványos legyen: a szorzás és osztás egyenrangúak, és megelőzik az összeadást és a kivonást, melyek szintén egyenrangúak. Ezen kívül, ha zárójelek másként nem jelölik, a halmozott egyenrangú műveleteket mindig balról jobbra értékeljük ki. Tehát például: e-f-a/b/c*d=(e-f)-(((a/b)/c)*d).

A program a kiértékelendő kifejezéseket fájlból olvassa, és az eredményeket fájlba írja. A bemeneti, illetve a kimeneti fájlok nevei az első, illetve második parancssori argumentumok. A bemenet minden sorában egy-egy kifejezés szerepel. A kimenetben minden kifejezéshez egy-egy sor tartozzon, melyben egyetlen (tört)szám, a kifejezés pontos értéke szerepeljen, legegyszerűbb alakra hozva. Ha a kifejezés kiértékelése közben 0-val osztás történne, akkor a sorba a ,,Nullával osztás.'' szöveg kerüljön.

Feltehetjük, hogy egy sor legfeljebb 250 karakter hosszú, a kifejezések szintaktikailag helyesek, és hogy a számítás során (mindig a legegyszerűbb alakra hozva) minden részeredmény leírható két 16-bites egész szám hányadosaként. Figyeljünk azonban arra, hogy a műveletek elvégzése közben se fordulhasson elő túlcsordulás, szükség esetén használjunk 32 bites számokat!

Beküldendő a program forráskódja (s39.pas, s39.cpp, ...), valamint a program rövid dokumentációja (s39.txt, s39.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztőkörnyezetben fordítható.

(10 pont)

statisztika


Figyelem!

Az informatika feladatok megoldásait ne e-mailben küldd be! A megoldásokat az Elektronikus munkafüzetben töltheted fel.