Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

Tablas: Secuencias de Números (I)

Podemos trabajar de dos formas para tener una tabla ordenada:
1) A medida que vamos insertando el contenido lo vamos ordenando.
2) Una vez que tenemos la tabla introducida, ordenarla.
Forma 1: Ordenar tabla a medida que la vamos introduciendola:
Explicacion en Pseudocódigo:
num=0
c=0
tabla[20]=valor.maximo
mientras c<20
        num=pedirnum(“pedirnumero”)
        /* determinar cual es su posicion: pos */
         // con tabla[c]=num // no vale... tenemos que determinar la posicion de colocarlo
        c++
fin mientras

La c indica la posicion del elemento, por lo tanto tenemos que determinar pos
a) determinar pos: (en sentido de menor a mayor T[pos]<num)
    pos=0    
    mientras T[pos]<num Y pos<19
            pos++
    finmientras

Tenemos que aplicar un método para indicar la posicion nueva ordenada,
y no nos es util la variable c
b) Ahora inserto el  numero:
todos los numeros de la tabla los tengo que desplazar hacia atrás (1 posicion hacia la derecha):
indice=9
mientras indice>pos
    tabla[indice]=tabla[indice-1]
    indice--
finmientras
tabla[pos]=num

Ejemplo Completo:
Cargar una tabla ordenada de menor a mayor de 20 elementos:
<inicio>
tabla[20] =Valor.Maximo // tabla de datos, para ordenar de menor a mayor
pos=0
mientras contador<20
      num=Pedir(“Introduce Numero:”)
     'determinar pos
      pos=0
      comprobarlista=0
//determinar la posicion
      pos=0
      mientras T[pos] < num Y pos<19
          pos++
     fin mientras
//traslado lista de numeros existente desde pos hasta el ultimo numero:
    indice=19
    mientras indice>pos
        tabla[indice]=tabla[indice-1]
        indice--
    finmientras
    tabla[pos]=num
           contador++
finmientras

'escribe numeros de la tabla ordenada
contador=0
mientras contador<20
        Escribe “Numero:”, tabla[contador]
        contador++
finmientras
<fin>

No hay comentarios:

Publicar un comentario