Sunteți pe pagina 1din 13

NOIUNI TEORETICE I PROBLEME

OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE,


ALGORITMI FUNDAMENTALI

"Fiecare greeal este o ocazie de a nva. Totul este s nu comii aceeai


greeal n mod repetat - ar fi o prostie. ns comite ct mai multe greeli
noi de care eti n stare; nu trebuie s-ti fie team, cci acesta este singurul
mod n care natura i permite s nvei."
OSHO

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

CUPRINS
FI DE LUCRU - OPERATORI C++ ............................................................................................................ 3
FI DE LUCRU STRUCTURA ALTERNATIV .......................................................................................... 5
STRUCTURA REPETITIV WHILE .............................................................................................................. 6
EXEMPLE .............................................................................................................................................. 6
STRUCTURA REPETITIV FOR .................................................................................................................. 7
EXEMPLE .............................................................................................................................................. 8
STRUCTURA REPETITIV DO...............WHILE .......................................................................................... 9
EXEMPLE .............................................................................................................................................. 9
PROBLEM REZOLVAT........................................................................................................................... 9
ALGORITMI FUNDAMENTALI ................................................................................................................. 10
1. Separarea cifrelor unui numr ...................................................................................................... 10
2. Determinarea divizorilor proprii ai unui numr natural dat ......................................................... 11
3. Testul de numr prim .................................................................................................................... 12
4. Determinarea celui mai mare divizor comun a dou numere naturale ........................................ 12
5. Descompunerea n factori primi a unui numr natural ................................................................. 13
6. Determinarea minimului/maximului unui ir de numere ............................................................. 13

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

FI DE LUCRU - OPERATORI C++


1.Se citete un numr natural care reprezint timpul exprimat n minute. Scriei
programul care afieaz timpul exprimat n ore i secunde.
2.Scriei un program care s testeze un caracter introdus de la tastatur. Dac este
liter mare, s afieze mesajul Liter mare, dac este liter mic s se afieze
mesajul Liter mic, altfel s se afieze mesajul Nu este liter.
3.Scriei un program care citete de la tastatur un numr natural cu trei cifre i care
afieaz apoi numrul obinut prin eliminarea cifrei din mijloc.
4. Scriei un program care citete de la tastatur un numr natural cu patru cifre i
care afieaz pe cte un rnd cifrele numrului.
5. Scriei un program care citete de la tastatur un numr natural cu patru cifre i
care afieaz numrul obinut prin eliminarea cifrei sutelor. Modificai programul, astfel
nct, s afieze numrul obinut prin eliminarea cifrei zecilor.
6.Se citesc de la tastatur trei numere a, b i c. S se afieze valoarea maxim.
Modificai programul, astfel nct, s afieze valoarea minim.
7.Se citete de la tastatur un numr n. S se verifice dac este un numr pozitiv sau
negativ.
8. Se citesc de la tastatur 3 numere a, b i c care reprezint laturile unui triunghi
oarecare. S se calculeze aria triunghiului.
9. Indicai rezultatele pe care le afieaz programul urmtor. Explicai obinerea
acestor rezultate.

{
int x=2, y=7, z,u;
u=x*(y-2)%3;
cout<<u=<<u<<endl;
z=u+x;
x=x*y;
cout<<x=<<x<< y=<<y<< z=<<z<< u=<<u<<endl;
x=-y*z%3+u;
cout<<x=<<x<<endl;
z=(x-y)*(u-x);
cout<<z=<<z<<endl;
}

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI
10. Scriei un program care convertete gradele Celsius n grade Fahrenheit conform
formulei f=(9/5)*c+32. Datele se citesc de la tastatur.
11. Se introduc 2 numere, a i b i un numr k. S se afieze un mesaj dac fracia a/b
poate fi simplificat prin k.
12. Se introduc 2 numere. S se afieze un mesaj dac aceste numere sunt consecutive.
13. Fie variabilele x,y i u de tipul int. Scriei o instruciune care mrete valoarea
variabilei u cu ctul ntreg al mparirii lui x la y ?
14. Scriei 3 valori ce pot fi citite pentru variabila y astfel nct programul de mai jos
s tipreasc 1 ?

