Citirea unui numar mare

Citirea unui numar mare

Citirea unui număr mare se va realiza într-un șir de caractere, apoi vom transforma caractere cifră în numere și le vom mememora în ordine inversă în vectorul care va contine numărul mare. Pentru a ușura calculele ulterioare, vom completa cu 0 pozitțiile din vector care nu au fost ocupate de cifrele numarului mare.

Funcția citire are doi parametri:

    • șirul de caractere în care vom memora cifrele numărului mare: char s[DIM_MAX];

    • numărul de cifre ale numărului mare: int ≶

Observații:

    • parametrul lg se transmite prin referință pentru ca funcția citire() să poată modifica valarea acestui paametru, valoarea rămânând modificată și după apel

    • parametrul s nu este nevoie să se transmită prin referință, deoarece este un vector, fiind pinter constant la primul element al șirului.

    • este necesară definirea parametrilor formali în funcția citire(), putând astfel utiliza aceasta functie pentru citirea mai multor nume mari, apelând funcția pentru fiecare în parte.

//citire numar mare

void citire(char s[DIM_MAX],int &lg)

{ char sir[DIM_MAX]; //sir auxiliar

int i;

cin.get(sir,DIM_MAX);

cin.get();

//determin numarul de cifre

lg=strlen(sir);

//transform caracterele cifre in numere si le retin in ordine inversa

for(i=lg-1;i>=0;--i)

s[lg-i-1]=sir[i]-'0';

//completam vaectorul cu 0 pana la DIM_Max - cifre nesemnificative

for(i=lg;i<DIM_MAX;i++)

s[i]=0;

}

Apelul funcției:

citire(a,lga); //citirea numărului a cu lga cifre

citire(b,lgb);//citirea numărului b cu lgb cifre