/*ejercicio sobre la función para ecuaciones lineales */ //función para valor absoluto float va(float d) { return d < 0.f ? -d : d; //valor absoluto de d } /*función ec_lin() recibe parametros de una ecuacion lineal y devuelve dos cosas: (i)valor booleano para comunicar si hay solución (ii) raiz que tiene sentido solo cuando valor de (i) es true (verdad) Nota: la raiz se devuelve mediante un parametro traspasado por referencia */ bool ec_lin(float A, float B, float C, float& raiz) { float va_a, va_c_b, u = 100000.f; va_a = va(A); //cálculo de valor absoluto de A va_c_b = va(C - B); //cálculo de valor absoluto de C-B //se puede resolver ecuacion c=ax+b? if (u * va_a < va_c_b) return false; //regresamos la info que no se puede else { //buscamos raiz y regresamos información que sí, se pudo raiz = (C - B) / A; return true; } } /*prueba de ec_lin()*/ int main() { float a, b, c, x; char control; do { printf("Deme el valor de a\n"); scanf_s("%f", &a); printf("Deme el valor de b\n"); scanf_s("%f", &b); printf("Deme un valor de c\n"); scanf_s("%f", &c); if (ec_lin(a, b, c, x)) printf("la ecuacion %g=%gx+(%g) tiene solucion x=%g\n", c, a, b, x); else printf("la ecuacion %g=%gx+(%g) no tiene solucion\n", c, a, b); printf("oprimes una letra diferente de 't' "); printf(" para continuar\n"); printf("oprimes 't' para terminar\n"); control = getch(); } while (control != 't'); return 0; }