Se consideră algoritmul alăturat descris în pseudocod.
S-a notat cu x%y restul împărţirii numărului întreg x la
numărul întreg nenul y şi cu [a] partea întreagă a numărului
real a.
a) Scrieţi care este valoarea ce se va afişa dacă pentru
x se citeşte numărul 1234.
b) Scrieţi cea mai mică valoare formată din exact 4 cifre,
care poate fi citită pentru variabila x, astfel încât
algoritmul să afişeze valoarea 0.
c) Scrieţi în pseudocod un algoritm echivalent cu cel dat,
în care să se înlocuiască structura repetitivă cu test
final cu o structură repetitivă cu test iniţial.
d) Scrieţi programul C/C++ corespunzător algoritmului
dat.
citeşte x
(număr natural nenul)
z=0
p=1
┌repetă
│ c=x%10
│ ┌dacă c%2≠0 atunci
│ │ z=z+c*p
│ │ p=p*10
│ └■
│ x=[x/10]
└până când x = 0
scrie z
Răspunsuri la întrebare
Răspuns de
14
Algoritmul de mai sus extrage cifrele impare dintr-un numar si formeaza un numar cu ele
a) cifrele impare din numarul 1234 sunt 1 si 3, deci va afisa 13
b) Pentru a afisa valoarea 0, trebuie sa nu aiba nici o cifra impara in numar. Cel mai mic numar de 4 cifre care indeplineste conditia este: 2000
c)
cat timp x>0 executa
(acelasi cod ca in partea de mai sus)
sfarsit executare
d)
#include <iostream>
using namespace std;
int main(){
int x,z=0,p=1,c;
cin>>x;
do{
c=x%10;
if(c%2!=0){
z=z+c*p;
p=p*10;
}
x=x/10;
}while(x>0);
cout<<z;
return 0;
}
a) cifrele impare din numarul 1234 sunt 1 si 3, deci va afisa 13
b) Pentru a afisa valoarea 0, trebuie sa nu aiba nici o cifra impara in numar. Cel mai mic numar de 4 cifre care indeplineste conditia este: 2000
c)
cat timp x>0 executa
(acelasi cod ca in partea de mai sus)
sfarsit executare
d)
#include <iostream>
using namespace std;
int main(){
int x,z=0,p=1,c;
cin>>x;
do{
c=x%10;
if(c%2!=0){
z=z+c*p;
p=p*10;
}
x=x/10;
}while(x>0);
cout<<z;
return 0;
}
Alte întrebări interesante
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă