evaluator - komparatori |
1 1 3A trebalo je biti:
1 2 3defcomp će ispisati da je program ispisao "1", a trebalo je biti "2".
1 2A korisnik ispiše:
1 1Dobit će 50% bodova jer mu je samo pola rješenja točno.
12.00000A korisnik ispiše:
12Rješenje će mu biti prihvačeno. To je prednost numcompa nad defcompom jer je potrebno manje paziti da se točno isti brojevi nalaze u test primjerima i u rješenjima zadataka.
Neki Primjer LudiA test primjer je:
Neki Ludi Primjerlinecomp će javiti da je rješenje točno.
Dio C koda: | Dio PAS koda: |
#include <stdio.h> int main(int argn, char *argv[]) { int tocnost; char *ulaz, *izlaz; FILE *datizlaz; izlaz = argv[1]; ulaz = argv[2]; datizlaz = fopen(izlaz, "rt"); ................................. . sa scanf ili sl. se skupljaju . . podaci za provjeru . ................................. return tocnost; } |
var ulaz,izlaz:string; tocnost:integer; datizlaz:text; begin izlaz = ParamStr(1); ulaz = ParamStr(2); assign(datizlaz, izlaz); reset(datizlaz); .................................. . sa readln ili sl. se skupljaju . . podaci za provjeru . .................................. halt(tocnost); end. |
tocnost = CP_PERCENT_OK + postotakPrimjerice, ako je postotak -25, onda će rješenju biti pridodijeljeno -0.25*broj_bodova_po_test_primjeru. Tj. ako je broj bodova po test primjeru bio 4, za taj test primjer korisnik će dobiti -1 bod.
Ime konstante: | Vrijednost: | Značenje: |
CP_OK | 0 | Rješenje je točno |
CP_BAD | 1 | Rješenje je krivo |
CP_ARGERR | 2 | Nedovoljan broj argumenata ili neka druga greška vezana uz argumente |
CP_NOFILE | 3 | Ne postoji neka datoteka sa test primjerom |
CP_PERCENT_NEG | 10 | Rješenje dobiva -100% bodova. |
CP_PERCENT_OK | 110 | Rješenje dobiva 0% bodova. (Svaka vrijednost između CP_PERCENT_NEG i CP_PERCENT_MAX određuje postotak bodova koji treba pridodijeliti.) |
CP_PERCENT_MAX | 210 | Rješenje dobiva 100% bodova. |
CP_FATALERROR | 254 | Došlo je do neke kritične greške u komparatoru, rješenje se ne da provjeriti |