Sunteți pe pagina 1din 7

PCLP 1 Laboratorul 2

Asist.drd.ing. Ana-Maria SUDUC

Laboratorul 2
Tipuri de date
1. Noţiuni teoretice

1. Tipuri de date
Există cinci tipuri de date fundamentale în C: caracter, întregi, cu virgulă mobilă, cu dublă virgulă
mobilă şi fără valoare (simbolizate respectiv char, int, float, double şi void). Toate celelalte tipuri de
date folosite în C sunt bazate pe unul din aceste tipuri fundamentale.
În afară de void, tipurile fundamentale de date pot fi precedate de diverşi modificatori. Un
modificator se utilizează pentru a schimba sensul tipului de bază în vederea unei adaptări mai precise la
anumite situaţii. Modificatori: signed, unsigned, long, short.
Modificatorii pot fi aplicaţi tipurilor de date caracter şi întreg. Totuşi long poate fi aplicat şi
tipului de date double.
Tipurile de date fundamentale din C++ sunt:

Nume Descriere Dimensiune* Domeniu de valori*


signed: de la -128 la 127
char Caracter sau întreg mic. 1octet
unsigned: de la 0 la 255
short int signed: de la -32768 la 32767
Întreg scurt. 2octeţi
(short) unsigned: de la 0 la 65535
signed: de la -2147483648 la
2147483647
int Întreg. 4octeţi
unsigned: de la 0 la
4294967295
signed: de la -2147483648 la
2147483647
long int (long) Întreg lung. 4octeţi
unsigned: de la 0 la
4294967295
Valoare booleană. Poate lua unda dintre
bool 1 octet true sau false
următoarele valori: true sau false.
float Număr în virgulă mobilă. 4 octeţi +/- 3.4e +/- 38 (~7 digiţi)
double Număr în virgulă mobilă cu dublă precizie. 8 octeţi +/- 1.7e +/- 308 (~15 digiţi)
Număr lung în virgulă mobilă cu dublă
long double 8 octeţi +/- 1.7e +/- 308 (~15 digiţi)
precizie.
wchar_t Caracter extins. 2 sau 4 octeţi 1 caracter extins
*Valorile din coloanele Dimensiune şi Domeniu de valori depind de sistemul pentru care este compilat
programul.

Diferenţa între întregii cu semn (signed) şi cei fără semn (unsigned) rezidă în modul în care este
reprezentat bitul de cel mai mare ordin al întregului. Dacă precizaţi un întreg cu semn, compilatorul de
C/C++ va genera un cod care presupune faptul că bitul de cel mai mare ordin al întregului va fi folosit ca
indicator de semn. Dacă acesta are valoarea 0, numărul e pozitiv, în caz contrar, numărul e negativ.

Exemplu de întreg scurt cu semn Exemplu de întreg scurt fără semn


32767  01111111 11111111 32767  01111111 11111111
-32767  11111111 11111111 65535  11111111 11111111

1
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

2. Specificatori de format şi secvenţe de evitare


%u  întreg fără semn \n  linie nouă
%d  întreg \t  caracterul tab
%ld  întreg lung \b  caracterul backspace
%p  pointer \\  caracterul backslash (\)
%f  valoare în virgulă mobilă \/  caracterul slash (/)
%e  valoare in virgulă mobilă şi format
exponenţial
%c  caracter
%s  şir
%x  întreg în format hexazecimal

2. Aplicaţii
2.1. Lansaţi în execuţie aplicaţia Visual C++ 2010 Express Edition:
a) Din meniul Start-> Programs-> Microsoft Visual Studio 2010 Express Edition, executaţi clic
pe opţiunea Microsoft Visual C++ 2010 Express Edition.
2.2. Creaţi un nou proiect, Proiect1 şi un nou fişier File1.cpp:
a) Din meniul File->New, alegeţi opţiunea Project;
b) În fereastra New Project selectaţi opţiunea Win32 şi verificaţi să fie selectat Win32 Console
Application;
c) În câmpul Name introduceţi Proiect1 şi apăsaţi OK;
d) În fereastra deschisă apăsaţi Next şi apoi selectaţi opţiunea Empty Project şi apăsaţi Finish;
e) În secţiunea Solution Explorer executaţi clic dreapta pe directorul Source File şi alegeţi
opţiunea New-> Item;
f) În fereastra Add New Item selectaţi categoria Code şi verificaţi să fie selectată opţiunea C++
File (.cpp);
g) În câmpul Name tastaţi numele File1 şi apăsaţi Add.
2.3. În fişierul File1.cpp introduceţi şi testaţi următorul program:
#include <iostream>
using namespace std;
void main(void)
{
int Lungimea;
int Latimea = 10;
int Perimetrul;
Lungimea = 20
Perimetrul = 2 * ( Lungimea + Latimea);
cout<<"Perimetrul dreptunghiului = ;
cout<<Perimetrul;
}
2.4. Compilaţi programul şi rulaţi-l.
2.5. Rezolvaţi cele trei erori de sintaxă detectate la compilare:

2
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

Fig. 7 Erorile detectate la compilare


a) Executaţi dublu clic pe prima eroare detectată:
error C2146: syntax error: missing ‘;’ before identifier ‘Perimetrul’;
Automat indicatorul de inserare (cursorul) va face un salt pe linia:
Perimetrul = 2 * ( Lungimea + Latimea);
Eroarea precizează că lipseşte simbolul “;” din faţa identificatorului Perimetrul. Plasaţi
simbolul “;” după comanda Lungimea = 20
b) Compilaţi programul din nou executând clic dreapta pe numele fişierului din secţiunea
Solution Explorer şi alegând opţiunea Compile;
c) Vor fi detectate ultimele două erori, identificate şi la compilarea anterioară. Executând dublu
clic pe prima eroare cursorul va executa un salt pe linia:
cout<<"Perimetrul dreptunghiului = ;
unde se observă că nu sunt închise ghilimelele. Corectaţi:
cout<<"Perimetrul dreptunghiului = ";
d) Compilaţi programul. Programul a fost compilat cu succes.
e) Rulaţi programul selectând opţiunea Start without Debugging din meniul Debug.
Obs. Erorile sunt afişate în ordinea apariţiei lor în program. Începeţi rezolvarea erorilor cu prima
eroare semnalată şi care poate fi identificată uşor în program prin executarea unui dublu clic pe textul
corespunzător de semnalare din zona Output. După rezolvarea unei erori, compilaţi din nou programul.
E posibil ca mai multe erori să aibă drept sursă o singură greşeală de sintaxă.
2.6. Creaţi un nou proiect, Proiect3, cu fişierul File3.cpp conform indicaţiilor de la punctele
anterioare.
2.7. Introduceţi în fişier următorul program:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program \nscris in C++.";
}
2.8. Compilaţi şi rulaţi programul. Care este diferenţa între rezultatul obţinut şi cel din programul
File1.cpp?
Obs. Specificatorul de format \n e utilizat pentru a insera o nouă linie între mesajul din faţa
specificatorului şi restul mesajului, de după specificator.
2.9. Modificaţi programul astfel încât programul obţinut să fie:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program \nscris in C++.\n";
}
2.10. Compilaţi, rulaţi programul şi comparaţi rezultatul cu cel obţinut anterior.
2.11. Modificaţi programul anterior pentru a obţine următorul rezultat:

3
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

Fig. 8. Rezultatul dorit


2.12. Testaţi pe rând următoarele programe:
Programul 1:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program";
cout<<"scris in C++.";
}
Programul 2:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program "<<"scris in C++.";
}
Există vreo diferenţă între rezultatele celor două programe?
2.13. Testaţi pe rând următoarele programe:
Programul 1:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program\n";
cout<<"scris in C++.\n";
}
Programul 2:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program"<<endl;
cout<<"scris in C++."<<endl;
}
Programul 3:
#include <iostream>
using namespace std;
void main(void)
{
cout<<"Primul program"<<endl<<"scris in C++."<<endl;
}
Obs. Endl e precedat întotdeauna de operatorul “<<”. El trece pe o nouă linie următorul mesaj ce va fi
afişat. Are acelaşi efect ca şi \n doar că modul de utilizare e diferit (vezi exemplele).
2.14. Creaţi un nou proiect, Proiect2, cu fişierul File2.cpp în care introduceţi următorul
program:
#include <iostream>
using namespace std;

4
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

void main(void)
{
int a=5;
cout<<"a"<<endl;
cout<<a<<endl;
}
2.15. Compilaţi şi rulaţi programul. Observaţi diferenţa între afişarea lui “a” (caracterul a) şi
afişarea lui a (valoarea variabilei a).
2.16. Modificaţi programul anterior pentru a obţine:
#include <iostream>
using namespace std;
void main(void)
{
int a=5;
cout<<"a="<<a<<endl;
}
2.17. Compilaţi şi rulaţi programul.
2.18. Modificaţi programul anterior pentru a obţine:
#include <iostream>
using namespace std;
void main(void)
{
int a;
cout<<"a=";
cin>>a;
cout<<"Valoarea lui a este: "<<a<<endl;
}
2.19. Compilaţi şi rulaţi programul.
2.20. Modificaţi programul File3.cpp pentru a citi de la tastatură valorile lungimii şi lăţimii:
a) Deschideţi proiectul Proiect3. Alegeţi din meniul File opţiunea Open Project/Solution…. În
directorul Projects executaţi dublu clic pe directorul Proiect3. Executaţi dublu clic pe fişierul
Proiect3.
b) Modificaţi programul astfel încât să obţineţi:
#include <iostream>
using namespace std;
void main(void)
{
int Lungimea;
int Latimea;
int Perimetrul;

cout<<"Lungimea=";
cin>>Lungimea;

cout<<"Latimea=";
cin>>Latimea;

Perimetrul = 2 * ( Lungimea + Latimea);


cout<<"Perimetrul dreptunghiului = "<<Perimetrul<<endl;
}
2.21. Modificaţi programul anterior pentru a obţine:
#include <iostream>
using namespace std;
void main(void)
{
int Lungimea;
int Latimea;

5
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

cout<<"Lungimea=";
cin>>Lungimea;

cout<<"Latimea=";
cin>>Latimea;

cout<<"Perimetrul dreptunghiului = "<<2 * ( Lungimea + Latimea)<<endl;


}
2.22. Care e diferenţa dintre ultimele două programe testate?
2.23. Modificaţi programul anterior pentru a calcula şi afişa atât perimetrul cât şi aria
dreptunghiului.
2.24. Creaţi un nou proiect, Proiect4, cu fişierul File4.cpp în care introduceţi următorul
program:
#include <iostream>
void main(void)
{
char ch = 'A';
cout<<"Caracterul memorat in variabila ch este: "<<ch;
}
2.25. Compilaţi şi rulaţi programul.
2.26. Modificaţi programul astfel încât valoarea variabilei ch să fie citită de la tastatură.
2.27. Creaţi un nou proiect, Proiect5, cu fişierul File5.cpp în care introduceţi următorul
program:

#include <iostream>
using namespace std;
void main(void)
{
int nr_intreg;
float nr_real;
double nr_double;

cout<<"Introduceti trei numere: \n";

cout<<"un intreg: ";


cin>>nr_intreg;

cout<<"un real: ";


cin>>nr_real;

cout<<"un double: ";


cin>>nr_double;

cout<<"Ati introdus:\n un intreg = "<<nr_intreg<<"\n un real = "<<nr_real<<"\n


un double = "<<nr_double;
}
2.28. Compilaţi şi rulaţi programul.

6
PCLP 1 Laboratorul 2
Asist.drd.ing. Ana-Maria SUDUC

