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 S. 39. feladat (2008. november)

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)

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


Statisztika:

24 dolgozat érkezett.
10 pontot kapott:Bodosi Eszter, Fábián András, Mokcsay 026 Ádám, Para Attila, Várnai Péter, Véges Márton.
9 pontot kapott:Fejér 267 László, Lájer Márton, Nagy Róbert, Németh Bence.
8 pontot kapott:5 versenyző.
7 pontot kapott:3 versenyző.
6 pontot kapott:3 versenyző.
5 pontot kapott:2 versenyző.
3 pontot kapott:1 versenyző.

A KöMaL 2008. novemberi informatika feladatai