Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Ajutor!  (Citit de 4639 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
mioara
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Martie 17, 2007, 11:57:05 »

Sunt incepatoare. Ma poate ajuta cineva si sa-mi explice pe larg cum se creeaza un evaluator, fisierele test si cum se realizeaza efectiv evaluarea. Dar v-as ruga mult ca explicatiile sa fie amanuntite, ca nu ma descurc!
Memorat
Omega91
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 36



Vezi Profilul
« Răspunde #1 : Martie 19, 2007, 18:47:49 »

nu prea inteleg ce vrei sa stii Confused
daca vrei sa-ti faci propriul tau evaluator si vrei sa stii cam cum se face, iti explic cum l-am gandit pe al meu. Puteam sa folosesc unul de pe site-ul olimpiade.info dar... de ce sa nu-mi fac eu propriul evaluator? Very Happy
al meu e facut o parte in windows batch si o parte in c++. Principiul de functionare e simplu: dintr-un folder cu mai multe fisiere de intrare, este copiat cel pe care trebuie testata problema in directorul in care se afla aplicatia problemei. Este rulata problema, apoi fisierul de iesire este comparat cu unul care reprezinta raspunsul corect. Daca cele doua fisiere sunt identice, atunci se acorda 10 puncte pentru acel test. In mod asemanator se procedeaza si cu celelalte teste.
Copiatul fisierelor se face in batch iar programul pentru compararea fisierelor l-am facut in c++

Acuma as putea sa atasez un fisier cu evaluatorul meu, dar mi-e teama ca nu am voie sa pun fisiere .rar iar daca ii schimb extensia...  Whistle s-ar putea sa se supere lumea pe mine
« Ultima modificare: Martie 19, 2007, 18:50:11 de către Nicodei Eduard » Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #2 : Martie 19, 2007, 19:29:24 »

Compararea se face in linux cu cmp si in windows cu fcmp parca ... sau compare .. nu mai stiu
Bine-bine, tu ai "varianta simpla" de evaluator... dar cum verifici:
  • timpul de executie (asta nu e greu, in windows poti cauta ptime pe net, iar in linux exista deja time)
  • memoria folosita  ... asta in windows nu stiu cum se face, poate exista vreo functie pt a masura cat ocupa un child process... in linux se foloseste /proc/$pid$/statm dar mie mi se pare cam dubios fiindca nu prea merge mereu
Oricum, evaluatorul infoa e mult mai complex...

PS : daca nu stii sa faci un batch file si nu ai chef sa inveti, poti folosi functia "system" care se afla in stdlib.h Tongue
Memorat
Omega91
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 36



Vezi Profilul
« Răspunde #3 : Martie 19, 2007, 21:24:13 »

timpul de executie il masor direct din sursa cu un clock() si-l afisez in fisier iar acel fisier pentru usurinta il mai citesc odata cu batch-ul. La memorie ai dreptate: acolo n-am cum sa verific. Oricum, vreau acuma sa-mi fac un evaluator in python, si acolo cred k am sa fac mai multe dar in nici un caz nu am cum sa ma apropii de evaluatorul de pe infoarena.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #4 : Martie 19, 2007, 21:57:57 »

Nu cred ca din windows, nu am studiat problema... cel putin partea de masurat memorie ma ingrozeste... ca in afara de "ulimit -v ... " in linux nu am nici o alta idee... desi am gasit intr-un document ceva despre cifrele care sunt in /proc/$pid$/statm... si jrun functioneaza bine...

Dupa ONI vreau sa fac si eu ceva in Linux, ceva mai flexibil, poate chiar o interfata cu ncurses... daca stii python poate mai tinem legatura... ca sa facem schimb de idei Wink

On topic: sursa evaluatorului infoa (jrun) este publica, pe undeva prin http://hackers.devnet.ro... o fi sursa destul de incalcita dar daca ai rabdare gasesti cam tot ce nu stii...
Memorat
mioara
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #5 : Martie 24, 2007, 09:43:36 »

Multumesc mult Eduard, dar sa stii ca eu sunt mai incepatoare decat crezi tu. Te rog daca poti sa-mi trimiti pe adresa mea [email protected] programul care compara doua fisiere, si sa-mi explici mai pe larg ce inseamna "copierea se face in batch" precum si cum se face masurarea timpului de executie. Multumesc foarte mult!
Memorat
Omega91
Strain
*

Karma: 0
Deconectat Deconectat

Mesaje: 36



Vezi Profilul
« Răspunde #6 : Martie 26, 2007, 15:53:10 »

scz k nu ti-am rasp, eu in inteligenta mea, cand am dat un format la c: am sters si evaluatorul. Brick wall Brick wall Brick wall Oricum si mie imi trebuie deci in sapt asta il refac. iti explic atunci si cum e cu batch-ul, dak vrei, cauta pe internet "batch programing" si poti sa te uiti pe olimpiada.info pentru cateva exemple. Ceea ce aveam eu era mai general.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines