online: 4; azi: 1393; total: 51848 Manual clasa a ix a - Algoritmi - Algoritmi pentru conversii intre sisteme de numeratie

Manual clasa a IX a

Algoritmi

Algoritmi pentru conversii intre sisteme de numeratie

Se citesc de la tastatură q, baza de numerație , q =[ 2, 9], şi mai multe numere naturale care reprezintă cifrele unui număr în baza q, până când numărul introdus nu mai poate fi considerat cifră în această bază de numerație . Să se afişeze numărul reprezentat în baza 10.
# include < iostream >
using namespace std ;
int main () {
int q, cifra, baza = 1 , numar_baza_10 = 0 ;
cout << " Introduceti baza q: " ;
cin >> q;
while ( true ) {
cout << " Introduceti o cifra in baza " << q << " sau orice altceva pentru a incheia : " ;
cin >> cifra;
if (cifra < 0 || cifra >= q) {
break ; // numarul introdus nu poate fi considerat cifra in baza q
}
numar_baza_10 += cifra * baza;
baza *= q;
}
cout << " Numarul in baza 10 este: " << numar_baza_10 << endl ;
return 0 ;
}

Pentru a converti numerele din baza q în baza 10, putem parcurge numerele de la dreapta la stânga și înmulți fiecare cifră cu baza ridicată la puterea corespunzătoare poziției sale în reprezentarea numărului. Puterea inițială este 1 și crește cu 1 la fiecare cifră parcursă.
Exemplu: Pentru numărul 314 în baza 5, putem folosi următoarea formulă pentru a-l converti în baza 10: 4 * 5^0 + 1 * 5^1 + 3 * 5^2 = 4 + 5 + 75 = 84
Observați că în exemplul de mai sus, citirea cifrelor se face până când se introduce un număr care nu poate fi considerat cifră în baza q. Această verificare se face cu condiția if (cifra < 0 || cifra >= q) , iar bucla se încheie cu instrucțiunea break .