Mostrando entradas con la etiqueta ejercicios. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejercicios. Mostrar todas las entradas

6 de junio de 2016

16.9 Ejercicios de Algoritmos

  • En los algoritmos de búsqueda (inserción, burbuja y quicksort) realiza las modificaciones pertinentes para obtener un ordenamiento de MAYOR a MENOR.
  • Para el método quicksort, escribe el algoritmo en pseudocódigo y el diagrama de flujo.
= = =

Funcion quicksort ( L, principio, final )
    i<-principio
    j<-final
    pivote<-(L[i]+L[j])/2
    
    Mientras i<j Hacer
        Mientras L[i]<pivote Hacer
            i<-i+1
        Fin Mientras
        Mientras L[j]>pivote Hacer
            j<-j-1
        Fin Mientras
        Si i<=j Entonces
            temporal<-L[i]
            L[i]<-L[j]
            L[j]<-temporal
            i<-i+1
            j<-j-1
        Fin Si
    Fin Mientras
    
    Si principio<j Entonces
        quicksort(L,principio,j)
    Fin Si
    
    Si final>i Entonces
        quicksort(L,i,final)
    Fin Si
    
Fin Funcion

Algoritmo ordenar
    Dimension numeros[10]
    // Genero un arreglo de 10 nmeros aleatorios
    Para i<-1 Hasta 10 Con Paso 1 Hacer
        numeros[i] <- azar(100)+1
    Fin Para
    
    Escribir "Desordenados..."
    Para i<-1 Hasta 10 Con Paso 1 Hacer
        Escribir numeros[i]
    Fin Para
    
    quicksort(numeros,1,10)
    // Como se pasa por REFERENCIA, numeros se modificara dentro de la funcion
    Escribir "Ordenados..."    
    Para i<-1 Hasta 10 Con Paso 1 Hacer
        Escribir numeros[i]
    Fin Para
FinAlgoritmo

= = =



17 de mayo de 2016

29. PR09 PR10. Programas

A partir de este momento, se exigirá que por lo menos en las funciones claves o importantes se especifiquen las pre-condiciones, las post-condiciones y las invariantes de ciclo si existen.

PR09: Extensión del programa de números primos

Modifica el programa que generaba los números primos para que grabe los números primos en el intervalo [2,1000] en un fichero que llamarás "primos.txt".
Y ahora diseña un nuevo programa que haga lo siguiente:
  1. Abrir el fichero "primos.txt".
  2. Generar una frase con los caracteres UNICODE correspondientes a los números primos.
  3. Presentar esta frase en pantalla y,
  4. Guardarla en un fichero de texto.

PR09BIS: Codificaciones y errores.

Basado en el programa anterior, genera otro programa que haga lo siguiente:
  1. Pregunte por el nombre del fichero. Detecte si el nombre del mismo es correcto o incorrecto, programando una excepción. si es incorrecto, sale del programa.
  2. Si el fichero existe, que lea el contenido y lo presente en pantalla.
  3. A partir de la cadena de caracteres, que obtenga los números de código UNICODE que los representa... ¿Es la lista de números primos?

PR10: Formulario meteorológico

Desarrolla un programa que haga lo siguiente:
  1. Solicite al usuario una contraseña.
    1. La contraseña es una cadena de 8 caracteres, mezcla exclusivamente de letras sin acentuar y de números, sin caracteres tipográficos. No valen ( ] { / & % $ # @....
    2. La contraseña es insensible a mayúsculas o minúsculas, es decir, da igual que las letras se introduzcan en mayúsculas o minúsculas.
    3. Se debe validar, tanto en longitud, como en valor, un máximo de tres veces. A la cuarta, se debe interrumpir el programa.
  2. Abrir un fichero en modo "añadir"
    1. Comprobar que el fichero existe previamente, para avisar al usuario de que si no existe el modo añadir lo va a crear.
    2. Pedir al usuario la siguiente información
      1. Estación meteorológica. Por ejemplo, "Aeropuerto de Jerez"
      2. Fecha
      3. Temperatura máxima. Rechazar si no está en el intervalo entre -50ºC y 60ºC.
      4. Temperatura mínima. Rechazar si no está en el intervalo entre -50ºC y 60ºC.
      5. Cantidad de lluvia. Rechazar si es un número negativo.
    3. Comprobar si la temperatura mínima es mayor que la máxima, y si es así, intercambiar (swap) los datos, informando al usuario
  3. Guardar el dato.
  4. Cerrar el fichero y acabar el programa.

PR10BIS: Formulario meteorológico, ampliación

Basado en el programa anterior, este nuevo programa deberá hacer:
  1. Pedir la contraseña del usuario de la misma forma y condiciones que lo hacía el programa anterior.
  2. Abrir el fichero en modo lectura. Comprobar que existe, y si no, salir del programa.
  3. Calcular lo siguiente:
    • La más baja de todas las temperaturas mínimas.
    • La media de las temperaturas mínimas.
    • La más alta de todas las temperaturas máximas.
    • La media de las temperaturas máximas.
    • La mayor variabilidad térmica (la mayor diferencia entre unas temperaturas mínimas y máximas)
    • El día de mayor variabilidad térmica.
    • La cantidad de lluvia media
    • La máxima cantidad de lluvia caída en un día.
  4. Presentar los datos al usuario, de la forma más elegante posible y cerrar el fichero. Acabar el programa.