Cursosā€Ž > ā€ŽMartes-MiĆ©rcoles-Jueves MaƱanaā€Ž > ā€Ž

Resumenes Objetos 2c2011

Reentrega TP integrador

publicado a laā€Ž(s)ā€Ž 2 nov 2011 8:00 por gisela decuzzi Ā  [ actualizado el 4 nov 2011 9:10]

La gente que no hizo la entrega en fecha el 26-27 de Octubre del tp, como ya resolvimos el tp en clase como tp tienen que entregar resuelto el enunciado Mundo Epico.
Recuerden que toda entrega de tp integrador OBLIGATORIAMENTE consta de:
  • fileOut de Pharo con el código del tp
  • el workspace con el que probaron: TODOS los puntos y los casos posibles con el set de pruebas que hicieron
  • el diagrama de clases.
La gente que entregó el tp y se los devolvieron con debe reentregar, tienen que corregir lo que se le marcó y reentregar. La reentrega consta de:
  • Primera entrega hecha y corregida
  • Segunda entrega con:
    • fileOut
    • workspace
    • diagrama de clases

Enunciado TP Integrador

publicado a laā€Ž(s)ā€Ž 15 oct 2011 17:41 por gisela decuzzi Ā  [ actualizado el 15 oct 2011 17:41]

La familia

El dominio

Se sabe que hay locales en varias zonas de Buenos Aires (porejemplo: Retiro, Almagro, Palermo Sensible, Parque Avellaneda, etc) controladaspor diferentes familias poderosas pertenecientes a la mafia, que manejan susnegocios y se rigen por estrictas normas de honor.

El honor lo vamos a manejar por unidades a las que vamos allamar "puntos de honor", que vamos a describir mƔs adelante.

Ā 

El negocio de cada familia consiste en conrolar locales,entre los que vamos a considerar

Talleres clandestinosĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  RestaurantesĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā  Casinos

Cada local es controlado por una sola familia, y ademƔssabemos en quƩ zona estƔ.

Ā 

Vamos a considerar que cada integrante estĆ” en todo momentoen un local perteneciente a su familia.

Ā 

No es ninguna noticia que las familias son muy ambiciosas.Las familias se atacan entre sƭ para conquistar alguna propiedad ajena,eliminando a su competencia con el objetivo de obtener mƔs poder. A losintegrantes de cada familia que pueden participar en los ataques se losconsidera integrantes activos, y los otros son los que se quedan cuidando ellocal en donde estƔn. Para cada integrante se indica si es activo o no.

Ā 

Los integrantes llevan encima sus instrumentos de trabajoa.k.a. armas. Dentro del arsenal que pueden manejar, vamos a considerar

  • Cuchillos: otorgan a quien lo posee una cantidad de puntos de honor que se establece para cada cuchillo; tienen una potencia destructiva de 1.
  • Ametralladoras: otorgan a quien la posee una cantidad de puntos de honor que es igual para todas las ametralladoras; tienen una potencia destructiva que se establece para cada ametralladora.
  • Bombas: no otorgan puntos de honor, y tienen 1000 de potencia destructiva.

Un arma se considera heavy si tiene mƔs de 200 de potenciadestructiva, u otorga mƔs de 10 puntos de honor.

Ā 

El honor se maneja asĆ­:

  • El honor de un integrante es la suma de los puntos de honor que le otorgan sus armas mĆ”s una cantidad de puntos de honor bĆ”sicos que son de Ć©l.
  • El honor de una familia es: una reserva de puntos de honor que es patrimonio comĆŗn de la familia, mĆ”s 20 puntos por cada integrante capo, mĆ”s 10 puntos por cada local ocupado por la familia.

Un integrante es capo si tiene mƔs de 100 puntos de honor ytiene al menos un arma heavy.

Ā 

A la hora de conquistar un local perteneciente a otra familia,las familias pueden decidir enviar a un grupo de sus integrantes a atacar unlocal perteneciente a una zona determinada, con el fin de apropiarse de dicholugar.

TambiƩn pueden ir por la vƭa rƔpida, atacar toda una zona yquedarse con ella (es decir, con todos los locales que la comprenden).

En todos los casos, los atacantes son todos los integrantesactivos de la familia que ataca; los atacantes capos son los integrantesactivos que son capos.

Ā 

Los ataques no siempre son exitosos, por varios factores.

Cada tipo de local tiene sus condiciones particulares paraque un ataque contra Ʃl sea exitoso:

  • Restaurante: que los atacantes seanĀ  mĆ”s de 5, por lo menos 3 tengan armas heavies y el local este vacĆ­o de clientes (no se pide modelar a los clientes, sólo importa cuĆ”ntos hay en el local en el momento del ataque).
  • Taller Clandestino: que haya mĆ”s atacantes capos que defensores del local en total, y ademĆ”s haya un atacante capo con mĆ”s puntos de honor que todos los defensores.
  • Casino: nunca conviene atacarlos.

Para realizar un ataque exitoso a una zona, esta debe estarcompletamente tomada por una sola familia (o sea, todos los locales tienen queestar ocupados por gente de la misma familia).

AdemƔs, es necesario que el grupo atacante tenga al menos eldoble de integrantes que los ubicados en toda la zona (en todos los locales dela zona, sean activos o no).

Ā 

Si el ataque a un local o zona es exitoso, todos losdefensores mueren, y un atacante activo cualquiera pasa a cada localconquistado; ademƔs el local, o todos los locales de la zona, pasa/n a lafamilia victoriosa.

Si un ataque (ya sea a un local o a una zona) no es exitoso,para cada integrante activo de la familia atacante sucede que: si tiene menosde 200 puntos de honor muere, si no pierde todas sus armas.

Ā 

Se pide:

Antes que nada


1.Ā Ā Ā Ā Ā Ā Ā Obtener para una familia

a.Ā Ā Ā Ā Ā Ā Ā Ā El conjunto de integrantes activos, y el de losintegrantes activos capos.

b.Ā Ā Ā Ā Ā Ā Ā Ā El conjunto de armas heavies.

c.Ā Ā Ā Ā Ā Ā Ā Ā Las zonas en las que tiene presencia, i.e. ocupaal menos un local.

Ā 

2.       Obtener la familia mÔs honorable (con mÔs puntosde honor) entre las que tienen presencia en una determinada zona.

Ā 

3.Ā Ā Ā Ā Ā Ā Ā Ataques a locales

a.        Lograr que las familias entiendan el mensaje perdistePorMasacre: unLocal, quelibera el local y mata (o sea, simplemente saca de todos lados) a losintegrantes de la familia que estÔn en el mismo.

b.        Realizar el ataque de un local con lasconsecuencias indicadas mÔs arriba, tanto si el ataque es exitoso como si no.

Ā 

4.       Realizar el ataque a una zona con lasconsecuencias indicadas mÔs arriba, tanto si el ataque es exitoso como si no.

Ā 

5.       MÔs estadísticas

a.        Saber para una familia, dado un conjunto dezonas, qué le conviene atacar en esas zonas; o sea:

ĀæEstĆ” bien que la respuesta tengalocales y zonas mezclados? SĆ­.

¿Esta bien que me incluya en larespuesta una zona y también locales de esa zona? Si.

b.        Saber si dos familias estÔn en conflicto, i.e.si ocupan locales en exactamente las mismas zonas (i.e. tienen que coincidirtodas las de una familia con todas las de la otra).

Clase 7 - MƩtodos y variables de clase

publicado a laā€Ž(s)ā€Ž 15 oct 2011 17:39 por gisela decuzzi Ā  [ actualizado el 15 nov 2011 8:08]

Clase 6 - Herencia

publicado a laā€Ž(s)ā€Ž 15 oct 2011 17:38 por gisela decuzzi Ā  [ actualizado el 15 nov 2011 8:09]

Resumen

Ā - Herencia como forma de compartir codigo entre instancias de distintas clases.
 - Clase como clasificación de conceptos
 - Abstracciones ricas: Tiene sentido subclasificar cuando tiene una relación conceptual y cuando hay comportamiento diferente y en común.
Ā - Concepto de clase abstracta
Ā - Relacion entre herencia y polimorfismo
 - super: es una referencia al mismo objeto que self.  Cambia el method lookup para empezar desde la clase inmediatamente superior a donde estÔ escrito el método.
Ā - Method lookup V. 3.47

¿Qué tengo que leer para saber mÔs de herencia, repasar, ser un groso, sacarme un 10 en objetos o levantarme minitas?

Para todo, menos para levantar minitas, pueden leer aca:

- Objetos en general: http://uqbar.no-ip.org/uqbarWiki/index.php/Paradigma_de_Objetos
- Herencia: http://uqbar.no-ip.org/uqbarWiki/index.php/Herencia
- Method Lookup: http://uqbar.no-ip.org/uqbarWiki/index.php/Paradigma_de_objetos_-_method_lookup
- Redefinición: http://uqbar.no-ip.org/uqbarWiki/index.php/Redefinici%C3%B3n
- super: http://uqbar.no-ip.org/uqbarWiki/index.php/Super
- Como crear subclases en Squeak/Pharo: http://uqbar.no-ip.org/uqbarWiki/index.php/C%C3%B3mo_crear_una_subclase_en_Squeak

Clase 5 - Responsabilidad y Delegación

publicado a laā€Ž(s)ā€Ž 14 sept 2011 11:54 por gisela decuzzi Ā  [ actualizado el 15 sept 2011 10:41 por Mariana Matos]

Repaso

Para repasar un poco y empezar con el tema usamos el enunciado de Micros, particularmente la parte de:
  • Hacer que una persona suba al micro
  • Saber si una persona quiere subir al micro
  • Saber si un micro puede subir a una persona
  • Subir a alguien si se puede
Llegamos a algo como:

Micro>>subirSiPodesA: persona
Ā Ā Ā  (self puedeSubirA: persona)
Ā Ā  Ā Ā Ā  Ā ifTrue: [self subirA: persona].
Micro>>puedeSubirA: persona
Ā Ā Ā  ^self tieneLugar and: [persona quiereSubirA: self].
Micro>>subirA: persona
Ā Ā  Ā self esElPrimero ifTrue: [primerPasajero := persona].
Ā Ā  Ā pasajeros := pasajeros + 1.

Rebelión en la granja:

[Versión Miércoles]
Vaca

  • Cuando come aumenta el peso en lo que comió / 2 y le da sed.
  • Cuando bebe se le va la sed y pierde 500 g de peso.
  • Conviene vacunarla una vez, o sea, si no se la vacunó conviene vacunarla, y si ya se la vacunó no conviene volverla a vacunar.
  • Tiene hambre si pesa menos de 200 kg.
Cerdo
  • Cuando come aumenta el peso en lo que comió – 200 g (si come menos de 200 g no aumenta nada); si come mĆ”s de 1 kg se le va el hambre, si no no.
  • Siempre conviene vacunarlo.
  • Cuando bebe se le va la sed, y le da hambre.
  • Si come mĆ”s de tres veces sin beber le da sed.
Dispositivos
Comederos
  • cada comedero da de comer una cantidad fija que varĆ­a para cada comedero, puede atender a los animales con hambre que pesen menos de lo que soporta el comedero, que tambiĆ©n es un valor que depende del comedero.
  • Un comedero normal necesita recarga si le quedan menos de 10 raciones, cuando se lo recarga se le cargan 30 raciones.
Bebederos
  • Dan de beber a un animal, pueden atender a los animales con sed.
  • Un bebedero necesita recarga cada 20 animales que atiende, lo que se le hace al recargarlo no se registra en el sistema (sĆ­ que se lo recarga para volver a contar desde ahĆ­ 20 animales atendidos).
Vacunatorios
  • Ā vacunan a un animal,
  • pueden atender a los animales que conviene vacunar y no fueron vacunados por Ć©l
  • Un vacunatorio necesita recarga si se queda sin vacunas, al atenderlo se le recargan 50 vacunas.
