Introducción
En este laboratorio, aprenderemos a determinar si una matriz dada contiene duplicados o no, utilizando el lenguaje de programación C++. Esto se logrará ordenando la matriz y luego comparando elementos adyacentes para ver si son iguales.
Escribe la biblioteca y la función principal
Escribe la biblioteca y la función principal de la siguiente manera.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool containsDuplicate(int n[], int m)
{
// Crea una bandera para indicar la presencia de duplicados
int f = 0;
// Ordena la matriz de entrada para comprobar duplicados
sort(n, n + m);
for (int i = 0; i < m - 1; i++)
{
if (n[i] == n[i + 1])
{
// Establece la bandera en 1 y sale del bucle si se encuentra un duplicado
f = 1;
break;
}
}
if (f == 1) {
// Se encontró un duplicado
return true;
}
else {
// No se encontraron duplicados
return false;
}
}
int main()
{
cout << "\n\nBienvenido a LabEx :-)\n\n\n";
cout << " ===== Programa para comprobar si hay duplicados en la matriz de entrada ===== \n\n";
int i, n1, n2;
int a1[] = {2, 3, 1, 4, 5, 2, 8, 9};
int a2[] = {2, 3, 1, 4, 5, 10, 8, 9};
bool duplicate1 = false;
bool duplicate2 = false;
// Obtiene el tamaño de las dos matrices de entrada
n1 = sizeof(a1) / sizeof(a1[0]);
n2 = sizeof(a2) / sizeof(a2[0]);
// Imprime la primera matriz de entrada
cout << "\n\nLos elementos de la primera matriz de entrada son :\n\n";
for (i = 0; i < n1; i++)
{
cout << a1[i] << " ";
}
// Comprueba si la primera matriz de entrada contiene duplicados
duplicate1 = containsDuplicate(a1, n1);
if (duplicate1) {
cout << "\n\nLa primera matriz de entrada contiene duplicados";
}
else {
cout << "\n\nLa primera matriz de entrada no contiene ningún duplicado";
}
// Imprime la segunda matriz de entrada
cout << "\n\n\n\nLos elementos de la segunda matriz de entrada son :\n\n";
for (i = 0; i < n2; i++)
{
cout << a2[i] << " ";
}
// Comprueba si la segunda matriz de entrada contiene duplicados
duplicate2 = containsDuplicate(a2, n2);
if (duplicate2) {
cout << "\n\nLa segunda matriz de entrada contiene duplicados";
}
else {
cout << "\n\nLa segunda matriz de entrada no contiene ningún duplicado";
}
cout << "\n\n\n";
return 0;
}
Ejecuta el código
Guarda el código en el archivo ~/project/main.cpp y compila el código usando:
g++ main.cpp -o main &&./main
Comprende el código
Para comprobar duplicados en una matriz, primero creamos una función llamada containsDuplicate(). Esta función toma dos argumentos: la matriz de entrada n[] y su tamaño m.
La función marca los duplicados encontrados con el valor 1, y en caso contrario con el valor 0. Para encontrar duplicados, la matriz de entrada n[] se ordena primero utilizando la función sort() definida por el sistema. Luego, se comparan los elementos adyacentes en la matriz ordenada, y la bandera se establece si se encuentran duplicados.
En la función principal, se crean dos matrices de prueba a1 y a2, cada una con un posible duplicado. Utilizando containsDuplicate(), comprobamos cada matriz de duplicados y se muestra el resultado.
if (duplicate1) {
cout << "\n\nLa primera matriz de entrada contiene duplicados";
}
else {
cout << "\n\nLa primera matriz de entrada no contiene ningún duplicado";
}
Esta salida indicará si la matriz de entrada contiene duplicados o no.
Resumen
Las duplicaciones en las matrices se pueden determinar fácilmente utilizando el lenguaje de programación C++. Ordenando la matriz de entrada y luego comparando elementos adyacentes, es posible desarrollar un sistema de marcado eficiente para indicar valores duplicados.



