Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: Algoritmica  (Citit de 12948 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #25 : August 03, 2011, 22:14:48 »

Ok, ok Smile deci e mult interes. Sper sa nu dezamagesc prea tare pt ca scopul e sa scriu putin doar sa va deschid pofta Smile.
Memorat
MKLOL
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 25



Vezi Profilul
« Răspunde #26 : August 04, 2011, 16:03:54 »

12, 5, si 8 Very Happy
Memorat
nash
De-al casei
***

Karma: 0
Deconectat Deconectat

Mesaje: 109



Vezi Profilul
« Răspunde #27 : August 06, 2011, 01:17:09 »

Despre ce inseamna algoritmi in general si importanta lor in industrie cred ca oricine are treaba cu acest domeniu are cel putin o idee ( de la "maimuta" la cercetator ). O prezentare interesanta ar merita si modul in care acestia pot fi implementati pentru a aduce maxim de performanta si de reutilizare. Cand zis asta nu ma refer cat de bine poate cineva implementa un flux... etc, ci mai degraba la probleme de design de software... In lumea reala un design bun poate face ( uneori ) mai mult decat o complexitate imbunatatita pe anumite subrutine. Ar trebui mentionat si acest fapt pentru viitorii pasionati ai domeniului.
De cele mai multe ori solutiile trebuie implementate in arhitecturi complexe si integrate cu alte arhitecturi iar modul in care interactioneaza poate scoate ( sau nu ) la suprafata calitatile/hibele noului algoritm.

Ex. E usor sa gandesti implementarea unui BSP ( binary space partition ) mai urat este sa te gandesti cum implementezi o arhitectura care sa inglobeze intr-un engine grafic acest arbore si sa se foloseasca la maxim acesta noua solutie de a randa partial elementele unei scene.
Ex. E usor sa realizezi cum desenezi o linie pe ecran... dar totul devine complex cand trebuie sa randezi o lume intreaga. Cum analizezi acesta problema? Cum organizezi codul pentru a face totul flexibil la modificari ?
Ex. Pare destul de logic cum parsam si interpretam un string pentru a evalua o expresie aritmetica insa daca discuti despre crearea unui compilator lucrurile se complica.
Ex. Cei care utilieaza OpenGL pentru grafica. Daca nu si-ar adapta algoritmii pentru state machine-ul arhitecturii acestui api nu ar reusi sa isi umbunatatesca perfomantele. ( chiar si modelul utlizat de openGL este unul ales astfel incat sa imbunatatesca performantele operatiilor grafice... )

Scuze pentru atatea exemple din grafica... defect de meserie Smile

Exemplele pot continua Smile
« Ultima modificare: August 06, 2011, 01:32:17 de către nash mit » Memorat
maritim
Vorbaret
****

Karma: 59
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #28 : August 06, 2011, 17:53:50 »

Sunt interesante 4, 9, 10 Smile !
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #29 : August 07, 2011, 07:51:46 »

2) si 12)
Memorat
warchildmd
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #30 : August 08, 2011, 14:07:29 »

9, 10 si 12.
Memorat
Interlude
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #31 : August 11, 2011, 00:17:23 »

De remarcat ca ORICE, repet ORICE persoana care a scris chiar si un Hello World a interactionat indirect, chiar si fara sa-si dea seama cu acest concept al algoritmului. Un algoritm poate fi vazut ca un set finit de pasi, clar specificati, ce descriu si prescriu o solutie pentru o anumita problema. Un algoritm este o metoda de a corela un input cu un output. Daca ne gandim la ce inseamna o functie(un mecanism de asociere a unui obiect din multimea D cu un obiect din multimea C) am putea spune ca un algoritm seamana intr-o oarecare masura cu o functie desi... nu este o functie ci un set de pasi ce trebuie urmati,ce indeplinesc o preconditie, fiind cerut ca la finalul urmarii acestor pasi sa fie valida/satisfacuta o postconditie. Iata cateva exemple, despre care putini gandesc ca intr-adevar reprezinta algoritmi:

Cod:
printf("Eu sunt un algoritm\n");

Cod:
 x = 3; 

Cod:
 void main()
{
vec3 ct,cf;
vec4 texel;
float intensity,at,af;
intensity = max(dot(lightDir,normalize(normal)),0.0);

cf = intensity * (gl_FrontMaterial.diffuse).rgb +
 gl_FrontMaterial.ambient.rgb;
af = gl_FrontMaterial.diffuse.a;
texel = texture2D(tex,gl_TexCoord[0].st);

ct = texel.rgb;
at = texel.a;
gl_FragColor = vec4(ct * cf, at * af);

}

Cod:
 daca 1==2 atunci scrie("Ceva este in neregula"); 

Toate exemplele de mai sus sunt algoritmi! Ceea ce difera este limbajul in care au fost scrisi, astfel ajungem la un nou aspect ce tine de specificarea algoritmilor. Un algoritm poate fi specificat formal,informal, uzand de un limbaj(toti cunoastem limbajul pseudocod, acea scriere intermediara, de nivel inalt folosita deseori pentru a ne simplifica munca).

Va sa zica, a spune ca nu te folosesti de algoritmi denota o lipsa de cunoastere(cunoastere ce iti este necesara) a ceea ce faci. Cu siguranta, vrei sa spui ca, de nu folosesti BFS, DFS, arbori indexati binar, Dijkstra, si mai stiu eu ce minune de algoritm care probabil nici nu poarta un nume dar este "smecher" dupa cum zic unii, atunci nu folosesti algoritmi. Dar modul asta de abordare a situatiei trebuie revalidat. Tu, folosesti algoritmi, beneficiezi de pe urma investigatiilor si analizei algoritmilor in fiecare zi, fara sa-ti dai seama. Pe langa asta traiesti dupa diversi algoritmi (iata unul amuzant: dormit, trezit, programat si inapoi la dormit), urmezi conduite in viata ta care seamana cu pasi ce-i urmezi pentru a rezolva probleme. Si-atunci daca pretutindeni este prezent conceptul de algoritm, de ce spui ca ti-e bine fara el, cand de fapt il porti in gandirea ta si in faptele tale?

Problemele clasice(si nu numai) pe care le studiem la scoala sunt menite sa ne formeze o gandire algoritmica, sa ne dezvolte capacitatile de a gandi folosind algoritmi, de a descompune probleme complexe in probleme mai simple, desigur de a forma o intuitie apriga(necesara mai ales in conditii de concurs) si de a construi un bagaj de instrumente/unelte utile in "atacarea" problemelor ce ni se cer spre rezolvare.

La ce sunt buni algoritmii zici? La rezolvarea de probleme cu siguranta. Si se pare ca cine stie algoritmi dintre cei mai complecsi, cine ii intelege profund si jongleaza cu ei intr-un mod creativ fiind capabil sa construiasca alti algoritmi da dovada de calitati ce il fac cautat in lumea de astazi pentru un job de... programator / cercetator / profesor samd.

Dar ce ne facem daca nu ne trebuie "algoritmi"(adica metode poate mai complexe de a rezolva probleme)? Pai nu ne facem nimic! Daca ne descurcam fara ei nu doare pe nimic capul ca nu stim sa implementam un BFS(poate doar profesorul / profesoara de informatica ar putea sa aiba ceva de spus). Va sa zica nu trebuie nimeni stigmatizat ca are o aversiune fata de algoritmi, poate ca se descurca la altceva, la imbinarea a diverse tehnologii(web poate),  la folosirea cu succes a unor librarii, la a face un (singur) lucru bine si repede. Si sa stiti ca sunt destule firme care te plafoneaza, antrenandu-te si dezvoltandu-te in a efectua un singur tip de sarcina repede fi foarte bine.

Insa problema este ca lumea se schimba, domeniul informaticii fiind unul fluid, viclean, limbajele de programare vin si pleaca, tehnologiile, librariile, frameworkurile evolueaza insa afla ca algoritmii/conceptele raman!  Brick wall.

Este natural ca pentru o persoana ce se descurca bine cu algoritmii sa invete nou limbaj de programare mult mai repede(chiar si un limbaj caracterizat de o paradigma diferita-functional,logic,algebric) fata de cineva ce este fixat pe o singura paradigma si un singur limbaj de programare.

Iar in societatea schimbarii, in care se cultiva concepte ca invatare/formare continua, de nu-ti cultivi si tu o oarecare adaptabilitate formata de-a lungul timpului, sustinuta de concepte care se schimba mai greu sau poate ca nicicand e posibil sa te descurci mai greu.

Asa ca ce zici? Incercam un BFS?  Weightlift
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #32 : August 11, 2011, 01:07:15 »

Asa ca ce zici? Incercam un BFS?  Weightlift

Nu ... pe ala il stim  Tongue
Memorat
Interlude
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #33 : August 11, 2011, 01:15:49 »

Asa ca ce zici? Incercam un BFS?  Weightlift

Nu ... pe ala il stim  Tongue

Era o gluma  Very Happy
Memorat
Adriana77
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #34 : August 31, 2011, 11:14:51 »

Intotdeauna va fi aceasta polemica - daca e nevoie sau nu de algoritmi. Parerea mea e ca DA, e mare nevoie de ei. Poate nu ii gaesti "pe toate gardurile", dar cred ca cunoasterea acestor algoritmi te face sa devii un adevarat programator.

Ideea de a scrie un articol sau mai multe cred  ca e mai mult decit binevenita   Applause

Eu as fi interesata de :

- oricare subiect de la 1-4 pt ca e vorba de search
- 5
- oricare dintre subiectele de la 8 la 10
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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