C/Visual C - Resistencias

 
Vista:

Resistencias

Publicado por Humberto (9 intervenciones) el 31/08/2002 06:43:57
Necesito hacer un programa que calcule el valor de la resistencias por medio de los colores, claro; pero no se como ni tengo idea de que onda con algoritmo. Es para la escuela y no se como realizarlo.
Lo realice en Visual Basic 6.0 y quedo muy chido pero lo quieren en C++.
tengo la version C++ 3.0

HELP ME¡
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 calcular el valor de una resistencia por color en C++

Publicado por Alejandro (913 intervenciones) el 14/03/2025 19:51:44
Aquí tienes un ejemplo de un programa en C++ que calcula el valor de una resistencia basándose en los colores de sus bandas. Este programa te pedirá que ingreses los colores de las bandas y luego calculará el valor de la resistencia.

Código de ejemplo



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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <string>
#include <map>
 
using namespace std;
 
// Función para obtener el valor de la resistencia basado en los colores
int obtenerValorResistencia(const string& color1, const string& color2, const string& color3) {
    // Mapa de colores a valores
    map<string, int> colores = {
        {"negro", 0},
        {"marrón", 1},
        {"rojo", 2},
        {"naranja", 3},
        {"amarillo", 4},
        {"verde", 5},
        {"azul", 6},
        {"violeta", 7},
        {"gris", 8},
        {"blanco", 9}
    };
 
    // Mapa de colores a multiplicadores
    map<string, int> multiplicadores = {
        {"negro", 1},
        {"marrón", 10},
        {"rojo", 100},
        {"naranja", 1000},
        {"amarillo", 10000},
        {"verde", 100000},
        {"azul", 1000000},
        {"violeta", 10000000},
        {"gris", 100000000},
        {"blanco", 1000000000}
    };
 
    // Verificar si los colores son válidos
    if (colores.find(color1) == colores.end() || colores.find(color2) == colores.end() || multiplicadores.find(color3) == multiplicadores.end()) {
        cout << "Color no válido. Por favor, intente de nuevo." << endl;
        return -1;
    }
 
    // Calcular el valor de la resistencia
    int valor = (colores[color1] * 10 + colores[color2]) * multiplicadores[color3];
    return valor;
}
 
int main() {
    string color1, color2, color3;
 
    // Solicitar los colores de las bandas
    cout << "Ingrese el color de la primera banda: ";
    cin >> color1;
    cout << "Ingrese el color de la segunda banda: ";
    cin >> color2;
    cout << "Ingrese el color de la tercera banda (multiplicador): ";
    cin >> color3;
 
    // Calcular el valor de la resistencia
    int valorResistencia = obtenerValorResistencia(color1, color2, color3);
 
    // Mostrar el resultado
    if (valorResistencia != -1) {
        cout << "El valor de la resistencia es: " << valorResistencia << " ohmios." << endl;
    }
 
    return 0;
}

Explicación del código



1. Mapas de colores: Se utilizan dos mapas (`map`) para asociar los nombres de los colores con sus valores y multiplicadores correspondientes.
2. Función `obtenerValorResistencia`: Esta función toma los colores de las bandas como parámetros, verifica si son válidos y calcula el valor de la resistencia.
3. Entrada del usuario: El programa solicita al usuario que ingrese los colores de las bandas.
4. Cálculo y salida: Se calcula el valor de la resistencia y se muestra al usuario.

Compilación y ejecución



Para compilar y ejecutar el programa, asegúrate de tener un compilador de C++ instalado. Si estás usando un entorno como Visual Studio, simplemente crea un nuevo proyecto y copia el código en el archivo principal. Si usas `g++`, puedes compilarlo con:

1
g++ -o resistencia resistencia.cpp

Y luego ejecutarlo con:

1
./resistencia

Consejos



- Asegúrate de ingresar los colores en minúsculas y en español, como "rojo", "marrón", etc.
- Puedes expandir el programa para manejar más bandas o incluir tolerancias si lo deseas.

Espero que este ejemplo te ayude a completar tu tarea. ¡Buena suerte, Humberto!
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