Documente Academic
Documente Profesional
Documente Cultură
TEMA:
1. Familiarizarea cu mediul utilizat pentru dezvoltarea aplicaţiilor C/C++.
Primul program.
2. Elemente de vocabular: Date în limbajele C/C++. Operaţii de intrare/ieşire.
1. După conectarea pe contul creat fiecărui utilizator (numele contului şi parola indicate),
studenţii se vor familiariza cu mediul 1 (selectaţi opţiunile din bara de meniuri pentru testaţi
facilităţile oferite de mediu).
2. Scrieţi programul următor, parcurgeţi fiecare etapă necesară obţinerii fişierului executabil
(editarea fişierului sursă şi salvarea acestuia, compilarea, linkeditarea şi lansarea în
execuţie) şi urmăriţi rezultatele obţinute în urma execuţiei.
Exemplu:
#include <iostream.h> // linia 1
int main() // linia 2 - antetul functiei main
{ /* linia 3 - inceputul corpului functiei, a unei intructiuni
compuse (linia 4)*/
cout<<”Primul meu program in limbajul C++\n”; // linia 5
return 0; //linia 6
} // linia7-sfirsitul corpului functiei
Prima linie este o directivă preprocesor (indicată de simbolul #) care determină includerea în
fişierul sursă a fişierului header cu numele iostream.h. Acest header 2 include elemente de
intrare/ieşire - din biblioteca standard C++ - care permit realizarea afişării pe monitor.
Programul conţine doar o funcţie, funcţia principală, main, al cărui antet (linia 2) indică:
- tipul valorii returnate de funcţie (int, ceea ce înseamnă că funcţia returnează o valoare
întreagă);
- numele funcţiei (main)
- lista declaraţiilor argumentelor primite de funcţie, încadrată de cele 2 paranteze rotunde.
1
Dev-C++ este un mediu integrat de dezvoltare a aplicaţiilor C++. Foloseşte varianta Mingw a compilatorului
GCC (GNU Compiler Collection).
2
Elementele bibliotecii standard C++ sunt declarate în spaţiul numelor (engl., namespace) std. O soluţie “mai
nouă” este aceea de a declara la începutul fişierului sursă utilizarea acestui spaţiu, prin:
using namespace std;
În acest caz, extensia header-ului (.h) poate fi omisă.
Mai multe informaţii despre spaţiul numelor găsiţi în materialul “Observaţii generale”.
Autor: Diana Ştefănescu 1
REFERAT DE LABORATOR Nr.1 (din 14) 2010
Funcţiile comunică între ele prin argumente. Aceste argumente reprezintă datele de intrare ale
funcţiei. În cazul nostru, nu avem nici un argument în acea listă, deci puteam să scriem antetul
funcţiei şi astfel:
int main(void)
Ceea ce urmează după simbolul //, până la sfărşitul liniei, este un comentariu, care va fi
ignorat de către compilator. Comentariul poate conţine un text explicativ, informaţii
lămuritoare la anumite aspecte ale problemei sau observaţii. Dacă vrem să folosim un
comentariu care cuprinde mai multe linii, vom delimita începutul acestuia prin simbolurile
/*, iar sfârşitul - prin */ (vezi liniile 3, 4). Introducerea comentariilor în programele sursă
uşurează înţelegerea acestora. În general, se recomandă introducerea unor comentarii după
antetul unei funcţiei, pentru a preciza prelucrările efectuate în funcţie, anumite limite impuse
datelor de intrare, etc.
Începutul şi sfârşitul corpului funcţiei main sunt indicate de cele două acoalade { (linia3),
respectiv }(linia 7).
Corpul funcţiei (liniile 5, 6) este format dintr-o singură prelucrare, care implementează o
operaţie de ieşire (scriere). În linia 5, cuvântul cout este un cuvânt predefinit (un obiect 3 ) al
limbajului C++ - console output - care desemnează dispozitivul logic de ieşire; simbolul <<
este operatorul de transfer al informaţiei. Folosite astfel, se deschide un canal de comunicaţie
a datelor către dispozitivul de ieşire, în cazul acesta, monitorul. După operator se specifică
informaţiile care vor fi afişate (în acest exemplu, un şir de caractere constant). Faptul că este
un şir constant de caractere este indicat de ghilimelele care îl încadrează. Pe ecran va fi afişat
fiecare caracter din acest şir, cu excepţia grupului \n. Deşi grupul este format din două
caractere, acesta va fi interpretat ca un singur caracter - numit caracter escape - care
determină poziţionarea cursorului la începutul următoarei linii a ecranului. O secvenţă escape
(cum este \n) furnizează un mecanism general şi extensibil pentru reprezentarea caracterelor
invizibile sau greu de obţinut. La sfârşitul instrucţiunii care implementează operaţia de
scriere, apare ; .
În linia 6, instrucţiunea return produce încheierea execuţiei programului, prin revenirea din
funcţia main. Instrucţiunea este folosită la genera un cod numeric întreg, iar codul 0 înseamnă
că programul s-a încheiat fără erori. Este cel mai obişnuit mod de a încheia un program C++ 4 .
3.a.
#include <iostream> //3a
#define PI 3.14359
using namespace std;
int main()
{ cout<<"Tipul int memorat pe: "<<sizeof(int)<<" octeti\n";
cout<<"Tipul int memorat pe: "<<sizeof(23)<<" octeti\n";
//23-const. decimala int
cout<<"Const. octala 077 are val decimala:"<<077<<’\n';
3
cout – un obiect din biblioteca standard C++, care face parte din namespace-ul std.
4
Dacă pentru funcţia main aţi uitat să folosiţi instrucţiunea return, aşa cum ar trebui, majoritatea
compilatoarelor “iartă” acest lucru, considerând automat că o execuţie corectă a programului (a funcţiei main)
determină returnarea codului 0.
Autor: Diana Ştefănescu 2
REFERAT DE LABORATOR Nr.1 (din 14) 2010
cout<<"Const. hexagesimala d3 are val decimala:"<<0xd3<<’\n’;
cout<<"Tipul unsigned int memorat pe:";
cout<<sizeof(unsigned int)<<" octeti\n";
cout<<"Tipul unsigned int memorat pe: "<<sizeof(23U)<<" octeti\n";
cout<<"Tipul unsigned int memorat pe: "<<sizeof(23u)<<" octeti\n";
cout<<"Tipul long int memorat pe: "<<sizeof(long int)<<" octeti\n";
cout<<"Tipul long int memorat pe: "<<sizeof(23L)<<" octeti\n";
cout<<"Tipul long int memorat pe: "<<sizeof(23l)<<" octeti\n";
//23L sau 23l-const. decimala long int
cout<<"Tipul unsigned long memorat pe:";
cout<<sizeof(unsigned long int)<<" octeti\n";
cout<<"Tip unsigned long mem. pe: "<<sizeof(23UL)<<" octeti\n";
cout<<"Tip unsigned long mem. pe: "<<sizeof(23ul)<<" octeti\n";
//23UL sau 23ul-const. decimala unsigned long int
return 0; }
3.b.
#include <iostream.h> //3b
#define PI 3.14359
int main()
{cout<<"Tipul long long int memorat pe: ";long long int d;
cout<<sizeof(long long int)<<" octeti\n";
cout<<"Tip long long int mem. pe: "<<sizeof(d)<<" octeti\n";
cout<<"Tip short int mem.pe: "<<sizeof(short int)<<" octeti\n";
cout<<"Tipul float memorat pe: "<<sizeof(float)<<" octeti\n";
cout<<"Tipul float memorat pe: "<<sizeof(23.7f)<<" octeti\n";
//23.7f-const. decimala float
cout<<"Tipul double memorat pe: "<<sizeof(double)<<" octeti\n";
cout<<"Tipul double memorat pe: "<<sizeof(23.7)<<" octeti\n";
//23.7-const. decimala double
cout<<"Const. decim. doubla in not st.:"<<23.7e-5<<’\n’;
cout<<”Const. PI este:”<<PI<<’\n’;
cout<<”Constanta PI este memorata pe:”<<sizeof(PI)<<”octeti\n”:
cout<<"Tip long double mem.pe:"<<sizeof(long double)<<" oct\n";
cout<<"Tip long double mem. pe: "<<sizeof(23.7L)<<" octeti\n";
//23.7L-const. decimala long double
cout<<"Cifra A din HEXA are val.:"<<0xA<<"\n";
cout<<"Cifra B din HEXA are val.:"<<0XB<<"\n";
cout<<"Cifra C din HEXA are val.:"<<0xc<<"\n";
cout<<" Cifra E din HEXA are val.:"<<0XE<<"\n";
cout<<" Cifra F din HEXA are val.:"<<0xf<<"\n";
cout<<"Val. const. hexa 0x7ac1e este: "<<0x7ac1e<<'\n';
cout<<"Val. const. octale 171 este: "<<0171<<'\n';
cout<<"O const. octala se mem. pe "<<sizeof(011)<<" octeti\n";
cout<<"O const.oct.long mem.pe";cout<<sizeof(011L)<<" oct\n";
}
3.c.
#include <iostream> //3c
#define PI 3.14359
using namespace std;
int main()
{cout<<"Un caracter este memorat pe "<<sizeof(char)<<" octet\n";
3.d.
#include <iostream> //3d
#define PI 3.14359
using namespace std;
int main()
{cout<<"Sirul \"Ab9d\" e mem. pe:"<<sizeof("Ab9d")<<" oct\n";
cout<<"Sir \"Abcd\\t\" mem. pe:"<<sizeof("Abcd\t")<<" oct.\n";
cout<<"Sirul \"\n\" este mem. pe "<<sizeof("\n")<<" octeti\n";
cout<<"Sirul \"\\n\" este mem. pe "<<sizeof("\n")<<" octeti\n";
cout<<"Sir\"ABCDE\" se mem. pe "<<sizeof("ABCDE")<<" oct.\n";
return 0;}
4.b.
#include <iostream>
using namespace std;
int main()
{char nume[30]; cout <<"Introduceti numele dvs: " ;cin >> nume;
cout << "Numele tastat de dvs. a fost " << nume << "!\n" ;
return 0 ; }
1.f.
# include <iostream.h>
int main ( )
{int a,b,c; cout<<"Introdu primul nr:";cin>>a;cout<<"Si al doilea:";
cin>>b;c=a+b;cout<<"Suma nr "<<a<<" cu "<<b<<"este: "<< c << "\n" ;}
PROBLEME PROPUSE
1. Pentru mediul cu care lucraţi, găsiţi numele fişierului header care conţine declararea
constantelor simbolice pentru valorile maxime şi minime ale datelor de diferite tipuri şi
scrieţi un program care să afişeze pentru fiecare dintre acestea valorile, sub forma:
Datele de tip int iau valori in intervalul [<val_min>, <val_max> ].