Hola el siguiente código es una función que calcula el seno inverso o arcoseno de un numero decimal dado en radianes.
Si el numero de entrada es un radian entonces la función en cierta parte se hace 1/0 y muestra la palabra inf
cociente = x/denominador;
y calcula bien el arcotangente de infinito.
Pero si yo escribo 1/0 directamente el compilador se bloquea, por que sucede esto?.
float cociente = 0;
cout << 5/cociente << endl;
probado con CODEBLOCKS
#include<iostream>
#include<cmath>
using namespace std;
float arcsin(float x);
int main() {
//float cociente = 0;
//cout << 5/cociente << endl;
cout << "arcsin(0.8)=" << arcsin(0.8) << endl; // 0.927295
cout << endl;
cout << "arcsin(1)=" << arcsin(1) << endl;
cout << endl;
cout << "arcsin(1.1)=" << arcsin(1.1) << endl; // 1.5708
return 0;
}
float arcsin(float x) {
float arcsin_=0;
float cociente, denominador;
if (x<=1 && x>=-1) {
denominador = sqrtf(1-(x*x));
cout << "denominador = " << denominador << endl;
cociente = x/denominador;
cout << "cociente = " << x << "/" << denominador << " = " << cociente << endl;
arcsin_ = atan(cociente);
} else {
cout << "Domain Error" << endl;
// kill
}
return arcsin_;
}
PD: despues de la sentencia cout << "Domain Error" << endl; deseo que se termine el programa cual es el commando o instruccion para esto?
Gracias