Está en la página 1de 3

El ejercicio 2 de la práctica de arreglos AR-01

a) Copiar el Vector V en el vector W.

V 4 7 8 -1 17 31 0 22 55 -5
0 1 2 3 4 5 6 7 8 9

W 4 7 8

Copiar un vector en otro, implicar copiar un elemento del vector a la vez y


con el mismo índice, es decir se producirían las siguientes asignaciones:

W(0)  V(0 ) : W(1)  V(1 ) : W(2)  V(2 ) y así sucesivamente, que se


puede resumir en alguno de los siguientes segmentos de programa :

Solución a) Solución b)
Solución c)

Para i = 0, 9 Para i = 0, 9 J0


W(i)  V(i) j  i Para i = 0, 9
FinPara W(j)  V(i) W(j)  V(i)
FinPara Jj+1
FinPara

b) Copiar el Vector V en el vector W, en orden inverso.

V 4 7 8 -1 17 31 0 22 55 -5
0 1 2 3 4 5 6 7 8 9

W -5 55 22 8 7 4

0 1 2 3 4 5 6 7 8 9

Copiar un vector en otro, en orden inverso, implicar copiar un elemento del


vector a la vez pero con otro índice, es decir se producirían las siguientes
asignaciones:

W(0)  V(9 ) : W(1)  V(8 ) …… W(8)  V(1 ) : W(9)  V(0 ) y así


sucesivamente, que se puede resumir en los siguientes segmentos de programa
:

Solución a) Solución b)
INICIO
I 9
Para J = 0, 9
W(j)  V(I) : I  I - 1
FinPara
muestraVector(Q,10)
FIN
INICIO
J 0
Para I = 9, 0, -1
W(j)  V(I) : J  J + 1
FinPara
muestraVector(Q,10)
FIN

En la solución a), mientras el índice J del vector W va incrementando, el índice I del


vector V va decrementando.

c) Copiar los positivos a un segundo vector y los negativos a otro.


P J V I Q
K (indice)
5 0 5 0 -1 0
7 1 0 1 -2 1
11 2 -1 2 -5 2
3 7 3 3
4 -2 4 4
5 11 5 5
6 21 6
-5

La solución en este caso, consiste en copiar un elemento a la vez, al vector P


los positivos (> a 0) y al vector Q los negativos (< a 0), como se ve en el
grafico (con los ceros no se hace nada). Y que pasa con los índices ???.

En este caso requeriremos 3 índices diferentes, uno para cada vector ya que la
copia de cada elemento será aleatoria al vector P o al vector Q (al uno o al
otro pero no a ambos al mismo tiempo), asimismo se deben copiar en
posiciones consecutivas de cada vector.

El índice I usaríamos para recorrer el vector V y seria manejado por un para.


PROGRAMA Ejercicicio_2c)
Para losIntvectores P yP(10),
V(10), Q(10), Q los I , Jíndices
,K serian J y K que son contadores ya que se
incrementan
INICIO solo cuando se necesite.
J  0 : K 0
El resultado será 10)
cargaVector(V, el siguiente,
// invocamosen base a sub-programas
al sub-programa que carga un vectordesarrollados
// copia cargaVector()
anteriormente en P o Q y muestraVector().
Para I=0, 9
Si V(I) > 0 // Si el elemento es positivo
Entonces P(J)  V( I) : J  J + 1 // copiamos en P
FinSi
Si V(I) < 0 // Si el elemento es negativo
Entonces Q(J)  V(I) : K  K + 1 // copiamos en Q
FinSi
FinPara
muestraVector(P, I) // invocamos al sub-programa que muestra un vector
muestraVector(Q,K)
FIN
De este programa se deduce lo siguiente:

La línea de declaración Int V(10), Q(10), P(10) significa que V, P y Q se declaran


como vectores y cada uno tendrá 10 elementos del tipo entero. Se reservan 10
posiciones de memoria para cada vector.

La sentencia cargaVector(V, 10) invoca a dicho sub-programa para que cargue el


vector, que esta nombrado como V y se cargaran en el 10 elementos.

El índice J solo se incrementa cuando se copia(asigna) un elemento en P, mientras


que el índice K solo se incrementa cuando se copia(asigna) un elemento en Q.

La sentencia muestraVector(P, I) invoca a dicho sub-programa para que muestre el


vector, que esta nombrado como P y se le han asignado I elementos, de los 10
reservados.

La parte muestraVector(Q,K) invoca a dicho sub-programa para que muestre el


vector, que esta nombrado como Q y se le han asignado K elementos.

Luego, de P y Q no se muestran 10 elementos (los que se han reservado), sino solo


los que se han copiado, es decir I y K respectivamente.

También podría gustarte