Temas de clase
- Hicimos modificaciones de listas
- Integramos eso con modificaciones de registros.
- Comenzamos a hacer en papel el parcial de práctica que deben terminar en papel para el martes que viene.
Pensando bien qué tipo de recorrido utilizar en cada caso:
- Hacer la función
quemarPixeles(colores)
que hace que todos losRojo
de la lista de colores se transformen enNegro
. Por ejemplo,quemarPixeles([Negro,Rojo,Azul,Rojo])
denota la lista[Negro,Negro,Azul,Negro]
. - Hacer la función
quemarPrimerPixel(colores)
, que hace que sólo el primer pixel Rojo se queme. Por ejemplo,quemarPrimerPixel([Negro,Rojo,Azul,Rojo])
denota la lista[Negro,Negro,Azul,Rojo]
. - Hacer la función
sacarPrimeraOcurrencia(lista,elemento)
que recibe una lista y un elemento, y denota el resultado de sacar sólo la primera ocurrencia del elemento en la lista. Por ejemplo,sacarPrimeraOcurrencia([Rojo,Azul,Verde,Azul], Azul)
denota la lista[Rojo,Verde,Azul]
. - Hacer la función
reemplazarProducto(productos, idSacar, productoNuevo)
que recibe una lista de productos, un id del producto que quiero sacar, y un producto entero nuevo, y denota la lista en la que sólo cambia el producto indicado, reemplezándolo por el nuevo. Por ejemplo, si tengo una lista con una barrita de cereal (id 6), un alfajor (id 7), y un bocadito (id 3) cuando hagareemplazarProducto(productos, 7, chocolate)
entonces voy a obtener una lista con la barrita de cereal, el chocolate y el bocadito. O sea, obtengo una lista idéntica a la original pero donde estaba el id 7 sacó el producto alfajor y puso el chocolate. Precondición: Hay un y sólo un producto con ese id en la lista. - Hacer la función
hacerLight(producto)
que recibe un producto y lo hace light. Ó sea, denota un producto idéntico al original, pero con su primer ingrediente graso transformado en harina, y con la mitad de las calorías por gramo.
Por ejemplo, si hago que este producto se haga light:
Producto(id<-5, precio<-55, ingredientes<-[
Ingrediente(tipo<-Azul,gramos<-20,caloriasPorGramo<-5),
Ingrediente(tipo<-Rojo,gramos<-15,caloriasPorGramo<-8),
Ingrediente(tipo<-Rojo,gramos<-20,caloriasPorGramo<-6)
])
obtengo:
Producto(id<-5, precio<-55, ingredientes<-[
Ingrediente(tipo<-Azul,gramos<-20,caloriasPorGramo<-5),
Ingrediente(tipo<-Verde,gramos<-15,caloriasPorGramo<-4),
Ingrediente(tipo<-Rojo,gramos<-20,caloriasPorGramo<-6)
])
Van las soluciones que hicimos en clase:
- Punto 2
quemarPrimerPixel
Recordemos que ... ++ tail(porRec)
lo que hace es concatenar a la lista de quemados
el resto de la lista sin recorrer. Se pone el tail porque se desea evitar poner el Rojo
encontrado.
Además, es importante recordar el caso borde, que es considerar que puede no haber ningún rojo, entonces hay que poner un ìf
para que sólo añada el [Negro]
cuando hayamos encontrado algo.
- Punto 3
sacarPrimeraOcurrencia
Acá recuerden mirar también el caso borde.
- Punto 5
hacerLight
Entendamos la estructura primero (qué recibo y qué devuelvo):
Luego comenzamos entendiendo que es una modificación de registro, donde hay que delegar la modificación de la lista
Luego la modificación de la lista delega en la modificación deun registro ingrediente
Y finalmente se hace la modificación de un registro ingrediente
Tarea
- Realizar en papel el enunciado de parcial del padrón/distrito.
- Completar la tarea que se debe. ¡Mirar en seguimiento!