Diferente pentru documentatie/editare-de-probleme intre reviziile #28 si #5

Nu exista diferente intre titluri.

Diferente intre continut:

h1. Cum se adauga o problema noua
== include(page="documentatie/sidebar")==
 
h2. Creare problema
# Pentru a crea o problema noua accesati pagina 'admin/problema-noua':admin/problema-noua.
# Dupa ce ati ales un _id unic, format numai din litere mici_ pentru problema si tipul problemei (doar _Clasic_ momentan) veti fi dusi la pagina de editare unde veti putea configura parametrii problemei.
# Alegeti titlul problemei (care poate fi diferit de id, de exemplu id-ul $secv13$ si titlul $Secventa 13$); acesta _trebuie sa inceapa cu litera mare_. De asemenea, cand editati enuntul este indicat ca si _titlul care apare ca titlul ferestrei de browser_ sa fie cu _litera mare_ la inceput.
# Setati limita de timp, limita de memorie si numarul de teste pe care le are problema.
# infoarena permite evaluarea problemelor folosind 'grupuri de teste':documentatie/grupare-teste. In casuta _Grupare teste_ va trebui sa introduci o expresie care sa descrie aceste grupuri. Sintaxa pentru aceasta expresie este prezentata in continuare:
$expresie = grup$ sau $expresie;grup$
$grup = interval$ sau $grup,interval$
$interval = numar$ sau $numar-numar$
$numar = 1$ sau $2$ sau $...$
Mai exact o expresie va fi formata dintr-o serie de grupuri separate prin caracterul $;$. Un grup va reprezenta o serie de intervale separate prin caracterul $,$ . Un interval va fi ori numarul unui test (intre $1$ si numarul de teste specificate) ori un interval de numere ({$x-y$} va reprezenta testele $x, x+1, x+2... y-1, y$).
*{color:red}Atentie!* Trebuie ca fiecare test sa apara o singura data in cadrul expresiei. Spre exemplu expresia $1-10;5$ nu este valida deoarece testul $5$ este inclus de doua ori.
# Daca problema are _raspuns unic_, bifati ca problema foloseste $.ok$-uri si lasati gol la campul Evaluator. In cazul in care problema nu are raspuns unic va trebui sa creati _un program de evaluare_ si sa specificati daca acest program de evaluare foloseste $.ok$-uri. Ca sa aflii cum se scrie un program de evaluare pentru o problema intra 'aici':documentatie/ghid-evaluator.
# Completati campul Sursa cu concursul la care a fost propusa aceasta problema (spre exemplu _preONI 2007, Runda 1_) si specificati ca este un _Task ascuns_. Problemele de la un concurs se vor face automat vizibile odata ce incepe concursul la care sunt atasate.
# Salvati datele introduse apasand butonul _Salveaza_.
# Dupa ce ati ales un id unic pentru problema si tipul problemei (momentan este implementat doar tipul "Clasic") veti fi dusi la pagina de editare unde veti putea configura parametrii problemei
# Daca problema are raspuns unic, bifati ca problema foloseste ok-uri si lasati liber la evaluator. In caz contrar, va trebui sa specificati numele programului de evaluare si daca acesta va avea nevoie de fisierele ok.
# Daca problema este de la un concurs completati acest lucru in campul Sursa (spre exemplu "preONI 2007, Runda 1") si specificati ca este un "Task ascuns". Problemele de la un concurs se vor face automat vizibile odata ce incepe concursul la care sunt atasate.
# Salvati datele introduse apasand butonul "Salveaza".
h2. Enunt si teste
# Editati enuntul care se va gasi la adresa _problema/nume-problema_, in cazul in care n-ati schimbat setarea implicita in formularul de editare al problemei pentru _Pagina cu enuntul_.
# Pentru editarea unei probleme consultati 'documentatia Textile':documentatie/textile si 'conventiile de formatare':documentatie/conventii-de-formatare.
# Testele, evaluatorul si eventualele imagini care vor aparea in task se ataseaza la pagina de enunt a problemei.
*{color:red}Atentie!* Testele problemei trebuie sa se numeasca $grader_testX.in$ si $grader_testX.ok$ (unde $X$ este numarul testului, incepand cu 1), iar evaluatorul va trebui de asemenea prefixat cu $grader_$ (vezi 'documentatia pentru evaluatore':documentatie/ghid-evaluator).
# Cel mai simplu mod de a atasa toate aceste fisiere este printr-o arhiva $ZIP$. La momentul atasarii puteti specifica daca doriti ca arhiva sa fie despachetata.
# Editati enuntul care se va gasi la adresa _problema/nume_problema_, in cazul in care n-ati schimbat setarea implicita in formularul de editare al problemei pentru "Pagina cu enuntul".
# Pentru editarea unei probleme consultati 'documentatia Textile':documentatie/textile si 'conventiile de formatare':documentatie/conventii-de-formatare
# Testele si evaluatorul (si eventualele imagini ce vor aparea in task) se ataseaza la pagina de enunt a problemei.
*{color:red}Atentie!* Testele problemei trebuie sa se numeasca $grader_testX.in$ si $grader_testX.ok$ (unde $X$ este numarul testului, incepand cu 1), iar evaluatorul va trebui de asemenea prefixat cu $grader_$ (de exemplu daca evaluatorul a fost specificat ca $eval.c$ in pagina de editare se va atasa un fisier $grader_eval.c$)
# Cel mai simplu mod de a atasa toate aceste fisiere este printr-o arhiva zip. La momentul atasarii puteti specifica daca doriti ca arhiva sa fie despachetata.
# *{color:red}Atentie!* Nu atasati testele sub alt nume sau alte fisiere importante, deoarece vor putea fi accesate de utilizatori!
# La final puneti link la topic-ul din 'forum':forum legat de aceasta problema in campul "Forum Topic" din pagina de editare a enuntului.
h2. Verificarea problemei
h2. Best practice
 
