Introducere in C++


Elementele de bază ale limbajului de programare

Noţiuni introductive

• Structura programelor

• Vocabularul limbajului

• Tipuri simple de date (standard)

• Constante, variabile, expresii

• Citirea/scrierea datelor

Structuri de control

• Structura liniară

• Structura alternativă

• Structuri repetitive

Mediul limbajului de programare studiat

• Prezentare generală

• Editarea programelor sursă

• Compilare, rulare, depanare

Implementarea unor algoritmi elementari cu aplicabilitate practică

Tipuri structurate de date.

Tipul tablou. Tablouri unidimensionale şi bidimensionale.

Fişiere text.

• Definire.

• Operaţii specific

Algoritmi fundamentali de prelucrare a datelor structurate în tablouri

• căutare secvenţială, căutare binară

• sortare

• interclasare

• prelucrări specifice tablourilor bidimensionale.

Aplicaţii interdisciplinare

Exemple orientative:

• Prelucrări statistice ale unei serii de valori

• Calculul valorii unei expresii algebrice

• Calcule combinatoriale

• Determinarea unor mărimi fizice dintr-un circuit

electric

• Aplicaţii din genetică (legea creşterilor organice, etc.)

Analiza eficienţei unui algoritm

Aplicaţii din viaţa cotidiană

Exemple orientative:

• Determinarea situaţiei şcolare a unui elev (medii

semestriale, medii generale, numărul de absenţe, etc.)

• Balanţa de cheltuieli ale unei familii

• Determinarea salariului unei persoane

• Evidenţa operaţiilor într-un cont bancar
În viața de zi cu zi de foarte multe ori folosim expresii ca:

Dacă plouă merg cu taxi.

sau

Dacă plouă atunci merg cu taxi altfel o să merg pe jos pe traseul stabilit.

Instrucțiunea if urmărește să cuprindă în algoritm tocmai astfel de situații – condiționale.

Pe marginea exemplului de mai sus putem să deducem sitaxa instrucțiunii în pseudocod:

Dacă <condiție>

atunci instrucțiune1

altfel instrucțiune2

Dacă <condiție> atunci instrucțiune1

Prin urmare, observăm că forma lui Dacă poate îmbraca două forme: cu și fără altfel.

În C sintaxa instrucțiunii if este următoarea.

if (<condiție>) instrucțiune1;

else instrucțiune2;

if (<condiție>) then instrucțiune1;

Compilatorul va executa instrucțiunea if în felul următor:

– Evalueză condiția.

– Dacă condiția este adevărată atunci execută instrucțiune1.

– Dacă ramura else există și condiția nu este adevărată se va executa instrucțiune2.

– Se trece la următoarea instrucțiune după if.

De exemplu, dacă dorim să verifică dacă un număr a este nul vom folosi instrucțiunea if in felul următor:

if (a==0) cout<<”numar nul”;

else cout<<”numarul nu e nul”;

Daca a=0 atunci scrie (`numarul e nul`)

altfel scrie (`numarul nu este nul`);

Calculatorul va verifica dacă valoarea lui a este 0. Dacă este, va afișa numar nul. Dacă a are o valoare diferită de 0 se va afișa numărul nu e nul.

De exemplu dacă a=7 se va afișa numarul nu e nul.

Observații:

– Instrucțiunea if este o structură de control

– Instrucțiunea if este o instrucțiune de decizie (condițională) simplă

– Ramura else nu e obligatorie

– Condiția trebuie pusă între ()

In viata de zi cu zi ne intalnim de multe ori cu situatia in care trebuie sa analizam un set de valori de acelasi tip. O astfel de structura se numeste sir iar valorile respective se numesc elementele sirului. De exemplu, rezultatele obtinute de mai multi elevi la un concurs se poate reprezenta ca un sir.

Daca am avea 100 de elevi am putea declara pentru fiecare elev cate o variabila, lucru ce ar fi total ineficient. In plus, algortimii trebuie sa indeplineasca proprietatea ca sunt generali adica nu lucreaza cu seturi de date particulare. Astfel, daca stim ca avem n elevi (n citit de la tastatura sau din fisier) nu putem sa declaram n variabile pentru ca la fiecare rulare a programului valoarea lui n se poate schimba.

Pentru a indeparta acest inconvenient limbajele de programare ofera posibilitatea de a memora toate elementele unui sir intr-o variabila indexata, in care elementele sunt dispuse intr-o anumita ordine, ocupand pozitii successive bine-determinate. In limbajul de specialitate aceste siruri de valori se numesc vectori sau tablouri unidimensionale.

Numim indicele (rangul) elementului pozitia pe care se afla un element in vector.