Estación de atención
  • Una estación de atención tiene muchos dispositivos y atiende animales. Atender a un animal para una estacion es hacerlo pasar por cada uno de sus dispositivos, ademas las estaciones se acuerdan de los animales que atendio y nos saben decir distintas cosas (ver parte C).
Se pide:
Parte A)
  1. hacer que un animal coma
  2. saber si un animal tiene hambre
  3. saber si un animal tiene sed
  4. hacer que un animal beba
Parte B)
  1. saber si un dispositivo puede atender a un animal
  2. saber si un dispositivo necesita recarga
  3. recargar un dispositivo
  4. hacer que un dispositivo atienda a un animal
  5. poder decirle a un dispositivo que atienda a un animal solo si puede.
Parte C)
  1. Saber si un animal puede ser atendido en una estación. Esto pasa cuando alguno de sus dispositivos puede atender al animal.
  2. Atender a un animal. Esto es hacerlo pasar por los dispositivos que lo pueden atender.
  3. Recargar los dispositivos que necesiten recarga.
  4. Poder saber para una estación:
    1. Si un animal fue atendido
    2. Cuantos animales fueron atendidos
    3. De los animales atendidos poder saber los que conviene vacunar
    4. La suma del peso de todos los animales atendidos
    5. El animal atendido mas pesado.
  5. Dadas dos estaciones poder saber que animales fueron atendidos en ambas.

[Versión Jueves]
Dominio limitado a comederos y bebederos con cerdos, vacas y gallinas (que siempre pesan 4 kilos, siempre tienen hambre y sed).
  1. Saber si un animal puede ser atendido por un dispositivo.
  2. Conocer el conjunto de dispositivos que pueden atender a un animal en un centro de atención
  3. Que un animal sea atendido por un dispositivo.
  4. Para los cerdos, cuÔnto comió la última vez que comió?
  5. Para los cerdos, cuÔnto fue el mÔximo que comió?
  6. Conocer todos los animales que se atendieron en todos los dispositivos de un centro de atención, sin repetidos

Cosas para seguir leyendo




Clase 4 - Clases

publicado a laā€Ž(s)ā€Ž 7 sept 2011 12:25 por gisela decuzzi

La clase la dividimos en:

Repaso

    • Escribimos de nuevo los mĆ©todos de pepita con ciudades
    • Hablamos de clonación
    • Hablamos de mĆ©todo look up
    • Importante acordarse que (con lo que vimos hasta acĆ”)
      • ĀæDonde estĆ”n los metodos? -> en el objeto (o en su prototipo)
      • ĀæDonde estĆ”n las variables? -> son del objeto (las puede tener porque se las agregue a Ć©l o porque vinieron definidas por su padre)
      • ĀæQuiĆ©n es self? -> el objeto que recibió el mensaje
      • ĀæCómo obtengo un objeto muy similar a otro -> clono
DespuƩs de la clase iban a cambiar varias de las respuestas a las preguntas. Esto era lo que venƭamos haciendo usando un esquema prototipado, existen otros y a partir de hoy en paradigmas vamos a usar otro esquema un poquito distinto: clases

Clase

    • La clase es un objeto igual a los que venĆ­amos viendo
      • una clase modela un concepto, es algo muy abstracto la clase Golondrina define lo que es ser una golondrina, es algo mas abstracto que antes que teniamos a peptia
      • el mensaje por excelencia que le vamos a mandar es new para obtener una instancia (recordar que todos nuestros objetos van a ser instancia de una clase)
    • Podemos ver a una clase como un molde de objetos
    • Hablamos del nuevo metodo look up
      • ĀæDonde estan los mĆ©todos? -> en la clase de la que es instancia mi objeto
      • ĀæDonde estan las variables? -> estĆ”n en el objeto (las defino en la clase)
      • ĀæQuiĆ©n es self? -> el objeto que recibio el mensaje
      • ĀæComo obtengo un objeto con el mismo comportamiento que otro? -> <nombre de la clase> new
      • ĀæPuedo redefinir como hice con prototipos? -> por ahora no, en las próximas clases veremos

