Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tablas y registros
lunes 22
martes 23
miercoles 21
jueves 20
viernes 22
sabado 25
domingo 25
5.3 Tablas
2
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
Clases de tablas:
(por los índices necesarios para acceder a un elemento)
DECLARACIÓN
nombre_de_la_tabla : tabla [N] de Tb
N = nº de elementos de la tabla (vector)= dimensión
Tb = tipo de sus elementos
Ejemplos:
constantes
NDIAS: 365; NHORAS:24
tipos
Ttdia: tabla [NHORAS] de real
Ttanual: tabla [NDIAS] de real
Tnombre_mes : tabla [10] de caracter
variables
temperaturas_dia: Ttdia
temperaturas_año: Ttanual
3
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
nombre_mes: Tnombre_mes
tab_meses : tabla[12] de cadena (tipo anónimo)
LITERALES.
constantes
N:...
tipos
Tb:...
Tt: tabla[N] de Tb
variables
t: Tt
L={{a1, a2, ... aN} ⏐ ai ∈ Tb ∧1≤i≤N}
si t es un literal del tipo Tt ⇒ t = {a1,...,aN}.
Descripción Perfil
Condiciones
Acceso _[_] : Tt x entero → Tb
Def(t[i]) ≡ 1 ≤ i ≤ N
Modificación _[_→_] : Tt x entero x Tb
→ Tt
Def(t[i→e]) ≡ 1 ≤ i ≤ N
semántica:
siendo t={a1, a2,..., ai,..., aN} y e:Tb
acceso e := t[i] ≡ e:=ai
modificación t := t[i→e] abreviadamente t[i] := e
t[i] := e ≡ t := {a1, ..., ai-1, e, ai+1, ..., aN}
MATRICES.
DECLARACIÓN:
nombre_matriz: tabla [dim1] de tabla [dim2] de Tb
brevemente: nombre_matriz: tabla [dim1, dim2] de Tb
constantes
NDIAS: 365; NHORAS:24; N : 10 ; M :31 ; MESES : 12
tipos
Ttdia: tabla [NHORAS,M] de real
Ttemp: tabla [NDIAS,NHORAS] de real
Ttnombres: tabla [MESES,N] de caracter
variables
t: Ttemp
nombres : Ttnombres
ventas : tabla [M,MESES] de entero
LITERALES:
cons
N : ... M : ...
tipos
Tt : tabla [N,M] de Tb
var
t : Tt
L={{a11,..., a1M},..,{aN1,..., aNM}⏐ai,j∈Tb∧ 1≤i≤ N ∧1≤j≤ M}
OPERACIONES
e := t[i,j]
t[i,j] := e
Inicialización: t := {{a11,..., a1M},...,{aN1,..., aNM}}
5
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
matrices:
variables
i,j: entero
principio
inicializar_tratamiento_1
desde i := 1 hasta N
inicializar_tratamiento_2
desde j := 1 hasta M
tratar_elemento_fila_i_columna_j(t[i,j])
fdesde
tratamiento_final_2
fdesde
tratamiento final_1
fin
7
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
1. Búsqueda lineal
algoritmo Existe un cero en un vector
cons N : 20
ent t: tabla [N] de entero
sal existe:logico
variables
i: entero
principio
existe, i := falso, 1
mientras i <= N y no existe
si t[i]= 0:
existe:= cierto
|otras:
i:= i+1
fsi
fmientras
fin
8
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
9
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
10
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
12
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
Literales: Sea:
tipos
Tr: registro
c1: T1
c2: T2
...
cn: Tn
fregistro
variables
r: Tr
L = { {l1, ..., ln} ⏐ li ∈ Ti ∧ 1 ≤ i ≤ n }
r = {l1,...ln}
Operaciones:
Siendo e:Ti
Descripción Perfil
Condiciones
Acceso _.ci : Tr → Ti
Def(r.ci) ≡ cierto
Modificación _[ci→e] : Tr x Ti → Tr
Def(r.[ci→e]) ≡ cierto
semántica:
r.ci = li , para usar en:
e:= r.ci o en una expresión ... r.ci...
r[ci→e] (r.ci := e) ≡ r= { l1,l2...li-1, e , li+1, ... ln}
para inicializar registros: r := {l1, ..., ln}
ejemplo:
alumno := {“Ana”,”Ruiz”,”Gil”,25635987,18,’m’,’s’}
es posible empleado := alumno
13
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
14
I.P.1 curso 2005/2006 TEMA 5. Tablas y registros
15