Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Parsare  (Citit de 6302 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Sorin_Ionut
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« : Februarie 26, 2009, 08:27:46 »

O intrebare destul de simpla

Ce este ? && Cum se foloseste ?
 Presupun ca este o varianta de citire a datelor mai eficienta decat fscanf(...),scanf() si sau cin>>,fstream-uri. Huh

Am vazut ca tot vorbeste lumea, si se foloseste la probleme.

Ma ilumineaza si pe mine cineva ?
 Multumesc anticipat !
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #1 : Februarie 26, 2009, 12:32:05 »

Nu este o varinta de  citire  Tongue
O folosesti pentru  a verifica daca doua  conditii  au aceeasi valoare de adevar.
de exemplu:
Cod:
#include<iostream.h>
int main()
  {int a,b;
   cin>>a>>b;
   if(a&&b) cout<<a<<"  si  "<<b<<" sunt diferite de 0";
    else if(!a&&!b)
             else  cout<<a<<"  si  "<<b<<" sunt egale cu 0";
   return 0;
 }
Pentru   mai multe detalii poti citi : http://ro.wikipedia.org/wiki/Logic%C4%83_binar%C4%83
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #2 : Februarie 26, 2009, 12:59:42 »

nu vad ce legatura are ce ai zis tu sau linkul tau cu parsarea.
Parsarea chiar este o metoda de citire mai rapida. Se foloseste atunci cand ai de citit mai multe numere, in loc sa citesti numar cu numar, le citesti pe toate deodata ca string si il procesezi dupa aia ca sa iti scoti numerele care iti trebuie.
Memorat
Sorin_Ionut
Client obisnuit
**

Karma: 14
Deconectat Deconectat

Mesaje: 53



Vezi Profilul
« Răspunde #3 : Februarie 26, 2009, 13:27:04 »

Am mai gasit cateva informatii tot in forum:
 http://infoarena.ro/forum/index.php?topic=3184.0

M-am cam lamurit in aceasta privinta dar mai am ceva de intrebat
Chiar merita sa faci citirea asa ? (totusi din ce am vazut ai un gets() care citeste un sir , apoi un for care tot incrementeaza pe i si mai face niste operatii etc)
La prima impresie pare o chestie "de om nebun" sa faci asa ceva, (si totusi se foloseste)
Din acest motiv am nevoi de sfaturile voastre ce-mi recomandati ?
A patit-o cineva pe "pielea lui" ?

 Multam' pt timpul acordat !

@alexandru92 : eu ma refeream la ce a zis si "devilkind" merci oricum pt interventie !

PS: daca va intereseaza o problema cu parsare jump here http://infoarena.ro/problema/color (problema 95 arhiva)
« Ultima modificare: Februarie 27, 2009, 16:11:10 de către BYSorynyos » Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #4 : Februarie 26, 2009, 13:46:48 »

daca ai un input foarte mare si numerele sunt scrise toate pe o linie (adik le citesti din prima pe toate) se merita. De asemenea daca sunt pe mai multe linii am impresia ca poti folosi fread sau ceva de genu si citesti tot fisieru insa nu l-am folosit niciodata si de asta nu pot sa zic nimic in privinta lui. Insa trebuie sa fii foarte atent la formatul fisierului de intrare, daca nu il respecti intocmai cand faci parsarea s-ar putea sa iti buseasca urat.
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #5 : Februarie 26, 2009, 15:54:18 »

Scuze eu am  citit doar intrebarea  Ce inseamna ?&& , nu m-am uitat la numele topicului Very Happy.
Dar  "pasare" nu este si o strategi de programare?
Memorat
marcelcodrea
Nu mai tace
*****

Karma: 173
Deconectat Deconectat

Mesaje: 217



Vezi Profilul
« Răspunde #6 : Februarie 26, 2009, 16:43:35 »

Parsarea nu e o strategie de programare, e o metoda de a optimiza artificial un program atunci cand volumul datelor de intrare este foarte mare(se poate face si in cazul unui volum redus de date de intrare dar nu este recomandat deoarece nu o sa se simta vreo diferenta dintre timpii de rulare).
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #7 : Februarie 27, 2009, 00:02:00 »

Toata ideea parsarii se leaga de operatiile cu discul, care sunt foarte incete.
Daca citesti numar cu numar, practic citesti cate ~4 bytes de-odata din fisier. Deci un numar mare de citiri de volum mic.
Dar daca citesti o singura data tot continutul fisierului dintr-o bucata, citirea o sa mearga mai repede. "parsarea" datelor in memorie dureaza mai putin decat daca ai citi "bucatica cu bucatica" din fisier.

Cel mai optim este sa citesti in bucati de X MB, unde X este bufferul hardului. (dar asa ceva nu prea este aplicabil la concursuri). Poti testa cu diferite valori pentru X si sa vezi ce performate obtii (hint: sa fie puteri ale lui 2). Dupa ce citesti bucatiile le lipesti in memorie si le parsezi.

Dar cu ultimile versiuni de compilatoare streamurile au devenit ceva mai rapide. Unul din aceste motive este ca au imbunatatit citirea. Deci nu stiu daca se mai merita sa parsezi inputul. Trebuie testat. (pentru fisiere de dimensiuni mari)
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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