Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: exemplu + oni  (Citit de 4372 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« : Aprilie 19, 2008, 23:32:47 »

Sorry daca este postat gresit, dar, urmatorul program ar merge pe compilatorul de la oni?

Cod:
// aflarea valorii maxime dintr-un interva, inlocuirea unei valori

#include <iostream.h>
#include <fstream.h>

ifstream f("date.in");
ofstream g("date.out");

const int dim=100000;
int N, M;
int MaxArb[2*dim+1];
int start, finish, Val, Pos, maxim;

int Maxim(int a, int b)
{
       if ( a > b ) return a;
       return b;
}

void Update(int nod, int left, int right)
{
     if ( left == right )
     {
  MaxArb[nod] = Val;
  return;
     }

     int div = (left+right)/2;
     if ( Pos <= div ) Update(2*nod,left,div);
     else              Update(2*nod+1,div+1,right);

     MaxArb[nod] = Maxim( MaxArb[2*nod], MaxArb[2*nod+1] );
}

void Query(int nod, int left, int right)
{
     if (( start <= left ) && ( right <= finish ))
     {
  if ( maxim < MaxArb[nod] ) maxim = MaxArb[nod];
  return;
     }

     int div = (left+right)/2;
     if ( start <= div ) Query(2*nod,left,div);
     if ( div < finish ) Query(2*nod+1,div+1,right);
}

int main()
{
    int X, A, B;
    f>>N;
    f>>M;
    for ( int i = 1; i <= N; i++ )
    {
f>>X;
Pos = i, Val = X;
Update(1,1,N);
    }

    for ( i=1; i <= M; i++ )
    {
f>>X;
f>>A;
f>>B;
if ( X == 0 )
{
     maxim = -1;
     start = A, finish = B;
     Query(1,1,N);
     g<<maxim;
     g<<endl;
}
else
{
    Pos = A, Val = B;
    Update(1,1,N);
}
    }
}


Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #1 : Aprilie 20, 2008, 00:40:25 »

In general, poti testa sursele pe site - daca iti compileaza aici, vor compila cu siguranta si la ONI. Spre exemplu, arborii de intervale ii poti testa in arhiva educationala, aici

Exemplul tau, de exemplu, compileaza cu warning-uri referitoare la fisierele header, care sunt considerate "deprecated". Foloseste in schimb
Cod:
#include <iostream>
Memorat

"one of these days I'm going to cut you into little pieces..."
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #2 : Aprilie 20, 2008, 11:48:23 »

Hai ca acuma am ajuns sa fiu 100% in ceata.

Pai si in loc de cele cu ".h" ce folosesc?

Da daca schimb asta mai raman valabile urmatoarele functii:


ifstream f("lala.in");             - deschiderea unui fisier din care o sa citesc             - citire f>>x;
ofstream g("lala.out");         - deschiderea unui fisier in care o sa scriu                 - scriere g<<x;


Am mai citit acuma:
"Functia main trebuie sa fie de tip int si sa intoarca 0 - return 0;"

Adica o sa fie ceva de genul:

int main()
{
...
...
...
return 0;
}

Structurile le mai pot crea astfel:

struct nod
       {
       int nr;
       nod *leg;
       } *prim, *ultim, *p, *q, *r;


Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #3 : Aprilie 20, 2008, 11:52:07 »

Uita-te la mesaje de eroare ca am postat acolo cum sta treaba cu librariile Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #4 : Aprilie 20, 2008, 11:53:44 »

Poti sa pui un link direct ca nu il gasesc Smile
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #5 : Aprilie 20, 2008, 12:01:09 »

Ai cautare pe forum, ai cautare pe site. Ai si google.com Smile foloseste unul dintre ele si o sa gasesti.
Memorat
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #6 : Aprilie 20, 2008, 12:13:48 »

..... mamaaaa, mi s-au inmuiat picioarele pentru cateva momente

Am luat o problema si am trimis-o de cateva ori si pana la urma am observat k singura modificare kre trebuia facuta era sa pun
int main() inloce de void main().... si nu trebuia sa schimb <iostream.h> in <iostream>

Am o ultima intrebare.

Pe compilatorul linux merge iostream.h?
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #7 : Aprilie 20, 2008, 12:16:10 »

http://infoarena.ro/forum/index.php?topic=364.msg24956#msg24956 - poate daca ii asculti pe Cosmin si pe Wef o sa te lamuresti

Daca ai trimis problema la infoarena si ai vazut ca merge cu iostream.h, si stiind ca infoarena are un compilator de linux, eu cred ca rezulta ca merge Smile
« Ultima modificare: Aprilie 20, 2008, 12:22:26 de către Sima Cotizo » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #8 : Aprilie 20, 2008, 19:50:26 »

Compilatorul nostru de linux suporta si iostream.h, DAR aceasta NU este standard. Nu ti-o recomand sa o folosesti. De exemplu visual studio 2005 da eroare de compilare pentru urmatorul program:
Cod:
#include <iostream.h>

int main() {
    return 0;
}
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #9 : Aprilie 21, 2008, 12:19:34 »

Deci cei care ati mai fost la ONI, lamuriti-ma si pe mine, se poate sau nu folosi <iostream.h> Huh
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #10 : Aprilie 21, 2008, 12:24:23 »

In principiu se poate... Dar e mai bine sa pui

Cod:
#include <iostream>
using namespace std;

si sa codezi in rhide (presupun ca lucrezi pe windows).
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #11 : Aprilie 21, 2008, 12:28:36 »


Citat
se poate...

Atata trebuia sa aud. Very Happy
Memorat
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #12 : Aprilie 21, 2008, 14:02:15 »

da.... <ctype.h>   merge?
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #13 : Aprilie 21, 2008, 14:47:02 »

Asa cum ti-a recomandat si wefgef, pentru a fi sigur ca librariile vor functiona asa cum te astepti, foloseste standardul actual: toate numele vor fi fara .h terminal (ex: iostream.h -> iostream, fstream.h -> fstream), iar librariile specifice C vor avea un c in fata (ex: stdio.h -> cstdio, stdlib.h -> cstdlib, ctype.h -> cctype).

Incearca sa scrii sursele dupa aceste modele din standardul ISO, asta te asigura ca vor functiona oriunde si oricand (BorlandC a iesit de mult timp din clasa "oriunde" sau "oricand")  Whistle
Memorat

"one of these days I'm going to cut you into little pieces..."
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #14 : Aprilie 21, 2008, 15:00:05 »

Pai da, da asta insemna ca toate functiile pe care le stiam pana acuma trebuie sa le invat sub forma unui alt limbaj  d'oh! .. si sincer, nu prea mai am timp Sad(
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #15 : Aprilie 21, 2008, 15:04:04 »

Asa se intampla cand inveti sursele/functiile ca pe o poezie... dar daca tot "nu mai ai timp", incearca sa inveti si corespondentele astea si pe timp de concurs scrii sursa cum iti aduci aminte si apoi obligatoriu faci transformarile Smile

... sau observi logica din spatele transformarilor si incerci sa acorzi atentie si aspectului astuia cand scrii o sursa.
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #16 : Aprilie 21, 2008, 15:45:18 »

Mie nu mi se pare deloc alt limbaj. In esenta, modificarile apar asupra primelor directive #include.
Adica trebuie sa modifici doar numele librariilor (dupa regulile pe care le-am precizat in postul trecut), si sa lucrezi in namespace-ul std; astfel nu vei avea niciun fel de problema, limbajul in sine si toate functiile sunt aceleasi, si le poti folosi asa cum le-ai folosit pana acum in Borland. Wink

Cod:
#include <iostream>
#include <fstream>

using namespace std;

Testeaza cateva probleme (adunare, cmmdc etc) pe evaluatorul de aici folosind aceste librarii, si vei intelege exact la ce ma refer.
Memorat

"one of these days I'm going to cut you into little pieces..."
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #17 : Aprilie 21, 2008, 15:50:43 »

 Embarassed  eu ma speriasem de o prostie....

M-am uitat peste niste surse si aveau total diferit fata de mine modul de creare a structurilor sau de citire din fisiere. Si apoi am vazut urmatoarele sursele si am inteles si faza cu : "toate numele vor fi fara .h terminal (ex: iostream.h -> iostream, fstream.h -> fstream), iar librariile specifice C vor avea un c in fata (ex: stdio.h -> cstdio, stdlib.h -> cstdlib, ctype.h -> cctype)."

http://infoarena.ro/job_detail/159338?action=view-source

http://infoarena.ro/job_detail/182024?action=view-source

 Brick wall asta e daca unii oameni sunt prosti  sad
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #18 : Aprilie 21, 2008, 16:04:14 »

In sursa din al doilea link, era recomandabil, spre exemplu, ca in loc de
Cod:
#include <string.h>
sa fie folosit
Cod:
#include <cstring>
Cred ca acum intelegi la ce ma refer... Very Happy
Memorat

"one of these days I'm going to cut you into little pieces..."
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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