Programarea calculatoarelor și limbaje de programare - tablouri și șiruri

Previzualizare laborator:

Extras din laborator:

1. Noţiuni teoretice

1.1. Introducere

Un tablou (array) este un ansamblu de variabile de acelaşi tip la care se face referire folosindu-se un acelaşi nume. Un anume element dintr-un tablou este indicat prin intermediul unui indice (index). În C/C++ toate tablourile sunt alcătuite din locaţii de memorie învecinate. Adresa de memorie cea mai mică corespunde primului element, iar adresa cea mai mare corespunde ultimului element. Tablourile pot avea de la una la mai multe dimensiuni. Tabloul cel mai des folosit în C/C++ este şirul (string), care este un tablou de caractere care se încheie cu un zero. Acest mod de a privi şirurile conferă limbajului C/C++ mai multă putere şi eficienţă decât, alte limbaje.

În C/C++, tablourile şi pointerii sunt legaţi printr-o relaţie strânsă; de obicei, orice abordare a unuia trebuie să se refere şi la celălalt.

1.2. Tablouri unidimensionale

Forma generală de declarare a unui tablou unidimensional este:

tip variabila_nume[dimensiune]

Tip declară tipul de bază al tabloului, care este tipul fiecărui element inclus în tablou, dimensiune defineşte numărul de elemente conţinute în tablou. În C/C++, indicele primului element din orice tablou este 0.

Cantitatea de memorie necesară pentru stocarea unui tablou depinde direct de tipul şi dimensiunea acestuia.

În C/C++ nu se poate transmite un întreg tablou ca argument al unei funcţii. Totuşi, funcţiei i se poate transmite un pointer către un tablou, indicând numele tabloului fără a fi urmat de vreun indice. Ex:

void main (void)

{int i[10];

funct1(i);

1.2.1. Generarea unui pointer către un tablou

Un pointer către primul element al unui tablou se poate genera specificand numai numele tabloului, fără a fi urmat de indice. De exemplu, fie:

int test[10];

Se poate genera un pointer pentru primul element folosind numele test. De exemplu, programul următor atribuie variabilei p adresa primului element din tabloul test:

int *p;

int test[10];

p=test;

De asemenea, adresa primului element dintr-un tablou poate fi specificată folosind operatorul &. De exemplu, dacă scrieţi test şi &test[0], obţinem acelaşi rezultat.

1.2.2. Şiruri

Cea mai des utilizată întrebuinţare a tablourilor unidimensionale o reprezintă şirurile. În C/C++, un şir este definit ca un tablou de caractere care se încheie printr-un caracter nul (zero). Un caracter nul este specificat ca ‘’ şi este zero. Din acest motiv, este necesar să declaraţi şirurile de caractere ca fiind cu un caracter mai lungi decât cel mai lung şir pe care îl pot memora. De exemplu, pentru a declara un tablou şir care poate memora un şir de 10 caractere, vom declara:

char sir[11];

Deşi nu dispune de un tip de dată şir, permite existenţa constantelor şir. O constantă şir este o listă de caractere încadrate între ghilimele duble.

Nu este necesar să inserăm manual zeroul de la sfârşitul constantelor şir. Compilatorul C/C++ va efectua automat această operaţie.

C/C++ dispune de o varietate de funcţii pentru manipularea şirurilor. Cel mai des folosite sunt:

Nume Funcţie

strcpy(s1,s2) Copiază s2 în s1

strcat(s1,s2) Concatenează s2 la sfârşitul lui s1

strlen(s1) Calculează lungimea lui s1

strcmp(s1,s2) Dă valoarea 0 dacă s1 şi s2 sunt identice, negative dacă s1<s2 şi pozitiv dacă s1>s2

strchr(s1,ch) Returnează pointerul primei apariţii a caracterului ch în s1

strstr(s1,s2) Returnează pointerul primei apariţii a lui s2 în s1

1.2. Tablouri bidimensionale

C/C++ acceptă tablouri multidimensionale. Forma cea mai simplă a unui tablou multidimensional este tabloul bidimensional. În esenţă, un tablou bidimensional este un tablou de tablouri unidimensionale. Pentru a declara un tablou de întregi d, de dimensiunea 10x20 se va scrie:

int d[10][20];

Când un tablou bidimensional este folosit ca argument al unei funcţii este transmis efectiv numai pointerul primului element. Cu toate acestea, paramentul care primeşte un tablou bidimensional trebuie să definească măcar dimensiunea din dreapta a tabloului. Ex:

void funct1 (int x[][10])

2. Aplicaţii

2.1. Lansaţi în execuţie aplicaţia Visual C++ 2008 Express Edition:

Din meniul Start-> Programs-> Microsoft Visual C++ 2008 Express Edition, executaţi clic pe opţiunea Microsoft Visual C++ 2008 Express Edition.

2.2. Creaţi un nou proiect, Proiect4 ş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 Proiect4 ş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 care atribuie valoarea ‘R’ celui de-al patrulea element (tablourile în C/C++ încep cu zero) din tabloul s, apoi afişează acel element.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Programarea Calculatoarelor si Limbaje de Programare - Tablouri si Siruri .doc
Alte informații:
Tipuri fișiere:
doc
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
4 pagini
Imagini extrase:
4 imagini
Nr cuvinte:
1 428 cuvinte
Nr caractere:
7 449 caractere
Marime:
15.23KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Vasilescu Dragos
Sus!