• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Variabile, constante si expresii in C++/Pascal[1]

16
  • Publicat de bamboocha
  • în Fără categorie
  • — 22 iul., 2009 at 12:35 am

Acum ca am vazut ce este un algoritm, trecem la lectia urmatoare si  vom afla cu ce tipuri de date lucreaza algoritmii(variabile, constante, siruri).

Voi imparti articolul in 2: prima parte va contine explicarea variabilelor, constantelor, etc in limbajul de programare Pascal si a doua parte in limbajul C++.

Ce este o variabila ?

In informatica, o variabila este o marime de un anumit tip de date care-si poate schimba valoarea de mai multe ori in timpul executiei unui program. In momentul in care un program este compilat, iar compilatorul gaseste o linie pe care o interpreteaza ca declararea unei variabile, automat in memorie se va rezerva un spatiu de diferite dimensiuni. De obicei, memoria rezervata este de dimensiunile tipului declarat(integer, char, etc). Vom vedea mai tarziu ca dimensiunile depind de la tip la tip.

Ce este o constanta ?

Spre deosebire de variabile care se pot modifica pe parcursul rularii programului, constantele au o valoare fixa pe tot parcursul rularii. O constanta arhi-cunoscuta este PI care are o valoare fixa si nu si-o poate schimba deloc in timpul executiei.

Acum ca am vazut ce este o variabila si ce este o constanta, sa trecem mai departe si sa vedem cum se declara, ce dimensiuni au in Pascal si C++. Daca nu va intereseaza Pascalul, apasati variabile in C++

Variabile, constante si expresii in Pascal

Inainte de a vorbi mai pe larg despre variabile in Pascal, trebuie sa stim ca acestea nu se pot declara in orice parte a programului, ci doar intr-o zona speciala destinata declararii variabilelor, constantelor, etc. Zona destinata declararii se afla intre cuvantul cheie program si begin-ul care „anunta” ca incepe programul principal. Insa, nu le putem declara brambura, ci intr-o anumita ordine. Pentru inceput este nevoie sa stiti ca se declara mai intai constantele si apoi variabilele.

Cum se declara ?

Constantele se declara cu ajutorul cuvantul cheie const.
const nume = valoare;
Exemplu: const PI = 3.14;
De obicei, constantele se noteaza cu litere mari pentru a se diferentia de variabile.

Variabilele se declara cu ajutorul cuvantul cheie var.
var identificator: tip;
Exemplu: var x: integer;

Tipul variabilelor poate fi: byte, integer, word, longint, real, char, string, boolean, text. Pentru un incepator este bine de stiut ca sunt doar 7: byte, integer, word, longint, real, char.

Tipul integer

Se foloseste atunci cand se lucreaza cu numere naturale cuprinse in intervalul [-32768; 32767]. In momentul in care programul nu necesita numere de ordinul zecilor de mii, putem folosi tipul byte care este cuprins in intervalul [0; 255]. Mai mare decat integer este word, care poate stoca numere intre 0 si 65.535. Pentru programe care folosesc numere mai mari decat ordinul zecilor de mii naturale, este recomandat sa se foloseasca tipul longint care poate stoca: [-2.147.483.648;  2.147.483.647].

Spuneam ceva mai devreme ca in momentul in care compilatorul vede o variabila definita ii rezerva automat un loc in memoria. Cat de mare este locul in memorie ? Depinde de tipul stocat. De exemplu, tipul byte este stocat, dupa cum spune si numele, pe un byte sau un octet. Un octet la randul sau este alcatuit din 8 biti. Bit-ul poate stoca doar cifrele 1 si 0.  Mai jos, voi pune un tabel in care vom pune tipurile importante de date si dimensiunile sale.

Tipul Marime octeti(bytes) Marime biti Valoare maxima Interval
Byte 1 8 2^8 – 1 => 255 [0; 255]
Integer 2 16 Nu contine 2 octeti plini. [-32.768; 32767]
Word 2 16 2^16 – 1 => 65.535 [0; 65.535]
Longint 4 32 Nu contine 4 octeti fixi. [-2.147.483.648; 2.147.483.647]

Acum ca am vazut care-s dimensiunile pe care le ocupa in memorie, sa trecem mai departe si sa aflam cum putem stoca o variabila, cum o putem afisa, atribuire, etc.

Readln si Writeln

Multe programe pe care le vom concepe vor interactiona cu utilizatorul programului. Chiar si la un program de tipul: aria unui patrat vom „vorbi” cu utilizatorul programului cerandu-i valoarea laturii patratului. Pentru a putea primi datele corecte, trebuie sa facem pe persoana cu care „vorbim” sa inteleaga ce dorim. De exemplu, cand vom face programul ce va calcula aria unui patrat, nu-i vom afisa un mesaj  „l = „; fiindca utilizatorul va fii nedumerit in privinta lui l. Ce sa fie cu acel l ? Tocmai de aceea este recomandat sa afisam un mesaj succint insa sa cuprinda toate datele pentru a face pe user sa inteleaga ce dorim. „Dati latura patratului” ar fi un mesaj ok care ar lamuri ce dorim sa primim.

