he estado tratando pero no me sale...
un algoritmo para hacerlo... arreglo(vector) gracias x adelantado
Actualizar:para los que saben programacion, necesito hacerlo en c++ pero solo quiero una idea como hacerlo, no importa en q lenguaje...
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
Te voy ayudar para C++.
Supongamos un arreglo de 10 elementos (llamemoslo Vec). Supongo también que ya sabes llenar ese arreglo. Por si no...
for(i=0;i<10;i++)
{
cin>>Vec[i];
}
Despues procedemos con el borrado. Para esto pedimos el numero a borrar.
cout<<"Número a borrar: ";
cin>>num; //número a borrar
Recorremos el arreglo para ver si existe:
for(i=0;i<10;i++)
{
if(num==Vec[i])
{
Vec[i]=-1; //si existe, pongo -1 para simular el no. borrado
}
}
Luego, mostramos el arreglo, para ver los numero borrados:
for(i=0;i<10;i++)
{
cout<<Vec[i];
}
Espero me halla explicado.
Para borrar un elemento de un arreglo, generalmente se usa el metodo de desplazamiento hacia adelante:
Array: 1, 2, 3, 4, 5, 6
Total = 6 valores
Si borro el 4, desplazo todos los que estan despues un casillero adelante:
Array: 1, 2, 3, <-5, <-6
Total=5 elementos
Pseudocodigo:
.Inicio.
...
/* Aqui la parte del borrado */
***** buscamos el indice del elemento a borrar
For i←0 To numElems -1
... If Array[i] = elemento_a_borrar Then
... ... Index = i
... ... For k←Index+1 To numElems-1
... ... ... Array[k-1] ← Array[k]
... ... Next k
... ... numElems ← numElems-1
... ... Exit For
... Endif
Next i
/********************************/
...
.Fin.
Una posible versión en C/C++:
//...................................
int encontrado=0;
int i=0;
while (!encontrado && i < numElems)
{
if (array[i] == elemento)
{
encontrado = 1;
int k = i + 1;
while (k < numElems)
{
array[k-1] = array[k];
k++;
}
numElems--;
}
i++;
}
//....................
Pues facil,primero recorres el vector con el numero buscado,una vez que lo encuentra guardas la posicion en otra variables.Despues realiza el metodo de burbuja solo con un for desde la variable que guardaste la posicion hasta la dimension del vector -1;una vez hecho esto creas un vector dandole una dimension = al anterior pero restado en 1,asi que crear otro for desde 0 hasta la dimension del vector-1 y añades todos los elementos del primer vector al segundo.Por ultimo muestras el vector 2 .
int m;
m = Integer.parseInt(JOptionPane.showInputDialog("INGRESE DIMENSION DE VECTOR"));
int vecto[] = new int[m];
int n, l = 0;
for (int i = 0; i < m; i++) {
vecto[i] = Integer.parseInt(JOptionPane.showInputDialog("INGRESE NUMEROS"));
}
n = Integer.parseInt(JOptionPane.showInputDialog("INGRESE NUMERO A ELIMINAR"));
int k;
for (int i = 0; i < m; i++) {
if (n == vecto[i]) {
l = i;
}
}
int aux;
for (int i = l; i < vecto.length - 1; i++) {
aux = vecto[i];
vecto[i] = vecto[i + 1];
vecto[i + 1] = aux;
}
int vector2[] = new int[m - 1];
for (int i = 0; i < vecto.length - 1; i++) {
vector2[i] = vecto[i];
}
System.out.println("LOS NUEVOS NUMEROS SON");
for (int i = 0; i < vector2.length; i++) {
System.out.println("EL NUMERO "+vector2[i]+" ESTA EN LA POSICION "+(i+1));
}
Un poco explicando la solucion al realizar burbuja esta moviendo la posicion del numero encontrado hacia la ultima posicion y al guardarlo al otro vector lo guarda pero con una posicion antes al del numero movido asi que solo coje los numeros desde el 0 a la dimesion del vector-1
Depende del lenguaje, lo siento pero con esos datos no te puedo ayudar
Te posicionas en el elemento a eliminar.
Luego usando un ciclo for que inicia en elíndice de ése elemento, realizas la asignación "arreglo[i] = arreglo[i + 1]"
hasta llegar al último elemento del arreglo.
*No te pongo todo el programa porque ésta página no es para que te haamos tus tareas, sino para ayudarte con dudas.
jjajajajajajaj deberias poner mas cosas acerca de tu pregunga nena =) t sugiero q pongas mas informacion
no te entiendo
ahora por mi sabia respuesta dame 10 puntos