• Domingo 15 de Diciembre de 2024, 18:48

Autor Tema:  como buscar, reemplazar y reordenar un valor en unarreglo  (Leído 2330 veces)

Germanplz

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
como buscar, reemplazar y reordenar un valor en unarreglo
« en: Martes 15 de Abril de 2014, 01:21 »
0
Les explico. Tengo que hacer un programa que cree un vector de tamaño que elija el usuario, luego preguntarle por una posición del arreglo que desea reemplazar y el valor que ira en su lugar,  una vez hecho esto el ultimo valor del vector del lado derecho debe destruirse, y claro imprimir el vector resultante del proceso. Otra cosa importante es que el programa debe terminarse cuando el usuario ingrese la posición -1. Para que se den cuenta de lo que quiero les daré un ejemplo de lo que debería salir por pantalla:
---------------------------------------------------------------------------------------- 
Ingrese un numero: 5
Vector: [5 3 4 1 2]
Ingrese posicion: 0
Ingrese valor: 8
Nuevo vector: [8 5 3 4 1]
Ingrese posicion: 2
Ingrese valor: 42
Nuevo vector: [8 5 42 3 4]
Ingrese posicion: -1
---------------------------------------------------------------------------------------- 
Y esto es lo que llevo. De ante mano les agradezco la ayuda
Código: [Seleccionar]
#include <iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;

int main(int argc, char** argv) {
srand(time(NULL));
int largo=0;int valor=0;int posicion=0;int cambio=0;
cout<<"ingrese el largo del vector: ";
cin>>largo;
cout<<endl<<"el vector es: ";
int vector[largo];
for (int i=0;i<largo;i++){
vector[i]=rand()%11;
cout<<vector[i]<<" ";
}
do {
cout<<endl<<"ingrese la posicion que desea reemplazar: ";
cin>>posicion;
while(posicion>largo){
cout<<endl<<"el valor ingresado en menor al largo del arreglo, ingrese un valor valido: ";
cin >> posicion;
}
cout<<endl<<"ingrese el nuevo valor: ";
cin>>valor;
cout<<endl<<"el nuevo vector es: ";
for (int j=0;j<largo;j++){
vector[posicion]=valor;
cout << vector[j] << " ";
}
            } while (posicion!= -1);


system("pause");
}

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:como buscar, reemplazar y reordenar un valor en unarreglo
« Respuesta #1 en: Martes 15 de Abril de 2014, 14:16 »
0
Te adjunto un pequeño código de como lo he solucionado yo.
Creo el vector dos veces, copiado los datos, luego con esta rutina desplazo los componentes y asigno al original el valor introducido en la posición introducida, pon tu el código de aceptar los datos y mostrarlos, iValores la cantidad de datos del vector, iPos la posición pedida al usuario y iValor lo que quiere grabar. Yo he cargado los valores del 1 al 5 para simplificar.

Código: [Seleccionar]
int iValores = 4;    // Cantidad de valores del vector
int iVector[5];
int iVectorC[5];
for(int i=0;i<5;i++) // Aqui cargo los vectores del 1 al 5
{
iVector[i] = i;
iVectorC[i] = i;
}
int iPos = 2;     // Datos pedidos al usuario
int iValor = 48;  // Datos pedidos al usuario
for(int i=iPos;i<iValores;i++)    // Aqui corro el valor a partir de la posicion
iVectorC[i+1] = iVector[i];
iVectorC[iPos] = iValor;   // Aqui asigno el valor introducido
for(int i=0;i<5;i++)      // Aqui vuelvo a copiar un vector sobre el otro
iVector[i] = iVectorC[i];
cout << iVectorC[0] << endl;
cout << iVectorC[1] << endl;
cout << iVectorC[2] << endl;
cout << iVectorC[3] << endl;
cout << iVectorC[4] << endl;

iVector y iVectorC es donde están los datos almacenados, con el bucle for desde la posición deseada hasta el final, voy moviendo de iVector a iVectorC y después del bucle grabo el parámetro introducido, copia el vector de nuevo sobre la copia para la siguiente entrada.

Un saludo
« última modificación: Martes 15 de Abril de 2014, 14:27 por chenech »

Germanplz

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re:como buscar, reemplazar y reordenar un valor en unarreglo
« Respuesta #2 en: Miércoles 16 de Abril de 2014, 02:21 »
0
Gracias me iluminaste, de verdad muchas gracias  :bravo:

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:como buscar, reemplazar y reordenar un valor en unarreglo
« Respuesta #3 en: Miércoles 16 de Abril de 2014, 12:38 »
0
De nada, un saludo.