Documente Academic
Documente Profesional
Documente Cultură
Medii de programare
Realizarea ciclului de aciuni necesar realizrii unui program presupune:
Scrierea programului surs, cu ajutorul unui editor de texte;
Compilarea acestuia;
Execuia;
Depanarea, dac rezultatele obinute relev erori de logic. n englez
o astfel de eroare este numit "bug" (ploni!), pentru corectare fiind
folosit un debugger (depanator) care permite executarea linie cu linie a
programului surs i afiarea permanent a valorilor variabilelor.
Aceste etape pot fi parcurse folosind un ansamblu de aplicaii (editor de texte,
compilator, depanator etc) sau o singur aplicaie care s le integreze pe toate.
Evident varianta a doua este mai bun deoarece volumul de operare scade
semnificativ (practic pentru toate comenzile exist butoane care sunt acionate cu
mouse-ul) i scrierea programului se realizeaz mai uor, editorul folosit evideniind
n timpul scrierii blocurile lexicale folosite i zonele n care textul surs este
neinteligibil.
Pentru limbajul C, o soluie bun este mediul Visal C++. Numele mediului
indic faptul c este destinat scrierii n limbajul Visual C++. ns limbajul C++
integreaz perfect limbajul C, oferind n plus un superset de instruciuni necesare
programrii obiectuale, deci un mediu de programare pentru C++ este utilizabil i
pentru scrierea de programe n C standard.
Un mediu de dezvoltare complex cum este Visual C++ 2010 Express Edition
permite realizarea mai multor tipuri de aplicaii. Precizarea nc de la nceputul
realizrii unei aplicaii a tipului acesteia este necesar deoarece Visual C++ este mai
mult dect un mediu de programare, este un generator de aplicaii. Pentru anumite
tipuri de aplicaii, pri importante ale acestora sunt generate automat. Aplicaiile
care nu au o interfa grafic sunt executate n fereastra Command Prompt a
sistemului de operare, tipul acestora fiind denumit console application.
14
Rezultat:
Deoarece un proiect poate conine mai multe fiiere surs, selectarea fiierului
a crui coninut dorim s fie afiat n fereastra de editare se realizeaz folosind
intrrile din arborele afiat n panoul din stnga (Solution Explorer).
Chiar i programul simplu pe care l-am scris este constituit din mai multe
module. De exemplu linia:
cout << "Suma este " << sum << endl;
20
conine cout, << i endl. Simbolul "<<" este un operator de extragere dintr-un flux de
date, practic o funcie dintr-o bibliotec, deci coninutul acesteia va fi inclus n
aplicaie n momentul ediiei de legturi. Pentru a se putea realiza compilarea liniilor
care conin astfel de entiti, programele C++ vor ncepe de regul cu o serie de
directive de compilare. n exemplul dat ele sunt urmtoarele:
#include <iostream>
using namespace std;
Execuia programului
Pentru execuia programului se vor apsa simultan tastele Control + F5.
Rezultatul executrii programului va fi afiat ntr-o fereastr Command prompt:
void main()
{
int h, v;
double g;
cout << "h="; (corpul funciei main)
cin >> h;
cout << "v=";
21
cin >> v;
g = 50.0+0.75*(h-150)+0.25*(v-20);
cout <<"greutatea g (barbat) = " << g << endl;
cout <<"greutatea g (femeie) = " << 0.9*g << endl;
}
Observaii:
1. Programul const dintr-o funcie, main(). Corpul funciei este plasat
ntre acolade. n orice program C (sau C++) trebuie s existe o
funcie denumit main(), de unde va ncepe execuia programului.
2. Variabilele folosite, h, v i g sunt declarate nainte de a fi folosite.
3. Pentru declararea variabilelor ntregi h i v s-a folosit cuvntul int
(prescurtare de la integer);
4. Pentru declararea variabilei reale g s-a folosit cuvntul double;
5. Numele funciei principale este precedat de void (vid). n mod
normal o funcie returneaz o valoare i n faa numelui ei se declar
tipul valorii returnate. Dac nu se scrie nimic, se subnelege c
funcia returneaz un int. Tot prin convenie se declar de tip void
funcia care nu returneaz nici o valoare.
6. Pentru afiarea pe ecran (consol, fiierul standard de ieire) a unor
mesaje (iruri de caractere) s-a folosit instruciunea cout;
cout << "h=";
7. Pentru citirea de la tastatur a valorilor variabielor s-a folosit cin:
cin >> h;
8. Pentru afiarea rezultatelor s-a folosit din nou cout. Dac se
execut succesiv mai multe instruciuni cout, valorile vor fi afiate
una dup alta, trecndu-se la linie nou numai dup umplerea liniei
curente. Pentru a comanda trecerea imediat la linie nou se
adaug n lista de valori afiate endl (un ir constant care conine
caracterul <Carriage Return>, reprezentat n C prin '\n').
9. Pentru a putea realiza operaiile de intrare-ieire folosind cin i cout,
prima linie a programului indic includerea fiierului <iostream>.
Comentarii
ntr-un program scris n C++ pot fi folosite dou tipuri de comentarii:
comentarii "n linie", introduse prin //. Un astfel de comentariu se
ncheie la sfritul liniei curente
comentarii pe unul sau mai multe rnduri consecutive. Zona care
conine comentariul este delimitat prin /* (comentariu) */.
De regul se folosesc comentariile n linie, cel de-al doilea tip fiind folosit
frecvent n timpul depanrii programelor mari i complexe, pentru a suprima din
program anumite zone.
Exemplu:
#include <iostream>
void main()
{
cout << "On a withered branch" << '\n'; // Primul vers
cout << "A crow has just alighted:" << '\n'; // Versul 2
cout << "Nightfall in autumn." << '\n'; // Versul 3
}
repeat do
Instr Instr
Instr
until not Exp ; while Exp ;
Exp D
U
N
A
Tipuri de date
Ce reprezint un ir de caractere scos din orice context poate fi n cel mai
fericit caz ghicit. Deoarece memoria calculatorului conine un ir aproape infinit de
cifre binare, n cazul ei situaia e i mai complicat. Este deci evident c fr
definirea unor reguli de reprezentare a informaiei i fr cunoaterea modului de
ocupare a memoriei calculatorului, informaia pe care aceasta o conine ar fi lipsit
de orice semnificaie.
Pe de alt parte definirea precis a modului de reprezentare a informaiei n
calculator condiioneaz arhitectura hardware a acestuia, n mod deosebit pe cea a
procesorului.
(aprox)-2 miliarde la
long 32 bii
+2 miliarde
Tipul char
Prelucrarea datelor cu ajutorul calculatorului se reduce frecvent la operaii cu
iruri de caractere. Pentru manipularea acestora, n C (C++) exist tipul char.
n C un caracter se reprezint folosind apostroful. Astfel 'C' sau '&' sunt
caractere. Caractere care nu au simblol grafic se vor indica printr-o succesiune de
dou caractere (secven escape) astfel: '\n' (LF), '\a' (bell), '\b' (backspace), '\f'
(pagin nou, formfeed), '\r' (retur car, carriage return), '\t' (tab orizontal), '\v' (tab
vertical). Dac se cunoate codul ASCII al unui caracter (vezi tabelul) se poate
reprezenta un caracter fr echivalent grafic i printr-o construcie de forma '\xhh' sau
'\Xhh' unde hh reprezint codul ASCII n hexazecimal al caracterului. Astfel '\n' (LF)
este echivalent cu '\x0A'.
irurile de caractere se reprezint folosind pentru delimitare caractere "
(ghilimele). Exemplu: "Acesta este un ir".
"" este un ir vid. ntr-un ir pot figura secvenele escape definite, de exemplu
:
"Sir de caractere\nscris pe doua linii" sau "Sir \" cu ghilimele".
Reprezentarea intern a unui ir de caractere se ncheie cu '\0' (0 sau
caracterul NULL). Acesta servete la recunoaterea sfritului acestuia.
Accesul la caracterele unui ir de caractere se poate face folosind indici.
Astfel, dac s este un ir de caractere, s[0] este primul caracter i s[5] este caracterul
al 6-lea.
27
Tabela ASCII
(partea I)
void main()
{
char s[200];
int i;
cout << "Introduceti un sir, fara spatii:";
cin >> s;
i = 0 ;
while (s[i] != '\0')
i++;
cout << "Sirul are " << i << " caractere" << endl;
}
#include <iostream>
using namespace std;
void main()
{
char s[200];
int i;
cout << "Introduceti o linie de text:";
cin.getline( s, 199 );
i = 0 ;
while (s[i] != '\0')
i++ ;
cout << "Sirul are " << i << " caractere" << endl;
}