Documente Academic
Documente Profesional
Documente Cultură
Limbaje de Programare
Limbaje de Programare
L1
Lucrare de laborator nr. 1 ELEMENTE ALE LIMBAJULUI C++ FOLOSITE N PROGRAMAREA ROBOILOR INDUSTRIALI (1) 1. DESPRE LIMBAJUL C++
La nceputul anilor 1970 a aprut limbajul C, creaia lui Dennis Ritchie i Brian Kernighan. Limbajul C++, creaia lui Bjarne Stroustrup, poate fi privit ca o extensie a limbajului C, care permite programarea pe obiecte. Limbajul C++ are urmtoarele avantaje: Limbajul este extrem de flexibil. Acesta ne permite ca pornind de la un algoritm, redactat n pseudocod, s permit scrierea a mai multor programe, care nu seamn ntre ele, dei fac acelai lucru. Cu alte cuvinte, o secven poate fi codificat n mai multe feluri. programele se pot scrie i ntr-o manier apropiat de limbajul pseudocod. Din aceast cauz limbajul C++ este preferat de muli programatori. Atenie. n C++ se poate grei uor, datorit faptului c este permis s scriem aproape orice. Pentru ca C++ s fie un limbaj portabil au aprut norme ANSI C++ (American National Standard Institute). Limbajul de programare C++ conine setul de instruciuni i o mulime de funcii care au rolul de a ajuta programatorul n elaborarea programelor.
Limbaje de programarea pentru roboi atunci, la compilare se primete un avertisment. Acest avertisment poate fi ignorat.
L1
3. VOCABULARUL LIMBAJULUI
Vocabularul oricrui limbaj este format din: setul de caractere; identificatori; separatori; comentarii. Setul de caractere reprezint ansamblul de caractere cu ajutorul crora se poate realiza un program C++. Acesta este alctuit din: - litere mari i mici ale alfabetului; - cifrele de la 0 la 9; - caractere speciale +, -, *, /, <, >, (, ), [, ], {, }, ., ,, :, ;, i altele. Identificatori. Prin identificatori nelegem o succesiune de litere, cifre sau caracterul special _ din care prima nu trebuie s fie cifr. Cu ajutorul identificatorilor se asociaz nume constantelor, variabilelor, procedurilor, etc. Ca separator ntre linii unui program n C++ se folosete caracterul ; . Comentariile se folosesc pentru ca un program s fie uor de neles. Acestea se plaseaz oriunde n program. Un comentariu se poate scrie n dou moduri: a) ntre perechile de caractere /* i */ . Un astfel de comentariu poate ocupa mai multe linii ale textului surs. b) n cazul n care se dorete scrierea unui comentariu pe o singur linie surs, se tasteaz dou caractere / .
Limbaje de programarea pentru roboi cout<<Numr laturi ?; cin>>nr_lat; cout<<Numrul laturilor este <<nr_lat; }
L1
5. TIPURI DE DATE
ntr-un program C++, o variabil poate reine date de un anumit tip, care trebuie declarat la nceputul programului. Dac un tip folosit este cunoscut de ctre limbaj fr a fi definit n cadrul programului, atunci el este un tip standard. n afar de acest tip standard, exist posibilitatea ca programatorul s-i defineasc propriile tipuri, pentru care trebuie s declare variabile de tipul definit de el. Limbajul C++ conine urmtoarele tipuri standard: 1. tipuri ntregi; 2. tipuri reale. n limbajul C++ nu exist tipul logic. n acest caz, orice valoare diferit de 0, a oricrui tip, este considerat ca fiind TRUE, iar orice valoare 0, a oricrui tip este considerat ca fiind FALSE. n C++ tipul caracter este asimilat tipurilor ntregi. Dac ntr-o expresie aritmetic se introduce o variabil de tip caracter, atunci nu se indic eroare, deoarece valoarea variabilei caracter se nlocuiete cu codul ASCII al caracterului. Exemplu de program n care tipul caracter este asimilat cu tipul ntreg. # include <iostream.h> void main () { char a; int b; a = y; b = 71; cout<<a<< <<a+b; } 5.1 Tipuri ntregi n limbajul C++ se ntlnesc urmtoarele tipuri ntregi: 1. Tipul unsigned char caracter fr semn, ocup 8 bii i ia valori din intervalul [0; 255]; 2. Tipul char carcater, ocup 8 bii i ia valori din mulimea [-128; 127]; 3. Tipul unsigned int - ntreg fr semn, ocup 16 bii, ia valori din intervalul [0; 65535]; 4. Tipul short int - ntreg scurt, ocup 16 bii, valorile sunt din intervalul [-32768; 32767]; 5. Tipul int - ntreg, ocup de regul 16 bii, ia valori din mulimea [-32768; 32767]; 6. Tipul unsigned long - ntreg lung fr semn, ocup 32 de bii, valorile sunt din intervalul [0; 4 294 967 295]; 7. Tipul long ntreg lung cu semn, ocup 32 de bii i ia valori din mulimea 8. [-2 147 483 648; 2 147 483 647]. Caracterele se memoreaz prin codul ASCII. 5.2 Tipuri reale Variabilele de tip real rein numere cu zecimale. n locul virgulei, n C++ se folosete punctul. Tipurile reale sunt: 1. Tipul float ocup 32 bii i ia valori ntre 3.4 x 10-38 i 3.4 x 10 38 ; 2. Tipul double ocup 64 bii i ia valori din mulimea [1.7 x 10-308; 1.7 x 10 308]; 3. Tipul long double ocup 80 bii i ia valori din intervalul [3.4 x 10-4932; 3.4 x 10 4932 ]. Pentru memorarea datelor, se folosete reprezentarea n virgul mobil. 3
L1
n limbajul C++ sunt mai multe tipuri de constante. a) Constante ntregi. Acestea se clasific dup cum urmeaz: zecimale n baza 10; octale n baza 8. O constant n baza 8 se declar precedat de un 0 nesemnificativ; hexazecimale n baza 16. Acestea sunt precedate de 0x sau 0X. O constant ntreag ia valori din mulimea [0; 4 294 967 295]. b) Constante caractere. Acestea se trec ntre dou caractere apostrof (). Exemple: C, 2, c. Memorarea caracterelor se face cu ajutorul tipului char. Se memoreaz codul ASCII al caracterului respectiv. n limbajul C++ se admit i constante cu dou caractere. O constant de acest fel se memoreaz folosind tipul int. Pentru memorare fiecare caracter folosete un octet. b) Constante reale. Drept constante reale se pot folosi numerele zecimale cu semn sau fr. c) Constante ir de caractere. O constant ir de caractere se declar ntre dou caractere ghilimele (). Exemplu: acesta este un ir de caractere. Pentru declararea unei constante se folosete urmtoarea form general: const [tip] nume = valoare; unde: const cuvnt cheie; tip reprezint tipul constantei, care este opional (dac lipsete, tipul este int); nume reprezint numele constantei; valoare reprezint valoarea constantei. Exemple: const int numar = 5; const float pi = 3.14159. Dac n ultima declararea a unei constante lipsete cuvntul cheie const, atunci se declar o variabil de tip float (float pi = 3.14159). Dar prezena cuvntului cheie const determin protecia la modificarea variabilei pi. Altfel spus, n cazul declarrii constantei, variabila pi nu mai poate fi modificat i are un spaiu rezervat.
6. OPERATORI C++
Limbajul C++ este dotat cu un set puternic de operatori. Principalii operatori utilizai n limbajul C++ sunt prezentai n continuare. 6.1 Operatori aritmetici n C++ exist urmtorii operatori aritmetici: - minus, acioneaz asupra unui singur operand; + plus, (unar, acioneaz asupra unui singur operand); + (binar), utilizat pentru adunare; - (binar), utilizat pentru scdere; * (binar), are semnificaia de nmulire; / (binar), pentru mprire; % (binar), restul mpririi ntregi. Observaii
1. Operatorul / (mprire) acioneaz n mod diferit n funcie de operanzi: a) dac ambii sunt de tip ntreg, rezultatul este ntreg i are semnificaia de mprire ntreag; 4
L1
b) dac cel puin un operand este de unul din tipurile reale rezultatul este real (se efectueaz mprirea obinuit). 2. Operatorul % acioneaz numai asupra operanzilor de tip ntreg. Rezultatul obinut este corect dac ambii operanzi sunt numere naturale. 3. Se pot utiliza oricte paranteze rotunde, pentru a impune prioritatea anumitor operaii. n cazul n care o expresie aritmetic are operanzi de mai multe tipuri, atunci problema este: care este tipul rezultatului ? Regula general este: se convertete unul din operanzi ctre tipul celuilalt (care poate reine rezultatul). Orice operand de tip char sau unsigned char sau short se convertete ctre tipul int. Dac un operand este de unul dintre tipurile long double, double, float, unsigned long sau long, atunci i cellalt operand se convertete ctre acest tip. 6.2 Operatori relaionali n C++ exist urmtorii operatori relaionali: < mai mic; <= mai mic sau egal; > mai mare; >= mai mare sau egal. Deoarece n C++ nu exist valorile logice TRUE i FALSE, rezultatul unei operaii logice este 1, n cazul n care inegalitatea este respectat i 0 n caz contrar. Exemplu: 3 > 5 expresia ia valoarea 0; 3 < 5 expresia ia valoarea 1. Operanzii pot fi constante, variabile, funcii care au ca rezultat tipuri numerice. 6.3. Operatori de egalitate Aceti operatori sunt: = = pentru egalitate; ! = pentru inegalitate. Ca i operatorii relaionali, expresiile de acest tip au ca rezultat 0 sau 1, n funcie de modul n care este respectat sau nu egalitatea (inegalitatea). Exemplu: 3 = = 3 rezultatul este 1; 3 ! = 3 rezultatul este 0; 3 ! = 4 rezultatul este 1. Operanzii pot fi constante, variabile, funcii. 6.4 Operatori de incrementare i decrementare Aceti operatori sunt unari i au rolul de a incrementa (adun 1) sau decrementa (scade 1) coninutul unei variabile. Operatorii sunt: + + pentru incrementare; - - pentru decrementare. Operatorii pot fi prefixai (aplicai n faa operandului) sau postfixai (aplicai dup operand). De exemplu: fie a o variabil de tip int. Operatorul de incrementare prefixat aplicat variabilei a este + + a; Operatorul de incrementare postfixat aplicat variabilei a este a + +; Operatorul de decrementare prefixat aplicat variabilei a este - - a; Operatorul de decrementare postfixat aplicat variabilei a este a - -. Dac operatorul este prefixat, variabila este incrementat (decrementat) nainte ca valoarea reinut de ea s intre n calcul. 5