Sunteți pe pagina 1din 16

LECȚIA 1

Dupa valoarea lor pot fi:

a)Date numerice( numere naturale, intregi (int , long ,unsigned


int),reale

(float,double)

b)Date alfabetice : caractere (char ex. ‘a’) sau siruri de


caractere(“ana”)

c)Date logice : 0 si 1

Expresii

O expresie este alcatuita dintr-o succesiune de operanzii conectati prin


operatori.

Operanzii reprezinta datele / valorile care intra in calcul in cadrul

expresiei.Acestia pot fi constane, variabile de tipurile specificate mai


sus(numerici

intregi, reali,caracter,logici,sir de character)

Operatorii reprezinta operatiile care se executa asupra operanzilor .

Tipuri de operatori:

1)Operatorii aritmetici : descriu operatii matematice

Sunt: + , - , * , / ,%

Obs. +,-,* -- Se aplica pe operanzi numerici intreg sau real , rezultatul fiind

numeric

Ex. 2+3
Obs. Operatorii / , % se aplica doar pe tip intreg

Operatorul / are dubla semnificatie in functie de tipul operanzilor:

S1)catul impartirii intregii , daca ambii operanzii sunt de tip intreg

Ex. 7/2=3

S2)impartire cu virgula , daca cel putin unul din operanzii este real

Ex. 7.0/2=3,5

Operatorul % reprezinta restul impartirii intregii

Ex. 7%2=1

Obs. Aceste expresii( din exemple ) se numesc aritmetice

2) Operatorii relaționali: descriu relație de ordine intre operanzii

Sunt : <; ≤(<=); > ; ≥ (>=) ; = (==) ; ≠(=!).

Regulă!

Se aplică pe operanzi de tip numeric, logic si caracter, rezultatul fiind


de tip logic.

Ex1. 7>7 =>F(0)

Ex2. 0<1 =>A(1)

Ex3. ‘a’<’c’ =>A (1)

obs.

‘0’<’1’<……<’9’<…<’A’<’B’<…..<’Z’<…<’a’<….<’z’

Obs. Aceste expresii se numesc relationale


3)Operatorii logici : definesc o operatie logica

Sunt:     - negatia logica / not    (!)


               -conjunctia logica /si/ and (&&)
               -disjunctia logica /sau/or (||)

Regulă!

Se aplică pe numai pe operanzi logici si rezultatul este de tip logic.

Se respecta tabela de adevar:

x y !x x sau x si y
1 1 0 1 1
1 0 0 1 0
0 1 1 1 0
0 0 1 0 0

Ex.   (5<7)|| (2>8) 

Obs. Aceste expresii se numesc logice.

 Evaluarea se face de la stanga la dreapta in functie de prioritatea operatorilor sau


de existenta parantezelor rotunde.
P1    !
P2   * /  %
P3   + , -
P4   op relationali
P5   &&,  ||

        Exemple de expresii C++


 ab   => a*b
 a=b=c => a==b && b==c
 a+b2  =>  (a+b)/2

 x     =>  sqrt(x)
 xy       => pow(x,y)
 x este par  => x%2==0
 x este impar => x%2!=0
 ultima cifra a lui x    => x%10

STRUCTURA LINIARĂ
CUPRINDE:

1)Declararea datelor
Sintaxa pseudocod:                                                     Sintaxa C++:
variabila tip;                                                                     tip variabila;

Obs. La inceputul oricarui algoritm vom declara DI,DE,DM precum si


tipul lor. O variabila nu poate fi declarata de mai multe ori.

Exemplu 1: Pentru ecuatia de grad 2 // ax2+bx+c=0  vom


declara:

Pseudocod              C++  
DI a,b,c  real;                                                    float a,b,c,x1,x2,delta;
DE x1,x2 real;
DM delat real;
Exemplu 2: Pentru a calcula media a trei numere intregi vom
declara:

Pseudocod                                              C++ 
DI a,b,c  intreg;                                                    int a,b,c;
DE ma real;                                                           float ma;
 

2)Citirea datelor de intrare


Sintaxa pseudocod:                                                     Sintaxa C++:

citeste v1,v2,…,vn;                                                                    
cin>>v1>>v2>>…>>vn;
sau
                                                     cin>>v1; cin>>v2;….

Obs.  Se preiau succesiv valorile introduse de la tastatură și se asociază în


ordine variabilelor specificate.
Exemplu 1: Pentru ecuatia de grad 2 citi:

Pseudocod                                              C++  
citeste a,b,c;                                                   cin>>a; cin>>b; cin>>c;

 
 
3)Scrierea/ afisarea datelor
Sintaxa pseudocod:                                                     Sintaxa C++:

scrie exp1,exp2,…expn;                                                                    
cout<<exp1<<exp2<<…<<expn;
                                                                         sau 
                                                                                            cout<<exp1;
cout<<exp2;cout<<expn;

Obs. Se utilizeaza pentru afisarea DE (rezultatele problemei) sau pentru


afisarea unor mesaje informative.
Presupune evaluarea expresiilor in ordine si afisarea rezultatelor pe aceeasi
linie
Exemplu 1: Pentru ecuatia de grad 2 vom afisa:

Pseudocod                                              C++  
scrie ”solutia 1=”,x1;                          cout<<”solutia 1=”<<x1;
scrie ”solutia 2=”,x2;                          cout<<”solutia 2=”<<x2;

Expresiile  ”solutia 1=”  si ”solutia 2=” sunt siruri de caractere si se


scriu intre ghilimele si se afiseaza asa cum sunt fiind mesaje
informative.
x1,x2 sunt variabile si se va afisa continutul lor

Obs. Ce apare intre <<…. <<   sau intre <<… ;  se afiseaza intocmai daca
este o constanta sau un sir de caractere si se evalueaza si se afiseaza
continutul ei daca este o variabila.
Exemplu:
cout<<2<<’+’<<3;     va afisa 2+3
cout<<2+3    va afisa 5
cout<<”rezultat=”<<6*2;          rezultat=12
s=2;cout<<”rezultat=”<<s;    rezultat=2;
4)Operația de atribuire
Sintaxa pseudocod:                                                     Sintaxa C++:

Variabilaexpresie;                                                              

variabila=expresie;
                                                                         

Se evalueaza expresia si se atribuie rezultatul variabilei.Expresia si variabila


trebuie sa fie de acelasi tip.

Exemplu 1: Pentru ecuatia de grad 2 vom avea

Pseudocod                                              C++  
Deltab*b-4*a*c;                              delta=b*b-4*a*c;
x1 (-b-sqrt(delta))/(2*a);               x1=(-b-sqrt(delta))/(2*a);
x2(-b+ sqrt(delta))/(2*a);              x2=(-b+sqrt(delta))/(2*a);                       
STRUCTURA ALTERNATIVĂ( DE DECIZIE/ DE SELECȚIE SIMPLĂ)
Sintaxa pseudocod:                                                     Sintaxa C++:
daca (expresie)  atunci                                  if (expresie)
                                    S1                                                       I1;

                              altfel                                                    else
                                   S2                                                        I2;
Explicatii:
 Expresie= este o expresie logica. Adica evaluata rezultatul
va fi 1( A) sau 0 (F)
 S1 si S2 in pseudocod reprezinta structuri.( In limbaj de
programare le spunem intructiuni  I1 si I2)
Pot fi structuri liniare,alternative, repetitive.
Pot fi simple (una) sau compuse (mai mult de una).
Cand sunt compuse in C++ se scriu intre acolade.
Principiul de functionare al structurii:
Se evalueaza expresia.Daca este adevarata se executa S1 si se
trece la urmatoarea structura din cadrul algoritmului (aflata
dupa sageata)
Daca este falsa se executa S2 si se trece la urmatoarea structura
din cadrul algoritmului (aflata dupa sageata)

Obs.
Daca pe ramura „altfel” nu este necesara executarea unei
structuri  aceasta poate lipsi si vom avea  sintaxa
Sintaxa pseudocod:                                                     Sintaxa C++:
daca (expresie)  atunci                                  if (expresie)
                                    S1                                                       I1;
                

ATENTIONARI!!!

      Pot exista şi situaţii în care structurile alternative sunt


incluse unele in altele. In acest caz spunem ca
instrucţiunile    if sunt imbricate. Exista o regula de
asociere a cuvântului else de if:
„În situatia instructiunilor if imbricate, si atunci cand pentru
gruparea instrucţiunilor nu se folosesc acolade cuvantul
else se asociază primului cuvant if aflat la stanga lui.
(asemanator cu asocierea inchiderii corecte a grupurilor
de paranteze din matematica).”
În exemplul următor este sugerat cum sunt imbricate 3
instructiuni if. Pentru a le putea identifica usor ele sunt
scrise cu culoari diferite (negru, albastru si portocaliu).
STRUCTURA/INSTRUCȚIUNEA
REPETITIVĂ CU TEST INIȚIAL

SINTAXA: 

PSEUDOCOD: 
cat timp(expresie) executa
  S; 

C++; 
while(expresie) 
 I; 

unde: 

✔ expresie este o expresie logica 


✔ S/I –structura / instructiune simpla sau compusa 
 PRINCIPIUL DE FUNCȚIONARE: 

1)Se evaluează expresia. 


2)Daca este Adevarată (1) se execută structura S si se revine la
pasul anterior. In caz contrar (este F(0)) se trece la urmatoarea
structura din cadrul algoritmului (aflata dupa sageata). 

Obs. Se citeste „cat timp expresie este adevarata executa S”

Exemplu de calcul:
I1; 
S0; 
cat timp(i<=3)executa 
 ss+i; 
 ii+1; 
scrie s; 
C++
i=1; 
s=0; 
while(i<=3)  {s=s+i;  i=i+1; } 
cout<<s; 

R. 
i=1; 
s=0; 
*(1<=3)A=> s=0+1=1 
 i=1+1=2 
*(2<=3)A =>s=1+2=3 
 i=2+1=3 
*(3<=3)A=>s=3+3=6 
 i=3+1=4 
*4<=3 F =>se incheie SRTI => afiseaza 6 R. 6 
OBS1. Daca espresia este falsa de la prima evaluare atunci instructiunea nu
se a  executa niciodata . 
Ex. Daca in expresie aveam i>2 

 OBS2. Daca espresia nu devine falsa niciodata atunci instructiunea se va executa


la  infinit 
Ex.  

i1; 
s0; 
cat timp(i<=3)executa 
 ss+i; 
 ii-1; 
scrie s; 

ATENTIONARI: 

1)Aplicam instructiunea intr-un algoritm atunci cand ? 


Cand nu stim numarul de executii 
2)Care este valoarea contorului din expresie la iesire?
STRUCTURA REPETITIVA CU NUMAR
FIX(CUNOSCUT) DE PASI
Se prezintă sub doua forme:

1) Forma crescătoare

Sintaxa

Pseudocod:

pentru ivi,vf executa

S;

C++:

for(i=vi;i<=vf;i++)
I;

2)Forma descrescătoare
Sintaxa
Pseudocod:
pentru  ivi,vf  (-1) executa
                                 S;

C++:
for(i=vi;i<=vf;i--)
                     I;

unde

 i este o variabila de tip intreg numita contor care va lua pe rand


valorile cuprinse intre vi si vf

 vi reprezinta valoarea initiala a contorului

 vf reprezinta valoarea finala a contorului


 S/I structura /instructiune simpla sau compusa

 Principiul de functionare: Variabila contor i  va lua pe rand valorile


cuprinse intre vi si vf in ordine crescatoare/descrescatoare si pentru
fiecare valoare luata executa structura S
Obs.
 La forma crescatoare  pentru a se asigura executia lui S trebuie
ca vi<=vf 
iar la forma descrescatoare vi>=vf
 Structura S se executa de “vf-vi+1 ori”

Exemplu de calcul:
Se considera secventa:
S0;
pentru i1,7 executa
                   ss+i;

scrie s;
R.  s=0
 i=1=> s=0+1=1
 i=2=> s=1+2=3
 i=3=>s=3+3=6
 i=4=>s=6+4=10
 i=5=>s=10+5=15
 i=6=>s=15+6=21
 i=7=>s=21+7=28
 i=8=> F
R . 28

Echivalarea „SR-PENTRU”  cu „SRTI”

„PENTRU”          SRTI
pentru  ivi,vf executa ivi

                                 S;                                 cat timp(i<=vf) excuta

S
                                                                                                                         ii+1

Exemplu:

Se considera secventa:

s0;
pentru i1,7 executa                               
                   ss+i;

scrie s;

s0
i1
cat timp(i<=7) executa
                ss+i
                ii+1
scrie s;

SRTI   „PENTRU”
Se recunoaste in srti cine este variabila contor ;  cine sunt vi si vf

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