Vamos a ver otro pequeño
ejemplo para tratar con tablas: en esta ocasión tenemos una tabla con
25 elementos que suponemos que ya está llena. Lo que
queremos es dar la "vuela" a la tabla, digámoslo
de otra manera, el elemento que está en la primera posición
ha de ocupar la última y el elemento de la última deberá
pasar a la primera. Ej.: La tabla: 1, 2, 3, 4, 5 después del
programa tendrá este aspecto 5, 4, 3, 2, 1. Hemos añadido números
a las líneas para facilitar la explicación.
| 1 |
Tabla[25] : Número |
| 2 |
IndicePrimero : Número |
| 3 |
IndiceUltimo : Número |
| 4 |
Elemento : Número |
| 5 |
IndicePrimero = 1 |
| 6 |
IndiceUltimo = 25 |
| 7 |
Repetir |
| 8 |
Elemento = Tabla[IndicePrimero]
|
| 9 |
Tabla[IndicePrimero]
=
Tabla[IndiceUltimo]
|
| 10 |
Tabla[IndiceUltimo]
=
Elemento
|
| 11 |
IndicePrimero
=
IndicePrimero + 1
|
| 12 |
IndiceUltimo
= IndiceUltimo - 1
|
| 13 |
Hasta
que IndicePrimero = IndiceUltimo |
1.- Definimos una tabla llamada Tabla
con 25 posiciones de tipo número.
2.- Definimos una variable llamada IndicePrimero
que nos servirá para movernos por la tabla desde la primera
posición en adelante.
3.- Definimos una variable llamada IndiceUltimo
que nos servirá para movernos por la tabla desde la
última posición hacia atrás.
4.- Definimos una variable llamada Elemento
para utilizarla de puente en el momento de mover el
contenido de una posición a otra. Esta variable es necesaria
ya que si hacemos el cambio desde, por ejemplo, la primera a
la última posición perderíamos el valor que teníamos en
la primera posición.
5 y
6.- Inicializamos
las variables IndicePrimero a 1
y IndiceUltimo a 25 ya que
queremos partir, respectivamente, desde la primera y la
última posición.
7.- Entramos dentro del bucle.
8.- Hacemos que la variable Elemento
tome el valor del contenido de la tabla que nos
indique IndicePrimero.
9.- Hacemos que la posición que nos
indica IndicePrimero tome como valor el
valor que tiene la posición que nos indica IndiceUltimo.
10.- Ahora la posición que nos indica IndiceUltimo
toma como valor el contenido de la variable Elemento.
11.- Aumentamos IndicePrimero
en 1 para adelantar en la tabla.
12.- Disminuimos IndiceUltimo
en 1 para retroceder en la tabla.
13.- Repetiremos el bucle hasta que los dos
índices se encuentren. Este será el punto en el que no se
tendrán que mover más elementos. Ya que nos encontramos
justo en la mitad de la tabla.
Cuando salimos del bucle la
ordenación de la tabla a concluido.
Mírate el código tantas
veces como sea necesario, si no entiendes algún punto no
dudes en preguntarlo.