Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 4:37 pm  Asunto:  Arrays en Pharo Responder citandoFin de la PáginaVolver arriba

Siguiendo con Pharo para poder hacer el 1º TP0 me surgio una duda.

Supongamos que tengo el codigo:

unaSecuencia := Secuencia new.

(unaSecuencia estaVacia) ifTrue: [Transcript show: 'Prueba 1 OK'].
Transcript cr.

(este es un pedaso de codigo del TP, pero quiero ver si la idea va encaminada)

Tengo que hacer que el codigo antes escrito, sin modificarlo, funcione. Entonces se me ocurrio definir la clase Secuencia (que no esta definida) como un Array para poder usar los metodos de éste. ¿Como hago eso? ¿se puede hacer sin modificar el codigo prenste? tendria que ser en la parte del System Browser seguro pero, ¿donde?

Saludos Smile


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 5:08 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Básicamente, el system browser lo vas a utilizar para crear tus clases, con sus correspondientes métodos.

Te recomiendo que leas el Pharo By Example para entender el funcionamiento de este sistema. Te va a saber contestar varias dudas. Tengo una versión en español si no te llevás con el inglés. Manda MP con tu mail y te lo envío.

Ves en el browser que la primera clasificación de las clases son categorías. Dentro de cada categoría tenés las clases correspondientes. Clickeando en cada clase podes ver los métodos de la misma.
Podés crear tu propia categoría que se añade a la lista de categorías. Al entrar, clickeando en el cuadro de la lista de clases, modificás el code por defecto con el nombre que le querés dar a tu clase (en este caso "Object subclass: #Secuencia")y los atributos correspondientes (en instanceVariableNames). Estarías creando una clase llamada Secuencia con los atributos que le indiques.
Una vez hecho esto vas al cuadro de métodos para comenzar a definir tus métodos de una forma parecida a lo que hiciste con las clases.
Podés ver ejemplos del code en clases y métodos en otras categorías.

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 5:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

si si, esa parte ya la hice. Cree la clase y sus atributos. Pero ¿¿como hago para que secuencia sea de la clase Array?? se me ocurrio sino que uno de sus atributos podria ser de la clase Array pero al no ser como en c++(tipoDeDato nombreDelAtributo) no se como escribirlo :S

PD: el pharo By Example lo tengo! ya lei los 3 primeros caps, pero no me dice nada de como hacer lo q quiero hacer!!


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 5:29 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si querés que Secuencia herede de Array, tenés que cambiar en la definición de la clase lo siguiente.

En vez de Object subclass: #Secuencia.
Tiene que ser: Array subclass: #Secuencia.

Sin embargo, yo creo que en vez de eso, como decís, tendrías que tener un atributo que sea instancia de Array o de alguna colección que te guste :P.

Para eso definis el nombre de tu atributo como te dije más arriba y en el método initialize (método que se llama SIEMPRE al instanciar) de la clase Secuencia, a tu variable le asignás una instancia de la clase que quieras (Array por ejemplo).
nombreDeTuVariable := Array new.

No es necesario que la variable tenga un determinado tipo, ya que Smalltalk es tipado dinámico, es decir, el chequeo de tipos es en tiempo de ejecución. Esto último lo vas a entender mejor más entrado el cuatri, cuando lo explique Fontela, pero podés leer algo en internet.

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 5:33 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Cita:
Para eso definis el nombre de tu atributo como te dije más arriba y en el método initialize (método que se llama SIEMPRE al instanciar) de la clase Secuencia, a tu variable le asignás una instancia de la clase que quieras (Array por ejemplo).

nombreDeTuVariable := Array new.


voy a intentar por este lado, ya que herencia todavia no lo vimos en clase ^^u....y en a&p II no lo explicaron.

Bueno, veo si sale con eso, sino vuelvo a preguntar :^P

saludos Smile


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 5:35 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Uciel escribió:
Cita:
Para eso definis el nombre de tu atributo como te dije más arriba y en el método initialize (método que se llama SIEMPRE al instanciar) de la clase Secuencia, a tu variable le asignás una instancia de la clase que quieras (Array por ejemplo).

nombreDeTuVariable := Array new.


voy a intentar por este lado, ya que herencia todavia no lo vimos en clase ^^u....y en a&p II no lo explicaron.

Bueno, veo si sale con eso, sino vuelvo a preguntar :^P

saludos Smile


Preguntá lo que quieras.

Me enteré que el cuatri pasado no habían explicado de qué iba el método initialize en alguna de las prácticas. Buscá info sobre eso porque es sumamente importante :P

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
karajero
Nivel 8


Edad: 34
Registrado: 15 Nov 2009
Mensajes: 890

Carrera: Sistemas
burkinafaso.gif
MensajePublicado: Sab Ago 25, 2012 5:50 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No te olvides que también tenés la lista de correo de la materia para hacer consultas.

_________________
Image

Capricornio Género:Masculino Serpiente OfflineGalería Personal de karajeroVer perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 6:40 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

buenas!! ya casi termino, lo que me dijiste fer90 me vino como anillo al dedo. Pregunta:
Se supone que la Secuencia (clase de la que hable antes) almacena 3 numeros: 1, 10, 100. En el TP te piden que hagas un metodo que te devuelva si la Secuencia esta ordenada ascendentemente osea:

unaSecuencia estaOrdenadaAscendente ifTrue: [Transcript show: 'Prueba 2 OK'].

mi pregunta es, ¿¿como hago para que un metodo retorne un boolean??

probe con:

blablablabla ifTrue: [^ True] ifFalse: [^ False]

pero no anduvo :S

alguna ayudita??


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 6:42 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si. Tené en cuenta que Smalltalk es case sensitive. Por ende, "True" no es lo mismo que "true". Ese es el fallo.
Cuando hablás de True estás hablando de la Clase True (que desciende de Boolean si no recuerdo mal. Podés verlo en la categoría Object mepa) propiamente dicha (lo mismo para False). Para devolver el objeto booleano, tenés que devolver "true".

blablablabla ifTrue: [^ true] ifFalse: [^ false]

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 7:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

eso tambien lo probe pero no funciono :S

me dice : MessagedontUnderstood: False > ><
False (Object) doesnotUnderstand: #<


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 7:20 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Pegá el code que tengas en ese método.

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 7:27 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

estaOrdenadaAscendente
"verifica si los numeros que conforman el conjunto estan de menor a mayor"

(conjunto at: 3 > conjunto at:2) ifTrue: [^ true] ifFalse: [^ false]

le hice una modificacion al "blablabla" y ahora me tira otro error distinto XD

conjunto vendria a ser el atributo del "tipo" Array


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 7:32 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

otro detalle, sino si influye o no, es que no use un Array sino una OrderedCollection


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
fer90
Nivel 9


Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
CARRERA.informatica.png
MensajePublicado: Sab Ago 25, 2012 7:42 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¿Cuál es el nuevo error?
No veo errores de sintaxis.

_________________
¿Y quién te va a tirar las postas y truquitos para cada materia?
Nosotros...Chat-Fiuba. Somos más grandes que Jesús.

Cumple sus sueños quien resiste!!!

Tauro Género:Masculino Caballo OfflineGalería Personal de fer90Ver perfil de usuarioEnviar mensaje privado
Uciel
Nivel 6


Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288

Carrera: Informática
argentina.gif
MensajePublicado: Sab Ago 25, 2012 7:57 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

doesUnderstand: #at:at:

MessagedontUnderstood: OrderedCollection


Tauro Género:Masculino Caballo OfflineGalería Personal de UcielVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.4830s ][ Pedidos: 20 (0.3981s) ]