Pentru prelucrarea cifrelor unui numar se pot folosi urmatorii algoritmi:
- algoritmul pentru extragerea cifrelor unui numar
- algoritmul pentru compunerea unui numar din cifrele sale
- algoritmul pentru determinarea inversului unui numar
Algoritmul pentru extragerea cifrelor unui numar
Algoritmul determina cifrele unui numar n , prin extragerea pe rand a fiecarei cifre c (incepand cu cifra unitatilor) , cu operatia n mod 10 , si eliminarea din numar a cifrei extrase, cu operatia n div 10. Aceste operatii se executa cat timp exista cifre de extras din n (n<>0).
Se vor folosi urmatoarele variabile de memorie:
- Data de intrare n pentru numarul care se citeste
- Data de iesire c pentru cifra numarului
Pseudocod
intreg n,c;
inceput
citeste n;
cat timp n<>0 executa
c <-- n mod 10; scrie c; n <-- n div 10;
sfarsit_cat_timp;
sfarsit.
|

Algoritmul pentru compunerea unui numar din cifrele sale
Citirea cifrelor numarului se face incepand cu cifra cea mai semnificativa Algoritmul foloseste reprezentarea numarului in baza 10.
Varianta 1
Se introduc pe rand de la tastatura cele n cifre ale unui numar incepand cu cifra cea mai semnificativa. Sa se afiseze numarul nr obtinut din aceste cifre.
Varianta 2
Se introduc pe rand de la tastatura mai multe numere , care reprezinta cifrele unui numar , incepand cu cifra cea mai semnificativa , pana cand se introduce un numar care nu poate fi cifra. Sa se afiseze numarul nr obtinut din aceste cifre.
Pseudocod - Varianta 1
intreg n,p,nr,i,c;
inceput
citeste n;
p <-- 1;
pentru i <-- 1,n-1 executa
p <-- p*10;
sfarsit_pentru;
nr <-- 0;
pentru i <--1,n executa
citeste c;
nr <-- nr + c*p;
p <-- p div 10;
sfarsit_pentru;
scrie nr;
sfarsit. |
Pseudocod - Varianta 2
intreg c,nr;
inceput
nr <-- 0;
citeste c;
cat timp c>=0 and c<=9 executa
nr <-- nr*10 + c;
citeste c;
sfarsit_cat_timp;
scrie nr;
sfarsit. |

Algoritmul pentru determinarea inversului unui numar
Algoritmul determina inv inversul numarului n prin extragerea pe rand a fiecarei cifre din numarul n si compunerea unui nou numar cu aceste cifre. De exemplu, daca numarul este 123 , inversul este 321.
Pseudocod
intreg n,inv;
inceput
citeste n;
inv <--0;
cat timp n<>0 executa
inv <-- inv*10 + n mod 10;
n <-- n div 10;
sfarsit_cat_timp;
scrie inv;
sfarsit.
|

|