Especialmente para los miƩrcoles:
Vimos de nuevo el tema de con quƩ objetos podes hablar en la definicion de un mƩtodo y por quƩ este mƩtodo estƔ mal:
Golonodrina>>initialize
lugarĀ  := bsAs.
Entonces... repasemos las 3 leyes de la objetomƔtica que mando Guille por mail

Primera ley)  Un objeto solo interactuarÔ con otros objetos a través de mensajes.
Segunda ley) Un objeto solo debe hablar con objetos que conozca a travƩs de sus variables, parƔmetros u objetos literales.
Tercera ley)   Un objeto no le pedirÔ cosas a otros objetos para él trabajar con eso, le delegarÔ el trabajo a su objeto conocido.



Para seguir practicando

  • En clase empezamos con el ejercicio del comedero (Ejercicio 3 de la guĆ­a dos de objetos) pueden terminarlo y hacer su continuacion que estĆ” en el ejercicio 2 de la guĆ­a 3
  • Pueden hacer los ejercicios de las guĆ­as 1, 2 y 3 de objetos que estĆ”n e la pĆ”gina.

Clase 3 - Bloques y Colecciones

publicado a laā€Ž(s)ā€Ž 1 sept 2011 16:45 por gisela decuzzi Ā  [ actualizado el 1 sept 2011 18:07]

Esta clase vimos con mucho mas detalle Colecciones y Bloques (ademas de repasar lo que ya habiamos visto).
Empezamos hablando de los bloques. Hicimos mucho MUCHO hincapié que un bloque es algo que ya conociamos: un objeto que entiende mensajes. Particularmente recalcamos que el bloque representa código y por lo general lo que vamos a querer hacer con el código es evaluarlo y esto se logra a traves del mensaje value.

Hablamos sobre la ventaja y el uso de los bloques por parte de los objetos booleanos y por quƩ escribir
pepita energia < 50 ifTrue: (pepita come: 100)

No se comporta como querríamos, ya que lo que buscamos es que solamente coma si su energia es < 50, por lo que digimos que queríamos diferir la evaluación de ese código (pepita come: 100)  y que para lograr esto contamos con los objetos bloques.

Para que quede claro hablamos de los objetos booleanos true y false e hicimos una posible implementación para ifTrue: llegamos a qué:
true>>ifTrue: bloque
Ā Ā Ā  bloque value.
false>>ifTrue: bloque
Ā Ā Ā  "no hacemos nada"
Después dijimos que en Pharo es muy similar la implementación solo que lo implementa devolviendo algo (pero que no hacía al caso del tema de los bloques).

NOTA: Así como los números ya vienen, los booleanos también y los podemos usar libremente por todo nuestro Pharo. Eso incluyue al Object Browser por lo que no es necesario definirlos ni escribir los métodos que usamos en el pizarrón.

Como comentario al margen hablamos de que no es lo mismo devolver (retornar) que mostrar. Digimos que mostrar es exponer algo al mundo mientras que retornar es algo interno a nuestro programa.

Hablamos de bloques con parÔmetros e implementamos nuestro bloque que espera tres parÔmetros y da una solución para la raíz de un polinomio cuadrÔtico. Nos quedó algo asi: [:a :b :c | (b negated + ((b raisedTo: 2)+ (4*a*c)) sqrt)/(2*a)]
Para evaluarlo dijimos que necesitabamos un mensaje con 3 parƔmetros y dijimos que los bloques entienden el mensaje value:value:value:
Por ejemplos si queremos que se evalĆŗe de forma que a valga 2 b 3 y c 4 teniamos que evaluar:
[:a :b :c | (b negated + ((b raisedTo: 2)+ (4*a*c)) sqrt)/(2*a)] value: 2 value: 3 value: 4.

Como verÔn el código que estÔ dentro del loque no es lo mas sencillo y estÔ lleno de paréntesis para los que no estan muy cancheros con cuestiones del lenguaje y su presedencia acÔ tienen un apunte cortito y muy muy interesante (con muchos ejemplos).

