PDF de programación - Laboratorio - Fundamentos de la programación - 1ª parte tema 3

Imágen de pdf Laboratorio - Fundamentos de la programación - 1ª parte tema 3

Laboratorio - Fundamentos de la programación - 1ª parte tema 3gráfica de visualizaciones

Publicado el 3 de Junio del 2019
594 visualizaciones desde el 3 de Junio del 2019
637,3 KB
13 paginas
Creado hace 8a (19/11/2015)
UNIVERSIDAD DE ALCALÁ



DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN



LABORATORIO

FUNDAMENTOS DE LA PROGRAMACIÓN

1ª PARTE TEMA 3



1





TEMA 3: TIPOS DE DATOS DEFINIDOS POR EL USUARIO

3. TIPO ENUMERADO

Lista ordenada de identificadores.

SINTAXIS
#Llamada a libreria

from enum import Enum


# Cuerpo del programa
Identif_conjunto

= Enum

(‘

Identif_conjunto

‘,



identif1,

identif2,…,identifn ‘)

#Llamada a libreria
from enum import Enum
# Cuerpo del programa
meses = Enum ('meses', ‘enero, febrero, marzo, abril, mayo, junio, julio, agosto,
septiembre, octubre, noviembre, diciembre’)
for m in meses:
print (m) #Muestra toda la variable
for m in meses:
print (m.name) #Muestra nombres
for m in meses:
print (m.value) #Muestra valores

Operaciones que admite:
Comparacion is, not is



print('enero es menor que Febrero')

if meses.enero is meses.febrero:

else:


print ('no es')


de comparación == o ¡=:


print(meses.enero == 1)
print(meses.enero ¡= 1)



2

3.1 TIPO SUBRANGO

Declaran un intervalo de valores.



SINTAXIS

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(3)
range(0, 3)
>>> list(range(3)) [0, 1, 2]

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.

Si se escribe sólo un argumento, Python, le asigna a m el valor 0 y a p el valor 1.



range(m, n) es lo mismo que range(m, n, 1)

range(n) es lo mismo que range(0, n, 1)



3.2. VECTORES Y MATRICES : ARRAY

Estructura en la que se almacena un número finito de datos del mismo tipo, teniendo
importancia el orden en el que se sitúan los datos.



1. Se almacenan en posiciones contiguas de memoria.

2. Se asigna un único nombre de variable y se trabaja con cada elemento a

través de las posiciones.

3. El acceso a cada elemento es directo.

4. Unidimensionales  Vectores.
Multidimensionales  Matrices.



3



Tema 3: Tipos de datos estructurados


VECTORES : SINTAXIS


Para trabajar con arrays en Python necesitaremos:
1) Instalar librería NUMPY:

http://www.cdlibre.org/consultar/catalogo/Python_Bibliotecas.html
Desde aquí se accede a NumPy 1.9.2 (py 3.4), nos redirecciona a otra
página para su ejecución.



2) Una vez instalada la librería, si necesitamos trabajar con arrays

necesitaremos obligatoriamente :



import numpy as np

v = np.empty((Max,), dtype=np.int)

#2. Inicializar vector en el cuerpo principal del programa:

#1. Invocar a la librería en bloque declarativo del programa_



#Mediante esta función inicializo todas las componentes del vector CON
BASURA.
#Max es una constante que especifica la dimensión máxima del vector.
#dtype detalla el tipo de datos del vector, en el ejemplo es un entero.

Los vectores pueden tener diferentes tipos de elementos, esto se especifica
mediante atributo dtype:

- dtype=np.int #Especificación del tipo para crear vectores de enteros

- dtype=np.float #Especificación del tipo para crear vectores números

reales

- dtype=np.bool #Especificación del tipo para crear vectores de tipo

booleano

- dtype=np.str #Especificación del tipo para crear vectores de tipo

carácter

- dtype=np.object #Especificación del tipo para crear vectores de tipo cadena



de caracteres

Nota: También se podría inicializar a ceros pero daría errores si el tipo de
datos no es numérico y si alguna componente del vector es cero.

v = np.zeros((Max,), dtype=np.int) #Mediante esta función inicializo a ceros
solo vale para vectores numéricos

4




Ejemplos:

#Bloque declarativo

import numpy as np
Max =12
#Cuerpo principal

v = np.empty((Max,), dtype=np.float)
v2 = np.empty((Max,), dtype=np.float)
v[1] = float(input('Introduzca real que ocupa posición 1: '))
print(v[1])
v2[8] =v[1]
print(v2[8])

Ejemplo: Programa que lee una secuencia de 50 elementos como máximo y los
imprime en orden inverso al de entrada.

#Bloque declarativo

import numpy as np
Maxi =5

def dim():
while True:
n = int(input(' Dime cuantos elementos vas a introducir en el vector'))
if (n>0)and (n <Maxi+1):
break
return n

def leer (v, n):
for i in range(n):
v[i] = int(input('Introduzca el número: '))
return v

def escribir (v,n):
for i in range(n-1,-1,-1):
print (v[i], end =" ,")

#Cuerpo principal

numeros = np.empty((Maxi,), dtype=np.int)
n = dim()
numeros = leer(numeros,n)
escribir (numeros,n)



5


Tema 3: Tipos de datos estructurados



Ordenación de vectores mediante los métodos de Burbuja e Insección:

El siguiente programa elige un método de ordenación entre el de la burbuja (opción 1,2
ó 3) y el de inserción (opción 4).

NOTA: La opción 3 del método de la burbuja es el más eficiente la 2ª el siguiente y el
primero es el menos eficiente.

import numpy as np
Max = 15

def dim():
'''()<- n devuelve la dimension del vector'''
while True:
n = int(input('Dimensión del vector: '))
if (n>0) and (n < Max+1):
break
return n

def leer(v,n):
'''v,n <- v Dado un vector vacio de dimensión n devuelve el vector relleno'''
for i in range(n):
v[i] = int(input('Introduzca número: '))
return v

def escribir(v,n):
'''v,n <- Imprime por pantalla un vector de dimensión n'''
for i in range(n):
print(v[i])

def cambiar(a,b):
'''a,b <- a,b Intercambia los valores de a y b'''
aux = a
a = b
b = aux
return a,b

def ordenar_burbuja1(v,n):
'''v,n <- v Dado un vector de dimensión n ordena sus componentes por el método de
la burbuja'''
for i in range(n-1):
for j in range(n-1):
if v[j] > v[j+1]:
v[j],v[j+1] = cambiar(v[j],v[j+1])
return v

def ordenar_burbuja2(v,n):
'''v,n <- v Dado un vector de dimensión n ordena sus componentes por el método de
la burbuja mejorado (2)'''



6

for i in range(n-1):
for j in range(n-i):
if v[j] > v[j+1]:
v[j],v[j+1] = cambiar(v[j],v[j+1])
return v

def ordenar_burbuja3(v,n):
'''v,n <- v Dado un vector de dimensión n ordena sus componentes por el método de
la burbuja mejorando la eficiencia de los otros métodos de la burbuja'''
b = False
i = 1
while (b == False) and (i<n):
b = True
for j in range(n-i):
if v[j] > v[j+1]:
v[j],v[j+1] = cambiar(v[j],v[j+1])
b = False
i =i+1
return v

def insercion(v,n):
'''v,n <- v Dado n datos los va insertando en el vector v'''
for i in range(n):
aux = int(input('Dime dato'))
j = i-1
while (aux <v[j]) and (j>=0):
v[j+1] = v[j]
j = j-1
v[j+1] = aux
return v
def seguir():
while True:
s = input('Quieres salir?')
if (s.upper() == 'SI') or (s.upper() == 'NO'):
break
return (s.upper() == 'SI')
def elige():
''' Procedimiento que lee un vector y lo ordena por los 4 métodos implementados
anteriormente'''
vector =np.empty((Max,),dtype =np.int)
n = dim()
while True:
m = int(input('Elige opción ordenación Burbuja 1,2,3 ó inserción 4 : '))
if m>0 and m<5:
break
if m ==1:
vector = leer(vector,n)
vector = ordenar_burbuja1(vector,n)
print(' El vector ordenado es burbuja1: ')
escribir(vector,n)

7


Tema 3: Tipos de datos estructurados


elif m ==2:
vector = leer(vector,n)
vector = ordenar_burbuja2(vector,n)
print(' El vector ordenado es burbuja2: ')
escribir(vector,n)
elif m ==3:
vector = leer(vector,n)
vector = ordenar_burbuja3(vector,n)
print(' El vector ordenado es burbuja3: ')
escribir(vector,n)
else:
vector =insercion(vector,n)
escribir(vector,n)
#Cuerpo del programa
while True:
elige()
b =seguir()
if b:
break



8


MATRICES : SINTAXIS



trabajar con arrays bidimensionales

Para
necesitaremos, lo mismo que en el caso de los vectores:

1) Instalar librería NUMPY:

(Matrices) en Python


2) Una vez instalada la librería, si necesitamos en un programa trabajar con

matrices necesitaremos obligatoriamente escribir dos instrucciones:



import numpy as np

m = np.empty((Max,Max,), dtype=np.int)

#1. Invocar a la librería


#2. Inicializar la matriz en el cuerpo principal del programa:


#Mediante esta función inicializo todas las componentes de la matriz CON
BASURA.
#(Max,Max,) constantes que especifican la dimensión máxima de la matriz.
#dtype me detalla el tipo de datos de la matriz.

L
  • Links de descarga
http://lwp-l.com/pdf16028

Comentarios de: Laboratorio - Fundamentos de la programación - 1ª parte tema 3 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad