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