Hola, en la parte de elegir mejor película:
titulo := rottenTomatoes mejorPelicular.
(titulo = 'Blade Runner') ifFalse: [
Transcript show: 'Error: La pelicula mejor puntuada debe ser Blade Runner.'; cr.
error := true.
].
la respuesta debería ser 'Pulp Fiction' ya que tiene un solo puntaje con 10 y 'Blade Runner' tiene 10, 9 y 8.
Saludos
Hola Lucas,
No, el error claramente es que Blade Runner no resulte elegida la mejor película (¡es muy buena!). Ya corregí los puntajes para que así sea.
Saludos,
Tomás
Genial, esa parte quedo solucionada.
Ahora el problema es que el truncamiento de los puntajes no coincide con lo que se calcula, es decir, en esta parte del código:
puntaje := (rottenTomatoes puntajeDelDirector: 'Quentin Tarantino'). " (6 + 8 + 8) / 3 = 7.33 "
(puntaje closeTo: 7.33) ifFalse: [
Transcript show: 'Error: El puntaje promedio de Quentin Tarantino debe ser 7.33.'; cr.
error := true.
].
la variable puntaje tiene un valor de 22/3 pero el programa devuelve error.
Si se cambia el codigo que nos enviaron por:
(puntaje closeTo: 7.333)
(agregandole un 3 mas) el programa funciona correctamente.
No. La prueba no te está pidiendo que devuelvas 22/3, sino 7.33 que son objetos distintos. Igualmente para este caso no es relevante.
Saludos,
Tomás
Hola, puede ser que la versión 6 de pharo no reconozca el mensaje or? Si reemplazo la palabra or por | el código funciona bien pero si lo dejo como está a la hora de hacer la comparación me dice que falta un paréntesis. Eso sería en la parte de (puntaje closeTo: 7.33) or (puntaje closeTo: 22/3).
Hola Nicolás,
Lo que faltaba eran los dos puntos después del or. El símbolo |
también funciona como el operador lógico OR pero la diferencia es que el |
evalúa siempre ambos argumentos y en cambio el or:
no se fija en el segundo argumento si el primero ya es verdadero.
Saludos,
Tomás