Exerciții Pseudocod Bacalaureat

Vă prezentăm câteva exerciții pseudocod de tipul exercițiilor din bacalaureat.

Exemplu:

Se dă secvența de pseudocod:

citeste n
s ← 0
pentru i ← 1, n executa
    citeste x
    daca x % 2 = 0 atunci
        s ← s + x
    sfârșit daca
sfârșit pentru
afișează s
      

a) Ce se afișează dacă se citesc valorile 4, 5, 2, 3, 6?

Rezolvare: Se citesc 5 valori: 4, 5, 2, 3, 6. Se adună doar numerele pare: 4 + 2 + 6 = 12.
Răspuns: 12

b) Scrieti un set de date de intrare pentru care se va afișa 0.

Rezolvare: Se afișează 0 atunci când toate valorile citite sunt impare. Exemplu: n = 3 și valorile 1, 3, 5. (Un set de date de intrare reprezinta o valoare pentru n si cate o valoare pentru fiecare din cele n numere citite

c) Rescrieți secvența astfel încât să folosească doar o structură repetitivă cu test final.

citeste n
s ← 0
i ← 1
repeta
    citeste x
    daca x % 2 = 0 atunci
        s ← s + x
    sfârșit daca
    i ← i + 1
până când i > n
afișează s
      

d) Scrieți algoritmul C++ corespunzător algoritmului inițial

#include 
using namespace std;

int main() {
    int n, x, s = 0;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> x;
        if (x % 2 == 0)
            s += x;
    }
    cout << s;
    return 0;
}
      

Exercițiile 1–20

Exercițiul 1

Se dă secvența de pseudocod:

citeste x
cnt ← 0
cat timp x mod 3 = 0 executa
    cnt ← cnt + 1
    x ← [x / 3]
sfârșit cat timp
daca x=1 atunci 
    scrie "da"
  altfel
    scrie "nu"
sfarsit daca 
      

a) Ce se afișează pentru x = 27?

b) Pentru cate numere de 2 cifre algoritmul de mai sus va afisa nu?

c) Rescrieți secvența cu test final (cat timp … executa)

d) Scrieți algoritmul C++ corespunzător

Exercițiul 2

Se dă secvența de pseudocod:

citeste x
a ← 1
ok ← 0
cat timp a*(a+1) <= x executa
    daca a*(a+1) = x atunci
        ok ← 1
    sfârșit daca
    a ← a + 1
sfârșit cat timp
scrie ok
      

a) Ce se afișează pentru x = 6?

b) Pentru cate valori de 2 cifre citite pentru x se va afișa 1?

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 3

Se dă secvența de pseudocod:

citeste x
cnt ← 0
cat timp x ≠ 0 executa
    daca x % 2 = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
    x ← [x / 2]
sfârșit cat timp
scrie cnt
      

a) Ce se afișează pentru x = 13?

b) Scrieti cea mai mica si cea mai mare valoare de maxim 2 cifre care poate fi citita pentru x astfel incat algoritmul sa afiseze 3.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 4

Se dă secvența de pseudocod:

citeste x
cnt ← 0
d ← 2
cat timp d*d <= x executa
    cat timp x mod d = 0 executa
        cnt ← cnt + 1
        x ← [x / d]
    sfârșit cat timp
    d ← d + 1
sfârșit cat timp
daca x > 1 atunci
    cnt ← cnt + 1
sfârșit daca
scrie cnt
      

a) Ce se afișează pentru x = 18?

b) Scrieti cel mai mic si cel mai mare numar de 2 cifre care pot fi citite pentru x astfel incat algoritmul sa afiseze valoarea 1?

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 5

Se dă secvența de pseudocod:

citeste n
a ← 0
b ← 1
cat timp a <= n executa
    c ← a + b
    a ← b
    b ← c
sfârșit cat timp
scrie c
      

a) Ce se afișează pentru n = 6?

