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

jueves, 12 de julio de 2012

examen1 solucion en pseudocodigo

Programa del examen nº 1

Pseudocódigo
<inicio>
tabla[10] // tabla de 10 elementos
opcion=1 // opcion elegida, le pongo distinto a uno para que no salga del menu
contador=0 // contador
// Pongo todos los numeros de la tabla a cero
mientras contador<10
    tabla[contador]=0
    contador++
fincontador
// presentación del menu
escribe_menu()
mientras opcion!=0
    // lectura del teclado
    opcion=LeerOpcionMenu()
    //elegir caso
    En caso opcion
        caso 1
            cargartabla10elementos(tabla[])
            escribe_menu()
         caso 2
            cargartabla10elementosordenadosmenoramayor(tabla[])
            escribe_menu()
        caso 3
            rotarlatablaunaposicionizquierda(tabla[])
            escribe_menu()
        caso 4
            rotarlatablaunaposicionderecha(tabla[])
            escribe_menu()
        caso 5
            ordenarlatabladescendentemente(tabla[])
            escribe_menu()
        caso6
            ordenarlatablaascendente(tabla[])
            escribe_menu()
        caso 7
            rellenarlatablaconnumerosaleatorios(tabla[])
            escribe_menu()
        fincaso
<finmientras>
<fin>

Defino procedimintos

<inicio escribe_menu()>
c=0
Escribe “Menu:”
Escribe “1-Cargar la tabla con 10 números”
Escribe “2-Cargar la tabla con 10 numeros ordenados de menor a mayor”
Escribe “3-Rotar la tabla una posicion a la izquierda”
Escribe “4-Rotar la tabla un posición a la derecha”
Escribe “5-Ordenar la tabla descendientemente”
Escribe “6-Ordenar la tabla ascendentemente”
Escribe “7- Rellenar la tabla con numeros aleatorios”
Escribe “0-Salir”

Escribe “La tabla actual es:”

mientras c<10
    Escribe tabla[c]
finmientras

<fin escribe_menu()>
<inicio LeerOpcionMenu()>
variable=0
mientras variable>=0 O variable<=7
    Escribe “Escribe la opcion:”
    Lee variable
finmientras
Devuelve variable
<fin LeerOpcionMenu>

<inicio escribetabla(tabla[])>
contador=0
mientras contador<10
    Escribe tabla[contador]
finmientras
<fin escribetabla>

<inicio cargartabla10elementos(tabla[])>
elementos=0
mientras elementos<10
    Escribe “Elemento %d :”,elemento
    tabla[elemento]=Lee elemento
    elemento++
finmientras
<fin cargartabla10elementos>


<inicio cargartabla10elementosordenadosmenoramayor(tabla[])>
elementos=0
valor=0
pos=0
indice=0
//tengo que poner el valor de la tabla al maximo int, para que lo ordene bien
mientras elementos<10
    tabla[elementos]=INT_MAX // asi introduzco el valor maximo
    elementos++
finmientras

elementos=0
mientras elementos<10
    // obtener el numero
    Escribe “Elemento %d :”
    Lee valor
    // determino posicion
    pos=0
    mientras tabla[pos]<valor Y pos<9
        pos++
    finmientras
    // insertar el numero en la posicion obtenida
    indice=9
    mientras indice>pos
        tabla[indice]=tabla[indice-1]
        indice--
    finmientras
    tabla[pos]=valor

    elementos++

finmientras
<fin cargartabla10elementosordenadosmenoramayor>


<inicio rotarlatablaunaposicionizquierda(tabla[])
pos=9
valor=tabla[9]

mientras pos>0
    tabla[pos]=tabla[pos-1]
    pos--
fin mientras

tabla[0]=valor
<fin rotarlatablaunaposicionizquierda)


<inicio rotaarlatablaunaposicionderecha(tabla[])
pos=0
valor=tabla[0]

mientras pos<9
    tabla[pos]=tabla[pos+1]
    pos++
fin mientras

tabla[9]=valor
<fin rotaarlatablaunaposicionderecha>


<inicio ordenarlatabladescendentemente(tabla[])
num=0
aux=0
c=0
mientras num<10
    c=num+1
    mientras c<10
        si tabla[num]>tabla[c] // de mayor a menor
            //este caso no lo usamos
        sino
            aux=tabla[c]
            tabla[c]=tabla[num]
            tabla[num]=aux
        finsi
        c++
    finmientras
num++
finmientras
<fin ordenarlatabladescendentemente>
<inicio ordenarlatablaascendente(tabla[])>
num=0
aux=0
c=0
mientras num<10
    c=num+1
    mientras c<10
        si tabla[num]<tabla[c] // de menor a mayor
            //este caso no lo usamos
        sino
            aux=tabla[c]
            tabla[c]=tabla[num]
            tabla[num]=aux
        finsi
        c++
    finmientras
    num++
finmientras
<fin ordenarlatablaascendente>


<inicio rellenarlatablaconnumerosaleatorios(tabla[])>
c=0
mientras c<10
    tabla[c]=aleatorio(1,100)
     c++
finmentras
<fin rellenarlatablaconnumerosaleatorios>

No hay comentarios:

Publicar un comentario en la entrada