Spanish, Mexican subtitles

← 07-16 Arithmetic Operations 2

07-16 Arithmetic Operations 2

Get Embed Code
6 Languages

Showing Revision 1 created 07/03/2015 by carlos_upload.

  1. Inicialmente, si compilo y ejecuto el probador, todos
  2. estos métodos en realidad están devolviendo ceros. Primero arreglemos
  3. el amdahlSpeedup. En este momento, está devolviendo 0.
  4. ¿Qué pasa si lo escribo de la manera que
  5. es? Ahora, si ejecuto el probador
  6. de nuevo, obtengo un 2.875 real cuando yo
  7. esperaba 1.6. Creo que mejor regreso y lo
  8. arreglo. En este momento, esto está haciendo primero las divisiones,
  9. así que 1 sobre s y s sobre n.
  10. Y después las sumas y restas en medio.
  11. Y no hay verdadero sentido de la fracción
  12. con la que empezamos. Toda esta parte desde s
  13. a n debe permanecer junta en el denominador,
  14. y 1 menos s necesita permanecer junta
  15. en su numerador. Vamos a intentarlo de nuevo. Muy bien, parece que
  16. amdahlSpeedup está trabajando, pero todavía
  17. necesitamos hacer el crossRatio. Voy a tratar de
  18. hacerlo de esta manera ingenua de nuevo. He escrito esto
  19. como parece, pero aplanado en una línea.
  20. Así que, si devuelvo esta cantidad y compilo,
  21. estoy recibiendo un error, de tipo inesperado, clase requerida, valor
  22. encontrado. Este error probablemente no hace mucho
  23. sentido para ti todavía, pero esto es un indicio
  24. de lo que vendrá. Un par de paréntesis
  25. como este inmediatamente seguido por alguna otra cantidad tiene otro significado.
  26. En específico, si se pone un tipo aquí en lugar de
  27. una expresión como un menos c. Lo que necesito hacer es indicar
  28. que quiero multiplicar, y necesito hacerlo
  29. aquí también. Y ahora si intento ejecutar
  30. el probador de nuevo definitivamente no estoy obteniendo las respuestas correctas para
  31. el crossRatio. Esto es porque cuando tenemos un montón de operadores
  32. con los mismos precedentes, el viaje solo inicia desde la izquierda
  33. y se mueve a la derecha, así que en lugar de calcular un
  34. menos c por b menos d, sobre, entre paréntesis b
  35. menos c por a menos d. Esto hará un menos c por b menos d dividido entre b
  36. menos c y luego multiplicar toda esa cantidad por a
  37. menos d. Lo que aquí tengo que hacer, es el agrupar el
  38. denominador. También podría agrupar el numerador
  39. si en verdad quisiera hacerlo, pero no haría mucha
  40. diferencia. Si compilo otra vez, y ejecuto el probador, ahora
  41. obtendré dos nuevos métodos que trabajan correctamente. Ahora para el promedio. Yo podría tratar de devolver
  42. la suma de todos ellos, todos divididos por cuatro. Veamos
  43. como funciona esto. Si ejecuto el probador, parece que funciona en un caso, pero
  44. no en el otro. Veamos el segundo
  45. caso. Voy a ir a leer en el interior del probador.
  46. El caso que no funciona es cuando tratamos
  47. de tomar el promedio de 3, 4, 3, y 3.
  48. Debemos, de hecho,esperar 3.25, pero parece
  49. como que estamos perdiendo el decimal. Java está interpretando esto como
  50. división de número entero, porque 4 es un número entero, y a,
  51. b, c, y d están declaradas como números enteros. Hay
  52. algunas maneras de arreglar esto. Podría escribir 4 como 4. o 4.0, y entonces obtendría
  53. aquí la respuesta correcta. O realmente podría cambiar
  54. todos estos enteros a los dobles, y entonces en realidad no
  55. debería especificar que el 4 era un doble. Puedo
  56. compilar esto y ejecutar el probador y aun funciona.
  57. Eso es porque si cualquiera de estas variables son un doble,
  58. toda esta expresión entre paréntesis saldrá como un
  59. doble, y un doble dividido entre un entero no necesita
  60. hacerse con una división de número entero, eso necesita una división normal.
  61. Esto es una cosa muy fácil de mezclar. Para nosotros
  62. se ve bien, pero el equipo va a leer
  63. mal y el compilador no te lo advertirá. Cuando ejecutamos
  64. esto con todos los números enteros y no dobles vimos que
  65. terminó siendo un error de tiempo de ejecución. Esto es
  66. un buen ejemplo de por qué es útil pensar acerca de lo que
  67. quieres que tu respuesta sea de antemano. Calcula un par
  68. de ejemplos y luego escribe tu código. Buen trabajo en este cuestionario.