Sunteți pe pagina 1din 11

Aplicaii pentru scheme

logice i pseudocod II

Prelucrarea cifrelor unui numr

Problemele n care se cere prelucrarea cifrelor unui


numr se rezolv pornind de la cteva proprieti
matematice elementare;
Prima dintre acestea este c prin mprirea (cu rest) la
10 se izoleaz ultima cifr de celelalte cifre ale lui n;
Mai precis, n%10 (restul la mprirea lui n la 10)
coincide cu ultima cifr a lui n, iar [n/10] (ctul la
mprirea cu 10 a lui n) corespunde numrului obinut
din n prin eliminarea ultimei cifre;
De exemplu, 5832%10 = 2, iar [5832/10] = 583
ATENIE! n limbajul C expresia corespunztoare ctului
la mprirea cu 10 este n/10 (fr paranteze ptrate).

Prelucrarea cifrelor unui numr

n general, prin mprirea cu rest la 10k se


izoleaz ultimele k cifre ale lui n de
celelalte;
De exemplu, dac n = 5832, k = 3 i p =
103, atunci n%p = 832, iar [n/p] = 5
n limbajul C nu exist un operator care s
poat fi folosit pentru ridicarea la putere a
unui numr (exist doar o funcie
nerecomandat dect n puine cazuri);
Ridicarea la putere se poate face prin
nmuliri repetate.

Prelucrarea cifrelor unui numr

Algoritmul general de
prelucrare a cifrelor unui
numr prelucreaz i apoi
elimin (prin mprire la 10)
ultima cifr a lui n, ct timp
acesta e diferit de 0 (mai are
cifre neprelucrate):
Algoritmul general este
prezentat mai jos n
pseudocod i alturat sub
form de schem logic:
INIIALIZRI
ct timp n>0
{
PRELUCREAZ n%10
n [n/10]

1) Numrul cifrelor lui n

Scriei un program care s rezolve


urmtoarea problem:
Se citete n (numr natural nenul,
n<1000000000);
Se cere s se afieze numrul cifrelor lui n.
De exemplu, dac se citete n = 64346, se va
afia 5.

1) Numrul cifrelor lui n

Algoritmul de rezolvare a
problemei are n
pseudocod forma de mai
jos, iar schema logic se
afl n figura alturat:
citete n
nr 0
ct timp n > 0
{
nr nr+1
n [n/10]
}
scrie nr

1) Numrul cifrelor lui n

Programul C se afl n
imaginea alturat;
Se folosesc variabile de tip
int: numrul n citit este mai
mic sau egal cu 100000000,
iar variabilele de tip int pot
reine valori pn la 231 1,
care depete
2000000000.
Pentru nr se poate folosi i un
tip de date care ocup mai
puin memorie, dar acesta
urmeaz s fie studiat ceva
mai trziu.

2) Prima cifr a lui n

Scriei un program care s rezolve


urmtoarea problem:
Se citete n (numr natural nenul,
n<1000000000);
Se cere s se afieze prima cifr a lui n.
De exemplu, dac se citete n = 64346, se va
afia 6.

2) Prima cifr a lui n

Algoritmul de rezolvare a
problemei are n
pseudocod forma de mai
jos, iar schema logic se
afl n figura alturat:
citete n
ct timp n > 0
{
p n%10
n [n/10]
}
scrie p

2) Prima cifr a lui n

Programul C
alturat rezolv
problema pe baza
algoritmului descris
n pseudocod i sub
form de schem
logic n slide-ul
anterior;
Principiul de
funcionare e foarte
asemntor cu cel
al programului C
pentru calculul
numrului cifrelor
lui n.

2) Prima cifr a lui n

Se respect tiparul general de rezolvare a


problemelor care presuspun prelucrarea
cifrelor unui numr;
De data aceasta se folosete o variabil p,
n care e reinut de fiecare dat cifra care
urmeaz s fie eliminat;
Cum cifrele sunt accesate de la dreapta la
stnga, ultima prelucrat este de fapt
prima cifr (de la stnga la dreapta) a
valorii citite iniial.

S-ar putea să vă placă și