Diferente pentru documentatie/ghid-evaluator intre reviziile #2 si #3

Nu exista diferente intre titluri.

Diferente intre continut:

Pentru problemele in care raspunsul nu este unic, site-ul *infoarena* a conceput sa foloseasca un program extern pentru verificarea raspunsului. Acest program se numeste _evaluator_, si poate fi scris in $C, C++$ sau $Pascal$. Pentru a realiza un evaluator compatibil cu design-ul infoarena trebuie respectate niste reguli:
* Daca numele problemei este $prob$ fisierul de intrare care se evalueaza se numeste $prob.in$, fisierul de iesire al concurentului se numeste $prob.out$, iar fisierul de evaluare (care contine informatii despre raspunsul corect pentru testul respectiv) se numeste $prob.out$
* Daca numele problemei este $prob$ fisierul de intrare care se evalueaza se numeste $prob.in$, fisierul de iesire al utilizatorului se numeste $prob.out$, iar fisierul de evaluare (care contine informatii despre raspunsul corect pentru testul respectiv) se numeste $prob.out$. Nu se recomanda folosirea altor fisiere in timpul evaluarii.
* Odata ce s-a evaluat fisierul de iesire, mesajul trimis de evaluator trebuie afisat la $stderr$, iar punctajul la $stdout$, iar executia programului de evaluare trebuie terminata. Se recomanda scrierea unei functii care sa faca aceste lucruri:
 
== code(cpp) |
void result(char msg[], int p)
{
    printf("%d", p);
    exit(0);
}
==
==
 
* Evaluator trebuie sa verifice ca fiecare din operatiile de deschidere de fisier sau de citire se efectueaza corect. Cateva exemple in $C/C++$:
** functia $fopen$ returneaza un pointer catre fisierul deschis, iar daca acesta este $NULL$ s-a produs o eroare la deschiderea fisierului iar aceasta trebuia raportata
** functiile $scanf / fscanf$ returneaza numarul de valori citite din lista de argumente; astfel se poate verifica la fiecare apel daca au fost citite toate datele si se poate detecta orice eroare de citire
** asemanator cu $scanf$ , functia $gets / fgets$ returneaza o valoarea diferita de $0$ daca a efectuat cu succes citirea
Toate aceste verificari sunt *necesare*, in caz contrar evaluator poate crapa daca fisierul de iesire al utilizatorului nu respecta formatul de iesire.
 
* Desi se presupune ca fisierul de intrare ($.in$) si fisierul de verificare ($.ok$) sunt corecte, se recomanda sa se verifice daca acestea sunt intr-adevar valide folosind acelasi tratament ca pentru fisierul de iesire al utilizatorului. In plus, se poate verifica daca fisierul de intrare respecta intr-adevar restrictiile din enuntul problemei.
 
Daca ai probleme cu redactarea unui evaluator, poti contacta un 'administrator':echipa-infoarena sau o persoana 'implicata':implica-te in proiectul 'Extinde Arhiva':implica-te/extinde-arhiva.
 
Exemple de verificatoare pentru diverse probleme:
 
* Buline
* Ghiozdan
* Shop
* Zero 2
 

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.