miércoles, 26 de enero de 2011

[Ejercicio de Vectores] Generar Vector ordenado apartir de otros

Enunciado:

- Se ingresan 2 vectores ordenados (no debe ordenarse el vector suponemos que el usuario los ingresa en orden) y sin repetir los numeros, generar un 3er vector apartir de estos que tambien este ordenado.

ejemplo:
Ingreso lo siguiente
V1: 1, 3 , 5, 6, 8, 10 (vector ingresado por el usuario en forma ordenada)
V2: 0, 2, 4, 7, 9 (vector ingresado por el usuario en forma ordenada)
El resultado deberia ser:
V3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (vector generado ordenadamente)

Codigo:

#include <iostream>
using namespace std;

int main()
{
int V1[100],V2[100],V3[200];
int n1,n2,n3,i,j,k,l;
/*
cout<<"Ingrese la dimension del vector 1 ";
cin>>n1;
cout<<"Ingrese los elementos del vector 1"<<endl;
for(i=0;i<n1;i++)
{
cin>>V1[i];
}

cout<<"Ingrese la dimension del vector 2 ";
cin>>n2;
cout<<"Ingrese los elementos del vector 2"<<endl;
for(i=0;i<n2;i++)
{
cin>>V2[i];
}
*/
n1
=6;
V1[
6]=(1,3,5,6,8,10);
n2
=5;
V2[
5]=(0,2,4,7,9);
j
=0;//indice para el primer vector
k=0;//indice para el segundo vector
l=0;//indice para el tercer vector
while ((j<n1)&&(k<n2))
{
cout
<<V1[j]<<"<"<<V2[k]<<"?"<<endl;
if(V1[j]<V2[k])
{
V3[l]
=V1[j];
cout
<<"saco de v1 el "<<V1[j]<<endl;
j
++;
}
else
{
V3[l]
=V2[k];
cout
<<"saco de v2 el "<<V2[k]<<endl;
k
++;
}
l
++;
system(
"pause");
}

for(i=j;i<n1;i++)
{
V3[l]
=V1[i];
l
++;
}

for(i=k;i<n2;i++)
{
V3[l]
=V2[i];
l
++;
}

n3
=l;// tamaño del vector tres

cout
<<"El Vector 3 es"<<endl;
for(i=0;i<n3;i++)
{
cout
<<V3[i]<<endl;
}

system(
"pause");
return 0;
}


Nota: en el codigo esta resuelto con varios "cout" que van mostrando el funcionamiento paso a paso de las decisiones del "if", deje comentado el ingreso manual de cada vector, y lo cargue al vector desde el codigo.