Procesamiento de datos simples III: Listas Septiembre de 2016

Fundamentos de programaci´ on Carlos Andr´ es Delgado S. Fundamentos de programaci´on Procesamiento de datos simples III: Listas carlos.andres.delgad
Author:  Juana Vega Cortés

6 downloads 336 Views 226KB Size

Recommend Stories


Procesamiento de datos: paquetes estadísticos
3 Procesamiento de datos: paquetes estadísticos Antonia Guillén Serra 3.1. Introducción En el presente capitulo nos centraremos fundamentalmente en

Procesamiento Analítico con Minería de Datos
Revista Iberoamericana de las Ciencias Computacionales e Informática ISSN: 2007-9915 Procesamiento Analítico con Minería de Datos Analytical Process

Story Transcript

Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Fundamentos de programaci´on Procesamiento de datos simples III: Listas [email protected]

Carlos Andr´es Delgado S. Facultad de Ingenier´ıa. Universidad del Valle

Septiembre de 2016

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Definici´on En algunas ocasiones tenemos muchas piezas de informaci´on del mismo tipo y se tiene problemas en como procesarlas. Para esto se tiene un tipo de dato llamado lista que permite tener un n´ umero indefinido de piezas de informaci´on. Por ejemplo la lista de regalos de navidad de un ni˜ no: " iphone 7 " " plastilina " " sedante " " bandera pirata " " ojo de vidrio "

¿C´omo podemos manejar esta informaci´ on?

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Definici´on Dr Racket ofrece una implementaci´ on de lista as´ı: 1

Para una lista vac´ıa (sin elementos) empty

2

Para una lista de un elemento: ( cons " iphone 7 " empty )

3

Para una lista de dos elementos: ( cons " sedante " ( cons " ojo de vidrio " empty ) )

¿C´omo construir´ıa la lista de nuestro ni˜ no?: " iphone 7 " " plastilina " " sedante " " bandera pirata " " ojo de vidrio "

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Definici´on La lista de nuestro ni˜ no es as´ı: ( cons " iphone 7 " ( cons " plastilina " ( cons " sedante " ( cons " bandera pirata " ( cons " ojo de vidrio " empty ) ) ) ) )

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Ejercicios en clase En Dr Racket: 1

Construya una lista con los planetas del sistema solar

2

Construya una lista con sus 4 comidas favoritas

3

Construya una lista con cuatro colores

4

Construya una lista con los n´ umeros del 1 al 10

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Contrato En nuestros contratos, ahora vamos a agregar el tipo de dato lista-de-X donde X son el tipo de dato de los elementos de la lista. Ejemplo ; ; Autor : Carlos Andr ´ e s Delgado , codigo : 1301662 ; ; Fecha de creaci o ´ n : 10- Se pt i em br e- 2 01 6 ; ; Contrato : lista3numeros : numero , numero , numero - > li st a- de -n u m e r o s ; ; Prop o ´ sito : Este programa recibe 3 n u ´ meros y retorna una lista ; ; Ejemplo : ( lista3numeros 1 2 3) retorna ( cons 1 ( cons 2 ( cons 3 empty ) ) ) ; ; Funci ´ on ( define ( lista3numeros x y z) ( cons x ( cons y ( cons z empty ) ) ) ) ; ; Ejemplo ( l i s t a 3 n u m e r o s 1 2 3)

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Contrato Los m´as comunes que vamos a usar 1

lista-de-numeros

2

lista-de-simbolos

3

lista-de-, donde estructura es una estructura que usted ha construido

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Ejercicios en clase En Dr Racket: 1

2

Construya una funci´ on que reciba 3 colores y retorne una lista con ellos. Construya una funci´ on que reciba 3 n´ umeros (a,b y c): Si a > c entonces retorna una lista en este orden (a b c) Si a < c y a < b entonces retorna una lista en este orden (b c a) 3 En otro caso retorna (c a b) 1 2

Recuerde utilizar la receta de dise˜ no

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Acceder a una lista Para acceder a una lista se cuentan con las siguiente funciones: 1

first Accede al primer elemento de la lista

2

rest Accede al resto de la lista

3

length Indica el tama˜ no de una lista

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Acceder a una lista Pruebe: ( d e f i n e l i s t a − n u m e r o s ( cons 1 empty ) ) ) ) ) ( first l i s t a − n u m e r o s ) ( rest l i s t a − n u m e r o s ) ( first ( rest l i s t a − n u m e r o s ) )

¿Que observa?

( cons 4 ( cons 7 ( cons 8

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Acceder a una lista Si observa detenidamente, first retorna elementos de la lista y rest listas, ya que la composici´ on de una lista es un elemento seguido de una lista ( cons x y ) ; ; x es elemento ; ; y es una lista que puede ser empty o otro cons

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Acceder a una lista Pruebe: ( d e f i n e l i s t a − n u m e r o s ( cons 1 empty ) ) ) ) ) ( length l i s t a − n u m e r o s )

¿Que observa?

( cons 4 ( cons 7 ( cons 8

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Ejercicio Dado el caso anterior: ( d e f i n e l i s t a − n u m e r o s ( cons 1 empty ) ) ) ) )

( cons 4 ( cons 7 ( cons 8

1

Acceda al tercer elemento de la lista: debe retornar 7

2

Acceda al cuarto elemento de la lista: debe retornar 8

3

Acceda al u ´ltimo elemento de la lista: debe retornar empty o ’()

Tenga cuidado, si ejecuta (first empty) o (rest empty) dar´a error ya que la lista vac´ıa no tiene elementos.

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Ejercicios en clase 1

Construya una funci´ on que reciba una lista de 3 elementos (numeros) y retorne su suma

2

Construya una funci´ on que reciba dos listas de 4 elementos cada una, la primera lista tiene n´ umeros y la segunda tiene cadenas de texto, la funci´on ubica el mayor elemento de la primera lista devolviendo el elemento de la segunda lista que le corresponde, ejemplo: ( d e f i n e l i s t a − n u m e r o s ( cons 1 ( cons 3 ( cons 8 ( cons 2 empty ) ) ) ) ) ( d e f i n e l i s t a − c o s a s ( cons " gato " ( cons " perro " ( cons " lobo " ( cons " mula " empty ) ) ) ) ) ; ; La funci ´ o n debe retornar " lobo "

Recuerde utilizar la receta de dise˜ no

Listas Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Ejercicios en casa 1

Construya una funci´ on, que reciba dos simbolos (a y b) y una lista. Esta funci´ on busca en el lista el simbolo a en la lista y la reemplaza por el simbolo b. ( d e f i n e l i s t a − s i m b o l o s ( cons ’ d i a ( cons ’ n o c h e ( cons ’ p e r r o ( cons ’ p e r r o ) ) ) ) ) ( reemplazar ’ perro ’ lobo lista−simbolos ) ; ; Retorna ( cons ’ dia ( cons ’ noche ( cons ’ lobo ( cons ’ lobo ) ) ) )

2

Construya una funci´ on que recibe un n´ umero y una lista de n´ umeros. Si se ingresa el n´ umero 1, se retorna la suma de la lista, si se ingresa 2, se retorna la multiplicaci´on de los elementos, en otro caso se retorna 0.

Recuerde utilizar la receta de dise˜ no

¿Preguntas? Fundamentos de programaci´ on Carlos Andr´ es Delgado S.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.