Cum facem sa afisam un mesaj ?

In Pascal, avem instructiunea write. Tot ce este intre paranteze va fi afisat undeva. Pentru inceput este bine sa stiti ca write afiseaza mesaje pe ecranul calculatorului. Atunci cand vrem sa afisam un text vom pune tot sirul de caractere intre 2 semne apostrof. Pentru programul nostru de calculat aria patratului, vom afisa „Dati latura patratului”. Cum vom face asta ?
write(‘Dati latura patratului’);
Trebuie retinut faptul ca intotdeauna dupa instructiunea write trebuie sa pun semnul punct si virgula ; .

Ok, am afisat mesajul cu pricina, insa noi acum avem nevoie de valoarea introdusa de la tastatura. Aceasta valoare o vom stoca intr-o variabila numita lat. Ca sa inmagazinam valoarea introdusa de utlizator in variabila lat, avem nevoie de instructiunea read. Care ii spune compilatorului citeste ce s-a scris de la tastatura, iar in momentul in care s-a apasat tasta Enter toata linia ce s-a scris de catre utlizator este stocata in variabila pe care i-o indicam noi instructiunii read.
read(lat);
Asadar, dupa ce a fost afisat mesajul „Dati latura patratului”, compilatorul gaseste instructiunea read si asteapta pana este introdusa de la tastatura o valoare si se apasa tasta enter. Cand s-a apasat tasta enter, tot ce s-a scris dupa mesajul de mai sus se stocheaza in variabila lat. Daca variabila lat a fost declarata ca fiind de tip integer si noi introducem de la tastatura altceva decat un numar intreg, vom primi o eroare.

Avem, deci, valoarea laturii patratului stocata in variabila lat. Pentru ca programul nostru sa afiseze aria patratului, trebuie sa o calculam.  Formula patratului dupa cum stim este latura * latura . Deci, vom avea nevoie de o alta variabila numita aria care sa stocheze valoarea ariei. Asadar, in variabila aria trebuie sa punem valoarea produsului latura ori latura. Vom avea urmatoarea linie:
aria := lat * lat;
Dupa cum observam avem pentru atribuire := . Linia de mai sus se traduce in limbaj natural cam asa: in variabila aria stocam valoarea produsului dintre latura ori latura sau variabilei aria ii este atribuita patratul dintre laturi.

Ce ne mai ramane sa facem, trebuie doar sa afisam aria pe care tocmai am calculat-o. Desigur, vom afisa cu ajutorul instructiunii write.
write(‘Aria patratului este ‘, aria);
Intre paranteze vedem ca avem o portiune intre apostrofuri, o virgula si un cuvant. Cum va interpreta compilatorul ? Trebuie sa afisez un mesaj -> ‘Aria patratului este  ‘, apoi intalneste virgula si spune ca urmeaza altceva decat un sir de caractere pe care l-am introdus noi manual, in cazul nostru o variabila si afiseaza si valoarea variabilei aria. Deci, mesajul final va fi ‘Aria patratului este 16’. 16 va afisa daca valoarea introdusa de la tastatura va fi 4.

Sa scriem acum programul final:

program arie_patrat;
var lat, aria: integer;
begin
writeln(‘Dati latura patratului’);
readln(lat);
aria := lat * lat;
write(‘Aria patratului este ‘, aria);
end.

Am fost hot si am schimbat in loc de write am scris writeln. Diferenta dintre write si writeln este ca atunci cand folosim writeln compilatorul va afisa mesajul dupa care va pozitiona cursorul pe o linie noua. La fel este si in cazul lui readln, cand dupa ce citeste valoarea variabilei pozitioneaza cursorul pe linie noua.

Va las pe dumneavoastra sa scrieti un program si cu writeln si doar cu write simplu si sa observati diferenta. Tema 2 consta in scrierea a 2, 3 programe care sa calculeze aria la ce vreti dumneavoastra, adica la ce stiti formula ariei. Dupa ce le scrieti, le dati aici la corectat :D.

Cam atat pentru prima parte, va urma si o parte a doua in care vom vorbi despre constante si caractere.

Spre deosebire de Pascal, in C++ putem declara variabile in orice parte a programului. Nu exista o parte declarativa in C++. Acest lucru constituie un avantaj fata de Pascal, deoarece in momentul in care realizezi ca mai ai nevoie de o variabila nu trebuie sa te intorci la partea declarativa si sa declari variabila, ci mai simplu o declari in locul in care esti.

