C/Visual C - Alguien sabe hacer un programa demapas de karnaugh

 
Vista:

Alguien sabe hacer un programa demapas de karnaugh

Publicado por Miguel Castillo (1 intervención) el 10/12/2002 08:31:19
Necesito el codigo fuente para realizar mapas de karnaugh no importa el lenguaje(pero que no sea java), de preferencia c++

por favor de escribirme a [email protected]

Espero su respuesta pronto!! URGE!!!
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

Implementación de mapas de Karnaugh en C++

Publicado por Alejandro (980 intervenciones) el 23/04/2025 17:11:39

Solución 1: Programa para resolver un mapa de Karnaugh de 4 variables


Este código en C++ permite al usuario ingresar las posiciones de los '1' en un mapa de Karnaugh de 4 variables y devuelve la expresión booleana simplificada.

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
#include <iostream>
#include <vector>
#include <string>
 
using namespace std;
 
void displayKMap(const vector<vector<int>>& kmap) {
    cout << "Karnaugh Map:" << endl;
    for (const auto& row : kmap) {
        for (int cell : row) {
            cout << cell << " ";
        }
        cout << endl;
    }
}
 
string simplifyKMap(const vector<vector<int>>& kmap) {
    // Aquí iría la lógica para simplificar el K-map
    // Este es un ejemplo simplificado, la implementación real puede ser más compleja
    return "Expresión simplificada (ejemplo)";
}
 
int main() {
    vector<vector<int>> kmap(4, vector<int>(4, 0));
    cout << "Ingrese las posiciones de los '1' en el K-map (0-15, -1 para terminar):" << endl;
 
    int input;
    while (true) {
        cin >> input;
        if (input == -1) break;
        if (input >= 0 && input < 16) {
            kmap[input / 4][input % 4] = 1;
        } else {
            cout << "Entrada inválida. Intente de nuevo." << endl;
        }
    }
 
    displayKMap(kmap);
    string result = simplifyKMap(kmap);
    cout << result << endl;
 
    return 0;
}

Solución 2: Minimización de K-map con hasta 26 variables


Este programa en C++ permite manejar mapas de Karnaugh con hasta 26 variables, ideal para usuarios que necesiten una solución más avanzada.

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
#include <iostream>
#include <vector>
#include <string>
 
using namespace std;
 
class KarnaughMap {
public:
    KarnaughMap(int variables) : numVariables(variables) {
        // Inicializar el K-map
        kmap.resize(1 << variables, 0);
    }
 
    void inputKMap() {
        cout << "Ingrese las posiciones de los '1' (0 a " << (1 << numVariables) - 1 << ", -1 para terminar):" << endl;
        int input;
        while (true) {
            cin >> input;
            if (input == -1) break;
            if (input >= 0 && input < (1 << numVariables)) {
                kmap[input] = 1;
            } else {
                cout << "Entrada inválida. Intente de nuevo." << endl;
            }
        }
    }
 
    string minimize() {
        // Aquí iría la lógica para minimizar el K-map
        return "Expresión simplificada (ejemplo)";
    }
 
private:
    int numVariables;
    vector<int> kmap;
};
 
int main() {
    int variables;
    cout << "Ingrese el número de variables (hasta 26): ";
    cin >> variables;
 
    KarnaughMap kmap(variables);
    kmap.inputKMap();
    string result = kmap.minimize();
    cout << result << endl;
 
    return 0;
}

Estos ejemplos te proporcionan una base para trabajar con mapas de Karnaugh en C++. Puedes expandir la lógica de simplificación según tus necesidades. ¡Espero que esto te sea útil, Miguel!
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