infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Neagu Rares Florian din August 23, 2007, 10:15:41



Titlul: Testor, Verificatorul de teste
Scris de: Neagu Rares Florian din August 23, 2007, 10:15:41
M-am gandit sa-mi creez propiul verificator de teste, Testor. El trebuie sa aiba in directorul curent problema in .exe, si testele.
Sa zicem ca problema are ca nume "masini", .exeul este "masini.exe",intrarile si iesirile de la probl. "masini.in", "masini.out", iar teste de verificare "1.in", "1.out","2.in","2.out" ......."n.in","n.out" .El redenumeste "i.in" in "masini.in", ruleaza programul "masini.exe", redenumeste "masini.in" inapoi in "i.in" si verifica "masini.out" (scos de programul nostru) cu "i.out", linie cu linie, unde "i" apartine multimii elementelor de la 1 la "n", "n" intreg, <32767... Daca intalneste o linie in care cel mult un caracter e diferit,nu mai da punctajul
Problema este ca inca nu stiu cum sa-i verific timpul de executie......
Mi-am testat problema "prime" pe vreo 1000 de teste, dar a trebuit sa astept vreo o ora sa termine.... avea punctajul 100, dar depasea cu mult timpul de executie....  Are cineva o idee cum sa lucrez cu verificarea timpului de executie a programelor mele in pascal ?


Titlul: Răspuns: Testor, Verificatorul de teste
Scris de: Sima Cotizo din August 23, 2007, 12:15:47
Daca vrei sa masori timpul de executie al unui program, ai doua solutii, fie faci metoda "clasica" cu gettime in pascal (functia din unitul DOS parca...), fie folosesti ptime ( google for it ;) )...

Daca vrei insa sa iti intrerupi executia dupa un anumit timp, mi se pare ca deschizi un thread separat cu programul, iar in threadul care testeaza masori timpul si cand ajungi la timp mai mare de limita atunci opresti child-process-ul si nu dai punctele... se poate sa zic prostii, asa ca mai bine iti arunci ochii peste jrun (se gaseste in sursele de la infoarena)...

PS : nu stiu daca se poate in windows sa deschizi thread separat cu pascal... in linux stiu ca merge :)
PPS: nu trebuia sa fie topicul asta in informatica?...  :?


Titlul: Răspuns: Testor, Verificatorul de teste
Scris de: Silviu-Ionut Ganceanu din August 23, 2007, 19:52:11
Am mutat topicul. In Implica-te -> Development discutam (ma rog, e un mod de-a spune) despre codul la infoarena.


Titlul: Răspuns: Testor, Verificatorul de teste
Scris de: Cristian Strat din August 24, 2007, 05:29:37
http://hackers.devnet.ro/browser/trunk/jrun