b) Scrieti o valoare pentru n astfel incat algoritmul sa afiseze 54.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 6

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    daca x < 0 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 5 și valorile 3, -2, 0, -5, 7?

b) Pentru n=5 dati exemplu de cel putin 3 seturi de date de intare astfel incat algoritmul sa afiseze 2.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 7

Se dă secvența de pseudocod:

citeste n
pentru i ← 2, n executa
    ok ← 1
    d ← 2
    cat timp d*d <= i si ok = 1 executa
        daca i mod d = 0 atunci
            ok ← 0
            scrie d
        sfârșit daca
        d ← d + 1
    sfârșit cat timp
sfârșit pentru

      

a) Ce se afișează pentru n = 10?

b) Scrieti cel putin 3 valori care pot fi citite pentru n astfel incat sa se afiseze un numar impar de valori.?

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 8

Se dă secvența de pseudocod:

citeste n
pentru i ← 1, n executa
    citeste x
    ok ← 1
    ult_cifra ← x % 10
    x ← [x / 10]
    cat timp x ≠ 0 si ok = 1 executa
        cifra ← x % 10
        daca cifra >= ult_cifra atunci
            ok ← 0
        sfârșit daca
        ult_cifra ← cifra
        x ← [x / 10]
    sfârșit cat timp
    scrie ok  
sfârșit pentru

      

a) Ce se afișează pentru n = 3 și valorile 321, 432, 543?

b) Scrieti cel putin 2 seturi de date de intrare pentru care se vor afisa un numar impar de valori de 1.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 9

Se dă secvența de pseudocod:

citeste n
pentru i ← 1, n executa
    r ← 1
    ok ← 0
    cat timp r*r <= i executa
        daca r*r = i atunci
            ok ← 1
        sfârșit daca
        r ← r + 1
    sfârșit cat timp
    scrie ok
sfârșit pentru
      

a) Ce se afișează pentru n = 10?

b) Scrieti 2 seturi de date de intrare astfel incat sa se afiseze 4 valori de 1.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 10

Se dă secvența de pseudocod:

citeste x
cnt ← 0
y ← x
cifra_ref ← y % 10
y ← [y / 10]
cat timp y ≠ 0 executa
    daca y % 10 = cifra_ref atunci
        cnt ← cnt + 1
    sfârșit daca
    y ← y div 10
sfârșit cat timp
scrie cnt
      

a) Ce se afișează pentru x = 1223?

b) Scrieti cel mai mic si cel mai mare numar de 5 cifre care pot fi citite pentru x astfel incat algoritmul sa afiseze valoarea 2?

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 11

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    r ← 1
    ok ← 0
    cat timp r*r <= x executa
        daca r*r = x atunci
            ok ← 1
        sfârșit daca
        r ← r + 1
    sfârșit cat timp
    daca ok = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
      

a) Ce se afișează pentru n = 5 și valorile 1, 2, 3, 4, 5?

b) Scrieti 3 seturi de date de intrare astfel incat algoritmul sa afiseze valoarea 4.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 12

Se dă secvența de pseudocod:

citeste n
a ← 0
b ← 1
cat timp a <= n executa
    daca a mod 2 = 1 atunci
        scrie a
    sfârșit daca
    c ← a + b
    a ← b
    b ← c
sfârșit cat timp
scrie c
      

a) Ce se afișează pentru n = 10?

b) Scrieti 2 valori care pot fi citite pentru n astfel incat algoritmul sa afiseze doar numere impare.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 13

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    a ← 1
    ok ← 0
    cat timp a*(a+1) <= x executa
        daca a*(a+1) = x atunci
            ok ← 1
        sfârșit daca
        a ← a + 1
    sfârșit cat timp
    daca ok = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 5 și valorile 2, 3, 6, 12, 20?