Pentru a se putea referi un element al vectorului trebuie sa scriem numele tabloului urmat intre paranteze drepte de indicele elementului.

Un program poate avea declarate mai multe elemente de tip tablou.

De exemplu, consideram ca dorim sa aflam media de la informatica. In rubrica de la informatica avem n=4 note si teza.

Cele n note le putem memora intr-o structura de tip unidimensional iar nota de la teza o putem memora intr-o variabila de tip natural (de exemplu unsigned int (pentru C++), byte (pentru pascal)).

Prin urmare n=4. Presupunem ca avem tabloul note:

Note=(5,7,9,7) si teza=7.

Media_notelor = (note[1]+note[2]+note[3]+note[4])/4. Bineinteles, pentru fiecare nota puteam folosi cate o variabila. Insa, daca la un elev sunt 4 note in rubrica, la altul sunt 3, la altul sunt 5 s.a.m.d lucrurile se schimba. In astfel de cazuri trebuie sa citim n (numarul de note) si sa citim notele pe rand.

Dupa ce am putut afla media notelor putem calcula si media de la informatica: (media_notelor*4+teza)/4.

Aceasta problema se poate rezolva si fara a folosi vectori. Astfel, pentru a calcula media_notelor putem citi pe rand notele, sa le adaugam pe fiecare la suma initilizata inainte de a face citirea notelor cu 0 iar la sfarsit sa impartim suma notelor la numarul de note. Astfel de probleme se gasesc la problemele propuse la instructiuni repetitive.

Sa revenim la referirea elementelor tabloului.

In C++, C si C# primul element dintr-un vector are indicile 0 insa, in programare, depinde de utilizator cum foloseste variabilele. Programatorul, pentru a nu se complica cu un indice+1 in cazul in care trebuie sa afiseze, spre exemplu, al catelea element este in vector, poate considera ca elementele au indicia cuprinsi intre 1 si numarul maxim de elemente, pierzand astfel un element din numarul maxim de elemente.

Primul element este 5. Elementul este note[0] iar valoarea lui note[0]=5; pozitia elementului in vector este 0.

Al doilea element este 7. Elementul este nota[2] iar valoarea lui este nota[2]=7; pozitia elementului in vector este 1.

s.a.m.d.

Un fişier este o colecţie de date. Un fișier are un nume care poate fi urmat de punct și de extensie.

Avantajul lucrului cu fisiere este evident: dacă datele se citesc din fișier acestea se scriu o singură date și pe baza acestora programul poate rula de mai multe ori fără a trebui să fie reintroduse. În plus, informațiile rezultate în urma execuției pot fi salvate.

În esenţă, există doua tipuri de fisiere:

– fisiere text

– fisiere binare.

Un fişier text conţine, după cum rezultă din nume, un text format din cifre și caractere.

Un fisier binar poate conţine în plus și imagini, baze de date, etc.

În liceu se studiază fișierele text.

Pentru a putea lucre fişiere text în C++ seste nevoie să se adauge o bibliotecă standard: <fstream.h>. Această bibliotecă lucrează cu fluxuri (stream-uri):

ifstream – pentru intrare, pentru citire din fișier

ofstream – pentru ieșire, pentru afiare într-un fișier

fstream – are ambele caracteristici (ifstream și ofstream)

Opreaţiile care se efectuează, în general, cu fisiere text sunt:

– deschidrea unui fisier text

– închiderea unui fisier text

– citirea datelor dintr-un fisier text

– scrierea datelor intr-un fisier text

– adăugarea datelor într-un fişier text

Pentru a putea efectua operaţii cu un fişier text acesta trebuie mai intâi deschis.

Pentru citire se folosește ifstream în una din formele de mai jos:

ifstream f(„clasa.in”); sau fstream f(„clasa.in”,ios::in);

Pentru a se scrie informațiile în fișier se folosește una din formele.

ofstream f(„cls.out”); sau fstream f(„cls.out”,ios::out);

iar pentru adăugare se folosește

fstream f(„cls.out”,ios::app);

Pentru a se închide un fișier trebuie folosită funcția close().

De exemplu f.close();

Exemplu: Să se realizeze o copie a fișierului numere.in .

#include<fstream.h>

#include<conio.h>

#include<iostream.h>

void main()

{

int i=0,n; char c;

ifstream f(„numere.in”);

ofstream g(„numere.out”);

while(!f.eof()) // cât timp nu s-a ajuns la sfârşitul fisierului text

{

i++;

f>>c; //se citeste din fisier caracter cu character

g<<c;//se afișează în fișier caracterul citit

}

f.close(); g.close();// se închid fisierele

}

Lasă un răspuns!

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s