Trimis: Mie Dec 07, 2011 11:29 pm Titlul subiectului: C++
In acest treed vreau sa abordam problemele ce nu reusim sa le ducem la capat in limbaj C++.
Pentru inceput propun eu o problma. Citesc niste date dintr-un fisier.txt care este de forma:
"n (nr de reguli)
regula nr 1 (ex:123->5)
regula nr 2
..............
regula nr n
numarul pe care se aplica regulile. (ex:541234574588123123)"
Citesc intr-o matrice de tip int (2coloane, n lini) regulile. Intrebarea mea este cum pot inlocui in nr."541234574588123123" 123->5 rezultatul sa fie 545457458855?
Ma gandeam la o varianta ca fiecare regula sa fie pusa intr-un vector si sa compar vectorul cu regula cu vectorul cu nr... O alta varianta exista? _________________ Avram Remus
Trimis: Joi Dec 08, 2011 6:55 pm Titlul subiectului: O solutie
Propun ca fișierul text să aibă următoarea structură:
- Prima înregistrare să conțină textul supus regulilor
- A doua înregistrare să conțină regula numarul 1
.........
- A 'n+1'-a înregistrare să conțină regula numărul n
A se observa că nu trebuie precizat numărul de reguli, este egal cu
numărul de înregistrări din fișier diminuat cu 1.
Nu este nevoie de memorat fiecare regulă. Pe masură ce este
citit un rănd cu o regulă, se și operează. Se rezervă spațiu doar
pentru rezultat.
O altă soluție, dacă se ține a se păstra structura fișierului (deși numărul de reguli nu este necesar a se preciza, se poate calcula), este să se exploreze fișierul în doi pași, să se citească de două ori. Soluția cu 'vector de reguli' are dezavantajul că un astfel de vector trebuie dimensionat, deci, implicit, și limitat.
Nu puteți crea un subiect nou în acest forum Nu puteți răspunde în subiectele acestui forum Nu puteți modifica mesajele proprii din acest forum Nu puteți șterge mesajele proprii din acest forum Nu puteți vota în chestionarele din acest forum Nu puteți atașa fișiere în acest forum Nu puteți descărca fișiere în acest forum