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

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #25 : Aprilie 22, 2008, 15:46:46 »

Are dreptate stef2n, am facut a[n]={1} si doar pe a[0] l-a facut 1... deci nu merge initierea Sad
« Ultima modificare: Aprilie 22, 2008, 15:56:30 de către Ungureanu Daniel » Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #26 : Aprilie 22, 2008, 16:07:26 »

Pai intamplarea face sa aiba dreptate amandoi Tongue

De fapt A[] = {0} va incepe initializarea tuturor elementelor cu elementele pe care le introduci tu - daca unele elem nu le setezi atunci se presupune implicit ca e vorba de 0:
Cod:
int A[20] = {1,2,3};

=> {1,2,3,0,0,0...}

Cod:
int A[20] = {};

=> {0,0,0,0,...}
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #27 : Aprilie 22, 2008, 16:18:40 »

Daca vrei sa initializezi cu o valoarea diferita de 0 e cel mai sigur sa faci cu for.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #28 : Aprilie 22, 2008, 16:30:05 »

Cu memset poti initializa frumos si cu -1.
Memorat
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #29 : Aprilie 22, 2008, 16:30:51 »

Si cum e "memset"?


Citeama acuma la "Lucrul cu numere mari" http://infoarena.ro/lucrul-cu-nr-mari  si nu pricep care e diferenta dintre:

huge a;
si
int a[100];

Si daca e o diferenta va rog sa-mi explicati si mie Smile
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #30 : Aprilie 22, 2008, 16:38:07 »

Pentru memset : http://www.fuckinggoogleit.com/

Cod:
memset(a, sizeof(a), 0);

Probabil ca huge este un typedef. Nu exista nicio diferenta intre cele 2 alternative.

Avand in vedere ca esti incepator si mai este putin timp pana la ONI ti-as recomanda sa nu mai ingrasi porcul in ajun, ci sa faci cum ai facut pana acum. Toate smecheriile astea de limbaj s-ar putea sa te incurce, nu sa te ajute, daca nu le stapanesti bine.
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 #31 : Aprilie 22, 2008, 16:42:05 »

 Embarassed fiecare da cu banu.. nu? Incerc sa invat si eu ce pot, in timpul pe care il mai am Smile
Oricum "smecheria" deja o stiam da doream sa stiu daca e ceva in + la huge

Stiu deja k nu am cine stie ce sanse la ONI, da eu dupa judeteana am avut punctajul cel mai mic Neutral.. deci incerc sa trag, macar sa nu ies pe ultimu loc, sa ies si eu pe penultimul  Embarassed
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #32 : Aprilie 22, 2008, 16:52:55 »

Pentru memset : http://www.fuckinggoogleit.com/

Cod:
memset(a, sizeof(a), 0);

Asta e corect doar daca nu vrei sa umpli vreun element din a cu sizeof(a) ...
Cred ca se voia asta:
Cod:
memset(a, 0, sizeof(a));

Daniel, fii mai relaxat Wink nu sti de unde sare iepurele! (de Paste Tongue)
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #33 : Aprilie 22, 2008, 17:08:48 »

daniel, parerea mea este ca atunci cand vrei sa initializezi un vector cu o valoare, sa faci cu for. este o metoda sigura si clara. nu o sa conteze prea tare (la timp ma refer) daca faci cu memset, int A[]={0}, sau cu for. in cel mai rau caz (daca esti fff ghinionist) o sa-ti iasa din timp maxim un test, din cauza initializarii unui vector.  Ok
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #34 : Aprilie 22, 2008, 17:24:25 »

Pentru memset : http://www.fuckinggoogleit.com/

Cod:
memset(a, sizeof(a), 0);

Asta e corect doar daca nu vrei sa umpli vreun element din a cu sizeof(a) ...
Cred ca se voia asta:
Cod:
memset(a, 0, sizeof(a));

Daniel, fii mai relaxat Wink nu sti de unde sare iepurele! (de Paste Tongue)


Oups....  Embarassed

Functia memset ia 3 argumente:
1 - pointer catre adresa de unde incepe initializarea
2 - valoarea cu care initializezi (tratata ca unsigned char)
3 - marimea in bytes.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #35 : Aprilie 22, 2008, 17:30:46 »

Decat sa incerci sa inveti multe chestii rapid, mai bine incerci sa implementezi chestii simple sa vezi ca iti ies. Si in concurs cand ai idei sa poti sa implementezi ce iti trece prin cap. Chiar daca solutia e una naiva tot prinde ceva puncte. Cu cateva zile inainte de ONI nu are rost sa inveti tehnici avansate.

Mai bine te antrenezi cu probleme de la o clasa mai mica, ca sa iti fie mai usoare si sa le poti face. Cred ca asa ai sanse sa scoti rezultate mai bune decat sa citesti o gramada de chestii si sa nu ramai cu nimic.
Memorat
GooDy
Strain
*

Karma: -28
Deconectat Deconectat

Mesaje: 41



Vezi Profilul
« Răspunde #36 : Aprilie 22, 2008, 18:56:35 »

Ce intelegeti prin:

int dist = onEdge?INF:0;

http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=geometry2
-> este folosit la explicarea "ConvexHull" ultima explicatie
Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #37 : Aprilie 22, 2008, 19:15:25 »

?: este un operator ternar, iar expresia a?b:c intoarce valoarea b daca a este true (sau diferit de 0), altfel intoarce valoarea c.
Spre exemplu:
Cod:
int x = ( 2<3 ) ? 1 : 0;
va pune in x valoarea 1, pentru ca 2<3
Un exemplu mai practic este
Cod:
int MIN( int x, int y ) {
return x<y ? x : y;
}
Aceasta functie returneaza minimul dintre x si y.
Memorat

"one of these days I'm going to cut you into little pieces..."
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #38 : Aprilie 29, 2008, 16:08:08 »

Am o intrebare... am citit intr-o sectiune a forumului(nu mai stiu exact unde) ca define-urile sunt pur evil. Tot ce inseamna define e evil? Chiar si
Cod:
#define MAX_N 100
Am vazut intr-o sursa pr TC pentru parcurgerea unui vector ceva de genu
Cod:
#define foreach(it,v) for(typeof v.begin() it = v.beign(); it != v.end(); it++)
Pentru ce cazuri exista riscul sa 'crape'?
Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #39 : Aprilie 29, 2008, 19:24:14 »

Macro-urile sunt evil din alte puncte de vedere, nu neaparat din cauza ca o sa crape. In general, folosirea lor denota oarecare frustrari pe care le ai fata de limbaj:
Cod:
FOR(i,a,b)
in loc de
Cod:
for(i = a; i <= b; ++i)
sau "pb" in loc de "push_back", "mp" in loc de "make_pair" etc. Comoditatea aceasta poate fi scuzata intr-un concurs de cateva ore de tip olimpiada sau topcoder (se poate castiga un plus de viteza la implementare, desi in general depinde de la om la om), dar intr-o aplicatie complexa la care lucreaza o intreaga echipa, recurgerea la astfel de tertipuri este total nepractica.
Pe de alta parte, folosirea macro-urilor poate introduce probleme serioase. De exemplu, apelarea lui
Cod:
#define MIN(x, y) ((x) < (y) ? (x) : (y))
pentru un argument de tip functie, MIN(x, f(y)), determina apelarea functiei f() de 2 ori (daca x >= f(y)), ceea ce poate fi costisitor.
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #40 : Aprilie 29, 2008, 19:33:56 »

Citat
pentru un argument de tip functie, MIN(x, f(y)), determina apelarea functiei f() de 2 ori (daca x >= f(y)), ceea ce poate fi costisitor.
Dar daca declar functia
Cod:
int min(int a, int b)
{
    return (a < b)? a : b;
}
si o apelez cu min(x,f(x)) nu e cam acelasi lucru pentru cazul in care x>f(x)?
Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #41 : Aprilie 29, 2008, 19:38:45 »

Nu, pentru ca inainte sa se calculeze minimul, valorile x si f(x) sunt transferate unor variabile a si b. Practic, inainte de a se afla minimul, au loc atribuirile
Cod:
a = x;
b = f(x);
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #42 : Aprilie 30, 2008, 12:11:24 »

In loc de macrouri, folositi functii inline atunci cand codul functiei este foarte scurt (2-3 randuri). Sunt sigure si rapide (se comporta ca niste functii normale doar ca au si avantajele macrourilor de viteza).

Cod:
inline int max(int a, int b) { return (a > b ? a : b); }
Memorat

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

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #43 : August 06, 2008, 16:35:54 »

Cod:
int A[20]={0}
Pe Borland n-a mers. Din cauza asta am pierdut la OJI 2008 36puncte.... pe gcc mergea perfect ... dar nha la olimpiade dispunem de cele mai bune compilatoare din anii 80' , nu ? Noi să fim sănătoşi....
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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