Seguimos avanzando para entrar en el tema de colecciones, quisimos que pepita se fuera de viaje y como buena golondrina (?) se llevaba su equipaje.
Empezamos diciendo que pepita se llevaba unas zapatillas nike, una cartera luisBoton y una guitarra gibson. Ahora como pepita no es una golondrina muy acaudalada se toma de esos viajes baratos pero que NO permiten pasarse en el peso... asi que queríamos saber el peso de la valija de pepita, pasamos por varias versiones y nos dimos cuenta que no sabiamos cuantos items se iba a llevar pepita en cada momento, ni queriamos tener que modificar código cada vez que pepita se lleve un nuevo elemento en su valija.
Llegamos a la conclusión que lo que queríamos era modelar un conjunto, y como estamos en el paradigma orientado a objetos dijimos que necesitabamos un objeto que modelara la idea de conjunto y que me sirviera cada vez que quiero tener muchas cosas de algo, por ejemplo en nuestro caso... nos serviría para modelar la valija en sí que es (para nosotros) un conjunto de items.
Nos quedamos con la idea de conjunto y hablamos de lo que queriamos hacer, como modela smalltalk esta idea, hablamos del objeto set que es objeto que entiende mensajes para agregar, sacar, contar cosas y varias cosas mƔs.
Hicimos una listita de mensajes que entienden las colecciones:
  • add:
  • remove:
  • includes:
  • size
  • isEmpty
  • count:
  • sum:
  • select:
  • collect:
Pueden ver mas mensajes y de hecho lo pueden tener siempre con ustedes el apunte de la guĆ­a de lenguajes (sĆ­, el siempre incluye el parcial).
Finalmente... hicimos el tp presencial.

ĀæComo seguimos?

Leyendo! Este resumen para empezar y los apuntes (con los links que les dejamos ahora y en las clases anteriores)
Practicando! Mucho, pueden hacer toda la guĆ­a 1 de objetos sin problemas.
Adjunto en este post pueden encontrar un apunte de colecciones y bloques mas explicado para ampliar lo que vimos en clase.

La materia sigue y cada vez se hace mas complicada, les recomendamos que se mantengan al dĆ­a porque a partir de acĆ” arrancamos para aprender nuevos conceptos asi que si no tenemos claros la base hace que todo sea cuesta arriba y eso no esta bueno.

Próxima clase

La clase que viene vamos a hacer un nuevo tp presencial en el laboratorio por lo que les aconsejamos que no falten :).

Clase 2 - Self - Polimorfismo - Clonacion

publicado a laā€Ž(s)ā€Ž 25 ago 2011 6:20 por gisela decuzzi Ā  [ actualizado el 25 ago 2011 6:35]

Clase 2 - Self - Polimorfismo - Clonacion

Esta clase fue bastante mas larga que la anterior y vimos unos cuantos conceptos nuevos y muy importantes.
Hablamos de self, dijimos que es una pseudovariable que referencia al objeto que recibió el mensaje y nos permite mandarle mensajes con lo que hablamos un poquito de Reutilización de código.
Hicimos mucho (MUCHO) hincapié en que repetir código estÔ mal. Para seguir leyendo sobre estas ideas les dejamos este artiulo de la wikipedia DRY.
A medida que fuimos avanzando en la clase necesitamos nuevas herramientas para no repetir código entonces hablamos de clonación, que es una implementación del esquema prototipado (OJO, los que conocen otros esquemas NO los confundan, mÔs adelante vamos a ver otros y vamos a explicar la diferencia con los prototipos). Hablamos de como se implementaen el object browser y dijimos que podemos clonar a nuestros objetos.
Hablamos del nuevo método Lookup donde primero busca el código en el objeto receptor del mensaje y después en su prototipo, dijimos que se pueden redefinir métodos. Esto nos trajo algunas consecuencias:
  1. El código ya no estÔ unicamente en el objeto al que le mando el mensaje
  2. Es importante entender quién es self en cada momento (dijimos que es MUY importante entender la diferencia entre... objeto que recibió el mensaje y objeto que contiene el método)
Hablamos de uno de nuestros conceptos favoritos en la materia Polimorfismo, lo vimos con un ejemplo y reconocimos en distintos casos los objetos que son polimorficos y quiƩn aprovecha ese polimorfismo.
En un momento quisimos manejar condiciones y hacer que pepita viaje hasta algun lugar sólo si puede, con lo cual vimos objetos booleanos y hablamos al pasar que en smalltalk no es necesario el concepto de estructura de control ajeno a su sintaxis (OBJETO MENSAJE) con lo que los booleanos entienden mensajes, particularmente hablamos de 3 mensajes que le podemos mandar:
  • ifTrue:
  • ifFalse:
  • ifTrue: ifFalse: (este es un mensaje con 2 parĆ”metros NO son 2 mensajes)
Hablamos de los objetos bloque que modela smalltalk y algunos mensajes que entienden (value, valPolimorfismo|ue:). Vimos algunos ejemplos en el pizarron de los bloques:
  • [2+3] (objeto bloque que contiene una Ćŗnica sentencia donde le manda el mensaje + con el parĆ”metro 3 al objeto 2)
  • [2+3] value. (el mismo objeto bloque que tenĆ­a antes solo que le envio el mensaje value que serĆ­a como decirle ejecutate, cuando lo seleccionemos y lo ejecutemos el objeto resultado serĆ” el objeto 5)
  • [:num|num+3]Ā  (objeto bloque que espera un parĆ”metro)
  • [:num|num+3] value: 2.

¿Cómo seguimos?

  • Practicando: mucho! No hay tp para la próxima clase pero serĆ­a muy sano que intenten resolver los ejercicios de la guĆ­a uno (del 1 al 4-a) los van a poder resolver sin problemas. Les recomendamos MUCHO MUCHO que hagan tambiĆ©n el ejercicio 7 de la guĆ­a 1 (que pueden encontrar acĆ”).
  • Leyendo
    • Ya pueden leer el segundo capĆ­tulo del apunte que estĆ” aca
    • En esta pĆ”gina se habla un poco del manejo de booleanos. La primera parte (true vs True) todavia no la vimos pero lo que sigue es muy interesante como para prestarle atención.
    • En esta pĆ”gina se habla de las diferencias entre objetos y procedural basĆ”ndose en un ejercicio de la guĆ­a uno.
    • Hay que leer el apunte de objetos bĆ”sicos del smalltalk

Clase 1 - Objeto Mensaje

publicado a laā€Ž(s)ā€Ž 20 ago 2011 5:49 por gisela decuzzi Ā  [ actualizado el 20 ago 2011 6:14]

Vimos



Para la clase que viene

Leer el apunte de objetos capƭtulo 1 (Ojo, no confundir con el apunte de objetos bƔsicos)
Instalar el object browser (Les recomendamos que usen la version #stable). Sobre dudas de como usarlo tienen el manual en la pƔgina, y aca pueden encontrar una guƭa rƔpida. Cualquier consulta la mandan al grupo de la materia, al cual ya se deberƭan de haberse suscripto :)

TP1

Para la clase que viene (miƩrcoles 24/08 o jueves 25/05) hay que entregar el TP1 (impresa la exportacion de la leccion, SI, CON TODOS LOS CHIRIMBOLOS RAROS. NO SE ADMITEN TPS EN WORD).
Tienen que pasar al Object Browser / LOOP lo mismo que hicimos en clase, es decir.
Codificas a nuestra golondrina favorita: pepita. Permitiendo que pueda:
  • volar una determinada cantidad de kilometros (cuando pepita vuela su energia disminuye)
  • comer una determinada cantidad de gramos de alpiste (cuando pepita come su energia aumenta)
  • poder saber la energia de pepita
Tienen que hacer un workspace probando los métodos que hicieron, cuando guardan el workspace (con control-s) en la exportación de la lección ya viene, asi que no se olviden de guardarlo antes de cerrarlo.