Skip to content

Instantly share code, notes, and snippets.

@ChekeGT
Created April 13, 2024 05:56
Show Gist options
  • Save ChekeGT/1249b2a2d1d7333402d2ccb99a9a76b9 to your computer and use it in GitHub Desktop.
Save ChekeGT/1249b2a2d1d7333402d2ccb99a9a76b9 to your computer and use it in GitHub Desktop.
Este programa permite al usuario crear dos conjuntos de cadenas de texto y luego calcula y muestra el conjunto potencia de la unión de ambos conjuntos. El conjunto potencia de un conjunto es el conjunto que contiene todos los subconjuntos posibles del conjunto original.
#include <iostream>
#include <string>
#include <vector>
// Nombre del progamador: Francisco Ezequiel Baños Ramírez
// Fecha de creacion: 12 de abril de 2024
// Descripcion: Este programa permite al usuario crear dos conjuntos de cadenas de texto y luego calcula y muestra el conjunto potencia de la unión de ambos conjuntos. El conjunto potencia de un conjunto es el conjunto que contiene todos los subconjuntos posibles del conjunto original.
// Funcionamiento del programa
// Datos de entrada
// Dos conjuntos de cadenas de texto.
// Los elementos de los conjuntos pueden ser introducidos manualmente por el usuario.
// No se verifica la unicidad de los elementos, por lo que se pueden introducir elementos duplicados.
// El programa no maneja errores de entrada, por lo que si se introduce un tipo de dato incorrecto el programa puede fallar
// Datos de salida
// El conjunto potencia de la unión de los dos conjuntos introducidos por el usuario.
// El conjunto potencia se muestra en una lista entre corchetes.
// Cada elemento del conjunto potencia se muestra entre paréntesis.
// Ejemplo de ejecución
// Conjunto 1
// Para introducir elementos simplemente escribelo cuando se te solicite, para dejar de introducir elementos simplemente presiona enter cuando ya no desees hacerlo.
// Introduce un elemento(0): Manzana
// Introduce un elemento(1): Naranja
// Introduce un elemento(2):
// Conjunto 2
// Para introducir elementos simplemente escribelo cuando se te solicite, para dejar de introducir elementos simplemente presiona enter cuando ya no desees hacerlo.
// Introduce un elemento(0): Rojo
// Introduce un elemento(1): Verde
// Introduce un elemento(2):
// Tu conjunto potencia es:
// [(Manzana, Rojo), (Manzana, Verde), (Naranja, Rojo), (Naranja, Verde)]
int main(){
std::vector<std::string> conjunto_1;
std::vector<std::string> conjunto_2;
while (true) {
std::cout << "Conjunto 1\n";
std::cout << "Para introducir elementos simplemente escribelo cuando se te solicite, para dejar de introducir elementos simplemente presiona enter cuando ya no desees hacerlo.\n";
std::cout << "Introduce un elemento(" << conjunto_1.size() << "):";
std::string element;
std::getline(std::cin, element);
if (element == "") {
break;
}
conjunto_1.push_back(element);
std::cout << "\n";
}
system("clear");
while (true) {
std::cout << "Conjunto 2\n";
std::cout << "Para introducir elementos simplemente escribelo cuando se te solicite, para dejar de introducir elementos simplemente presiona enter cuando ya no desees hacerlo.\n";
std::cout << "Introduce un elemento(" << conjunto_2.size() << "):";
std::string element;
std::getline(std::cin, element);
if (element == "") {
break;
}
conjunto_2.push_back(element);
std::cout << "\n";
}
system("clear");
std::vector<std::string> conjunto_potencia;
for (int i = 0; i < conjunto_1.size(); i++) {
for (int j = 0; j < conjunto_2.size(); j++) {
std::string multiplication = conjunto_1[i] + "," + conjunto_2[j];
conjunto_potencia.push_back(multiplication);
}
}
std::cout << "Tu conjunto potencia es:\n" << "[";
for (int i = 0; i < conjunto_potencia.size(); i++) {
std::cout << "(" << conjunto_potencia[i] << ")";
if (i != conjunto_potencia.size() - 1) {
std::cout << ",";
}
}
std::cout << "]\n";
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment