4 Tipus de dades elementals unitat didàctica 1: Contextualització del crèdit
1
Tipus de dades en C
int
char
float
2
Tipus de dades en pseudocodi
booleà
natural
caràcter
enter
real
3
5 Tipus de dades estructurats unitat didàctica 1: Contextualització del crèdit
4
Tipus de dades estructurats
Tipus de dades estructurats = estructures de dades
És una manera d'organitzar un conjunt de dades elementals amb un objectiu determinat.
5
Classificació
6
Registres (tuples) 1
Estructura de dades heterogènia: agrupa elements de diferents tipus. struct nom_estr { tipus nom_camp1; ... tipus nom_campN; } llista_variables; DECLARACIÓ: struct nom_estr llista_variables; 7
Registres (tuples) 2
Exemple struct data { int dia; int mes; int any; } dataActual; struct data dataFutura; //accés als camps: dataActual.dia = 21; 8
Registres (tuples) 3
Podem definir tipus de dades a partir de registres: typedef struct { int dia; int mes; int any; } Data; Data dataActual;
Per conveni els tipus creats tindran la primera lletra en majúscula. 9
Registres (tuples) 4
Sintaxi en pseudocodi tupla data { var dia: enter; var mes: enter; var any: enter; } dataActual; tupla data dataFutura; //accés als camps: dataActual.dia = 21; 10
Registres (tuples) 5
Definició de tipus de dades: tipus tupla { ... } Data; Data dataActual;
Per conveni els tipus creats tindran la primera lletra en majúscula. 11
Vectors i matrius (1)
Estructura de dades estàtica i homogènia: tots els elements són del mateix tipus.
Basat en el concepte matemàtic de vector i matriu.
Té N dimensions, cadascuna d'elles amb una mida concreta:
Vector: 1 dimensió
Matriu: 2 dimensions
Poliedre: N>2 dimensions 12
Vectors i matrius (2)
Cadascuna de les dimensions es fixa i es determina a priori.
Per a accedir a una dada es fa mitjançant l'índex de cadascuna de les seves components:
Els índexs van numerats de 0 a dimensió-1.
13
Vectors i matrius: declaració
Declaració:
tipus_vector nom_vector[mida];
tipus_matriu nom_matriu[#fil][#col];
Declaració i inicialització:
tipus nom[N]={val1, val2,... valN};
tipus nom[N][M]= { {val10,...,val1N} ,..., {valM0,...,valMN} };
14
Vectors i matrius: declaració
Sintaxi en pseudocodi var notes: vector[20] d'enter; var alumnotes: matriu[20][10] d'enter; notes[2] = 6;
15
Organització en memòria
Els elements de vectors i matrius se situen a memòria de la següent forma:
@pos[i] = @pos * i * tipus; @pos[i][j] = @pos + #COLS * i * tipus + j * tipus On #COLS és el nombre de columnes i tipus la mida dels elements del vector. 16
Pas com a paràmetres (1)
Els vectors i matrius SEMPRE es passen per referència: int main() { int Matriu[2][2]; funcio(Matriu); //id= punter a 1a posició //funcio(&Matriu[0][0]) seria equivalent } void funcio(int M[2][2]) { M[0][1]* = -2; }
17
Pas com a paràmetres (2)
En cas d'haver de recórrer els vectors o matrius, caldrà que passem com a paràmetre també les seves dimensions. void funcio(int vec[], int N) { int i = 0; while (i
Related Documents