Autor |
Mensaje |
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
te faltó poner el "new"?
conjunto := OrderedCollection new.
EDIT: BTW, cuando salta la ventana de error, podés fijarte exactamente en qué parte del code está dicho error con alguna de las opciones. Cuando eso pase y no tengas ni idea de cómo arreglarlo, pegá el error con la respectiva parte del code acá.
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
buscando en internet encontre algo, no se si servira. fer90 si llegas en encontrar una rta igual tirala, que mañana trato de terminarlo ^^u....es el unico medodo q me falta igual, supongo q si los demas estan bien me lo aprobaran el tp
Saluteee
|
|
|
|
|
|
|
|
|
Marvel
Nivel 4
Registrado: 28 Nov 2009
Mensajes: 84
Carrera: Sistemas
|
|
Ya que estan hablando del tema...como leo algo por teclado en pharo? Por que tengo que ingresar valores al vector y la verdad no tengo la menor idea de como hacer para leer por teclado. Osea yo quiero hacer:
unaColeccion:= Coleccion new.
unaColeccion agregar: 100
Como leo ese 100? Nose como hacer para pasar por parametro algo a un metodo...
Gracias de antemano!
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
Marvel escribió:
|
Ya que estan hablando del tema...como leo algo por teclado en pharo? Por que tengo que ingresar valores al vector y la verdad no tengo la menor idea de como hacer para leer por teclado. Osea yo quiero hacer:
unaColeccion:= Coleccion new.
unaColeccion agregar: 100
Como leo ese 100? Nose como hacer para pasar por parametro algo a un metodo...
Gracias de antemano!
|
No es necesario "leer por teclado".
El método (o "mensaje" como los llama Fontela en la primer clase teórica) pasa como parámetro el objeto "100". Ahora bien, cuando vos escribís el método corresponiente en la clase correspondiente, tenés que especificar que se le va a pasar un parámetro.
Por ejemplo, en tu caso, el code del método será:
agregar: unElemento
"Cuerpo del método"
Ese "unElemento" que escribís ahí, es el parámetro correspondiente, y dentro del cuerpo de tu método utilizarás "unElemento" para lo que sea que el método haga.
Es lo mismo que en C, que las funciones tiene sus parámetros (con el nombre que vos le indiques) y los usás en el cuerpo de la función como vos quieras. Al momento de llamar a la función, ésta toma el argumento que se la pasa en el llamado.
En tu caso, cuando se pase el método agregar: 100, unElemento será reemplazado por 100.
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
ajam!! o sino podes hacer algo q debatimos en la pagina anterior, creas un atributo de la clase OrderedCollection y usas los metodos ya definidos por el OrderedCollection. Ej:
conjunto := OrderedCollection new
conjunto add: 100
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
obviamente, al metodo le tenes q pasar un parametro. Podes poner:
agregar: unElemento
conjunto add: 100
donde previamente tuviste que haber definido
conjunto := OrderedCollection new
con el metodo initialize
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
Cita:
|
te faltó poner el "new"?
conjunto := OrderedCollection new.
|
no no, el "new" lo puse. Fue, lo pregunto en clase. Si me lo saben explicar dejo la rta aca para el prox que tenga la misma duda, sino lo seguimos charlando
|
|
|
|
|
|
|
|
|
Marvel
Nivel 4
Registrado: 28 Nov 2009
Mensajes: 84
Carrera: Sistemas
|
|
fer90 escribió:
|
Marvel escribió:
|
Ya que estan hablando del tema...como leo algo por teclado en pharo? Por que tengo que ingresar valores al vector y la verdad no tengo la menor idea de como hacer para leer por teclado. Osea yo quiero hacer:
unaColeccion:= Coleccion new.
unaColeccion agregar: 100
Como leo ese 100? Nose como hacer para pasar por parametro algo a un metodo...
Gracias de antemano!
|
No es necesario "leer por teclado".
El método (o "mensaje" como los llama Fontela en la primer clase teórica) pasa como parámetro el objeto "100". Ahora bien, cuando vos escribís el método corresponiente en la clase correspondiente, tenés que especificar que se le va a pasar un parámetro.
Por ejemplo, en tu caso, el code del método será:
agregar: unElemento
"Cuerpo del método"
Ese "unElemento" que escribís ahí, es el parámetro correspondiente, y dentro del cuerpo de tu método utilizarás "unElemento" para lo que sea que el método haga.
Es lo mismo que en C, que las funciones tiene sus parámetros (con el nombre que vos le indiques) y los usás en el cuerpo de la función como vos quieras. Al momento de llamar a la función, ésta toma el argumento que se la pasa en el llamado.
En tu caso, cuando se pase el método agregar: 100, unElemento será reemplazado por 100.
|
Muchisimas gracias! Ahora tengo otro tema...como hago para obtener un elemento de mi vector. Ejemplo: Hago:
unVector:= OrderedCollection new.
unVector add: 100.
Transcript show: [unVector get:1]
Pero esto no me devuelve 100 sino "[unVector get:1]"
Me falta esto y ya casi estoy, la verdad re jodido hacer este tp, no por la difucultad, nos largaron en re bolas los profesores, tanta charla se mando sobre como "hacer un mejor curso" y al final no explico nada de sintaxis de Pharo...
|
|
|
|
|
|
|
|
|
Marvel
Nivel 4
Registrado: 28 Nov 2009
Mensajes: 84
Carrera: Sistemas
|
|
fer90 escribió:
|
Marvel escribió:
|
Ya que estan hablando del tema...como leo algo por teclado en pharo? Por que tengo que ingresar valores al vector y la verdad no tengo la menor idea de como hacer para leer por teclado. Osea yo quiero hacer:
unaColeccion:= Coleccion new.
unaColeccion agregar: 100
Como leo ese 100? Nose como hacer para pasar por parametro algo a un metodo...
Gracias de antemano!
|
No es necesario "leer por teclado".
El método (o "mensaje" como los llama Fontela en la primer clase teórica) pasa como parámetro el objeto "100". Ahora bien, cuando vos escribís el método corresponiente en la clase correspondiente, tenés que especificar que se le va a pasar un parámetro.
Por ejemplo, en tu caso, el code del método será:
agregar: unElemento
"Cuerpo del método"
Ese "unElemento" que escribís ahí, es el parámetro correspondiente, y dentro del cuerpo de tu método utilizarás "unElemento" para lo que sea que el método haga.
Es lo mismo que en C, que las funciones tiene sus parámetros (con el nombre que vos le indiques) y los usás en el cuerpo de la función como vos quieras. Al momento de llamar a la función, ésta toma el argumento que se la pasa en el llamado.
En tu caso, cuando se pase el método agregar: 100, unElemento será reemplazado por 100.
|
Muchisimas gracias! Ahora tengo otro tema...como hago para obtener un elemento de mi vector. Ejemplo: Hago:
unVector:= OrderedCollection new.
unVector add: 100.
Transcript show: [unVector get:1]
Pero esto no me devuelve 100 sino "[unVector get:1]"
Me falta esto y ya casi estoy, la verdad re jodido hacer este tp, no por la difucultad, nos largaron en re bolas los profesores, tanta charla se mando sobre como "hacer un mejor curso" y al final no explico nada de sintaxis de Pharo...
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
naaaaa.....no te puedo creer!! ya lo solucione, por unos parentesis del o... me tiraba ese error, osea yo estaba poniendo:
conjunto at: 3>conjunto at: 2 ifTrue: [^ true] ifFalse: [^ false]
y despues de leer un poco de precedencia en smalltalk, me di cuenta que era asi:
(conjunto at: 3)>(conjunto at: 2 ) ifTrue: [^ true] ifFalse: [^ false]
que OJO!!! no es lo mismo que poner:
(conjunto at: 3 > conjunto at: 2) ifTrue: [^ true] ifFalse: [^ false]
porque siempre lo evalua de izquierda a derecha y en base a mensajes. En resumen: una cag... el lenguaje este
bueno, un saludo a fer90 por la ayudita
|
|
|
|
|
|
|
|
|
fer90
Nivel 9
Edad: 33
Registrado: 14 Sep 2009
Mensajes: 1117
Ubicación: San Martín
Carrera: Informática y Sistemas
|
|
Marvel escribió:
|
fer90 escribió:
|
Marvel escribió:
|
Ya que estan hablando del tema...como leo algo por teclado en pharo? Por que tengo que ingresar valores al vector y la verdad no tengo la menor idea de como hacer para leer por teclado. Osea yo quiero hacer:
unaColeccion:= Coleccion new.
unaColeccion agregar: 100
Como leo ese 100? Nose como hacer para pasar por parametro algo a un metodo...
Gracias de antemano!
|
No es necesario "leer por teclado".
El método (o "mensaje" como los llama Fontela en la primer clase teórica) pasa como parámetro el objeto "100". Ahora bien, cuando vos escribís el método corresponiente en la clase correspondiente, tenés que especificar que se le va a pasar un parámetro.
Por ejemplo, en tu caso, el code del método será:
agregar: unElemento
"Cuerpo del método"
Ese "unElemento" que escribís ahí, es el parámetro correspondiente, y dentro del cuerpo de tu método utilizarás "unElemento" para lo que sea que el método haga.
Es lo mismo que en C, que las funciones tiene sus parámetros (con el nombre que vos le indiques) y los usás en el cuerpo de la función como vos quieras. Al momento de llamar a la función, ésta toma el argumento que se la pasa en el llamado.
En tu caso, cuando se pase el método agregar: 100, unElemento será reemplazado por 100.
|
Muchisimas gracias! Ahora tengo otro tema...como hago para obtener un elemento de mi vector. Ejemplo: Hago:
unVector:= OrderedCollection new.
unVector add: 100.
Transcript show: [unVector get:1]
Pero esto no me devuelve 100 sino "[unVector get:1]"
Me falta esto y ya casi estoy, la verdad re jodido hacer este tp, no por la difucultad, nos largaron en re bolas los profesores, tanta charla se mando sobre como "hacer un mejor curso" y al final no explico nada de sintaxis de Pharo...
|
Ahora no recuerdo exacta la sintaxis pero probá sacar los corchetes y poner paréntesis en vez de eso.
Cuando vos usás corchetes estás delimitando un bloque de código. (Por ejemplo IfTrue: ["Bloque de codigo si es verdadero"]).
Ahora bien, el método "show" que le pasás, al encerrar "unVector get:1" entre corchetes creo que lo está tomando como un string, y justamente te está mostrando exactamente eso.
Es decir, no es que el método "get" está devolviendo "unVector get:1", sino que Smalltalk está tomando esa línea como un string para mostrar en el transcript.
|
|
|
|
_________________ ¿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!!!
|
|
|
|
|
Marvel
Nivel 4
Registrado: 28 Nov 2009
Mensajes: 84
Carrera: Sistemas
|
|
No che, no anda ni con eso, la verdad me esta sacando canas verdes, encima me lei los 3 capitulos que dijo el profe y ni asi, que vena este tp!!!
|
|
|
|
|
|
|
|
|
Uciel
Nivel 6
Edad: 33
Registrado: 16 Ago 2010
Mensajes: 288
Carrera: Informática
|
|
jajaja...si a mi me paso lo mismo, no se en q curso estaras de fontanella pero los profes nos explicaron muy por el aire como usar Pharo.
¿probaste con "unVector at:1" ?
|
|
|
|
|
|
|
|
|
Marvel
Nivel 4
Registrado: 28 Nov 2009
Mensajes: 84
Carrera: Sistemas
|
|
Uciel escribió:
|
jajaja...si a mi me paso lo mismo, no se en q curso estaras de fontanella pero los profes nos explicaron muy por el aire como usar Pharo.
¿probaste con "unVector at:1" ?
|
Con eso funciono pero no puedo ponerlo en un mismo corchete, onda esto no puedo hacerlo:
Transcript show: [lista at:1 printString]
Pero si lo hago asi:
x:= lista at:1.
Transcript show: x printString
Si anda, que lenguage mas choto...
Ademas tengo el drama de que quiero hacer
n:= vector size.
1 to: n do:[:elemento | sumatoria:= sumatoria + vector at:elemento]
Y lo probe 25 veces y siempre explota, se me desordena todo y me tira 12312312 errores y encima me desordena el codigo. Definitivamente odio este lenguage
saludos!
|
|
|
|
|
|
|
|
|
Lautaz
Nivel 8
Registrado: 05 Sep 2008
Mensajes: 550
Carrera: Informática y Sistemas
|
|
Hola, creo que con usar paréntesis basta, si no me equivoco se te están mezclando las prioridades, es decir:
Transcript show: (lista at: 1).
El printstring es redundante, ya lo hace el Transcript show. Los corchetes son para definir bloques de código.
Y sí, Smalltalk es muy molesto. Reconozco, sin embargo, que cuando te acostumbrás un poco no es tan pesado.
|
|
|
|
_________________ 61.7
Death ... By exile
|
|
|
|
|
|
Ir a página Anterior 1, 2, 3 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 CrackerTracker365 Attacks blocked.
|