Declararea unei variabile se face in felul urmator:
tip identificator;
De exemplu int x;
Acest lucru spune compilatorului: creeaza o variabila de tip int(integer) cu numele x.

Constantele se declara in felul urmator:
const tip identificator = valoare;
De exemplu const float PI = 3.14;

Sunt mai multe tipuri de date in C++, insa pentru inceput trebuie sa stim ca exista tipurile: int, short int, long int, float, char.

Tipul int

Tipul int este acelasi cu tipul long int, ambele tipuri de date fiind stocate pe 32 de biti(4 bytes). Daca doriti sa lucrati cu numere mai mici de ordinul miliardelor, este recomandat sa se foloseasca tipul short int care stocheaza valorile pe doar 16 biti (2 bytes). Pentru numerele care sunt in virgula mobila(sau mai simplu, cu virgula) se foloseste tipul float.

Ok, am sa fac un tabel in care voi arata intre ce intervale sunt valorile celor 3 tipuri ce stocheaza numere naturale.

Tip Marime biti Marime bytes Interval
Short Int 16 2 [-32.768; 32.767]
Int 32 4 [-2.147.483.648; 2.147.483.647]
Long Int 32 4 [-2.147.483.648; 2.147.483.647]

cout si cin

Atunci cand programul nostru interactioneaza cu utilizatorul, avem nevoie sa afisam mesaje clare si succinte care sa-l faca pe user sa inteleaga ce vrem si ce raspuns sa dea. Pentru a afisa un mesaj avem nevoie de cout. Acesta este o prescurtate de la console output. cout este precedat de operatorul <<, iar linia se va incheia cu punct si virgula ;. Poate nu am fost destul de explicit cum se foloseste cout si de aceea voi da un exemplu. Pentru a afisa mesajul „Dati varsta dumneavoastra” vom utiliza astfel cout:
cout << „Dati varsta dumneavoastra” << endl;
Dupa cum putem observa mesajul transmis este intre << si << . Spre deosebire de Pascal, atunci cand scriem un mesaj folosim ghilimele si nu apostrofuri. Mai apare ceva nou, si anume endl; Compilatorul percepe  instructiunea de mai sus, astfel:
afiseaza in consola mesajul „Dati varsta dumneavoastra” si apoi trece pe randul urmator. Cam asta este intrebuintarea lui endl care este o prescurtare de la end line, adica sfarsit de linie. Daca nu vrem sa trecem automat, dupa afisarea mesajului, pe linie noua, atunci nu folosim endl. Linia noastra va arata astfel:
cout << „Dati varsta dumneavoastra” ;

Daca tot cerem utilizatorului ceva, in cazul nostru varsta, trebuie sa si stocam intr-o variabila datele primite. Ca sa citim datele transmise de catre user, avem nevoie de o comanda care este cin. cin este precedat de operatorul >>. In momentul in care compilatorul „gaseste” aceasta linie el o traduce in felul urmator: asteptam sa se introduca o data de un anumit tip si apoi sa se apese tasta Enter.
Exemplu de folosire:
int varsta;
cin >> varsta;
Deci, compilatorul va astepta de la tastatura sa se introduca o valoarea numerica. Daca vrem ca dupa ce s-a citit valoarea de la tastatura sa se mute cursorul pe rand nou NU vom folosi: cin >> varsta >> endl; fiindca vom primi o eroare. cin >> doar citeste de la tastatura si nu se ocupa „stilizarea” afisajului. Cine se ocupa cu afisajul este cout. Deci, ca sa trecem pe randul urmator vom utiliza linia: cout << endl;

Sa facem si un program ca sa intelegem cum functioneaza mai bine cout si cin. Vom face clasicul program de calculare a ariei unui patrat. Asadar, pentru inceput afisam un mesaj prin care cerem utilizatorului latura patratului.
Sfat ! Va recomand sa scrieti dumneavoastra instructiunea si apoi sa va uitati aici pe site sa vedeti daca ati scris corect.
cout << „Dati latura patratului” << endl; Acum trebuie sa declaram o variabila de tip int, in care sa stocam valoarea laturii.
int lat;
Acum trebuie sa citim de la tastatura valoarea laturii si vom face in felul urmator: cin >> lat;
Dupa cum observam, avem nevoie si de o variabila numita, de exemplu, aria, in care sa stocam patratul laturii.
aria = lat * lat;
Ce ne ramane de facut, doar sa afisam aria obtinuta si gata, am terminat.
cout << „Aria patratului este ” << aria << endl;
Vedem ca variabilele sunt despartite de mesajele afisate manual prin operatorul << .
Uitati si programul final:

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
cout << "Dati latura patratului"<< endl; 
int lat;
cin >> lat;
int aria;
aria = lat * lat;
cout << "Aria patratului este " << aria << endl;
system("Pause");
}

Atribuirea in C++ se face cu operatorul = .

