Estructuras de datos, vectores y matrices

Post on 16-Oct-2021

27 views 0 download

Transcript of Estructuras de datos, vectores y matrices

Estructuras de datos,vectores y matrices

Introducción a la programación

I semestre, 2016

Estructuras de datos

Una estructura de datos es una forma de organizar conjuntos de datos con el objetivo de facilitar su manipulación.

Refrescando algunos conceptos:

● Datos: en Python asociados a un tipo...

● Básicos: números, letras, valores de verdad.

● Compuestos: secuencias, diccionarios.

● Conjuntos de datos: varios datos asociados o agrupados (o estructurados) según algún criterio.

● Manipulación: “…Un programador debe utilizar expresiones, funciones y métodos de forma combinada para obtener soluciones a problemas...”

Estructuras de datos

En otras palabras...

Las estructuras de datos son una manera de representación creada a partir de los datos, ubicándose un nivel por encima (abstracción de datos).

Nos permite representar “cosas” más complejas para resolver otro tipo de problemas de forma más sencilla o al menos sin preocuparnos por los detalles internos de representación.

Lego CC-BY-SA-2.0 davestone @ Flickr

Lego tower bridge CC-BY-NC-SA-2.0 ukslim @ Flickr

Estructuras de DatosEjemplos

listas, colas, pilas, árboles, matrices, arreglos, etc, etc...

Pueden ser

● Propias del lenguaje de programación utilizado.

● Definidas e implementadas por el programador a partir de otras estructuras o datos disponibles.

En concreto

Una estructura de datos para representar edades de personas, utilizando Python podría ser:

>>> edades = [23, 22, 20, 18] # ¿Una lista?

Dominio Público Lasindi @ Wikipedia

Vectores

Representan colecciones de n componentes (también llamados elementos)

● Son accedidos por medio de índices.

● Es un arreglo de números

Vectores

Las implementaciones varían según lenguaje de programación, en términos generales:

● Son homogéneos: componentes son todos del mismo tipo.

● Su tamaño es estático, se definen en tiempo de compilación. Contrario a lo que sucede con las listas (como estructura de datos) en las que su tamaño es dinámico.

● En Python se representan por medio de listas o utilizando el módulo array

>>> help( array )

Vectores

Algunas propiedades/operaciones

Igualdad de vectores

Dos vectores son iguales si tienen los mismos elementos en la misma posición.

Vector nulo

Un vector nulo es aquel en que todos sus elementos son igual a cero.

Vectores

Operaciones con Vectores

Suma o resta de vectores

● Se suman o restan los elementos en la misma posición y el resultado es un nuevo vector del mismo tamaño.

V = [ v0, v1, v2, ..., vn-1 ]

W = [ w0, w1, w2, ..., wn-1 ]

V + W = [v0 + w0, v1 + w1, v2 + w2, ..., vn-1 + wn-1 ]

Vectores

Operaciones con Vectores

Producto escalar

● Multiplicar todos los elementos de 1 vector por 1 número (escalar)

e = escalar

V = [ v0, v1, v2, ..., vn-1 ]

V * e = [ v0 * e, v1 * e, v2 * e ..., vn-1 * e]

Vectores

Operaciones con VectoresProducto de Vectores

● La multiplicación de vectores produce un único número como resultado

V = [ v0, v1, v2, ..., vn-1 ]

W = [ w0, w1, w2, ..., wn-1 ]

V * W = Σ vi * wi (desde i =0, hasta n - 1)

V * W = v0 * w0 + v1 * w1 + v2 * w2 + ... + vn-1 * wn-1

Ejercicios

Escribir de utilizando iteración las siguientes funciones con vectores:

Gätgens, hagalo dos veces!

Documente el código correctamente.

es_vector resta

vector_nulo producto_escalar

vectores_iguales producto_vectores

suma

Referencias y Lecturas Complementarias

Material suministrado por el profesor Jaime Gutiérrez, Instituto Tecnológico de Costa Rica. I semestre 2011.

● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa Rica. I semestre 2011.

● J. Helo Guzmán, Introducción a la programación con Scheme, Segunda ed. Cartago: Editorial tecnológica, 2005.

● J. Solano, Introducción a la programación en Python, Primera ed. Cartago: Editorial tecnológica, 2011.

● En general: http://docs.python.org/3/

13

Las presentaciones para el curso IC-1800: "Introducción a la Programación" por Ing. En Computación Alajuela se distribuyen bajo una

Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa Rica.

http://creativecommons.org/licenses/by-sa/3.0/cr/http://creativecommons.org/licenses/by-sa/3.0/cr/ *La licencia de la presentación no cubre las imágenes utilizadas*

Estructuras de datos,vectores y matrices

Introducción a la programación

I semestre, 2016

Estructuras de datos

Una estructura de datos es una forma de organizar conjuntos de datos con el objetivo de facilitar su manipulación.

Refrescando algunos conceptos:

● Datos: en Python asociados a un tipo...

● Básicos: números, letras, valores de verdad.

● Compuestos: secuencias, diccionarios.

● Conjuntos de datos: varios datos asociados o agrupados (o estructurados) según algún criterio.

● Manipulación: “…Un programador debe utilizar expresiones, funciones y métodos de forma combinada para obtener soluciones a problemas...”

Estructuras de datos

En otras palabras...

Las estructuras de datos son una manera de representación creada a partir de los datos, ubicándose un nivel por encima (abstracción de datos).

Nos permite representar “cosas” más complejas para resolver otro tipo de problemas de forma más sencilla o al menos sin preocuparnos por los detalles internos de representación.

Lego CC-BY-SA-2.0 davestone @ Flickr

Lego tower bridge CC-BY-NC-SA-2.0 ukslim @ Flickr

Estructuras de DatosEjemplos

listas, colas, pilas, árboles, matrices, arreglos, etc, etc...

Pueden ser

● Propias del lenguaje de programación utilizado.

● Definidas e implementadas por el programador a partir de otras estructuras o datos disponibles.

En concreto

Una estructura de datos para representar edades de personas, utilizando Python podría ser:

>>> edades = [23, 22, 20, 18] # ¿Una lista?

Dominio Público Lasindi @ Wikipedia

Vectores

Representan colecciones de n componentes (también llamados elementos)

● Son accedidos por medio de índices.

● Es un arreglo de números

Vectores

Las implementaciones varían según lenguaje de programación, en términos generales:

● Son homogéneos: componentes son todos del mismo tipo.

● Su tamaño es estático, se definen en tiempo de compilación. Contrario a lo que sucede con las listas (como estructura de datos) en las que su tamaño es dinámico.

● En Python se representan por medio de listas o utilizando el módulo array

>>> help( array )

Vectores

Algunas propiedades/operaciones

Igualdad de vectores

Dos vectores son iguales si tienen los mismos elementos en la misma posición.

Vector nulo

Un vector nulo es aquel en que todos sus elementos son igual a cero.

Vectores

Operaciones con Vectores

Suma o resta de vectores

● Se suman o restan los elementos en la misma posición y el resultado es un nuevo vector del mismo tamaño.

V = [ v0, v1, v2, ..., vn-1 ]

W = [ w0, w1, w2, ..., wn-1 ]

V + W = [v0 + w0, v1 + w1, v2 + w2, ..., vn-1 + wn-1 ]

Suma o resta de matrices: se opera sobre las mismas posiciones en ambas matrices y se crea una nueva con el mismo tamaño

Producto escalar: 1 vector por un número, multiplicada cada elementos del vector por un número.

Vectores

Operaciones con Vectores

Producto escalar

● Multiplicar todos los elementos de 1 vector por 1 número (escalar)

e = escalar

V = [ v0, v1, v2, ..., vn-1 ]

V * e = [ v0 * e, v1 * e, v2 * e ..., vn-1 * e]

Suma o resta de matrices: se opera sobre las mismas posiciones en ambas matrices y se crea una nueva con el mismo tamaño

Producto escalar: 1 vector por un número, multiplicada cada elementos del vector por un número.

Vectores

Operaciones con VectoresProducto de Vectores

● La multiplicación de vectores produce un único número como resultado

V = [ v0, v1, v2, ..., vn-1 ]

W = [ w0, w1, w2, ..., wn-1 ]

V * W = Σ vi * wi (desde i =0, hasta n - 1)

V * W = v0 * w0 + v1 * w1 + v2 * w2 + ... + vn-1 * wn-1

Producto de vectores: genera 1 número y se puede explicar como la suma de todas las multiplicaciones de los elementos en la misma posición de los vectores.

Ejercicios

Escribir de utilizando iteración las siguientes funciones con vectores:

Gätgens, hagalo dos veces!

Documente el código correctamente.

es_vector resta

vector_nulo producto_escalar

vectores_iguales producto_vectores

suma

Referencias y Lecturas Complementarias

Material suministrado por el profesor Jaime Gutiérrez, Instituto Tecnológico de Costa Rica. I semestre 2011.

● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa Rica. I semestre 2011.

● J. Helo Guzmán, Introducción a la programación con Scheme, Segunda ed. Cartago: Editorial tecnológica, 2005.

● J. Solano, Introducción a la programación en Python, Primera ed. Cartago: Editorial tecnológica, 2011.

● En general: http://docs.python.org/3/

13

Las presentaciones para el curso IC-1800: "Introducción a la Programación" por Ing. En Computación Alajuela se distribuyen bajo una

Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa Rica.

http://creativecommons.org/licenses/by-sa/3.0/cr/http://creativecommons.org/licenses/by-sa/3.0/cr/ *La licencia de la presentación no cubre las imágenes utilizadas*