{int x=2, y, z;
cin>>y;
x++;
z=y+3*x;
cout<<((z%2==0 && x>=1) ? 1 : 0 );
}
15. Ce se afieaz n urma execuiei secvenei de instruciuni de mai jos, dac pentru n
se citete valoarea 815?

{
int n, a, b, c, x, w, q;
cout<<"n="; cin>>n;
a=n/100;
b=n/10%10;
c=n%10;
(a>b ? x=a, a=b, b=x : x);
(b>c ? x=b, b=c, c=x : x);
(a>b ? x=a, a=b, b=x : x);
cout<<a<<" "<<b<<" "<<c<<endl;
w=a*100+b*10+c;
q=c*100+b*10+a;
cout<<w<<" "<<q;
}

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

FI DE LUCRU STRUCTURA ALTERNATIV


Structura alternativ simpl
Structura alternativ generalizat
if (expresie)
switch (selector)
instructiune_1;
{
else
case 1: instructiune_1;break;
instructiune_2;
case 2: instructiune_2;break;
----------------------------case n: instructiune_n;break;
default : instructiune_i;
}
1.Se citete de la tastatur un numr natural ntreg care reprezint un an calendaristic.
S se verifice dac numrul citit este un an bisect.
2. Un elev primete ntr-o zi trei note, nu toate bune. Se hotrte ca, dac ultima not
este cel puin 8, s le spun prinilor toate notele primite iar dac este mai mic dect
8, s le comunice doar nota cea mai mare dintre primele dou. Introducei notele luate i
afiai notele pe care le va comunica prinilor.
3. Se citesc trei numere ntregi x, y, z. Dac toate sunt pozitive s se afieze cel mai
mare numr dintre al doilea i al treilea numr, n caz contrar s se afieze suma
primelor dou numere.
4. Scriei un program care s testeze un caracter introdus de la tastatur. Dac este
liter mare, s afieze mesajul Liter mare, dac este liter mic s se afieze
mesajul Liter mic, altfel s se afieze mesajul Nu este liter.
5. Se citete de la tastatur un numr natural ntreg format din 3 cifre i care afieaz
cel mai mic numr care se poate forma din cifrele sale. Modificai programul, astfel
nct, s afieze cel mai mare numr ce se poate forma din cifrele numrului citit.
6. Se introduc de la tastatur dou numere ntregi a, b i un caracter c care reprezint
o operaie aritmetic. S se afieze operaia efectuat de operatorul citit i s se
calculeze valoarea lui e definit ca rezultat al aplicrii operatorului aritmetic pe
numerele a i b (2 metode: se folosesc instruciuni if-else imbricate i apoi cu
instruciunea switch-case).
7. Scriei un program care s permit alegerea unei opiuni dintr-un meniu afiat pe
ecran, apoi se alege o operaie din meniu prin introducerea numrului de ordine. Meniul
conine:
1. ORDONARE CRESCTOARE
2. ORDONARE DESCRESCTOARE
Programul ordoneaz cresctor i descresctor cifrele unui numr ntreg format din 3
cifre.
8. Se citesc trei numere ntregi nenule a, b i c care reprezint coeficienii unei ecuaii
de gradul II. S se rezolve ecuaia. Testai programul pentru urmtoarele seturi de
intrare:(1,-5,6), (1,-2,1), (1,1,1).

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

STRUCTURA REPETITIV WHILE


Sintaxa acestei instruciuni este:

while (expresie)
{
instruciuni;
}
Aceast instruciune se execut astfel:
PAS 1: se evalueaz expresia;
PAS 2: dac rezultatul este diferit de 0, adic corespunde valorii logice adevrat,
atunci se execut instruciunile i se revine la primul pas; altfel se trece la
execuia instruciunii care urmeaz instruciunii while.

EXEMPLE
a)Se citesc de la tastatur mai multe
numere pn la ntlnirea valorii 0. S se
scrie un program C++ care calculeaz i
afieaz pe ecran suma numerelor pare
i produsul numerelor impare.

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI
b) Se citesc de la tastatur mai multe
numere pn la ntlnirea valorii 0. S se
scrie un program C++ care determin
valoarea maxim i de cte ori apare n ir.
Explicaii:
se citete primul numr , se atribuie
variabilei max valoarea primului numr
citit i se iniializeaz contorul cu 1;
se citete urmtorul numr;
dac max este egal cu n atunci se
incrementeaz contorul;
dac n este mai mare dect max, atunci
variabilei max i se atribuie valoarea lui n
i se iniializeaz contorul cu 1.
aceste operaii se execut pn cnd
citim valoarea 0.

STRUCTURA REPETITIV FOR


Sintaxa acestei instruciuni este:

for (exp1;exp2;exp3)
{
instruciuni;
}

exp1, pentru iniializare, prin care se stabilete starea dinainte de prima


execuie a instruciunii;
exp2, pentru testare, compar starea curent cu starea care termin procesul
de terminare; are rolul de a termina executarea repetat a instruciunilor;
exp3, pentru modificare, prin schimbarea strii curente, astfel nct s se
avanseze ctre starea final.
Instruciunea for se execut astfel:
PAS 1: se evalueaz expresia exp1;
PAS 2: se evalueaz expresia exp2; dac rezultatul este diferit de 0, adic
INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI
corespunde valorii logice adevrat, atunci se execut instruciunile; altfel se
trece la execuia instruciunii care urmeaz instruciunii for.
PAS 3: se evalueaz expresia exp3 i se revine la PAS 2.

EXEMPLE
a)Se citesc de la tastatur n numere
ntregi.S se calculeze i s se afieze pe
ecran suma numerelor pare i produsul
numerelor impare.
b)nlocuii structura repetitiv

FOR

cu

structura repetitiv WHILE.

c)Se citesc de la tastatur n numere


ntregi. S se calculeze media aritmetic a
numerelor impare.

d)nlocuii structura repetitiv

FOR

cu

structura repetitiv WHILE.

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

STRUCTURA REPETITIV DO...............WHILE


Sintaxa acestei instruciuni este:

do
{
instruciuni;
Aceast instruciune se execut astfel:
PAS 1: se execut instruciune;
PAS 2: se evalueaz expresia;dac rezultatul

}
while(expresie);

este diferit de 0, adic corespunde valorii logice adevrat, atunci se revine la primul pas;
altfel se trece la execuia instruciunii care urmeaz instruciunii dowhile.
Spre deosebire de instruciunea WHILE instruciunea DO...WHILE se execut cel
puin o dat.

EXEMPLE
a)Se citesc cifrele unui numr ncepnd cu
cifra cea mai semnificativ. S se afieze
numrul obinut.
b)Modificai

programul,

nlocuind

instruciunea DOWHILE cu instruciunea


WHILE.

PROBLEM REZOLVAT
1.Se citete cte un caracter, pn la ntlnirea caracterului @. S se afieze cte litere
mari au fost introduse, cte litere mici, cte cifre i cte alte caractere.
2.Modificai programul astfel nct, pentru fiecare caracter citit, s se

afieze un

mesaj care s indice dac s-a citit o liter mare, o liter mic, o cifr sau un alt
caracter.

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

ALGORITMI FUNDAMENTALI
Aceti algoritmi au fost concepui spre a veni n ajutorul programatorilor, care i
folosesc ori de cte ori este necesar n probleme, fr a mai fi nevoie s-i elaboreze de
fiecare dat. Acetia se refer la separarea cifrelor unui numr (folosit de fiecare dat
cnd n rezolvarea unei probleme este necesar accesul la cifrele unui numr),
determinarea divizorilor proprii ai unui numr natural dat, testarea dac un numr
natural mai mare ca 1 este prim, determinarea celui mai mare divizor comun a dou
numere naturale date, descompunerea unui numr natural n factori primi, determinarea
maximului/minimului unui ir de numere citite, pe rnd, de la dispozitivul de intrare.

1. Separarea cifrelor unui numr


