Begin Main Content

Saludos a todos, ando con un problema sobre la pregunta 6. La de agregar 0 a los operandos faltantes, en si es una duda de letra. Por lo que entiendo no hay necesidad de implementar nada de codigo para esto, ya que al momento de llamar al metodo lastObject del operandStack si el mismo llega a estar nulo se realiza la conversion a 0 automaticamente.

Osea no le veo necesario hacer un condicional ya que al momento de hacer la conversion a NSNumber ya es "convertido" a cero...

Saludos

preguntado 01 Jul '12, 09:44

njguibert%40gmail.com's gravatar image

njguibert@gm...
11335
accept rate: 0%


Buenas

A mi me surge la siguiente duda con respecto a este tema, al usar un operando en operaciones con dos:

Si hago 6 +, lo logico es q devuelva 6, pq interpreta que el primer operando es 0, y el orden de los operandos no importa Si hago 6 *, lo logico es q devuelva 0, pq interpreta que el primer operando es 0, y el orden de los operandos no importa Si hago 6 /, he puesto que devuelve 0 también, pq si divido entre 0 interpreto que también devuelvo 0

Pero mi duda surge en la resta, si hago 6 -, como interpreta que el primer operando es 0, el resultado es -6. Para mi el resultado logico es 6, por ello en este caso estoy controlando el numero de elementos del stack, para el caso que tenga un operando,no haga 0 - el operando.

¿Que os parece a vosotros?

enlace permanente

respondido 01 Jul '12, 10:14

daniel.bolanos.asenjo%40gmail.com's gravatar image

daniel.bolan...
41101011
accept rate: 0%

Pues según la explicación de la tarea en los videos, le dan vuelta a los operandos, sacadoPrimero, sacadoSegundo, Resultado = sacadoSegundo - sacadoPrimero.

Entonces tendríamos Resultado = 0-6 = -6

Pienso que será mejor seguir la forma como lo hicieron en la tarea.

(01 Jul '12, 10:48) cuevasimeryj...

Heyyyy, estas cometiendo un error garrafal, estas a tiempo de arreglarlo, x/0 Para cualquier X NO DA CERO, LA DIVISION ENTRE CERO NO ESTA DEFINIDA!!!!!!! MOSCA CON ESO, AL IGUAL QUE UNA RAIZ NEGATIVA, ES DECIR sqrt(-x) PARA CUALQUIER X no existe, debes atrapar ambos errores

(01 Jul '12, 22:17) jam1987@gmai...

En realidad no hay que implementar nada en este punto... el codigo ya funciona asi... la cosa es que ustedes entiendan porque es este el caso y entiendan que esta pasando.

enlace permanente

respondido 02 Jul '12, 01:00

alilemus%40galileo.edu's gravatar image

alilemus@gal... ♦
1.0k6611
accept rate: 20%

Lo único que puede alterar esto es el orden, la tarea no especifica, yo lo único que agregué es que el POP regrese 0 si no hay operandos, de ahi lo tomé igual que tu planteamiento.

enlace permanente

respondido 01 Jul '12, 09:49

cuevasimeryjc%40gmail.com's gravatar image

cuevasimeryj...
1.0k81420
accept rate: 5%

Hice lo mismo, aún viendo que devolvía el valor 0 en la conversión forcé que POP devolviese 0 directamente en estos casos.

enlace permanente

respondido 01 Jul '12, 10:15

hbatalla%40gmail.com's gravatar image

hbatalla@gma...
50229
accept rate: 0%

Creo que en esta ocasión la pregunta no está muy bien planteada. Yo como lo interpreto es que deberemos de poner en el display del stack de operaciones un 0. Creo que es más un tema de visualización que de operativa, pues como dicen más arriba la calculadora funciona bien desde el inicio pues nil al pasarlo a numérico es 0

enlace permanente

respondido 01 Jul '12, 13:56

fernandolachica%40gmail.com's gravatar image

fernandolach...
179101925
accept rate: 3%

editó 01 Jul '12, 14:04

Como los operandos los tomas siempre del Stack aún en el caso en el que estas a la mitad de introducir un numero ya que al presionar alguna operación se hace un <enter> implícito, si falta algún operando es porque falta del Stack o esta vacío. Si este es el caso entonces retornamos un cero. Y esto se podría implementar en popOperand.

Saludos.

enlace permanente

respondido 01 Jul '12, 14:32

gonzalec%40gmail.com's gravatar image

gonzalec@gma...
206348
accept rate: 4%

Creo también que es por si el usuario el primer botón que aprieta es el punto "." entonces en los 2 displays debes poner 0. que es lo que hace una calculador e normal, para ello debes usar NSRange y userIsInTheMiddleOfTypingANumber, validas que sea la primer vez que presiona un botón y si este es . entonces asignas al display un 0.

enlace permanente
Esta respuesta está marcada como "wiki comunitario".

respondido 01 Jul '12, 15:45

huizzipolo%40yahoo.com's gravatar image

huizzipolo@y...
766712
accept rate: 0%

En los 2 displays? para mi solo en la pantalla deberías de hacer eso, el display LABEL del historial solo es para lo que pasa por el BRAIN, recuerda que el "." es simplemente parte de un número y su comportamiento debe ser como el de un dígito (número).

(01 Jul '12, 18:42) cuevasimeryj...

Según como va el video y la notación que se esta usando para los operadores, yo deje la siguiente operación: 6- = 0-6 ---> -6

enlace permanente

respondido 01 Jul '12, 20:33

lrchfox3%40gmail.com's gravatar image

lrchfox3@gma...
1
accept rate: 0%

Mosca como estan tomando los elementos, recuerden que la resta NO TIENE PROPIEDAD CONMUTATIVA, eso implica que cuando alguien presiona 4 enter 6 enter (-) deben tomarlo como 4-6, eso implica que deben saber como trabaja la pila (FIRST IN FIRST OUT) ojo con eso

enlace permanente

respondido 01 Jul '12, 22:20

jam1987%40gmail.com's gravatar image

jam1987@gmai...
64123
accept rate: 5%

USTED DEBE ACCEDER AL SISTEMA PARA PODER RESPONDER O REALIZAR UNA PREGUNTA.

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Trucos del editor

  • *cursiva* o _cursiva_
  • **negrita** o __negrita__
  • enlace:[texto](http://url.com/ "Pregunta")
  • imagen?![alt texto](/path/img.jpg "Pregunta")
  • lista numerada: 1. Foo 2. Bar
  • Para añadir un salto de línea simplemente añade dos espacios donde desearías que estuviera el salto de línea.
  • se permite código HTML básico

Etiquetas de la pregunta:

×69
×8
×6

pregunta realizada: 01 Jul '12, 09:44

pregunta vista: 680 veces

última modificación: 02 Jul '12, 01:00