infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Gheorghita Hurmuz din Martie 13, 2009, 15:59:00



Titlul: Numere foarte mari
Scris de: Gheorghita Hurmuz din Martie 13, 2009, 15:59:00
Salut.ce bine ca mai exista si in Romania astfel de comunitati(breavo pentru ceea ce faceti!).Am si eu o problema (mi se intampla mai ales la  problemele propuse de comunitatea infoarena si mi sa intamplat si la ozi-ca debea maine ii oji):cum pot sa folosesc vectori fff mari in c++?(adica sa folosesc x[10000000]).In multe probleme exista la restricti ceva de genul :n apartine intervalului 0 si k0000000 -k e o cifra dar nu conteaza ca oricum ii numar mare si bineinteles la teste exista doar 2, 3 numere mici si  la restu iau 0.Astept raspunsul vostru ...


Titlul: Răspuns: Numere foarte mari
Scris de: NUconteaza din Martie 13, 2009, 16:22:20
O solutie ar fi sa aloci in heap , unul din motive fiind dimensiunea ceva mai mare decat a memorie normale
Ca sa aloci in heap ai 2 variante
/////// int (*a) [100] = new int [10][100]; /// pt o matrice a[10][100]
/////// int *a =new int [100]; /// delete [100] a; /// pt un vector
a (numele variabile) si constantele 100,10 , cat  si tipul pot fi modificate

Ceva de luat in seama
Cand lucrezi cu heapu' daca dai debug nu o sa vezi niste valori ci niste adrese in borland si nu as recomanda sa
 folosesti alocare dinamica decat daca stii sigur ce se va intampla acolo , sau poti face multe afisari tu decizi.


Titlul: Răspuns: Numere foarte mari
Scris de: go gcc din Martie 13, 2009, 16:25:38
La probleme ai deasemena o limita de memorie si daca declari un vector de int de 10^7 o sa depasesti cu mult memoria admisa. Nu prea sunt probleme in care sa se poata rezolva doar folosind un vector asa de mare orcum in nicun caz la oji  :-'
unde poti avea cel mult de 10^5.  (in 640 kb)


Titlul: Răspuns: Numere foarte mari
Scris de: Flaviu Pepelea din Martie 13, 2009, 17:19:57
declara tu in borland c normal un vector de 10 ^ 5 si esti tare..... mai mult de 2 ^ 16 nu te lasa sa declari fara heap :P


Titlul: Răspuns: Numere foarte mari
Scris de: NUconteaza din Martie 13, 2009, 17:22:13
Cat are heapul 640kb sau in spatiul asta e inclusa si cea normala(64kb) ?


Titlul: Răspuns: Numere foarte mari
Scris de: Flaviu Pepelea din Martie 13, 2009, 17:23:04
am incercat eu sa declar cu pointeri in borland c si nu te lasa nici acolo mai mult de 2 ^ 16 :(


Titlul: Răspuns: Numere foarte mari
Scris de: go gcc din Martie 13, 2009, 18:37:01
Pai vorbeam in total deci si pe heap.  :)


Titlul: Răspuns: Numere foarte mari
Scris de: alexandru din Martie 13, 2009, 18:44:03
Hm presupun ca folosesti un compilator   ca si  Borland 3.1 ,nu? ....da cu el is mari probleme cand trebuie sa aloci un vector, sau o matrice de dimensiuni marii  ........cu alocare dinamica  nu e o idee rea dar nici odata nu sti daca iti crapa sau nu programul ....
Iti  recomand  sa-ti iei un   compilator sau IDE  mai bun .... de exemplul:  Visual C++, MingW ...etc :D


Titlul: Răspuns: Numere foarte mari
Scris de: Flaviu Pepelea din Martie 13, 2009, 18:44:45
Daca in borland c cu pointeri nu poti declara mai mult de 2 ^ 16 si normal la fel...totalul nu e cumva de 2 ^ 17? Totusi nu mi se pare a fi = cu 10 ^ 5 ;)


@Alexandru92 Si cum vrei tu sa iei un compilator mai nou la OJI? Te duci cu el de-acasa? :))


Titlul: Răspuns: Numere foarte mari
Scris de: CHERA Laurentiu din Martie 13, 2009, 19:03:58
 :D Amuzant ! Eu cred ca am sa plec cu laptopul personal! :ok: Dar nu va mai faceti probleme de alocare la OJI! Nu gasiti probleme care sa depaseasca memoria tocmai din cauza faptului ca sunt constienti de ce drujbe de compilatoare ne ofera! :D


Titlul: Răspuns: Numere foarte mari
Scris de: Sima Cotizo din Martie 13, 2009, 19:15:36
Eu cred ca am sa plec cu laptopul personal! :ok:
Interesant... si ce-ai sa faci cu el?  :-s De lucrat oricum nu ai voie sa lucrezi pe el.

Sunt insa de acord cu tine. Daca suntem pusi sa lucram in Borland, vom primi probleme care se pot rezolva corect cu cata memorie avem in Borland.


Titlul: Răspuns: Numere foarte mari
Scris de: alexandru din Martie 13, 2009, 19:35:14
Citat
Si cum vrei tu sa iei un compilator mai nou la OJI? Te duci cu el de-acasa? :)
N-ar fi o idee rea , le mai aratam profilor ce compilatoare s-au mai inventat :D.....si asa de la anul o ducem mai bine , cu Mingw , din cate am inteles  si anul asta se poate cere folosirea lui  numai ca  evaloarea se face tot sub  Borland              (remarcati prostia???) 


Titlul: Răspuns: Numere foarte mari
Scris de: Emanuel Cinca din Martie 13, 2009, 19:44:25
Nu vad nicio prostie. Anul asta toata lumea Borland si de la anul MinGW... Sanse egale! Nu ar fii corect ca unii sa aiba MinGW si altii Borland. Crede-ma ca si profii au habar de compilatoare. Doar ca la OJI nu merg toti cu gandul la ONI. Unii nu au acces la atatea informatii sau nu sunt asa interesati si normal ca nu le pasa pe ce se face evaluare si in ce scrii tu codul :)

Bafta! :peacefingers:


Titlul: Răspuns: Numere foarte mari
Scris de: Flaviu Pepelea din Martie 13, 2009, 19:46:51
No du-te tu si aratai profului ce compilatoare noi mai sunt, pe care oricum le cunoaste!
Ma bucur pt voi daca schimba de la anul compilatoarele, insa pt mine nu mai are nici un farmec :P.


Bafta oricum tuturor maine, si sa aveti parte numai de surprize :)


Titlul: Răspuns: Numere foarte mari
Scris de: alexandru din Martie 13, 2009, 20:20:53
Succes  maine tuturor ...........:D  sa ne  vedem  la ONI cu bine  ...sa aveti probleme usoara ;)
Sa ne vedem si  la  oci (olimpiada cosmica de info )  :rotfl: :rotfl:
Citat
Nu vad nicio prostie.
De  exemplu daca scrii in  Mingw :
Cod:
#include<fstream>
using  namespace std;
int main()
  { return 0;
  }
E corect da?? ....dar daca pui sursa asta in Borland ai destule erori....:D


Titlul: Răspuns: Numere foarte mari
Scris de: Emanuel Cinca din Martie 13, 2009, 20:42:40
Si care e prostia? Ca s-au schimbat putin denumirile la biblioteci? daca tu ne-ai nascut invatat si stiai ca standardul actual, bravo tie! Altii, printre care si eu, invata tot timpul lucruri noi.. mai bine o lasam balta ca dam in offtopic fara sens si flame. Cred ca mai bine se inchide topicul...