Autor |
Mensaje |
ezequiel.grillo
Nivel 4
Registrado: 11 Abr 2011
Mensajes: 74
Carrera: Informática y Sistemas
|
|
Estoy tratando de hacer el TP0 pero tengo un par de dudas.
Me dan un codigo en Smalltalk y lo que tengo q hacer es que se lleguen a imprimir los cuatro mensajes
El codigo es este:
Cita:
|
| usb archivo1 archivo2 |
usb := Usb new.
archivo1 := Archivo new.
archivo1 nombre: 'archivo1.txt'.
archivo1 tamanio: 1000.
usb copiar: archivo1.
archivo2 := Archivo new.
archivo2 nombre: 'archivo2.doc'.
archivo2 tamanio: 2000.
usb copiar: archivo2.
(usb tieneTxt) ifTrue: [ Transcript show: 'Prueba 1 Ok.';cr ].
(usb tieneJpg) ifFalse: [ Transcript show: 'Prueba 2 Ok.';cr ].
(usb espacioOcupado == 3000) ifTrue: [ Transcript show: 'Prueba 3 Ok.'; cr ].
(archivo1 tamanio < archivo2 tamanio) ifTrue: [ Transcript show: 'Prueba 4 Ok.'; cr ].
|
Ya cree la clase Archivo con los atributos nombre y tamanio.
Pero no logro entender como hacer la clase Usb, especialemente el metodo "copiar". Supongo que lo q tengo q hacer es copiar los datos que estan en archivo1 en usb y desp agregar los datos de archivo2 pero no entiendo como obtener los datos que estan guardados en el archivo 1 y 2??
Me esta costando mas de lo que pensaba este TP jaja
|
|
|
|
|
|
|
|
|
ezequiel.grillo
Nivel 4
Registrado: 11 Abr 2011
Mensajes: 74
Carrera: Informática y Sistemas
|
|
Listo gente mande un poco de fruta y pasó.
Gracias igual.
|
|
|
|
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Aprovecho el post para hacer una consulta yo sobre mi TP 0.
Pude hacer pasar las dos primeras pruebas, pero no puedo la tercera por lo siguiente.
Tengo una clase canasta con un atributo peso y cuando le defino el metodo agregar, este agrega el peso de la fruta que esta recibiendo (hasta acá funciona pués lo pruebo mediante Transcript Show) pero cuando agrego una segunda fruta este peso debe almacenar el que traía antes + el de la nueva fruta. Pero cuando hago esto me tira un error con el +
Alguna idea de qué estoy haciendo mal, me estoy leyendo el Pharo by example pero no encuentro nada!
Gracias!
|
|
|
|
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Aclaro un poco más mi problema porque no puedo darme cuenta que estoy haciendo mal.
Cuando llamo un método, modifico uno de mis atributos de la clase:
pesoCanasta es un atributo de la clase Canasta y peso es un atributo de la clase fruta.
agregar: fruta.
pesoCanasta:= pesoCanasta+ peso fruta.
Cuando solo le asigno al peso de la canasta el peso fruta lo hace correctamente, pero cuando agrego otra fruta quiero que no guarde solo el peso de la última fruta agregada sino el que ya traía más la nueva fruta y ahi es cuando me tira: " + receiver nill " de error.
|
|
|
|
|
|
|
|
|
Fefee.33
Nivel 6
Edad: 31
Registrado: 09 Sep 2011
Mensajes: 212
Carrera: Informática
|
|
Y, por lo que entiendo del error, claramente le estas pasando un Nil como parámetro. El código que pusiste ahí esta bien, el error esta en otro lado.
|
|
|
|
_________________ http://save-community.com/
|
|
|
|
|
cyng
Nivel 8
Registrado: 04 Jul 2010
Mensajes: 472
Carrera: Informática y Sistemas
|
|
Si queres agregar fruta,no te conviene usar una OrderedCollection para eso?? Me parece que se te va a ser mucho mas facil
|
|
|
|
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
El tema es que no logro entender de qué otro lado viene el error.
Y con el orderedCollection intenté también pero lo que sigue fallandome es cuando en el atributo peso de la clase canasta quiero ir almacenando todos los pesos de las frutas que van ingresando (es decir que se vayan sumando), ahí es dónde me tira el error.
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
Revisá como creas los distintos objetos fruta. Capaz hay alguno que la estás pifiando.
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
fer90 escribió:
|
Revisá como creas los distintos objetos fruta. Capaz hay alguno que la estás pifiando.
|
Pero cuando analizo cada fruta por separado se crean bien, es decir a cada una se le asigna el peso correspondiente (hago Transcript show: nombredelafruta peso y me retorna el peso correspondiente).
Creo que el problema pasa más por la clase canasta que por la clase fruta,
Cuando a la clase canasta llamo el metodo agregar fruta, y en peso (atributo de la canasta) le asigno el peso de una fruta lo guarda bien y lo imprime bien, el problema es cuando al agregarle otra fruta quiero que a ese atributo peso le sume lo que tenía antes más el nuevo peso de la fruta lo que escribí como:
peso:=peso+fruta peso (ahí me tira el error del + receiver nil
pero si hago
peso:=peso fruta (lo hace correctamente, pero estoy pisando el valor viejo)
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
Probá lo siguiente:
self peso := (self peso) + (fruta peso)
Estoy medio oxidado con Smalltalk ya pero se me ocurre que quizás el sistema está teniendo problemas interpretando los diferentes nombres que refieren a otra cosa, pero que son iguales.
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Ya lo había intentado pero no me deja, se me pone en rojo y no me lo acepta!
No se que hacer, estoy muy trabado con esto!
Gracias por las respuestas!
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
¿Qué es lo que se pone en rojo?
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
self peso := (self peso) + (fruta peso)
y cuando le doy acept me queda así:
self peso Nothing more expected ->:= (self peso) + (fruta peso)
|
|
|
|
|
|
|
|
|
Igoicoa
Nivel 3
Edad: 33
Registrado: 01 Jul 2010
Mensajes: 56
Ubicación: Nuñez
Carrera: Informática
|
|
Probé con:
peso:= (self peso) + (fruta peso).
Ahí no se pone en rojo, pero cuando lo corro me dice lo mismo "receiver of + is nil "
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
Pasá el code de cómo estás creando el objeto fruta. Si no lo queres pasar pasamelo por PM y veo que onda.
Evidentemente el problema no está 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!!!
|
|
|
|
|
|