Se va folosi rezultatul din matematic conform cruia restul mpririi la 10 al unui
numr ntreg pozitiv l reprezint ultima cifr a numrului (cea mai puin semnificativ),
iar ctul mpririi la 10, numrul fr ultima cifr. Repetnd aceast operaie ct timp
numrul mai are cifre de separat, obinem la fiecare pas o cifr a numrului, care poate
fi prelucrat, de fiecare dat ctul obinut devenind demprit. n algoritm, marcarea
ncheierii separrii cifrelor se face cnd numrul dat devine 0, deci nu mai sunt cifre de
separat.

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI
Exemplu: n=2954
operaia
2954:10
295:10
29:10
2:10

ct
295
29
2
0

rest
4
5
9
2

Limbajul C++

Am obinut cifrele numrului n ordine invers: 4, 5, 9, 2.

2. Determinarea divizorilor proprii ai unui numr natural dat


De exemplu, dac n=50, divizorii proprii sunt: 2, 5, 10, 25;
dac n=45, divizorii proprii sunt: 3, 5, 9, 15;
dac n=32, divizorii proprii sunt: 2, 4, 8, 16.
Putem continua cu exemplele, dar i din acestea se poate
observa c:
-cel mai mic divizor propriu posibil este 2
-cel mai mare divizor propriu posibil este jumtatea
numrului [n/2]
Este suficient s testm care din valorile cuprinse ntre 2 i
[n/2] mpart exact numrul n dat i astfel identificm, pe
rnd, divizorii proprii ai numrului, care vor putea fi
prelucrai conform cerinelor enunului.
Exemple cu cele trei structuri repetitive:

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

3. Testul de numr prim


Matematica ne spune c un numr
este prim dac are doar doi divizori,
pe 1 i numrul nsui, deci cnd nu
are divizori proprii. Sunt mai multe
modaliti de a verifica dac un
numr dat este prim sau nu. Noi o
vom folosi pe cea conform creia
dac numrul nu are divizori proprii
atunci este prim, n caz contrar, dac
are cel puin un divizor propriu,
atunci numrul nu este prim.

4. Determinarea celui mai mare divizor comun a dou numere naturale


Algoritmul lui Euclid
S presupunem c avem dou numere naturale a i b,
pentru care trebuie s aflm cel mai mare divizor
comun(cmmdc).Se reine n variabila r restul mpririi
lui a la b.Variabila a ia valoarea variabilei b iar b ia
valoarea restului obinut n urma mpririi lui a la b.
Aceste operaii se execut ct timp b este diferit de
0. Cel mai mare divizor comun va fi variabila a.

Algoritmul scderilor repetate

Algoritmul este urmtorul: ct timp cele dou numere a


i b sunt diferite ntre ele, se scade din numrul mai
mare numrul mai mic. n momentul n care cele dou
numere devin egale, cmmdc se afl n oricare din cele
dou numere a sau b.

INFORMATIC clasa a IX-a

NOIUNI TEORETICE I PROBLEME


OPERATORI, STRUCTURI ALTERNATIVE I REPETITIVE, ALGORITMI FUNDMENTALI

5. Descompunerea n factori primi a unui numr natural

Algoritm:
se pornete de la primul factor prim posibil, 2;
ct timp numrul dat este diferit de 1, se execut
operaiile:
dac factorul l divide pe n l afim
ct timp numrul se mparte exact la un factor prim
se execut mprirea, se prelucreaz factorul i ctul devine demprit
se trece apoi la urmtorul factor prim

6. Determinarea valorii minime/maxime dintr-un


ir de numere
Determinarea valorii maxime
Se presupune c primul numr citit este maximul. Se citesc
apoi, pe rnd, numerele i la fiecare pas se compar numrul
citit cu maximul existent. Dac numrul citit este mai mare
dect maximul, se nlocuiete maximul.
Determinarea valorii minime
Se presupune c primul numr citit este minimul. Se citesc
apoi, pe rnd, numerele i la fiecare pas se compar numrul
citit cu minimul existent. Dac numrul citit este mai mic
dect minimul, se nlocuiete minimul.

INFORMATIC clasa a IX-a

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