Vous êtes sur la page 1sur 3

//Declaracion de los modulos de C++

#include <iostream.h>
#include <conio.h>

//Declaraciones de los procedimientos romper y repeticion con el vector A


y la variable n como parametros.
void romper (int A[], int n);
void repeticion (int A[], int n);

void main ()
{
//Declaramos el vector A con 20 posiciones, la variable n, y la
variable i, todas enteras.
int A[20], n, i;

//Limpiamos Pantalla
clrscr();

//Creamos un mensaje donde nos diga la cantidad de numeros para el


vector y la guardamos en la variable n
cout<<"\nDigite la cantidad de numeros para el vector: ";
cin>>n;

// Creamos un for para recorrer el vector y asi asignarle los


numeros que nos va pidiendo.
for (i=0; i<n; i++)
{
cout<<"\nDigite un numero: ";
cin>>A[i];
}

// Creamos el menú con las 2 opciones del ejercicio.


do
{
cout<<"\n ------------------------------------";
cout<<"\n OPERACIONES DE CONJUNTO";
cout<<"\n 1. ELIMINAR REPETICIONES";
cout<<"\n 2. ROMPIMIENTO";
cout<<"\n 3. SALIR";
cout<<"\n ------------------------------------";
cout<<"\n ";
cout<<"\n OPCION:";
cin>>opcion;
switch(opcion)
{
// Llamamos al procedimiento repeticion
case 1: repeticion(A,N);
break;
// Llamamos al procedimiento romper
case 2: romper(A,n);
break;
}
} while(opcion != 3);

}
// Programacion del procedimiento romper
void romper (int A[], int n)
{
// Declaramos los vectores y variables para recorrerlos
int P[20] // Pares, I[20] // Impares, i, j, k;
k=0;
j=0;

// Recorremos el vector A
for (i=0; i<n; i++)
{
// Si lo que hay en la posicion a[i] mod 2 = 0
if (A[i]%2 == 0)
{
// El vector P (Pares) en la posicion k va a ser igual
a lo que tenga A en la posicion i
P[k] = A[i];
// Incrementamos el contador que son las posiciones
para llenar el vector P
k++;
}
//Si no, o sea que si A[i] mod 2 != 0
else
{
//El vector I (Impares) en la posicion j va a ser igual
a lo que tenga el A en la posicion i
I[j] = A[i];
//Incrementamos el contador que son las posiciones para
llenar el vector I
j++;
}
}
//Limpiamos pantalla y mostramos un mensaje
clrscr();
cout<< "\n Vector con numeros pares:";

//Necesitamos de un for para recorrer el nuevo vector P


for (i=0; i<k; i++) //Decimos que i<k puesto que k tiene el
numero de posiciones del vector P
{
cout<<"\n"<<P[i]; //Mostramos lo que tiene el vector P
en la posicion i NO en la posicion k
}
cout<< "\n Vector con numeros impares:";

//Reutilizamos la variable i para recorrer el nuevo vector I


for (i=0; i<j; i++) // Decimos que i<j puesto que j tiene el
numero de posiciones del vector I
{
cout<<"\n"<<I[i]; //Mostramos lo que tiene el vector I en la
posicion i NO en la posicion j
}
getch();
}
void repeticion (int A[], int n)
{
//Declaramos un nuevo vector B de 20 posiciones, variables i,j k
que nos van a servir para recorrer los vectores y una bandera
int B[20], i, j, k, flag;
j=0;

//Recorremos el vector A
for (i=0; i<n; i++)
{
//Incializamos la bandera en 0
flag = 0;
//Empezamos el for con una posicion adelante de i
for (k=i+1; k<n; k++)
{
//Si lo que hay en el vector A en la posicion K
(adelante) es igual a lo que hay en la posicion i
(atras)
if (A[k] == A[i])
//La bandera cambia a 1 porque son iguales y no es
lo que estamos necesitando
flag=1;
}
//Si la bandera = 0 es porque son diferentes y procedemos a
ingresar los numeros al nuevo vector B..
if (flag ==0)
{
//B en la posicion j va a ser igual a lo que hay en A
en la posicion i
B[j] = A[i];
//Incrementamos el contador para que podamos llenar el
vector B
j++;
}
}

//Limpiamos pantalla y mostramos un mensajillo


clrscr();
cout<<"\nEl vector sin numeros repetidos es: ";

//Volvemos a utilizar un for para leer el vector B


for (i=0; i<j; i++) // Decimos que i<j porque la variable j es
la cantidad de posiciones del vector B
{
cout<<"\n"<<B[i]; //Imprimimos lo que hay en el
vector B
}
getch();
}

Vous aimerez peut-être aussi