•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« 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
|
|
« Ultima modificare: Aprilie 22, 2008, 15:56:30 de către Ungureanu Daniel »
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #26 : Aprilie 22, 2008, 16:07:26 » |
|
Pai intamplarea face sa aiba dreptate amandoi 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: int A[20] = {1,2,3};
=> {1,2,3,0,0,0...}
int A[20] = {};
=> {0,0,0,0,...}
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« 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
|
|
« Răspunde #28 : Aprilie 22, 2008, 16:30:05 » |
|
Cu memset poti initializa frumos si cu -1.
|
|
|
Memorat
|
|
|
|
•GooDy
Strain
Karma: -28
Deconectat
Mesaje: 41
|
|
« 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
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #30 : Aprilie 22, 2008, 16:38:07 » |
|
Pentru memset : http://www.fuckinggoogleit.com/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
Mesaje: 41
|
|
« Răspunde #31 : Aprilie 22, 2008, 16:42:05 » |
|
fiecare da cu banu.. nu? Incerc sa invat si eu ce pot, in timpul pe care il mai am 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 .. deci incerc sa trag, macar sa nu ies pe ultimu loc, sa ies si eu pe penultimul
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #32 : Aprilie 22, 2008, 16:52:55 » |
|
Asta e corect doar daca nu vrei sa umpli vreun element din a cu sizeof(a) ... Cred ca se voia asta: Daniel, fii mai relaxat nu sti de unde sare iepurele! (de Paste )
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
|
« 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.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•wefgef
|
|
« Răspunde #34 : Aprilie 22, 2008, 17:24:25 » |
|
Asta e corect doar daca nu vrei sa umpli vreun element din a cu sizeof(a) ... Cred ca se voia asta: Daniel, fii mai relaxat nu sti de unde sare iepurele! (de Paste ) Oups.... 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
|
|
« 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
|
|
|
|
|
•amadaeus
Client obisnuit
Karma: 28
Deconectat
Mesaje: 93
|
|
« 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: va pune in x valoarea 1, pentru ca 2<3 Un exemplu mai practic este 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
|
|
« 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 Am vazut intr-o sursa pr TC pentru parcurgerea unui vector ceva de genu #define foreach(it,v) for(typeof v.begin() it = v.beign(); it != v.end(); it++) Pentru ce cazuri exista riscul sa 'crape'?
|
|
|
Memorat
|
|
|
|
•stef2n
|
|
« 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: in loc de 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 #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
|
|
« Răspunde #40 : Aprilie 29, 2008, 19:33:56 » |
|
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 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
|
|
« 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
|
|
|
Memorat
|
Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
|
|
|
•wefgef
|
|
« 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). 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
|
|
« Răspunde #43 : August 06, 2008, 16:35:54 » |
|
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
|
|
|
|
|