C/Visual C - ayuda sobre operadores compuestos

 
Vista:

ayuda sobre operadores compuestos

Publicado por juan (1 intervención) el 24/08/2001 06:39:08
Necesito desarrollar un programa en el cual los operandos los determine el usuario y deben de ser de diferente tipo
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

Programa para operaciones con diferentes tipos de operandos

Publicado por Alejandro (913 intervenciones) el 11/10/2024 20:14:38
Juan, para desarrollar un programa en C++ donde el usuario pueda ingresar operandos de diferentes tipos (por ejemplo, un entero y un número de punto flotante), puedes seguir el siguiente enfoque. Este programa pedirá al usuario que ingrese dos operandos y luego realizará una operación básica (como suma, resta, multiplicación o división) dependiendo de los tipos de los operandos.

Aquí tienes un ejemplo de cómo hacerlo:

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
41
#include <iostream>
#include <string>
#include <typeinfo>
 
int main() {
    std::string input1, input2;
    std::cout << "Ingrese el primer operando: ";
    std::cin >> input1;
    std::cout << "Ingrese el segundo operando: ";
    std::cin >> input2;
 
    // Determinar el tipo de los operandos
    bool isInt1 = input1.find_first_not_of("0123456789") == std::string::npos;
    bool isFloat1 = input1.find_first_not_of("0123456789.") == std::string::npos && input1.find('.') != std::string::npos;
 
    bool isInt2 = input2.find_first_not_of("0123456789") == std::string::npos;
    bool isFloat2 = input2.find_first_not_of("0123456789.") == std::string::npos && input2.find('.') != std::string::npos;
 
    // Convertir los operandos a los tipos correctos
    if (isInt1 && isInt2) {
        int op1 = std::stoi(input1);
        int op2 = std::stoi(input2);
        std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
    } else if (isFloat1 && isFloat2) {
        float op1 = std::stof(input1);
        float op2 = std::stof(input2);
        std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
    } else if (isInt1 && isFloat2) {
        int op1 = std::stoi(input1);
        float op2 = std::stof(input2);
        std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
    } else if (isFloat1 && isInt2) {
        float op1 = std::stof(input1);
        int op2 = std::stoi(input2);
        std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
    } else {
        std::cout << "Los operandos no son de tipos compatibles." << std::endl;
    }
 
    return 0;
}

Explicación del código:



1. Entrada del usuario: El programa solicita al usuario que ingrese dos operandos como cadenas de texto.
2. Determinación del tipo: Se verifica si cada operando es un entero o un número de punto flotante utilizando `find_first_not_of`.
3. Conversión de tipos: Dependiendo de los tipos de los operandos, se convierten a `int` o `float` usando `std::stoi` y `std::stof`.
4. Operación: Se realiza una operación (en este caso, suma) y se muestra el resultado.
5. Manejo de errores: Si los operandos no son de tipos compatibles, se muestra un mensaje de error.

Consideraciones:



- Validación de entrada: Este ejemplo básico no maneja errores de entrada (por ejemplo, si el usuario ingresa texto no numérico). Puedes agregar validaciones adicionales para mejorar la robustez del programa.
- Operaciones adicionales: Puedes extender el programa para incluir más operaciones (resta, multiplicación, división) y permitir que el usuario elija qué operación realizar.

Con este enfoque, podrás crear un programa que permita al usuario ingresar operandos de diferentes tipos y realizar operaciones con ellos.
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