Funcion round

Funcion round

de Gonzalo Cabrera Quintero -
Número de respuestas: 3

Buenos dias,

Me genera dudas la funcion round(x). En el libro de Konvalina, pone como ejemplo que round(5.5) da 6. Sin embargo, al hacer el ejercicio 10 del practico 1 y escribirlo en Pascal, probe poner round(4.5) y da 4.

¿Alguna sugerencia de que puedo estar haciendo mal? Use exactamente la letra del ejercicio 10. 

Saludos, Gonzalo

En respuesta a Gonzalo Cabrera Quintero

Re: Funcion round

de Guillermo Rey Martusciello -
No estas haciendo nada mal, la funcion round(x) aproxima al entero mas cercano. En el caso de un numero que este a igual distancia de los dos enteros mas cercanos (un numero X.5), la funcion round aproxima al entero par, es decir round(5.5) = 6, round(6.5) = 6, etc. Si te queda alguna duda no dudes en volver a preguntar, saludos!
En respuesta a Guillermo Rey Martusciello

Re: Funcion round

de Guillermo Rey Martusciello -
Me corrigo y agrego cosas. Lo que explique en el mensaje anterior es en FreePascal, en Pascal Estandar, round(x) = trunc(x+0.5), por lo que todos los reales 1.5, 2.5, 3.5 ... x.5 redondean a 2, 3, 4 ... x + 1. Lo que seguramente te este faltando es compilar el programa con la bandera '-Miso' (no olvidar poner las otras banderas ademas de -Miso). Esta bandera hace que la compilacion se acerque mas a la compilacion de Pascal Estandar.
Espero que con esto quede un poco mas claro, cualquier duda consulten. Saludos!
En respuesta a Guillermo Rey Martusciello

Re: Funcion round

de Mateo Fontoura Abelenda -
Guillermo, es decir nosotros en el curso nos vamos a manejar con que round de a.5 siempre redondea hacia arriba es esto correcto? y en caso de a ser negativo, se acerca a 0, realizaría lo mismo que trunc de -a.5?