Ani de liceu

In orice clasa exista cite un elev care invata si restul care copiaza de la dinsul. Stupoarea maxima apare cind dupa corectare primesc toti nota 2, deoarece cel de la care s-a copiat a prins o zi proasta si a raspuns pe linga. Caz concret pe bancile scolii ardenele:

Marius Bancila despre accesarea unui array 2D:

unsigned char* bmp1;
bmp1=new unsigned char[rows * cols];
for(int i=0;i<rows;i++)
   for(int j=0;j<cols;j++)
      bmp1[i * rows + cols] = i+j;

Silviu Ardelean confirmindu-si clasa de copiac notoriu:

Viorel, urmeza sfatul lui Marius de-a folosi array-ul uni-dimensional pentru stocarea imaginii. Cu astfel de buffere se lucreaza in procesarea de imagini.

Anyway… renunta la abordarea cu array-ul 2D si rezolva-ti problema cu un banal array 1D via bmp1[i*row + coloum] = i+j;

Stati jos, 2.

Tags: , , , , , , ,

24 Responses to “Ani de liceu”

  1. DarkByte Says:

    i * cols + j … da’ nu am inteles de ce asigneaza cu i + j … n-ar trebui valoarea din matricea initiala (2D) … adica mat[i][j] ?

    What the … ?

  2. cineva Says:

    Ala era doar un exemplu de asignare. Nu era chiar programul original, era o “modelare” sau “exemplificare” nereusita a problemei reale.

  3. Mihnea Says:

    Da, valoarea asignata nu conteaza, era un exemplu. Conteaza cum e calculat indexul ala, ca-i calculat in vreo 4 feluri de 3 oameni diferiti, si toate sint gresite, in virtutea propagarii prostiei.

  4. DarkByte Says:

    Ok, thanks :) Ma gandeam ca au stricat chiar tot :))

    Cat despre cum folosesti indecsii din matrice in array 1D, faceam din astea in liceu … Marius probabil ca a gresit din viteza, dar Silviu e … tot Silviu :D

  5. jos8cal Says:

    @cineva: Sample-ul de cod era identic, nu stiu despre ce vorbesti. Doar ca citind aici ca am ris de dinsii, Marius si-a corectat indexarea fara sa-i apara in post cum ca ar fi editat mai tirziu (eh, beneficiile de a fi Dumnezeu cu forum). Si bineinteles automat si Silviu, citeva posturi mai jos, a recomandat in nume propriu si personal acelasi sample de cod. Muie la amindoi!

  6. Mihnea Says:

    Hahaha taci ma ca n-a recomandat in nume propriu ACELASI sample. Intii a schimbat for-urile intre ele, ca sa aiba si el o contributie originala, futu-l in gura de muist. Acum for j e in exterior, ca asa stie el alfabetul: h, j, i, iii, virgula, k. Cred ca din nou a folosit un criteriu de optimizare d-ala de-al lui, cum ar fi maximizarea numarului de cache miss-uri.

  7. jos8cal Says:

    E tare ca exact asa era si la scoala. Asta era metoda cu care in ingeniozitatea unei minti de 15 ani “induci” in eroare pe domnul Trandafir, ca NU ARE CUM sa se prinda ca ai copiat daca ai inlocuit i-ul cu j-ul si rows cu coloum, mai ales dupa ce ai dat vreo 3 raspunsuri pe linga si ai si dosal penal plin de manevre si algoritmii de traffic sign recognition si lane departure warning.

  8. cineva Says:

    @jos8cal: Deci, matricea in “problema model” era construita astfel: a[i][j] = i+j. Era o umplere bogus, sa exemplifice ca are o matrice.

    In problema reala pe care o avea Viorel2005 era vorba (rezulta mai tarziu asta) de ceva imagine pe care vroia sa o “decompreseze” cu o functie din jbig. Cum e posibil sa fie vorba de o imagine cu mai multi octeti per pixel (nu prea are rost sa separi planurile de imagine intr-o imagine grayscale cu 1 octet/pixel, nu?), oricum nu functioneaza nici codul propus acolo (ma refer la varianta corectata). Trebuie sa-si mai adapteze un pic codul sa suporte N bytes per pixel.

    Sau poate incerca mai simplu, sa foloseasca un cast, asa cum spera sa se poata de la inceput: cast a spell!
    Sau sa recunoasca ca are o problema mai mare, pe care nu o poate rezolva cu programarea pe care (nu) o stie.

    Asta daca Viorel2005 e real, daca nu e de fapt un (sau doi) pescar priceput care arunca momeala in balta de mvp, in speranta ca musca careva si sa-si pescuiasca astfel subiecte pentru blog…

  9. cineva Says:

    Apropos de copiat – am avut un asistent care avea o obsesie pentru furat/copiat. Daca nu am rescris programul de la laborator de 5 ori (recunosc ca primul era inspirat dintr-un tutorial pe care ni l-a dat, dar parea de business ceruta a fost facuta de mine), ultima oara complet din cap, fara sa mai arunc o geana pe tutorial. Concluzia, dupa ce a apreciat cum afisez gradul de umplere al unui buffer, dupa ce s-a convins ca merge: “destul de bine afisarea, functioneaza bine. Pacat ca e furat”.

    Revin la concluzia mea – e neelegant sa postezi cod gresit. E cum e sa nu reusesti sa-l corectezi nici din N incercari. Dar ideea de baza s-a transmis. Daca Viorel2005 e receptiv, n-are decat sa-si scrie propriul cod care sa-i stocheze propriile date dupa propriile-i nevoi.

  10. Mihnea Says:

    Initial explicasem problema astfel incit s-o poata pricepe si cei care nu se descurca cu incrementarile si destructorii virtuali, dar vazind ca minerul tot n-a reusit sa scrie codul cum trebuie nici dupa editare, am zis sa mentin un pic suspansul, asa ca am sters. Mistoul de rigoare se gaseste in noul articol. Daca ai nevoie de explicatii tehnice despre linii si coloane, da-mi un mail si-ti recomand gratis o scoala ajutatoare unde te poti inscrie.

  11. cineva Says:

    Nah, acum ca ai postat tu in timp ce scriam, am sters eu frumusete de post (si era pe litere, cum ziceai).

    Deci, e clar ca nu am scuzat greseala decat prin prisma “desi nu e corecta solutia, ideea de baza s-a transmis”? Si ca nu am zis nicaieri ca au scris codul corect? Si ca tot ce am zis a fost ca asignarea valorii i+j nu conteaza, pentru ca toata problema era principiala, nu problema reala a lui Viorel?
    Tot commentul pentru jos8cal explica de ce cred eu ca nu conteaza i+j si ca de fapt nici daca era dat codul corect pentru indexarea unui array tot nu-i era de folos mot a mot lui Viorel (treaba aia cu multi-byte). Deci era neaparata nevoie sa fie omul receptiv si sa aiba abilitati de programare (si subtil afirmam ca nu e nici receptiv si nu stie nici programare).
    Tot in tema asta si codul “corect” postat de Viorel2005 e gresit – nu copiaza la adresa corecta (uita ca el lucreaza cu int, calculeaza indexul ca pentru char).

    Eu citesc aici din acelasi motiv pentru care scrieti voi (iar pe codexpert nu activez, ca nu am pretentia nici de a fi expert si nici ca vreau sa-i invat pe altii). Daca s-a inteles altfel, e vina abilitatilor mele de comunicare si talentului de a-mi complica exprimarea pana cand lucrurile incep sa-si piarda sensul initial.

    Nu inteleg de ce daca nu sunt expert de ce nu pot sa va banuiesc de practici din astea de a da probleme de a 5-a acolo, just for the fun of it. Ce e gresit in a va banui de asa ceva? Poate ca va dau idei…

  12. Mancuso Says:

    Am eu o viziune… sau si pe aici exista D-zei si dispar comentarii? :P

  13. Mihnea Says:

    Evident ca am avut si noi ideea de a ne face conturi cu care sa punem intrebari elementare ca sa ridem de zbaterile lor, dar nu-i nevoie cit timp ii tin prin preajma pe mesajflaviu si viorel2005.

  14. Mihnea Says:

    Mancuso, n-a disparut de tot, a fost inlocuit cu explicatia disparitiei sale. De aici nu dispar comentarii fara urma, asta e apanajul vostru.

  15. cineva Says:

    Exista si aici. Dar e scuzabil daca recunosc ca au inteles gresit ceva (de la cineva).

    @Mihnea: Deci v-ati gandit si voi! Na, deci era legitima intrebarea, nu? Si cum ma face asta “expert”? I fail to understand…

  16. Mancuso Says:

    Deci la voi nu e o problema ca se editeaza/sterg comentarii… doar la mvp-ii e problema.

  17. Mihnea Says:

    Nu mai boule, nu-i problema ca “se” editeaza, e problema ca “se” corecteaza greselile si dupa aia “se” pretinde ca n-a fost niciodata nimic gresit. De asemenea e problema ca nu “se” recunoaste cine le-a aratat ca au gresit.

    In comentariul pe care l-am editat nu era nici o greseala, explicam de fapt ce e gresit in codul lui Silviu si cum se repara. L-am sters pentru ca sa nu-i dau minerului solutia chiar mura in gura, ca sa mai ridem un pic cu el aici. Daca nu vezi diferenta dintre cele doua situatii, o sa-ti dau ban, ca sa ai motive suplimentare de a vedea similitudini unde nu sint.

    Si ma fut pe diateza ta pasiva.

  18. Mihnea Says:

    cineva, am tras concluzia ca ai fi expert deoarece ai acelasi IP ca Coco, respectiv Mancuso si deoarece te-ai apucat sa faci teoria evidentului despre problema lui viorel si receptivitatea lui. Daca nu esti, imi cer scuze, dar cele doua chestii sint destul de incriminatoare. Poate am inceput sa vad si eu codexperti peste tot, asa cum ei ne vad pe noi peste tot. Daca as fi Ovidiu Cucu (sau poate sint, cine stie), as baga zicala aia cu ori esti cu noi, ori impotriva noastra.

  19. Mancuso Says:

    Hai s-o iau pe limba ta….
    Mai sughi-bughi, adevarul e ca si la voi “se” poate observa foarte bine “schimbarea”. E de-a dreptul “invizibila”.

    PS. Sper ca ai auzit de NAT.

  20. jos8cal Says:

    Alt poet “in” pula “mea”. Bai, ori zici ce explicit unde bati, ori ne lasi.

    PS. N-am auzit de NAT. Poti sa te cobori sa ne explici?

  21. Mihnea Says:

    Scrie in schimbare ca a fost schimbare. Daca stii sa citesti, observi. Daca ai IQ-ul sub 85, vii si te plingi ca e “invizibila”. Oricum, tot n-ai inteles ca nu editarile in sine sint problema, nu? Permite-mi sa-ti sugerez ca daca vreodata in viata iti va propune cineva sa dai un test Miller, sa refuzi, ca sa nu ajungi subiect de bascalie.

  22. Mancuso Says:

    Remarc si eu modificarile ceva mai tarziu pentru ca nu stau cu lupa pe voi sa va urmaresc fiecare modificare.
    Nu imi este permis sa remarc si eu modificarile voastre?
    Voi aveti o pasiune pentru schimbarile unora caci blogul vostru, in mare parte, din asta traieste.

  23. Cristi Says:

    ardenele :p

  24. Mihnea Says:

    Mancuso, tu esti chiar asa de prost, sau te prefaci in speranta ca o sa reusesti sa ma enervezi? Ce legatura are ce-ai postat acum cu ce-am vorbit mai devreme?

    Inca o abatere si-ti schimb numele in Silviu Ardelean, ca sa ne dam jos mastile.

    Edit: in caz ca te intrebai de ce nu ma tin de promisiunea cu ban-ul, EDITEZ acest comentariu pentru a-ti veni in intimpinare si a-ti raspunde ca m-am decis sa nu banez IP-ul lui Bitdefender, ca n-ar fi corect fata de colegii tai.

    PS, si inca un EDIT si ce mai vrei tu: tare aia cu “remarc si eu modificarile ceva mai tarziu”.

Leave a Reply

Optionally add an image (JPEG only)