Sunteți pe pagina 1din 2

prof.

Cristina Sichim – Colegiul Național ,,Ferdinand I” Bacău

Lucrare semestrială – Informatică – clasa a IX-a


1p – din oficiu

1 Să se precizeze domeniul de apartenență pentru x, Rezolvare


(2p) știind că următoarea expresie are valoarea !(x<2 || x>=13) && !(x<8 && x>=3)
ADEVĂRAT.Justificați răspunsul. (x>=2 && x<13) && (x>=8 || x<3)
!(x<2 || x>=13) && !(x<8 && x>=3)

2 Se consideră următoarea secvență pseudocod. citește a,b (numere naturale)


(2p) a) Ce se afișează dacă se citesc valorile a=4, b=5? Răspuns:20 c0
b) Scrieți toate perechile (a,b) pentru care se afișează 12. ┌cat timp b>0 execută
Răspuns: (1,12),(2,6),(3,4),(4,3),(6,2),(12,1) │ cc+a
c) C++ │ bb-1
d) Rescrieți algoritmul pseudocod, fără să utilizați structuri └--------------------------
repetitive. scrie c
Răspuns:
citește a,b
scrie a*b
3 Se citesc 4 numere întregi a,b,c,d, ce reprezintă capetele intervalelor [a,b] și [c,d]. Să se afișeze intersecția
(2p) celor două intervale.
Exemple:
 a=3, b=10,c=5,d=12 se afișează [5,10]
 a=3, b=10, c=12, d=24 se afișează “multime vida”
Rezolvare - pseudocod Rezolvare C++
citește a,b,c,d #include <iostream>
dacă b<c sau d<a atunci using namespace std;
scrie "multime vida" int a,b,c,d;
altfel int main(){
scrie'[',max(a,c),',',min(b,d),']' cin>>a>>b>>c>>d;
if(b<c || d<a ) cout<<"multime vida";
else
cout<<'['<<max(a,c)<<','<<min(b,d)<<']';
return 0;}
4 Se citesc două numere naturale nenule, n și m. Să se șteargă din numărul m, cea mai mică cifră din
(2p) numărul n. Exemplu. Pentru n=4325 și m=512324 se afișează 5134.
Rezolvare - pseudocod Rezolvare C++
citește n,m #include <iostream>
cminn%10 using namespace std;
┌cat timp n>0 execută long long n,m,p=1,t;
│ dacă n%10<cmin atunci cminn%10 short cmin;
│ n[n/10] int main(){
└------------------ cin>>n>>m;
p1 cmin=n%10;
t0 while(n) { if(n%10<cmin) cmin=n%10;
┌cat timp m>0 execută n=n/10;}
│ ┌ dacă m%10!=cmin atunci while(m) {
│ │ tt+p*(m%10) if(m%10!=cmin){t=t+p*(m%10);
│ │ pp*10 p=p*10;}
│ └--------------------- m=m/10;}
cout<<t;
│mm/10
return 0;
└-------------------------
}
scrie t
5 Un umăr natural n se numește număr VIP (Valori Impare-Pare), dacă are atât cifre pare cât și cifre impare
(1p) și, toate cifrele impare ale numărului n se află la începutul numărului.
Se citește un număr natural n. Să se verifice dacă n este număr VIP.
Exemple:
 pt. n=51324 se afișează VIP
 pt. n=5123, n=1313, n=2224, n=24315 se afișeează NU ESTE VIP
prof. Cristina Sichim – Colegiul Național ,,Ferdinand I” Bacău
Rezolvare - pseudocod Rezolvare C++
citește n #include <iostream>
┌dacă n%2!=0 atunci using namespace std;
│ scrie "NU ESTE VIP" long long n;
│altfel int main(){
│┌cat timp n>0 && n%2=0 execută cin>>n;
││ n[n/10] if(n%2!=0) cout<<"NU ESTE VIP";
│└------------ else
│┌dacă n=0 atunci scrie "NU ESTE VIP" { while(n && n%2==0)n=n/10;
││ altfel if(n==0) cout<<"NU ESTE VIP";
││ ┌cat timp n%2!=0 execută else { while(n%2!=0) n=n/10;
││ │n[n/10] if(n==0) cout<<"VIP";
││ └------------ else cout<<"NU ESTE VIP";
││ dacă n=0 atunci scrie "VIP" }
││ altfel scrie "NU ESTE VIP" }
│└--------------------------- return 0;}
└---------------------

Barem de evaluare
1. Evaluare progresivă
0,5p - (x>=2 && x<13) && (x>=8 || x<3)
1p -
0,5p -
2.
a) 0,5p - Răspuns:20
b) 0,6p - Răspuns: (1,12),(2,6),(3,4),(4,3),(6,2),(12,1). Se acordă 0,1p pentru fiecare pereche
c) 0,5p – C++ (0,1p- declarare variabile, 0,1p- citire date, 0,2p – structură repetitive, 0,1p- sintaxă)
d) 0,4p - scriere fără structure repetitive
3. Rezolvare corectă – 2p
0,5p – cazul în care intersecția este vidă
1,5p – cazul în care intersecția este nevidă
4. Rezolvare corectă – 2p
0,8p – determinarea celei mai mici cifre din numărul n + 0,2p sintaxă
0,8p – ștergerea cifrei din numărul m+ 0,2p sintaxă
5. Rezolvare corectă – 1p
0,1p – cazul când se termină cu o cifră impară
0,2p – cazul în care are doar cifre pare
0,5p – cazul în care cifrele sunt separate correct
0,1p - sintaxă
1p – din oficiu

S-ar putea să vă placă și