infoarena

Comunitate - feedback, proiecte si distractie => Off topic => Subiect creat de: Robert Szarvas din Martie 07, 2015, 18:08:58



Titlul: OJI 2015 - NEDUMERIRE
Scris de: Robert Szarvas din Martie 07, 2015, 18:08:58
Buna ziua. Am o problema si as vrea sa ma ajutati. Astazi la OJI, clasa a 10-a, am folosit pt. problema a 2-a functia itoa, din biblioteca <cstdlib>, pentru conversia din baza 10 in baza 2, intr-un sir de caractere. In CodeBlocks mergea, dar la compilare la OJI a dat eroare de compilare din pricina acelui "itoa". Vreau sa spun ca mi se pare aiurea, avand in vedere cateva pasaje din regulamentul OJI, respectiv precizarile pentru 2015. Pun cateva mai jos, si va rog sa va dati cu parerea in legatura cu problema mea.

"La etapa judeţeană, în acest an şcolar, atât pentru gimnaziu cât şi pentru liceu, se vor folosi
obligatoriu, compilatoarele mediilor incluse în pachetul OJIkit.exe versiunea 2014: Code::Blocks 13.12
şi
FreePascal 2.2, într-un sistem de operare Windows."
"să folosească biblioteci externe. Prin bibliotecă externă se înţelege oricare bibliotecă care nu e parte a
Bibliotecii Standard C++ (exemplu: subprograme din CRT sau conio.h)"
"să solicite introducerea altor date decât cele specificate în enunţul problemei. De exemplu, programul
nu trebuie să se încheie cu readln, readkey, getch(), etc. (solicitând astfel comisiei tastarea unor
caractere). Programul va aştepta inutil introducerea acestor date şi va depăşi timpul de executare"
Intrebarea mea e: este <cstdlib> o biblioteca interzisa, atat timp cat imi rula in CodeBlocks?
Multumesc anticipat!


Titlul: Răspuns: OJI 2015 - NEDUMERIRE
Scris de: Marius Gavrilescu din Martie 09, 2015, 17:42:35
Functia itoa nu apare in niciun standard, ar trebui sa folosesti sprintf(str, "%d", nr); in locul ei.

Interesant insa ca pe calculator ti-a mers. Mi s-ar parea normal sa se foloseasca la evaluare exact compilatorul de pe calculator. Deci si mie mi se pare aiurea ca ai primit compile error.


Titlul: Răspuns: OJI 2015 - NEDUMERIRE
Scris de: Panaete Adrian din Martie 09, 2015, 20:25:39
Exact ce zice Marius asta s-a intamplat. Daca nu a fost bifat compilatorul in Code :: Blocks  atunci pe calculatorul tau nu a aparut eroare la compilare. Evaluatorul si-a luat compilatorul corect si acesta nu a mai recunoscut functia itoa().

citez:

Portability
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

Intradevar - cred ca ar trebui sa sesizezi Comisiei judetene ce s-a intamplat si e probabil sa iti reevalueze sursa.