Fig. 9 Rezultatul rulării programului

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

  • Manual de Programare C++
    Manual de Programare C++
    Document180 pagini
    Manual de Programare C++
    trilulilu89
    88% (26)
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    Ionut Valentin
    Încă nu există evaluări
  • Tema 12 Aprecierea Echilibrului Financiar
    Tema 12 Aprecierea Echilibrului Financiar
    Document39 pagini
    Tema 12 Aprecierea Echilibrului Financiar
    nika07
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document5 pagini
    Lab 6
    Ionut Valentin
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document5 pagini
    Lab 2
    Ionut Valentin
    Încă nu există evaluări
  • Lab 10
    Lab 10
    Document7 pagini
    Lab 10
    Ionut Valentin
    Încă nu există evaluări
  • Dosar Ingrijire 2022
    Dosar Ingrijire 2022
    Document13 pagini
    Dosar Ingrijire 2022
    Ionut Valentin
    Încă nu există evaluări
  • Lab 2 PDF
    Lab 2 PDF
    Document7 pagini
    Lab 2 PDF
    Ionut Valentin
    Încă nu există evaluări
  • Lab 8
    Lab 8
    Document4 pagini
    Lab 8
    Ionut Valentin
    Încă nu există evaluări
  • Lab 1 PDF
    Lab 1 PDF
    Document5 pagini
    Lab 1 PDF
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7bis
    Lab 7bis
    Document2 pagini
    Lab 7bis
    Ionut Valentin
    Încă nu există evaluări
  • Lab 11
    Lab 11
    Document3 pagini
    Lab 11
    Ionut Valentin
    Încă nu există evaluări
  • Dumi
    Dumi
    Document53 pagini
    Dumi
    Ionut Valentin
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document4 pagini
    Lab 7
    Ionut Valentin
    Încă nu există evaluări
  • L1 - Blog - Jurnale Online
    L1 - Blog - Jurnale Online
    Document10 pagini
    L1 - Blog - Jurnale Online
    PensiuneaParc
    Încă nu există evaluări
  • Lab 9
    Lab 9
    Document1 pagină
    Lab 9
    Ionut Valentin
    Încă nu există evaluări
  • Lab 12
    Lab 12
    Document1 pagină
    Lab 12
    Ionut Valentin
    Încă nu există evaluări
  • Google Picasa
     Google Picasa
    Document8 pagini
    Google Picasa
    Andrei Stoian
    Încă nu există evaluări
  • L11 - Google Picasa - Partea2
    L11 - Google Picasa - Partea2
    Document9 pagini
    L11 - Google Picasa - Partea2
    Ionut Valentin
    Încă nu există evaluări
  • Pagina Antet Lab PCLP1
    Pagina Antet Lab PCLP1
    Document1 pagină
    Pagina Antet Lab PCLP1
    Ionut Valentin
    Încă nu există evaluări
  • L4 - Voice Over IP - Aplicatii
    L4 - Voice Over IP - Aplicatii
    Document11 pagini
    L4 - Voice Over IP - Aplicatii
    Ionut Valentin
    Încă nu există evaluări
  • Cap. 7
    Cap. 7
    Document24 pagini
    Cap. 7
    Ionut Valentin
    Încă nu există evaluări
  • Cap. 8
    Cap. 8
    Document37 pagini
    Cap. 8
    Ionut Valentin
    Încă nu există evaluări
  • Lab 7bis
    Lab 7bis
    Document2 pagini
    Lab 7bis
    Ionut Valentin
    Încă nu există evaluări
  • L3 - Retele Sociale
    L3 - Retele Sociale
    Document12 pagini
    L3 - Retele Sociale
    Ionut Valentin
    Încă nu există evaluări
  • Proiect Abb
    Proiect Abb
    Document78 pagini
    Proiect Abb
    Ionut Valentin
    Încă nu există evaluări
  • Bba Bba
    Bba Bba
    Document86 pagini
    Bba Bba
    Ionut Valentin
    Încă nu există evaluări
  • Lucrarea nr.10 PD
    Lucrarea nr.10 PD
    Document7 pagini
    Lucrarea nr.10 PD
    Ionut Valentin
    Încă nu există evaluări
  • Lucrarea Nr.1 PD
    Lucrarea Nr.1 PD
    Document12 pagini
    Lucrarea Nr.1 PD
    Ionut Valentin
    Încă nu există evaluări