Ca tema pentru acasa, aveti de facut 2-3 programele cu ceva simplu, tot niste arii de calculat. Daca aveti alte idei, chiar va rog sa le puneti in aplicare, si apoi le dati la corectat :D.

Cam atat, voi reveni si cu o a doua parte pentru a continua discutia despre variabile, operatii cu variabile, etc.

Problemele, necazurile, supararile, va rog sa le „varsati” aici, ca sa putem rezolva golurile, iar daca nu ma pricep sa explic prea bine, spuneti si voi incerca sa progresez.

Update: Am terminat si continuarea acestui articol Variabile, constante si expresii in C++/Pascal[2]

Etichete: C++constanteintegerlongintmarime bitiPascalshort intTehnicvariabileWord

— Porumbel Valentin a scris 6 articole

Nu există o descriere a autorului.

  • Articolul anterior Microsoft anunta joi prima scadere a veniturilor!
  • Articolul următor PirateBay-free or not ?

16 Comentarii

  1. Avadanei Andrei spune:
    iulie 22, 2009 la 12:47 am

    As avea de precizat un singur lucru.

    La IDE`urile mai noi gen Mingw,Dev-C++ (noua generatie pentru concursurile in tara) valorile de tip int sunt putin diferite.

    short int(short) e pe 2 bytes deci e int in borland
    int/long int/long e pe 4 bytes deci e long in borland
    long long int e pe 8 bytes si nu mai are implementare in borland

    Un articol excelent.Aveti ce citi zilele acestea 😀

  2. miculprogramator spune:
    iulie 22, 2009 la 3:11 pm

    Foarte bun articolul, felicitari ! 🙂

    P.S: bamboocha, tu ce compilator folosesti?

  3. bamboocha spune:
    iulie 22, 2009 la 4:05 pm

    Folosesc Dev-C++

  4. miculprogramator spune:
    iulie 22, 2009 la 5:24 pm

    Oho, e pasarila. 😀

    Si eu la fel.

  5. Avadanei Andrei spune:
    iulie 22, 2009 la 5:29 pm

    Ai aflat secretul nostru! >:)

  6. bamboocha spune:
    iulie 22, 2009 la 7:03 pm

    ^^Nu stiu, nu recunosc nimic 😀

  7. miculprogramator spune:
    iulie 22, 2009 la 7:14 pm

    Nu putei nega ! V-am prins. :))

    Tutorialele in Pascal sunt foarte utile, avand in vedere ca este un limbaj care inca se mai invata.

  8. dage spune:
    iulie 23, 2009 la 3:24 pm

    De ce cand am incercat sa compilez in Dev-C++, ultimul program(cel cu aria); imi apare eroarea: „The system cannot find the file specified” ?

  9. bamboocha spune:
    iulie 23, 2009 la 3:38 pm

    Scuze, codul nu era bun, din cauza ca uitasem sa declar variabila aria. Incearca cu copy->paste la codul nou si spune-mi daca intalnesti probleme.

  10. dage spune:
    iulie 23, 2009 la 6:09 pm

    nu stiu ce se intampla… ca nu merge..

  11. Avadanei Andrei spune:
    iulie 23, 2009 la 6:38 pm

    Incearca sa reinstalezi Dev`ul si va reveni la normal.

    La ce se refera mai exact cand primesti eroarea?!

  12. dage spune:
    iulie 23, 2009 la 7:11 pm

    gata acum merge . . .

  13. O privire atenta asupra variabilelor si constantelor | WorldIT spune:
    octombrie 3, 2009 la 4:16 pm

    […] O variabila este o locatie de memorie. Ea este caracterizata prin numele sau si prin valoarea atribuita. Oricarei variabile ii corespunde un tip de date, acestea fiind prezentate aici. […]

  14. Variabile, constante si expresii in C++/Pascal[2] | WorldIT spune:
    octombrie 3, 2009 la 4:35 pm

    […] postul anterior, variabile in C++/Pascal, am aflat cum se declara o variabila, cum o citim, cum o afisam, etc. Acum, vom vorbi despre […]

  15. Algoritm . Caracteristici . Exemple | WorldIT spune:
    octombrie 3, 2009 la 4:41 pm

    […] necazuri, suparari daca aveti, nu ezitati sa le spuneti. Puteti citi si variabile, constante si expresii in C++/Pascal care este o continuare a acestui […]

  16. Ce este o variabila ? | awesomeway spune:
    martie 4, 2013 la 8:04 am

    […] Acum ca am vazut ce este o variabila si ce este o constanta, sa trecem mai departe si sa vedem cum se declara, ce dimensiuni au in Pascal si C++. Daca nu va intereseaza Pascalul, apasati variabile in C++ […]


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • august 2022
    L Ma Mi J V S D
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Variabile, constante si expresii in C++/Pascal[1]
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons