Publicado el 12 de Enero del 2019
1.208 visualizaciones desde el 12 de Enero del 2019
1,3 MB
83 paginas
Creado hace 9a (28/10/2015)
1
TEMA 3:
Tipos de Datos Estructurados
2
ÍNDICE
3. Introducción(3)
3.1. Tipo enumerado (4-9)
3.1.1. Tipo Enumerado en Python
3.1.2. Tipo Enumerado Características
3.2. Subrangos(10-13)
3.2.1. Tipo subrango en Python
3.2.2. Ejemplo tipo subrango en Python
3.3. Vectores y matrices(14-43)
3.3.1. Tipo vector en Python (14-30)
3.3.1.1 Lectura y escritura datos vector Python
3.3.1.2. Lectura datos vector preguntando usuario Python
3.3.1.3.Búsqueda del máximo y mínimo elemento de un vector en Python
3.3.1.4. Otras operaciones con vectores en Python
3.3.2. Vectores multidimensionales.(31-34)
Tema3: Fundamentos de Programación
3
Final de estos
apartados:
EJEMPLOS
ILUSTRATIVOS
TRABAJO
PERSONAL
3.3.3. Matrices Python (35-43)
3.3.3.1 Lectura matrices en Python
3.3.3.2. Escritura de matrices en Python
3.3.3.3 Suma de matrices
3.3.3.4. Búsqueda de un elemento en una matriz
3.3.3.5. Búsqueda booleana de un elemento en una matriz
3.3.3.6. Búsqueda posicional de un elemento en una matriz
3.4. Cadenas (44-59)
3.4.1. Cadena de caracteres Python
3.4.2. Operaciones con cadena de caracteres Python
3.4.3. Ejemplos con cadena de caracteres Python
3.4.4. Programa para enviar textos por correo Python
3.5. Registros (60-83)
3.5.1. Registros en Python
3.5.1.1 Lectura y escritura de registros en Python
3.5.1.2. Lectura de registros de registros en Python
3.5.1.3. Escritura de registros de registros en Python
3.5.1.4. Vector de registros en Python
3.5.1.5. Vector de registros con fechas en Python
3.5.2. Registros variantes
3.5.2.1 Simulación registros variantes en Python
3.5.3. Ejercicio
4
Introducción: Tipos de datos estructurados
Además de los tipos de datos básicos ya definidos, habitualmente los lenguajes de
programación permiten a los programadores definir sus propios tipos.
En lenguajes estructurados hay que definirlos, mediante su declaración. La declaración
comienza con la palabra reservada TIPO.
Declarar tipos es indicar al compilador el conjunto de valores y las posibles operaciones a
realizar sobre este tipo de dato y, por tanto, sobre la información que representa.
Los tipos de datos que veremos son:
3.1. Tipos enumerados
3.2. Subrangos
3.3. Vectores y matrices
3.4. Cadenas de caracteres
3.5. Registros Copiar módulo record
Instalar modulo numpy:
http://www.cdlibre.org/consultar/catalogo/Python_Bibliotecas.html
3.1. Tipo Enumerado
5
Tipo Enumerado
En muchos programas necesitamos referirnos y utilizar objetos distintos de los
tipos básicos, por ejemplo: colores, planetas, días de la semana....
Algunos lenguajes permiten definir un tipo de datos denominado enumerado
utilizando una lista de identificadores que serán sus valores. La forma de
definirlo será:
identTipo = (valores) {los valores se separan por comas}
Ejemplos:
Tipo
tcolores = (rojo, verde, azul)
tdias = (lunes, martes, miercoles, jueves, viernes, sabado, domingo)
3.1. Tipo Enumerado
6
Son ordinales , es decir tienen relación de orden dada por la disposición de los valores en la
definición y escalares.
Operaciones que se pueden utilizar sobre estos tipos en lenguajes estructurados :
ord (valor) retorna un entero que representa la posición que ocupa el valor en la definición
(*).
pred (valor) retorna el valor anterior (da error si se trata del primero).
succ(valor) retorna el siguiente valor (da error si se trata del último).
Operaciones relacionales (actúan en función del orden de declaración).
Asignación
En el caso del valor máximo de un tipo enumerado, succ no está definido, y, para su valor
mínimo, no está definido pred.
(*) El número de orden de cada elemento comienza en 0 para el primer elemento.
Las variables de tipo enumerado sólo pueden tomar los valores especificados en su
definición.
3.1. Tipo Enumerado
7
Tipo Enumerado. Ejemplo
Algoritmo Dias_Semana
{El siguiente programa muestra los días de la semana por medio de tipos enumerados}
TIPO
Dia_Semana = (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo)
Variable
dias :Dia_Semana
i : entero
Inicio
dias:=lunes;
desde i 1 hasta 7 hacer
fin_desde
Según dias hacer
fin_segun
dias:=succ(dias)
Fin.
Lunes : Escribir('Lunes ')
Martes : Escribir ('Martes ‘)
Miercoles : Escribir ('Miércoles‘)
Jueves : Escribir ('Jueves ‘)
Viernes : Escribir ('Viernes ')
Sabado : Escribir ('Sabado ')
Domingo :Escribir ('Domingo ')
3.1.1. Tipo Enumerado PYTHON
8
A partir de Python 3.4 el lenguaje implementa enumeraciones de forma nativa, por
defecto, vía módulo enum: https://www.python.org/dev/peps/pep-0435/ #Información
from enum import Enum
DiasSemana = Enum ('DiasSemana','Lunes
Martes Miercoles Jueves Viernes Sabado
Domingo')
for dia in DiasSemana:
print (dia) #Muestra toda la variable
for dia in DiasSemana:
print (dia.name) #Muestra nombres
for dia in DiasSemana:
print (dia.value) #Muestra valores que toma
DiasSemana.Lunes
DiasSemana.Martes
DiasSemana.Miercoles
DiasSemana.Jueves
DiasSemana.Viernes
DiasSemana.Sabado
DiasSemana.Domingo
Lunes
Martes
Miercoles
Jueves
Viernes
Sabado
Domingo
1
2
3
4
5
6
7
3.1.2. Tipo Enumerado características
9
Un valor de un tipo enumerado no puede
leerse ni escribirse
directamente, por lo que habrá que estudiar las ventajas (claridad y
relación de orden) e inconvenientes de su declaración.
Suelen utilizarse en lenguajes estructurados, como variables de control en
bucles desde, como índices de vectores y como opciones en sentencias
según..sea.
Se utilizan principalmente para aportar claridad al código del programa
En Python puede compararse, pero no existen muchas de
las
operaciones definidas en pseudocódigo
3.2. Tipo Subrango
10
El tipo subrango en lenguajes estructurados es un intervalo dentro de un cierto tipo
de datos ordinal.
Los subrangos solo se utilizarán cuando se conozcan los límites de los valores que
tomarán las futuras variables con seguridad.
Se suelen utilizar para el control de errores, por ejemplo: si un número está
comprendido entre 1..10.
Aportan claridad a los programas. Se suelen utilizar sobre vectores.
Sintaxis :
identSubrang = literal1..literal2
por ejemplo: 0..10 (subrango de enteros).
Donde literal1 y literal2 deben ser del mismo tipo, y siempre literal1<= literal2.
3.2.1. Tipo Subrango en Python
11
Como se estudió en el tema 1, El tipo range(), se emplea como contador del
bucle for. Internamente en Python, crea una lista inmutable de números enteros
en sucesión aritmética.
El tipo range() puede tener uno, dos o tres argumentos numéricos enteros.
Nota: En Python 2, range() se consideraba una función, pero en Python 3 no se considera una función, sino como un tipo de datos
(concretamente, una lista de enteros inmutable), aunque se utiliza como si fuera una función.
Recordemos:
range(n) = range(0, n) = [0, 1, ... , n-1].
Nota: Para ver los valores de la lista creada con range(), es necesario convertirla a lista mediante el tipo list().
>>> range(5)
range(0, 5)
>>> list(range(5)) [0, 1, 2, 3, 4]
3.2.1. Tipo Subrango Python
12
range(m, n) = [m, m+1, ... , n-1]
>>>
range(5, 10) [5, 6, 7, 8, 9] >>> list(range(-5, 1)) [-5, -4, -3, -2, -1, 0]
Si n es menor o igual que m, se crea una lista vacía.
>>> list(range(5, 1)) [] >>> list(range(3, 3)) []
range(m, n, p) y crea una lista que empieza en m y acaba antes de llegar a n,
avanzando de p en p
>>> list(range(5, 21, 3)) [5, 8, 11, 14, 17, 20] >>> list(range(10, 0, -2)) [10, 8, 6, 4, 2]
Resumen:
m: el valor inicial
n: el valor final (que no se alcanza nunca)
p: el paso (la cantidad que se avanza cada vez).
Si se escriben sólo dos argumentos, Python le asigna a p el valor 1.
range(m, n) es lo mismo que range(m, n, 1)
Si se escribe sólo un argumento, Python, le asigna a m el valor 0 y a p el valor 1.
range(n) es lo mismo que range(0, n, 1)
3.2.2. Ejemplo Tipo Subrango Python
13
Ejemplo
Mostrar un mensaje indicando el tipo de carácter introducido por teclado.
def subrango(car):
'''car<- retorna mensaje'''
car = input('introduzca un caracter: ')
n=ord(car)
if n in range(ord('A'),ord('Z')+1):
print('El carácter introducido es una letra mayúscula')
elif n in range(ord('a'),ord('z')+1):
print('El carácter introducido es una letra minúscula')
elif n in range(ord('0'),ord('9')+1):
print('El carácter introducido es un número')
else:
print('El carácter introducido es un carácter especial') #Modificar código para Ñ ó ñ
3.3. Tipo vector
14
Un vector es una agrupación ordenada, limitada y homogénea de datos del
mismo tipo. En memoria se almacenan los datos en posiciones consecutivas.
Por ejemplo: una lista de enteros podría tener los valores:
2, 3 ,4 ,5; que es distinto del vector 5, 4 ,3 ,2
Sintaxis:
identVector = vector [subrango] de tipo
En un vector intervien
Comentarios de: Tema 3: Tipos de Datos Estructurados (0)
No hay comentarios