2. Se consideră algoritmul alăturat, descris în
pseudocod.
S-a notat cu [c] partea întreagă a numărului real c.
a) Scrieţi valoarea care va fi afişată dacă se citesc, în
această ordine, numerele 12, 7, 354, 9, 630, 0.
(6p.)
b) Scrieţi un şir de numere ce pot fi citite astfel încât
valoarea afişată să fie 321. (4p.)
citeşte x
(număr natural)
yÅ0
┌cât timp x≠0 execută
│ ┌cât timp x>9 execută
│ │ xÅ[x/10]
│ └■
│ yÅy*10+x
│ citeşte x
└■
scrie y
c) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
d) Scrieţi în pseudocod un algoritm echivalent cu cel dat, în care să se înlocuiască fiecare
dintre cele două structuri cât timp...execută, cu câte o structură repetitivă cu test
final. (6p.)
va rog mult sa ma ajutati e urgent!!!!

Răspuns :

a) 17396

b) 354 2 14 0

c)

#include <iostream>

using namespace std;

int main()

{

   int x,y;

   cin>>x;

   y=0;

   while (x!=0)

   {

       while (x>9)

           x=x/10;

       y=y*10+x;

       cin>>x;

   }

   cout << y;

   return 0;

}

d)

citește x

y<-0

┌ dacă x≠0 atunci

│   ┌  repetă

│   │   ┌ dacă x>9 atunci

│   │    │   ┌ repetă

│   │    │   │    x<-[x/10]

│   │    │   └ până când x[tex]\leq[/tex]9

│   │    └■

│   │        y<-y*10+x

│   │        citește x

│   └ până când x=0

└■

scrie y

P.S: Scrisul în pseudocod mă omoară, data viitoare pun sf. dacă, nu mai pun linii din astea =))