Mini-Browser

sâmbătă, 4 decembrie 2010

Variabile

Ne-am jucat pana acum cu texte, am invatat cum sa le afisam iar acum e momentul sa trecem mai departe si sa invatam despre variabile.
Ce sunt variabilele?


Variabilele sunt locatii in care putem plasa date.


Datele respective sunt , la randul lor, de mai multe tipuri, iar noi vom discuta despre 3 tipuri elementare: intreg, fractionar si sir de text.


Tipul Intreg - are capacitatea de a memora date din multimea numerelor intregi. Ex: 14; -19;1003.


Tipul Fractionar - are capacitatea de a memora si partea fractionara a numerelor reale. Ex: 13,1235; -15,4; 3,14; etc


Tipul Sir de text - Are capacitatea de a memora caractere
Iar tipurile sunt la randul lor definite prin cuvintele cheie:
int - pentru tipul intreg
double - pentru tipul fractionar
char *- pentru tipul sir de text
Sunt multe alte tipuri de variabile dar pentru inceput e de ajuns sa le stim pe acestea 3.


Cum se declara o variabila?
 Sintaxa generala a declararii variabilelor este urmatoarea:
  tip nume_variabila;
Ex:  int produs;
       double suma;
       char *text;


Numele variabilei poate fi orice cuvant dorim cu cateva exceptii:
1. Nu trebuie sa fie asemanator cu cuvintele cheie din C++ precum main, int, if, while,etc
2. Trebuie sa inceapa cu o litera a alfabetului si nu un numar sau un alt caracter precum virgula sau alte semne de punctuatie ci mai poate contine underline ( _ ) ca delimitator de cuvinte.
Ex: double produsul_numerelor;
       char *numele_meu;


Acum ca am lamurit cum se declara variabilele trebuie sa le atribuim valori.
Putem atribui valori variabilelor folosint semnul egal ( = ).
Ex: suma = 13; sau  produsul = 5 * 3;
Daca avem nevoie de o cantitate mai mare de variabile in programul nostru le putem declara sub acelasi tip folosind semnul virgula ( , ).
Ex: int a, b, suma; -> este echivalentul acestor instructiuni:
int a;
int b;
int suma;


Iata un exemplu de program care foloseste variabile:


#include<iostream>
using namespace std;


int main() {
    int a, b, sum;
    a=5;
    b=13;
    sum = a + b;
    cout << sum;
    return 0;
}
    
Acest exemplu declara 3 variabile a,b si suma, si atribuie valori lui a si b, calculeaza suma si o plaseaza in variabila sum, apoi o afiseaza.


Ati observat ca, pentru a afisa valoarea unei variabile la consola, folosim tot obiectul cout si operatorul de flux, doar ca nu mai folosim ghilimelele. De ce?
Pentru ca ghilimelele se folosesc cand dorim sa afisam un sir de caractere, sau un text. Cand dorim sa afisam o variabila trebuie sa scriem doar numele variabilei.


Acum tim ce sunt variabilele si avem o idee cum se lucreaza cu ele deci, putem trece mai departe.


Acum putem face operatii de matematica folosind variabile si operatori dar asta putem face si cu calcuatorul din windows sau chiar si din minte. De ce ne-ar mai trebui sa scriem atata cod de program pentru un lucru atat de simplu?
Ei bine o parte buna a raspunsului e ca odata facut un program se poate executa de nenumarate ori fara sa-l rescriem de fiecare data. Si o a II -a parte a raspunsului e ca putem face mai mult decat simple operatii de adunare si scadere.
Cum ar fi sa facem un program care sa citeasca gradele Fahrenheit si sa afiseze gradele Celsius?
Pentru inceput vreau sa intreb, nu ar fi mai elegant ca un program sa afiseze un mesaj in care sa solicite un numar, sa citeasca acel numar, sa faca calculele si sa afisere rezultatul?
Ba da.
Ca un program sa citeasca un numar de la tastatura va trebui sa foloseasca obiectul cin.
cin este la fel ca obiectul cout, doar ca de data asta nu afiseaza datele ci asteapta ca utilizatorul sa introduca datele si sa le plaseze in variabile. ( cin = console input )
Iata programul:


#include <iostream>
using namespace std;


int main(){
    double temp_celsius, temp_fahrenheit;
    cout << " Introuceti temperatura in grade Fahrenheit: ";
    cin >> temp_fahrenheit;
    temp_celsius = (temp_fahrenheit - 32) / 1.8;
    cout << " Temperatura in grade Celsius este: ";
    cout << temp_celsius;
    return 0;
}

Observam la cin ca operatorul de flux este indreptat spre aprtea dreapta ( >> ). Asta inseamna ca datele se scurg dinspre stanga spre dreapta, astfel ca programul asteapta sa introducem datele si apoi sa o atribuie variabilei.
Daca scriem ceva de genul: cin >> a >> b >> c; programul asteapta sa introducem 3 valori doar ca trebuie introduse cu un spatiu intre ele ( Ex: 12 53 72 ) si vor fi atribuite exact in ordinea in care sunt scrise ( a =12 , b = 53, c = 72 ). Daca dorim sa citim pe rand atunci ne trebuie scris in felul urmator: cin>>a;
                cin>>b;
                cin>>c;


O alta regula importanta este ca o variabila trebuie declarata mereu inainte de a fi utilizata!
o instructiune de genul :
    a=a*2;
    int a;
va fi gresita si va duce la erori la compilare, caci variabila trebuie declarata ianinte de a fi utilizata.


Variabilele declarate in exemplus de mai sus sunt de tipul double deoarece prin imaprtirea la 1.8 va da un rezultat cu parte fractionara.


Ce se intampla daca declaram o variabila de tip int si ii atribuim o valoare factionara?
Deoarece tipul int citeste doar intregi tot ceea ce este dupa virgula se va pierde.


As vrea sa mai amintesc despre comentariile din codul sursa.
Liniile de program c++ care incep cu o pereche de caractere slash ( // ) sunt comentarii si sunt ignorate de catre compilatorul C++ pana la sfarsitul liniei!
Sau mai putem nota comentariile intre /* (aici sunt plasate comentariile)  */
Iata versiunea comentata a exemplului de mai sus:



#include <iostream>
using namespace std;

int main(){
    // declaram variabilele
    double temp_celsius, temp_fahrenheit;
    // afisam mesajul introductiv
    cout << " Introuceti temperatura in grade Fahrenheit: ";
    // citim temperatura Fahrenheit
    cin >> temp_fahrenheit;
    temp_celsius = (temp_fahrenheit - 32) / 1.8;   // convertim in Celsius
    // Afisam rezultatul
    cout << " Temperatura in grade Celsius este: ";
    cout << temp_celsius;
    return 0;
}

Comentariile sunt utile pentru programator, in cazurile programelor mari in care sunt asa de multe linii de cod incat nu mai stii exact de unde incepe o anumita instructiune, iar plasand comentariile iti va fi usor sa revii mai tarziu.

Niciun comentariu:

Trimiteți un comentariu