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

Previzualizare laborator:

Extras din laborator:

1. Noţiuni teoretice

1.1. Tablouri de şiruri

În programare utilizarea tablourilor de şiruri nu este atât de neobişnuită. De exemplu, procesorul de introducere a datelor într-o bază de date poate compara comenzile utilizatorului cu un tablou de comenzi valabile. Pentru a crea un tablou de şiruri se va folosi un tablou de caractere bidimensional. Dimensiunea indicelui stâng va determina numărul de şiruri, iar a celui din dreapta controlează dimensiunea maximă a fiecărui şir. Codul următor declară un tablou de 30 de şiruri, fiecare având lungime maximă de 79 de caractere:

char tablou_siruri[30][80];

Un exemplu de utilizare a tablourilor cu şiruri veţi găsi la punctul 2. Aplicaţii.

1.2. Tablouri multidimensionale

C/C++ acceptă tablouri cu mai mult de două dimensiuni. Limita exactă, dacă există, este determinată de compilator. Forma generală a unei declaraţii de tablou multidimensional este:

Tip nume[Dimensiune1][Dimensiune2][Dimensiune3]…[DimensiuneN]

Tablourile de trei sau de mai multe dimensiuni nu sunt folosite prea des, datorită cantităţii de memorie necesară pentru stocarea acestora. De exemplu, un tablou de caractere cvadridimensional, având dimensiunile 10, 6, 9, 4 necesită 10*6*9*4=2160 de octeţi. Dacă tabloul ar fi fost compus din întregi de 2 octeţi, ar fi necesari 4320 de octeţi, iar pentru double 17280 octeţi. Practic, spaţiul de memorie necesar se măreşte exponenţial cu numărul de dimensiuni ale tabloului.

1.3. Ataşarea de indici la pointeri

În C/C++ pointerii şi tablourile sunt elemente foarte apropiate. Numele unui tablou fără indice reprezintă un pointer al primului element al tabloului. Pentru

char p[10];

instrucţiunile: p şi &p[0] sunt identice, adică p = = &p[0].

Unui pointer i se poate ataşa un indice ca şi cum ar fi fost declarat ca fiind tablou. De exemplu, fie următorul fragment de program:

int *p, i[10];

p = i;

p[5] = 100; /* atribuire folosind indice */

*(p+5) = 100; /* atribuire folosind aritmetica pointerilor */

Ambele instrucţiuni de atribuire plasează valoarea 100 în cel de-al şaselea element al tabloului i.

Pentru un tablou de 10x10 următoarele expresii sunt adevărate:

a == &a[0][0];

a[0][4] == *(a+4);

a[1][2] == *(a+12);

1.4. Iniţializarea unui tablou

C/C++ permite iniţializarea unui tablou în momentul declarării acestuia. Forma generală a iniţializării unui tablou este similară cu aceea a iniţializării altor variabile:

tip_specificator nume_tablou[dimensiune1]…[dimensiuneN] = {lista_valori};

lista_valori este o listă de constante separate prin virgulă, al căror tip este comparabil cu tip_specificator.

Exemplu:

int x[10] = {1,2,3,4,5,6,7,8,9,10};

Tablourile de caractere care conţin şiruri permit o iniţializare rapidă, de forma:

char nume_sir[dimensiune]=”sir”

Dacă în instrucţiunea de iniţializare a unui tablou, dimensiunea tabloului nu este specificată, compilatorul de C/C++ creează automat un tablou suficient de mare pentru a memora toţi iniţializatorii. Acesta se numeşte tablou nedimensionat. Pentru tablourile nedimensionate multidimensionale trebuie precizate toate dimensiunile, în afară de cea situată cel mai la stânga.

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, Proiect7 ş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 Proiect7 ş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 calculează şi afişează suma a n numere:

#include <iostream>

using namespace std;

void main(void)

{

int a[20],n,i,s=0;

cout<<"Introduceti nr. de elemente: ";

cin>>n;

for (i=0; i<n; i++)

{

cout<<"Nr."<<i+1<<": ";

cin>>a[i];

}

for (i=0; i<n; i++)

{

s+=a[i];

}

cout<<"Suma elementelor este "<<s<<endl;

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 II.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (2 voturi)
Nr fișiere:
1 fisier
Pagini (total):
4 pagini
Imagini extrase:
4 imagini
Nr cuvinte:
1 186 cuvinte
Nr caractere:
6 442 caractere
Marime:
14.64KB (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!