Title: Indice del curso
1Tablas
- CONTENIDO
- Declaración de variables de tipo TABLA
- Definición de tipos de usuario basados en el tipo
TABLA - Acceso en modo lectura/escritura de variables
tipo TABLA - Paso de parámetros de tipo TABLA
- Por valor
- Por referencia - variable
2Tablas
- Una tabla es un conjunto de datos (llamados
elementos), con las siguientes propiedades - Son del mismo tipo (int, char, float, etc.).
- Se denominan por el mismo nombre (el de la tabla)
y se diferencian unos de otros mediante su
posición (usando índices).
Se denomina dimensión de una tabla al número
máximo de elementos que la componen.
3Tablas
Declaración de variables de tipo tabla (LEA vs
C)
LEA Tabla unidimensional nombre tabladim de
tipo Tabla multidimensional nombre
tabladim_1, dim_2, ..., dim_N de tipo
C Tabla unidimensional tipo nombre
dim Tabla multidimensional tipo nombre
dim_1dim_2...dim_N
4Tablas
Declaración de variables de tipo tabla
(Ejemplos)
LEA const TAM 10 MAXCAR 80 NHORAS
24 NFIL 2 NCOL 5 var v tablaTAM de
entero palabra tablaMAXCAR de caracter
tempera tablaNHORAS de real m tablaNFIL,
NCOL de entero dias_semana tabla7,10 de
caracter
C define TAM 10 define MAXCAR 80
define NHORAS 24 define NFIL 2 define NCOL
5 int v TAM char palabra MAXCAR
double tempera NHORAS int m NFILNCOL
char dias_semana 7 10
5Tablas
Declaración de tipo tabla (LEA vs C)
LEA Tabla unidimensional Nombre tabla dim
de tipo Tabla multidimensional Nombre
tabladim_1, dim_2, ..., dim_N de tipo
C Tabla unidimensional typedef tipo Nombre
dim Tabla multidimensional typedef tipo
Nombre dim_1dim_2...dim_N
6Tablas
Declaración de tipos de tabla y de variables
(Ejemplos I)
LEA Declaración de tipos Declaración de
variables Vector10 tablaTAM de entero
v Vector10 Cadena tablaMAXCAR de
carácter palabra Cadena Tempe
tablaNHORAS de real tempera Tempe
Matriz2x5 tablaNFIL, NCOL de entero m
Matriz2x5
C Declaración de tipos Declaración de
variables typedef int Vector10TAM
Vector10 v typedef char CadenaMAXCAR
Cadena palabra typedef double TempeNHORAS
Tempe tempera typedef int Matriz2x5NFILNCOL
Matriz2x5 m
7Tablas
Declaración de tipos de tabla y de variables
(Ejemplos II)
C Declaración de tipos Declaración de
variables typedef int Vector10TAM
Vector10 v typedef char CadenaMAXCAR
Cadena palabra typedef double TempeNHORAS
Tempe tempera typedef int Matriz2x5NFILNCOL
Matriz2x5 m
Si recordamos que define TAM 10 define MAXCAR
80 define NHORAS 24 define NFIL 2 define NCOL 5
8Tablas
Acceso a los elementos de una tabla
Se realiza usando números enteros llamados
índices.
LEA variable_tablaíndice i v6 (el
índice comienza en 1) palabra1
'A m2,3 5
C variable_tablaíndice i v5 (el índice
comienza en 0) palabra0
'A m12 5
9Tablas
Uso del nombre de una tabla
El nombre de una tabla es la dirección donde
comienza la tabla, es decir, donde el compilador
ubica la tabla, por tanto es una constante que no
se puede modificar.
10Tablas
Paso de una tabla como parámetro (Por referencia
- variable)
LEA Llamada funcion2 ( n_elementos, vector
) Definición proc funcion2 (ent n
entero, ent/sal v Vector10) var i
entero prin desde i1 hasta n
v i v i 1 fdesde fin
C Prototipo / cualquiera vale / void
funcion2 (int, Vector10) void funcion2 (int,
int ) void funcion2 (int, int
) Llamada funcion2 ( n_elementos, vector
) Definición void funcion2 ( int n, Vector10
v ) int i for ( i0 iltn
i) v i
11Tablas
Paso de una tabla como parámetro por valor
(unidimensional)
LEA Llamada funcion1 (vector,
n_elementos) Definición proc funcion1 (ent v
Vector10, n entero) var
i entero prin desde i1 hasta n
escribir v i fdesde fin
C Prototipo / cualquiera vale / void
funcion1 (const Vector10, int) void funcion1
(const int , int) void funcion1 (const int
, int) Llamada funcion1 (vector,
n_elementos) Definición void funcion1 (const
Vector10 v, int n) int i for
( i0 iltn i) printf ("d\n", v i
)
12Tablas
Paso de una tabla como parámetro por valor
(multidimensional)
LEA Llamada funcion3 (matriz, f,
c) Definición proc funcion3 (ent m
Matriz2x5, a entero, b entero)
var i,j entero prin desde i1
hasta a desde j1 hasta b
escribir m i , j fdesde
fdesde fin
C Prototipo / cualquiera vale / void
funcion3 (const Matriz2x5, int, int) void
funcion3 (const int 5, int, int) Llamada
funcion3 ( matriz, f, c) Definición void
funcion3 (const Matriz2x5 m, int
a, int b) int i, j for ( i0 ilta
i) for ( j0 jltb j)
printf ("d\n", m i j )