# *{color:red}Atentie!* Pentru a evita cat mai mult posibil situatiile in care testele sunt gresite, este *necesar* sa existe mai multe solutii pentru o problema scrise de persoane diferite, eventual cu abordari diferite
# Este absolut necesar sa se verifice daca testele respecta restrangerile din enunt. Acest lucru se va face in sursa oficiala folosind functia $assert()$ din header-ul $<assert.h>$ (sau $<cassert>$). Spre exemplu, daca limita pentru variabila $N$ este $1 &le; N &le; 100$ atunci sursa oficiala va contine linia $assert(1 <= N && N <= 100)$.
 
h2. Testare
# *{color:red}Atentie!* Pentru a evita cat mai mult posibil situatiile in care testele sunt gresite, este *necesar* sa existe mai multe solutii pentru o problema scrise de persoane diferite, eventual cu abordari diferite.
# Este necesar sa se verifice daca testele respecta restrangerile din enunt. Acest lucru se va face in sursa oficiala (folosind functia $assert()$ de exemplu).
# Ca administrator sau propunator al problemei, puteti oricand trimite solutii si sa se vedeti rezultatul. Utilizatorii normali nu vor avea acces sa trimita solutii la problema, decat in momentul in care aceasta este atasata unui concurs activ, la care utilizatorii sunt inregistrati. De asemenea, in monitor detaliile de evaluare nu vor putea fi vazute de catre ceilalti utilizatorilor normali.
# Puteti oricand modifica limitele de timp, memorie sau alte detalii ale problemei accesand pagina _admin/problema/nume-problema_
# Ca administrator sau propunator al problemei, puteti oricand trimite solutii si sa se vedeti rezultatul. Utilizatorii normali nu vor avea acces sa trimita solutii la problema, decat in momentul in care aceasta este atasata unui concurs activ, la care utilizatorii sunt inregistrati. De asemenea, in monitor titlul problemei nu va fi afisat utilizatorilor normali, si nici detaliile de evaluare.
# Puteti oricand modifica limitele de timp, memorie sau alte detalii ale problemei accesand pagina _admin/problema/nume_problema_

Diferente intre securitate:

protected
private

Topicul de forum nu a fost schimbat.