Visual C++ .NET - Evaluar una funcion en c++??

 
Vista:

Evaluar una funcion en c++??

Publicado por Anthony (1 intervención) el 05/08/2011 23:41:31
Como se podría evaluar una función en c++?, es decir , ingresar una funcion con exponencial o logaritmos y que sean evaluados en el punto x que ingresara el usuario.
Gracias de Antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Evaluación de funciones matemáticas en un punto específico

Publicado por Alejandro (265 intervenciones) el 09/02/2024 18:30:41
Anthony, en C++, puedes evaluar funciones matemáticas, incluyendo aquellas con exponenciales o logaritmos, utilizando la librería `<cmath>` que proporciona funciones matemáticas estándar. Para permitir que los usuarios ingresen una función y evaluarla en un punto específico, puedes considerar utilizar bibliotecas externas o implementar tu propio analizador de expresiones. Aquí te proporciono un ejemplo simple utilizando la biblioteca `<cmath>` y una función personalizada para evaluar expresiones matemáticas simples:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <cmath>
#include <string>
 
using namespace std;
 
// Función para evaluar expresiones matemáticas simples
double evaluarFuncion(double x, const string& expresion) {
    // Implementación simple para fines demostrativos
    // Puedes considerar usar bibliotecas más avanzadas para análisis de expresiones
 
    // Reemplaza 'x' en la expresión con el valor proporcionado
    size_t pos = expresion.find('x');
    string expresionConValor = expresion;
    while (pos != string::npos) {
        expresionConValor.replace(pos, 1, to_string(x));
        pos = expresionConValor.find('x', pos + 1);
    }
 
    // Usa la función eval de la biblioteca <cmath>
    return eval(expresionConValor.c_str());
}
 
int main() {
    double x;
    string expresion;
 
    // Entrada del usuario
    cout << "Ingrese el valor de x: ";
    cin >> x;
 
    cout << "Ingrese la expresión matemática (use 'x' para la variable): ";
    cin >> expresion;
 
    // Evaluar la función y mostrar el resultado
    double resultado = evaluarFuncion(x, expresion);
    cout << "Resultado de evaluar la función en x=" << x << ": " << resultado << endl;
 
    return 0;
}

Este ejemplo es bastante simple y solo maneja expresiones básicas. Para casos más avanzados, puedes considerar el uso de bibliotecas de análisis de expresiones o implementar un analizador léxico y sintáctico personalizado. Ten en cuenta que evaluar expresiones ingresadas por el usuario puede tener riesgos de seguridad, así que asegúrate de validar y sanear las entradas adecuadamente si implementas tu propio analizador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar