online: 9; azi: 200; total: 52206 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 introduc de la tastatură baza de numerație k, k=[2, 9], şi cifrele unui număr reprezentat în baza k. Să se verifice dacă cifrele sunt corecte pentru baza de numeraţie aleasă şi să se afişeze suma cifrelor de rang par (impar). Citirea cifrelor se face începând cu cifra cea mai semnificativă a numărului.
# include < iostream >
using namespace std ;
int main () {
int k, cifra, suma_par = 0 , suma_impar = 0 , rang = 0 ;
bool cifre_corecte = true ;
cout << " Introduceti baza de numeratie k: " ;
cin >> k;
cout << " Introduceti cifrele numarului : " ;
// Parcurgem cifrele numarului
while (cin >> cifra) {
// Verificam daca cifra este corecta pentru baza de numaratie k
if (cifra < 0 || cifra >= k) {
cifre_corecte = false ;
break ;
}
// Calculam suma cifrelor de rang par/impar
if (rang % 2 == 0 ) {
suma_par += cifra;
} else {
suma_impar += cifra;
}
rang++;
}
// Afisam rezultatul
if ( cifre_corecte ) {
cout << "Cifrele sunt corecte pentru baza de numaratie " << k << endl ;
} else {
cout << "Cifrele nu sunt corecte pentru baza de numaratie " << k << endl ;
}
cout << "Suma cifrelor de rang par: " << suma_par << endl ;
cout << "Suma cifrelor de rang impar: " << suma_impar << endl ;
return 0 ;
}

Pentru a verifica dacă cifrele sunt corecte pentru baza de numerație aleasă, putem utiliza un buclă while pentru a parcurge fiecare cifră introdusă și verifica dacă aceasta se află între 0 și k-1. Pentru a calcula suma cifrelor de rang par (impar), putem utiliza un contor care să fie incrementat în funcție de rangul cifrei, începând cu rangul 0 pentru cifra cea mai puțin semnificativă.