b) Pentru n=5 scrieti 2 seturi de date de intare pentru care se afiseaza 3 si alte 2 seturi de date de intrare pentru care se afiseaza 0.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 14

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    ok ← adevarat
    ult_cifra ← x mod 10
    x ← x div 10
    cat timp x ≠ 0 executa
        cifra ← x mod 10
        daca cifra >= ult_cifra atunci
            ok ← fals
        sfârșit daca
        ult_cifra ← cifra
        x ← x div 10
    sfârșit cat timp
    daca ok = adevarat atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 3 și valorile 321, 432, 543?

b) Pentru n=8 scrieti un set de date de intare pentru care se afiseaza 2 si un alt set de date de intrare pentru care se afiseaza 0

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 15

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    s ← 0
    p ← 1
    y ← x
    cat timp y ≠ 0 executa
        cifra ← y % 10
        s ← s + cifra
        p ← p * cifra
        y ← [y / 10]
    sfârșit cat timp
    daca s % 7 = 0 si p % 2 = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 3 și valorile 17, 23, 49?

b) Pentru n=5 scrieti un set de date de intare pentru care se afiseaza 0 si un alt set de date de intare pentru care se afiseaza 2

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 16

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x    
    ok1 ← 1
    ult_cifra ← x % 10
    y ← [x / 10]
    cat timp y ≠ 0 executa
        cifra ← y % 10
        daca cifra >= ult_cifra atunci
            ok1 ← 0
        sfârșit daca
        ult_cifra ← cifra
        y ← [y / 10]
    sfârșit cat timp
    y ← x
    inv ← 0
    cat timp y ≠ 0 executa
        inv ← inv * 10 + y % 10
        y ← [y / 10]
    sfârșit cat timp
    daca ok1=1 si inv = x atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 3 și valorile 3, 12, 21?

b) Pentru n=4 scrieti un set de date de intare pentru care algoritmul afiseaza 1.

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 17

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    a ← 1
    cat timp a*(a+1)*(a+2) <= x executa
        daca a*(a+1)*(a+2) = x atunci
            cnt ← cnt + 1
        sfârșit daca
        a ← a + 1
    sfârșit cat timp
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 4 și valorile 6, 24, 60, 120?

b) Pentru n=4 scrieti un set de date de intrare pentru care se afiseaza 2 si un alt set de date intrare pentru care se afiseaza 0

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 18

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    y ← x
    s ← 0
    cat timp y ≠ 0 executa
        s ← s + y % 10
        y ← [y / 10]
    sfârșit cat timp
    daca s = x % 10 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 3 și valorile 12, 23, 34?

b) Pentru n=5 scrieti un set de date de intrare pentru care se afiseaza 4 si un al set de date de intrare pentru care se afiseaza 0

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 19

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    produs ← 1
    y ← x
    cat timp y ≠ 0 executa
        produs ← produs * (y % 10)
        y ← [y / 10]
    sfârșit cat timp
    daca produs % 2 = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
scrie cnt
      

a) Ce se afișează pentru n = 3 și valorile 13, 24, 57?

b) Pentru n=5 scrieti un set de date de intrare pentru care se afiseaza 4 si un al set de date de intrare pentru care se afiseaza 0

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Exercițiul 20

Se dă secvența de pseudocod:

citeste n
cnt ← 0
pentru i ← 1, n executa
    citeste x
    ok ← 1
    cat timp x > 0 executa
        cifra ← x % 10
        daca cifra % 2 = 0 atunci
            ok ← 0
        sfârșit daca
        x ← [x / 10]
    sfârșit cat timp
    daca ok = 1 atunci
        cnt ← cnt + 1
    sfârșit daca
sfârșit pentru
      

a) Ce se afișează pentru n = 3 și valorile 135, 246, 579?

b) Pentru n=5 scrieti un set de date de intrare pentru care se afiseaza 4 si un al set de date de intrare pentru care se afiseaza 0

c) Rescrieți secvența cu test final

d) Scrieți algoritmul C++ corespunzător

Reclame Google AdSense

Flux de știri