Lucrul cu numere mari

Referat
7/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 19 în total
Cuvinte : 3325
Mărime: 15.79KB (arhivat)
Publicat de: Mirela M.
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: Ion Vasile
operatii cu numere mari

Extras din referat

De multe ori , in probleme, apar situatii cand este nevoie sa memoram numere intregi foarte mari (de ordinul sutelor de cifre), iar uneori trbuie sa efectuam si operatii aritmetice cu aceste numere. Iata un exemplu:

Se dau doua numere naturale cu n<=1000 decifre. Se cere sa se calculeze urmatoarele operatii:

- initializarea celor doua numere;

- compararea celor doua numere;

- adunarea numerelor;

- scaderea numerelor;

- inmultirea si impartirea cu puteri ale lui 10;

- inmultirea cu un scalar;

- inmultirea celor doua numere;

- impartirea unui numar cu un scalar;

- impartirea celor doua numere.

Problema este cat se poate de simpla din punct de vedere matematic; dificultatea apare la implementare, atat datorita structurilor de date necesare, cat mai ales datorita complexitatii cerute.Despre lucrul cu numere intrgi (chiar si longint) nici nu poate fi vorba, iar la lucrul cu numere reale apar erori de calcul.

Structura de date propusa pentru abordarea acestui gen de probleme este urmatoarea: numerele vor fi reprezentate printr-un vector de cifre zecimale.

Numerele reprezentate pe vectori le vom numi pur si simplu “vectori”, iar numerele reprezentate printr-un tip ordinal de date le vom numi, printr-o analogie usor fortata cu matematica, “scalari”.Sa vedem cum se efectueaza operatiile elementare pe aceste numere.

Initializarea

Un vector poate fi initializat in trei feluri: cu 0,cu un scalar sau cu un alt vector.

La initializarea cu 0, singurul lucru pe care il avem de facut este sa setam numarul de cifre pe 0. De aceea, este practic inutil sa implementam aceasta functie ca atare; putem folosi in loc singura instructiune pe care ea o contine.

La initializarea cu un scalar nenul, trebuie sa asezam fiecare cifra pe o pozitie corespunzatoare, afland in paralel si numarul de cifre. Se incepe cu cifra unitatilor, si la fiecare pas se pune in vector cifra cea mai putin semnificativa, dupa care numarul de reprezentat se imparte la 10 (neglijandu-se restul), iar numarul de cifre se incrementeaza.

In sfarsit, initializarea unui vector cu altul se face printr-o simpla copiere (se poate folosi cu succes rutina de lucru cu memoria, cum ar fi fillchar in Pascal sau memove in C). Pentru eleganta, poate fi folosita si atribuirea cifra cu cifra.

Compararea

Pentru a compara doua numere “uriase”, incepem prin a afla numarul de cifre semnificative (deoarece, in urma anumitor operatii pot rezulta zerouri nesemnificative care “atarna” totusi la numarul de cifre). Acestea se face decrementand numarul de cifre al fiecarui numar atata timp cat cifra cea mai semnificativa este 0. Dupa ce ne-am asigurat asupra acestui punct, comparam numarul de cifre al celor doua cifre. Numarul cu mai multe cifre este cel mai mare. Daca ambele numere au acelasi numar de cifre, pornim de la cifra cea mai semnificativa si comparam cifrele celor doua numere pana la prima diferenta intalnita.In acest moment, numarul a carui cifra este mai mare este el insusi mai mare. Daca toate cifrele sunt egale doua cate doua, atunci in mod evident numerele sunt egale.

Dupa cum se vede,algoritmul seamana foarte bine cu ceea ce s-a invatat la matematica prin clasa a II-a (doar ca atunci nu ni s-a spus ca este vorba de un “algoritm”).Rutina de mai jos compara doua numere uriase H1 si H2 si intoarce –1, 0 sau 1, dupa H1 este mai mic,egal sau mai mare decat H2.

Adunarea celor doua numere

Fiind dati doi vectori, A cu M cifre si B cu N cifre, adunarea lor se face in mod obisnuit, ca la aritmetica. Pentru a evita testele de depasire, se recomanda sa se completeze mai intai vectorul cu mai putine cifre cu zerouri pana la dimensiunea vectorului mai mare. La sfarsit, vectorul suma va avea dimensiunea vectorului mai mare dintr A si B, sau cu 1 mai mult daca apare transport de la cifra semnificativa. Procedura de mai jos adauga numarul B la numarul A.

Preview document

Lucrul cu numere mari - Pagina 1
Lucrul cu numere mari - Pagina 2
Lucrul cu numere mari - Pagina 3
Lucrul cu numere mari - Pagina 4
Lucrul cu numere mari - Pagina 5
Lucrul cu numere mari - Pagina 6
Lucrul cu numere mari - Pagina 7
Lucrul cu numere mari - Pagina 8
Lucrul cu numere mari - Pagina 9
Lucrul cu numere mari - Pagina 10
Lucrul cu numere mari - Pagina 11
Lucrul cu numere mari - Pagina 12
Lucrul cu numere mari - Pagina 13
Lucrul cu numere mari - Pagina 14
Lucrul cu numere mari - Pagina 15
Lucrul cu numere mari - Pagina 16
Lucrul cu numere mari - Pagina 17
Lucrul cu numere mari - Pagina 18
Lucrul cu numere mari - Pagina 19

Conținut arhivă zip

  • Lucrul cu Numere Mari.DOC

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Placa de Bază

Caracteristici generale ale placii de baza Placa de baza este un dizpozitiv ‘de baza’ un ‘pamânt’ pe care ‘se planteaza’ celelalte componente ....

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Te-ar putea interesa și

Sibiu - capitală culturală europeană în 2007

Aşezat în centrul ţării, acolo unde s-au întâlnit dintotdeauna drumurile ce au legat teritoriile istorice românesti, Sibiul a fost şi rămâne o...

Numere Prime

INTRODUCERE Studiul numerelor prime face parte din teoria numerelor, ramura matematicii care include studiul numerelor naturale. Numerele prime...

Analiza profitabilității la SC EnergCconstructia SA București

INTRODUCERE Teoria sondajelor are ca obiect furnizarea unui cadru metodologic ştiinţific destinat modelării, în situaţii tip, a problemelor legate...

Aritmetica în Precizie Multiplă

I. Aritmetica Scopul principal al acestui capitol este de a efectua un studiu minuţios asupra celor patru procese de bază ale aritmeticii:...

Studiul Procesului de Ungere

Conditiile de lucru ale autovehiculelor si utilajelor moderne au determinat cercetari intense pentru gasirea unor lubrifianti corespunzatori,...

Figuri Proeminente ale Contabilității Românești

Tema abordată în prezenta lucrare pune în valoare marile figuri proeminente ale contabilităţii româneşti într-un demers sistematic al celor mai...

Analiza nivelului de fidelitate al clienților hotelului Fullton

INTRODUCERE Integrat în sfera terţiarului, datorită gamei largi şi eterogene a serviciilor ce intră în conţinutul activităţii sale, turismul este...

Cultura română, în perioada comunistă și după 1989

In următorul eseu voi încerca să descriu transformările prin care trece cultura română în perioada 1944 -1989, perioadă de represiune comunistă, şi...

Ai nevoie de altceva?