👤

(6p.) b. 1. Algoritmul alaturat este reprezentat in pseudocod. nenul b, şi cu [c] partea intreagă a numărului real c. a. Scrieţi valoarea afişată dacă se citeşte numărul 6907512. Scrieţi două valori distincte din intervalul [100, 999] care pot fi citite astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afişeze o valoare identică cu cea citită. (6p.) (10p.) C. Scrieţi programul C/C++ corespunzător algoritmului dat. d. Scrieți în pseudocod un algoritm, echivalent cu cel dat, înlocuind structura cât timp... execută cu o structură repetitivă cu test final. (6p.) numărul natural citeşte x (numar natural) p1; mt -1 rcât timp páx execută c← [x/p] *10 dacă c>m atunci mc; pp*10 altfel x [x/ (p*10) ] *p+x*p rdacă m20 atunci scrie x altfel scrie "nul"​

Răspuns :

Răspuns:

a. Valoarea afișată dacă se citește numărul 6907512 este "690751".

Două valori distincte din intervalul [100, 999] care pot fi citite astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze o valoare identică cu cea citită sunt: 200 și 500.

b. **Programul C/C++:**

```cpp

#include <iostream>

using namespace std;

int main() {

int x;

cout << "Introduceti numarul: ";

cin >> x;

int p = 1, m = 0;

while (x > 0) {

int c = (x / p) * 10;

if (c > m) {

m = c;

p *= 10;

} else {

x = (x / (p * 10)) * p + x % p;

p *= 10;

}

}

if (m >= 20) {

cout << x << endl;

} else {

cout << "nul" << endl;

}

return 0;

}

```

c. **Pseudocod echivalent cu structura repetitivă cu test final:**

```

numărul natural citeşte x (număr natural)

p ← 1; m ← -1

repetă păx

c ← [x/p] * 10

dacă c > m atunci

m ← c

p ← pp * 10

altfel

x ← [x / (p * 10)] * p + x * p

p ← p * 10

sfârșit dacă

până când m ≥ 20

dacă m ≥ 20 atunci

scrie x

altfel

scrie "nul"

sfârșit dacă

```numărul natural citeşte x (număr natural)

p ← 1; m ← -1

Vezi imaginea ROSCASAMIRA65