Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas

Programación. Ordenar de menor a mayor

Para ordenar tres valores o un array vamos a necesitar una función para intercambiar los valores de dos variables (en la clase anterior se planteó). La función es de la siguiente forma:

funcion intercambiar(a por referencia, b por referencia)
  definir c como entero
  c = a
  a = b
  b= c
finfuncion

Para ordenar tres valores almacenados en tres variables podemos hacer uso de esa función de la siguiente forma:

si num1 > num2 entonces
  intercambiar(num1,num2)
finsi

tenemos que comparar el segundo con el tercero y otra vez el primero con el segundo.

En el ejercicio de ordenar un array también tenemos que utilizar la función anterior. En este caso necesitamos:

  • un bucle para recorrer todo el array de la siguiente forma:
para i=1 hasta 9 hacer
   si datos[i]> datos[i+1] entonces
       intercambiar(datos[i],datos[i+1])
   finsi
fin para 
  • otro bucle para repetir ese recorrido varias veces y así lograr que termine ordenado


App Inventor

Como herramienta de programación para dispositivos móviles, vamos a hacer uso de de App Inventor.

Esta es una herramienta de programación visual para el desarrollo de aplicaciones para móviles Android. Es una herramienta online y gratuita. Podemos acceder a partir de nuestra cuenta de Google.

Al igual que Scratch, el diseño de las aplicaciones así como la programación asociada a estas es visual y mediante componentes/bloques que se tienen que arrastrar y acoplar entre sí.

Captura del Diseñador, para el diseño de la interfaz
Captura del entorno Bloques, para añadir la funcionalidad de la aplicación
Una vez diseñada la interfaz de nuestra aplicación y añadidos los bloques que permiten darle funcionalidad a la aplicación, nos va a permitir generar la apk para instalar la aplicación en un dispositivo móvil con Android. Se puede hacer utilizando un código QR y así instalar directamente en el dispositivo o descargando la apk en nuestro ordenador y luego pasarla a nuestro dispositivo móvil.

Algoritmo para generar los números de la primitiva

Uno de los ejercicios que hemos realizado en clase ha sido el de generar seis números aleatorios para el juego de la PRIMITIVA (números entre 1 y 49). Como mejora se establecía el tener en cuenta que no se puedan repetir. Este es un ejemplo de como realizar dicho algoritmo. También me va a servir este ejemplo para remarcar la importancia de la documentación del código, los comentarios.

Funcion res = encontrado(b,n,i)
// Función: determina si el valor n está en el array b en las i-1 posiciones indicadas
// Entradas: b array de valores; n el valor a comprobar si está; i indica las posiciones que quiero comprobar
// Salida: valor lógico indicando si lo ha encontrado (verdadero) o no (falso)
Definir res Como Logico
Definir j Como Entero
res <- falso
Para j<-1 Hasta i-1 Hacer
Si b[j]=n Entonces
res <- verdadero
FinSi
FinPara
FinFuncion

Funcion visualizar(b)
// Función: Visualizar el array
// Entradas: b el array de valores
// Salida: Ninguna
Definir j como entero
Para j<-1 Hasta 6 Hacer
Escribir b[j]
FinPara
FinFuncion

funcion intercambiar(a por referencia,b Por Referencia)
// Función: intercambia los valores pasados como argumentos
// Entradas: a y b, valores a intercambiar
// Salida: a con el valor de b y b con el valor de a
Definir c como real
c=a
a=b
b=c
FinFuncion

Funcion ordenar(b)
// Función: ordena array
// Entradas: b el array desordenado
// Salida: b el array ordenado
Definir i,j como entero
Para i=2 hasta 6 hacer
Para j=1 hasta 6-i+1 Hacer
si b[j]>b[j+1] Entonces
intercambiar(b[j],b[j+1])
FinSi
FinPara
FinPara
FinFuncion

Algoritmo Generador_de_primitivas
// Declaración de variables
// i es un contador 
// b es el array de 6 elementos
// n será el valor aleatorio obtenido
Definir i,b,n Como Entero
Dimension b[6]
// Proceso que irá determinado valores al azar, si no está en el array lo insertará 
// y determinará otro hasta llegar a 6. Si un valor ya está en array se repite la búsqueda
i <- 1
Repetir
n <- azar(49)+1
Si  NO encontrado(b,n,i+1) Entonces
b[i] <- n
i <- i+1
SiNo
Escribir 'Valor repetido (',n,')...buscando otro'
FinSi
Hasta Que i>6
ordenar(b)
// visualiza los elementos encontrados
// Una mejora sería que los mostrase ordenados
Escribir 'Los número obtenidos para tu primitiva son...'
visualizar(b)
FinAlgoritmo

Tenemos varios ejemplos de funciones o subprocesos y de los distintos tipos que se han comentado en clase; en algunos casos devuelven un valor (función encontrado), en otro se pasan dos valores por referencia (función intercambiar) y por último, tenemos una función que no devuelve nada ya que solo sirve para visualizar el contenido del array. 
Tened en cuenta que en la función ordenar, a la cual le pasamos el array con los seis números no se pasa por referencia ya que en el caso de los arrays no es necesario.

Aquí está el diagrama de flujo del algoritmo principal.
Esta es la función para determinar si un número existe en el array... buscando  en el array b, indicando el valor que quiero saber si está o no y hasta que posición quiero que lo busque.


Actividades de programación. Algoritmos

Hoy he subido una lista de actividades complementarias a las realizadas en clase. Los alumnos/as que necesiten practicar más o enfrentarse a más retos pueden intentar realizar dichos algoritmos.
Resultado de imagen de humor informatico

Nosotros en clase estamos utilizando PSeInt. Esta aplicación que está disponible para distintas plataformas y es software libre. Permite diseñar algoritmos con pseudocódigo y diagramas de flujo. Además permite obtener el código de nuestros algoritmos a distintos lenguajes de programación.

Se han subido una relación de ejemplos de algoritmos ya resueltos. También existe una relación de ejercicios para practicar vosotros.

Iré subiendo más material. 

Saludos

Lenguajes de programación más populares

La web Computer Hoy ha publicado una lista con los diez lenguajes de programación más populares en 2010...muy interesante.
Entre otros lenguajes, ya conocidos como Java, Phyton y C#, se habla de Kotlin, el lenguaje que se considera el lenguaje de programación oficial para Android.
Google ofrece cursos de este lenguaje de programación