elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Corrección de ejercicio en: 5 Noviembre 2016, 20:25 pm
Quisiera que alguien me diga si este ejercicio esta bien os lo pongo:
P4-2: Calcular las raíces de una ecuación de segundo grado ax^2+bx+c=0 con coeficientes
enteros
Las raíces vienen determinadas por la ecuación:
(la expresión de una ecuación de segundo grado)
La función sqrt() de la librería matemática extrae la raíz cuadrada de un número positivo. Para
poder usarla añade la cabecera #include <cmath> al fichero fuente.
Para extraer la raíz de un número negativo debes cambiarlo previamente de signo (multiplicarlo por (-
1)) y tener en cuenta a partir de ese momento la naturaleza imaginaria del resultado.
El programa considerará todos los casos particulares: que a sea 0 (la ecuación no es de 2º grado y
así evitamos dividir por 0), que a y b sean 0 (absurdo), que el discriminante sea 0 (raíz doble real), etc.
Donde sea necesario debes usar static_cast<double>(variable)para obtener los resultados
correctos y evitar así obtener la división entera en lugar de la correcta en coma flotante.
Código
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int b,a,c,disc;
  8.    int raiz;
  9.    cout <<"Introduce un valor para b: ";
  10.    cin >> b;
  11.    cout <<"Introduce un valor para a: ";
  12.    cin >>a;
  13.    cout<<"Introduce un valor para c: ";
  14.    cin >>c;
  15.    if(a==0&& b==0){
  16.     cout <<"Absurdo"<<endl;
  17.     return 0;}
  18.    else if(a==0){
  19.        cout<<"No es una ecuacion de segundo grado"<<endl;
  20.        return 0;}
  21.    disc=(b*b)-(4*a*c);
  22.    if (disc<0){
  23.        disc=-1*disc;
  24.        raiz=sqrt(disc);
  25.        cout<<"x1="<<raiz<<" x2="<<"-"<<raiz<<"i"<<endl;
  26.        return 0;
  27.    }
  28.    else
  29.        raiz=sqrt(disc);
  30.        cout<<"x1= "<<raiz<<" x2= "<<"-"<<raiz;
  31. }
  32.  
Muchas gracias por vuestro tiempo.
saludos.
2  Programación / Programación C/C++ / Ayuda con static_cast en: 5 Noviembre 2016, 19:17 pm
Buenas veréis tengo un ejercicio en el cual me dice que utilice el  static_cast<double> donde sea necesario.
El ejercicio en si es sobre calculas las raíces en una ecuación de segundo grado con coeficientes enteros y claro no se para que sirve el  static_cast<double>...
Alguien me lo podría explicar mejor que internet.
Muchas gracias por vuestro tiempo!
3  Programación / Programación C/C++ / Ayuda con variable tipo Bandera en: 4 Octubre 2016, 16:42 pm
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int a,b,c,d , opcion;
  8.  
  9.    cout <<"Introduzca el numerador de la primera fraccion: ";
  10.    cin >>a;
  11.  
  12.    cout <<"Indroduzca el denominador de la primera fraccion: ";
  13.    cin >> b;
  14.  
  15.    cout <<"Introduzca el numerador de la segunda fraccion: ";
  16.    cin >>c;
  17.  
  18.    cout <<"Introduzca el denominador de la segunda fraccion: ";
  19.    cin >>d;
  20.  
  21.    if(b==0 || d==0)
  22.    {
  23.        cout<<"Error denominador nulo"<<endl;
  24.    }
  25.  
  26.    cout <<"Elija 1 de las 4 opciones mostradas: \n1)Suma,\n2)Resta\n3)Multiplicacion\n4)Division:\n";
  27.    cin >> opcion;
  28.  
  29.    if(1>opcion|| opcion>4)
  30.    {
  31.        cout <<"Opcion no valida..error..."<<endl;
  32.    }
  33.    switch (opcion)
  34.    {
  35.        case 1:
  36.            double numerador,denominador, total;
  37.            numerador=(a*d)+(b*c);
  38.            denominador=b*d;
  39.            total=numerador/denominador;
  40.            cout <<"El resultado de la opcion es: "<<total<<endl;
  41.            break;
  42.        case 2:
  43.            double numerador2, denominador2,total2;
  44.            numerador2=(a*d)-(b*c);
  45.            denominador2=b*d;
  46.            total2=numerador2/denominador2;
  47.            cout <<"El resultado de la opcion es: "<<total2<<endl;
  48.            break;
  49.        case 3:
  50.            double numerador3, denominador3, total3;
  51.            numerador3=a*c;
  52.            denominador3=b*d;
  53.            total3=numerador3/denominador3;
  54.            cout <<"El resultado de la opcion es: "<<total3<<endl;
  55.            break;
  56.        case 4:
  57.            double numerador4,denominador4,total4;
  58.            numerador4=a*d;
  59.            denominador4=b*c;
  60.            total4=numerador4/denominador4;
  61.            cout <<"El resultado de la opcion es: "<<total4<<endl;
  62.            break;
  63.    }
  64.  
  65.  
  66. }
No se como resolver esta cuestion tipo bandera que dice lo siguiente : puesto que son posibles tres tipos de errores puede usarse una variable inicializada a 0 int tipo_error=0; de tal forma que cambie al valor 1 si se produce un error debido a una fracción o ambas con denominador nulo, tome el valor 2 si la opción elegida no es válida (valor válido entre 1 y 4) y tome el valor 3 si se detecta una división por 0. En función del valor de la variable, se calculará la fracción resultado o se imprimirá el mensaje de error correspondiente.
4  Programación / Ejercicios / Ayuda con memoria cache en: 27 Septiembre 2016, 16:20 pm
Alguien sabe como realizar este ejercicio? O tener alguna idea de ello?
Se dispone de una memoria caché 8kb ¿cual es el valor maximo de la dimensión n de la matriz H[n][100] de números reales de simple precisión que pueden ser almacenadas en dicha memoria?
5  Programación / Programación C/C++ / Ayuda con bool en C++ en: 22 Septiembre 2016, 19:09 pm
Buenas es mi primer post este nose si ya hay un hilo o no por eso lo digo.
Bueno verán tengo un problema ; en clase nos han enviado a hacer un programa en C++, el cual es calcular el perímetro de un circulo , un cuadrado y un rectángulo. Cosa que hice con sentencias if else , bueno la cuestión es que en el siguiente ejercicio me pide esto:
Modifique el programa anterior de tal forma que el valor del perímetro se muestre por pantalla en una
única sentencia fuera del bloque de instrucciones if else if else. Para ello, en programación se
usa una variable centinela, por ejemplo con una variable bool error. Podemos inicializar el valor
del centinela error a false antes del bloque if else if else. Si la opción de la figura no es
válida, variaremos el valor del centinela a true. De esta forma sabremos si hemos calculado o no un
perímetro.
Y claro no se como hacerlo llevo buscando y no se me ocurre nada ayuda pls!!
gracias de antemano
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines