PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

TP6 EJ3 #32

Open johanna-park opened 1 month ago

johanna-park commented 1 month ago

Hola, quería consultar este ejercicio. Yo hice la siguiente función y el test me sale OK! Me hacía un poco de ruido poner dos veces i++. Quería saber si estaba bien y si era eficiente.

double maxDiferencia(const double arreglo[]) {
    double aux, dif = 0;
    int i = 0;
    if(fabs(arreglo[i++])>EPSILON){
        for(; fabs(arreglo[i])>EPSILON; i++) {
        aux = fabs(arreglo[i] - arreglo[i-1]);
        if(aux>dif){
            dif = aux;
        }
    }
    }
    return dif;
}

Además, tenía una duda más teórica. Si mi arreglo o variable es de tipo double, la puedo igualar a 0.0? O tengo que si o si poner que es mayor o menor a EPSILON?

Desde ya, muchas gracias.

marcelogarberoglio commented 1 month ago

Está bien poner dos veces i++ porque la primera se hace una sola vez, en el if. Luego en el ciclo se hace una sola vez por cada elemento. Si la marca de final es 0.0, entonces se puede comparar si es igual. No estaría bien hacerlo cuando se trata de algún cálculo, por ejemplo en el que busca raíces.