Ir al contenido

"Plus Minus" un reto con problemas de presición para números flotantes.

El desafío busca adentrarte en el manejo de números flotantes hasta con seís dígitos. Lo interesante del planteamiento es resolver a nivel código una solución empleando la teoría de conjuntos para obtener el ratio de un grupo de números.
14 de julio de 2024 por
"Plus Minus" un reto con problemas de presición para números flotantes.
Angel Bautista
| Todavía no hay comentarios
Dado un arreglo de números enteros, calcule el ratio de sus elementos que son positivo, negativo y cero. 

El planteamiento requiere que se agrupen los números positivos, los números negativos, el cero y que se calcule su ratio.  Para que finalmente se imprima una salida con seis números decimales. 

arr = [1,1,0,-1,-1] 

n = 5 

De los cuales dos son negativos, dos son positivos y uno es cero. Por lo tanto, la salida que debe imprimir la consola es:

¿Porque? pues que el ratio de 2/5 es 0.400000 y el ratio de 1/5 es 0.20000. 

Explicación

Para calcular un ratio se debe dividir una cantidad entre otra. Por ejemplo para calcular el ratio  de hombres a mujeres en una clase,  dividir en número de hombres entre el número de mujeres para obtener la medida de proporción entre ambos grupos. Para nuestro ejemplo los grupos son positivos, negativos y un cero.

Pseudocódigo. 

La secuencia del algoritmo se describe a continuación:

  • arma función plusMinus ( con la data del arreglo ) {
  • declara variantes pos, neg, zero y se inician igualando a cero;
  • recerre string con for ( declara indice y se inicia; si el arreglo supera su propio ancho; sumar las cantidades y brincar una linea) {
  • agrupar las cantidades positivas en {pos;}
  • agrupar las cantidades negativas en {neg;}
  • si el resultado es zero, agrupar en {zer;}
  • declara variante "a" como el ratio de el valor de pos/número de elementos en el arreglo;
  • declara variante "b" como el ratio de el valor de neg/número de elementos en el arreglo;
  • declara variante "c" como el ratio de el valor de zer/número de elementos en el arreglo;
  • imprime en consola el resultado con 6 números flotantes;


Código en JavaScript (Documentado)

El código es el siguiente:

//arma función plusMinus con el arreglo
function plusMinus(arr) {
//declara variantes neg, pos, zer y se inician en ceros.
    let neg =0, pos=0, zer=0;
//recorre string; inicia indice;
//cuando el indice sea mayor al ancho del arreglo, sumar y brincar una linea
        for(let i=0; i<arr.length; i++){
//si el valor del indice en el arreglo es positivo, agrupa en variable pos
            if(arr[i]>0){pos++;}
//si el valor del indice en el arreglo es negativa, agrupa en variable neg
            else if(arr[i]<0){neg++;}
//si no es ninguno de los dos, entonces agrupa en variable zer
            else{zer++;}   
        }
//declara variante a como ratio de pos/numero de elementos del arreglo
//declara variante b como ratio de neg/numero de elementos del arreglo
//declara variante c como ratio de zer/numero de elementos del arreglo
        let a =pos/arr.length; let b =neg/arr.length; let c =zer/arr.length;
//imprime en consola el resultado utilizando 6 números flotantes.
        console.log(a.toFixed(6)+'\n'+b.toFixed(6)+'\n'+c.toFixed(6));
}


Compartir
Etiquetas
Iniciar sesión dejar un comentario