Algoritmia - redimensionar un arreglo

 
Vista:

redimensionar un arreglo

Publicado por edison (2 intervenciones) el 15/05/2006 04:15:17
Hola a todos reciban un saludo ..bueno soy nuevo en esto de programación estoy aprendiendo C++ alguien me podria decir en pseudocodigo(o en codigo) como se aumenta la dimension de un arreglo a medida q se ingresan valores desde el teclado, es decir los valores del arreglo de ingresaran desde el teclado
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:redimensionar un arreglo

Publicado por Juan (28 intervenciones) el 15/05/2006 15:04:10
Mira en pseudoformal no existe un mecanismo tal cual para redimensionar un arreglo. Una opcion podria ser preguntarle al usuario cuantos elementos va a ingresar. Ahora en el lenguaje propiamente dicho podrias implementar la opcion que cuando el arreglo se desborde creas un arreglo auxiliar donde copias todos los valores del arreglo, aumentar el tamaño del arreglo de entrada y luego copias todos los elementos del arreglo auxiliar al arreglo ya aumentado. Lenguajes como C# ya resuelven este problema, tienen opciones de copia y aumento de tamaño de un arreglo implicitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redimensionar un arreglo

Publicado por edison (2 intervenciones) el 15/05/2006 18:55:53
Gracias por tu respuesta Juan pero mi duda es entonces ¿no es posible redimensionar un arreglo? en lenguaje C++ lei un articulo acerca de una función pop_back de un array pero lo explica de una manera muy técnica ademas debo suponer q el usuario no especifica el numero de datos q ingresará el array debe ir creciendo a medida q se ingrese otro dato...disculpa por mi insistencia...gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redimensionar un arreglo

Publicado por Juan (28 intervenciones) el 17/05/2006 16:02:38
Salvo en C# que yo sepa no. Yo he trabajado en Java, en C++. Claro en C++ nunca se me hizo necesario. En Java si estoy completamente seguro que no se puede.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redimensionar un arreglo

Publicado por Miguel (1 intervención) el 23/08/2008 16:16:22
Bueno yo e leido un poco y como comentaban anteriormente redimencionar un arreglo no es posible pero si es posible usar una libreria que nos da esa opcion.

java.util.Vector

Hasta ahora hemos visto arreglos que no pueden cambiar su tamaño una vez creados (sólo cambiar de arreglo, perdiendo todos los valores que poseía). La clase Vector nos permite cambiar el tamaño de un arreglo cuando lo queramos. Si queremos introducir más elementos de los que soporta el arreglo, éste se expande para dar espacio a los nuevos elementos.

Constructores:
Vector()
construye un arreglo sin ningún elemento con capacidad para 10
Vector(int capacidad)
construye un arreglo sin ningún elemento con la capacidad indicada
Vector(int capacidad, int incremento)
construye un arreglo sin ningún elemento con la capacidad indicada, y que se incrementará en la cantidad del segundo parámetro si necesita espacio extra para más elementos.

Métodos para insertar:
add(Object o) inserta un elemento al final del vector
add(int índice, Object o)
inserta un elemento en la posición indicada, desplazando los elementos necesarios.
set(int indice, Object o) reemplaza el elemento del índice indicado por el nuevo objeto

Métodos para eliminar:
clear() elimina todos los elementos del vector
remove(int indice) elimina el elemento en la posición indicada

Otros métodos:
capacity() devuelve la capacidad del vector
indexOf(Object o)
devuelve la posición en que se encuentre el elemento buscado, o -1 si no lo encuentra en el vector
get (índice i) obtiene el elemento en el índice indicado
firstElement() obtiene el primer elemento
lastElement() obtiene el último elemento
isEmpty() devuelve true si el vector está vacio
toArray() devuelve un arreglo con los elementos del vector
toString() devuelve una cadena representando a todos los elementos del vector
setSize(int tamaño) establece el tamaño del vector
size() devuelve el tamaño del vector

Uso de la clase Vector

Vector arreglo= new Vector();
arreglo.add("Hola");
String posic[]={ "Primer", "Segundo", "Tercero" };
arreglo.add(posic);
arreglo.add( new Color (0,0,0) );

Crea el siguiente vector:
Hola Primer Segundo Tercero Color rojo

Para recorrer un objeto Vector se utiliza la misma forma que con la clase StringTokenizer con el método elements()

Enumeration elementos=arreglo.elements();
while (elementos.hasMoreElements())
System.out.println( elementos.nextElement() );

El uso de esta clase puede lanzar las siguientes excepciones:
NoSuchElementsException
si hacemos alguna operación que requiere elementos y el vector está vacio
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException Si utilizamos un índice equivocado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redimensionar un arreglo

Publicado por Gustavo (1 intervención) el 23/02/2023 16:09:34
En pseudo por lo visto no se puede.
En C++ al parecer se utilizar de esta manera:

nombre_vector.resize(valorDimension)

Tambien se puede decir que valores agregar de esta manera:

nombre_vector.resize(valorDimension,nuevosValores)

En el caso de que incremente el vector a medida que se ingresan datos se coloca un contador cada vez que se introduce el valor en un ciclo PARA por ejemplo, y el límite sería el contador, el resize quedaría

nombre_vector.resize(contador)

Estoy aprendiendo a programar en PSEINT pero noté que no podía redimensionar los vectores, y buscando me encontré con esta solución para C++
Yo no sé programar ese lenguaje aún, así que te recomiendo que lo pruebes. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar