Informatică, întrebare adresată de RalucaIoana00, 9 ani în urmă

Se citesc numere naturale pana la introducerea valorii 0. Construiti un numar format cu prima cifra a fiecarei valori citite. (IN PSEUDOCOD)

Răspunsuri la întrebare

Răspuns de blindseeker90
3
Inainte sa iti dau pseudocodul, sa iti explic cum functioneaza
Sa zicem ca ai numerele 32,145,5462,1,232,0
Mai intai, spunem sa citeasca numere pana la intalnirea lui zero
Apoi, vrem sa extragem prima cifra din fiecare numar
Pentru asta, punem conditia ca atata timp cat numarul este mai mare ca 10, sa il tot impartim la 10
Cand imparti numere naturale la 10, in multe limbaje de programare, obtii catul acestuia. Asadar, 32/10=2, 145/10=14. Deci este impartire exacta.
Daca faci asta cat timp nr este mai mare ca 10, atunci la ultima impartire o sa obtii exact prima cifra a numarului
Odata facut asta, trebuie sa le unesti intr-un numar.
Pentru asta, se la rezultatul anterior, se inmulteste cu 10, si se aduna apoi cifra actuala
Pentru 32,145,5462,1,232,0 avem:
32/10=3 este 3>10? fals, mergi mai departe
rezultat=rezultat(0)*10+3=3
145>0? Da, continua
145/10=14 14>10? Da continua. 14/10=1 1>10? Fals, treci la urmatoarea
rezultat=rezultat(3)*10+1=31
SI asa mai departe faci pentru toate numerele pana obtii: 31512
Important de spus: variabila nr pierde valoarea initiala, asa ca este copiata
mai intai in alta variabila nr1 pentru a putea sa faca comparatia la final cu 0


Declaram nr1,rezultat=0
executa:
   citeste numar nr
   nr1=nr
   cat timp nr>10
   nr=nr/10
   sfarsit cat timp

   rezultat=rezultat*10+nr     
cat timp nr1>0
afiseaza rezultat
Alte întrebări interesante