Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Python: Enumerados y Ordenación de Vectores y Matrices - Prof. Garin, Apuntes de Ingeniería electrónica

Cómo utilizar enumerados en python y cómo ordenar vectores y matrices mediante los métodos de burbuja e inserción. Además, se incluyen ejemplos prácticos.

Tipo: Apuntes

2015/2016

Subido el 19/01/2016

diego_leon_sanz
diego_leon_sanz 🇪🇸

4

(1)

1 documento

1 / 13

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
UNIVERSIDAD DE ALCALÁ
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
LABORATORIO
FUNDAMENTOS DE LA PROGRAMACIÓN
1ª PARTE TEMA 3
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Vista previa parcial del texto

¡Descarga Python: Enumerados y Ordenación de Vectores y Matrices - Prof. Garin y más Apuntes en PDF de Ingeniería electrónica solo en Docsity!

UNIVERSIDAD DE ALCALÁ

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

LABORATORIO

FUNDAMENTOS DE LA PROGRAMACIÓN

1ª PARTE TEMA 3

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 if meses.enero is meses.febrero: print('enero es menor que Febrero') else : print ('no es') de comparación == o ¡=: print(meses.enero == 1) print(meses.enero ¡= 1)

3.1 TIPO SUBRANGO

Declaran un intervalo de valores.

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.

  1. Una vez instalada la librería, si necesitamos trabajar con arrays necesitaremos obligatoriamente :

#1. Invocar a la librería en bloque declarativo del programa_ import numpy as np

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

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

#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

Ejemplos:

#Bloque declarativo

import numpy as np Max = #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 =

def dim(): while True: n = int(input(' Dime cuantos elementos vas a introducir en el vector')) if (n>0)and (n 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 v[j+1]: v[j],v[j+1] = cambiar(v[j],v[j+1]) b = False i =i+ 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- while (aux =0): v[j+1] = v[j] j = j- 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)

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

Tema 3: Tipos de datos estructurados

Ejemplo 1 .Inicializar variable tipo matriz de 3 filas y 4 columnas

#Bloque declarativo import numpy as np Maxf = 3 Maxc =

#Cuerpo principal del programa m = np.empty((Maxf,Maxc,), dtype=np.int)

Ejemplo 2

#Bloque declarativo import numpy as np

Fil = range(8,16) # Fijo rango de elementos como constante Dias = ('l','m', 'x', 'j' ,'v', 's', 'd') # Fijo una tupla de elementos como constante

def leer(m,nf,nc): for i in range(nf): for j in range(nc): m[i,j] = int(input('Introduzca el número fila: '+ str(i+8) + ' columna: '+ Dias[j]+ "\n" )) #Formato de salida rango filas sumo 8 pq rango #comienza en 8 columnas muestro datos de tuplas return m

def escribir(m,nf,nc):

for i in range(nf): for j in range(nc): print(m[i,j],end=' ') # m[i,j] es igual que m[i][j] print()

#Cuerpo principal m = np.empty((len(Fil),len(Dias),), dtype=np.float) m = leer(m, len(Fil), len(Dias)) escribir( m, len(Fil), len(Dias))

L M ...... V

ENUNCIADOS EJERCICIOS

TEMA3 PARTE1: TIPOS DEFINIDOS POR EL USUARIO

VECTORES Y MATRICES

Mª Ángeles Fdez de Sevilla Vellón Página 13

Solicitar un dato y recorrer la matriz para localizarlo en la misma indicando si el dato se ha localizado y, en caso afirmativo, devolver la primera posición en la que se encuentra (fila y columna).

  1. Escribir un programa que defina los tipos de datos necesarios para leer las ventas en cinco días diferentes de los 10 empleados de una empresa y obtenga el total de ventas por empleado. Definir y utilizar un tipo de datos enumerado para los días de la semana.
  2. Escribir un programa que lea una matriz cuadrada de orden menor o igual que 10, la visualice, busque sus elementos menor y mayor y la presenta en pantalla de nuevo con esos dos elementos intercambiados.
  3. Escribir un programa que lea dos matrices de la pantalla de dimensiones NXM y MXR respectivamente, (N, M y R máximo 10) y obtenga la matriz producto de ambas. La salida del programa será cada una de las matrices de entrada y el producto obtenido.