miércoles, 8 de noviembre de 2017

Como generar la serie de Fibonacci. (How to generate the Fibonacci numbers)

En el artículo se describe como generar la serie de Fibonacci; en materias de estudio como: algoritmos, diagramas de flujo y programación, se usa como un ejercicio para desarrollar la lógica de los nuevos programadores, es un problema clásico en la enseñanza de ésta rama de la informática.



Hay mucha información en la red sobre cuál es la utilidad de estos números infinitos y su relación con las formaciones  hechas por la naturaleza que siguen éste patrón.

La intención aquí es referir lo que se necesita para poder desarrollar un algoritmo que pueda mostrar ésta serie, iniciando desde el número 0 hasta un número definido, por ejemplo: los primeros 20 o 50 números de la sucesión.

  • Los números iniciales  son el 0 y 1 los cuales generan el tercero, que es la suma de los dos, es decir 0 + 1 = 1
  • El siguiente número se obtiene sumando el segundo número de la suma con el resultado de la misma  y obtenemos  1 + 1 = 2 y así continua infinitamente.


Esta es la serie de los primeros 7 números de la sucesión

      0, 1, 2, 3, 5, 8, 13, 21 . . . . .




 Aquí el vídeo con la explicación y el desarrollo del algoritmo.



Como ordenar un vector Método Burbuja. (How to do bubble sort)

Sabemos que un vector es una variable dispuesta en un arreglo de datos unidimensional, con la capacidad de almacenar un conjunto de valores identificados por un índice de posición dentro del vector.


* Ver en éste blog el artículo como trabajar arreglos unidimensionales (vectores)

Este artículo presenta cómo es el procedimiento para ordenar un vector con un conjunto de datos numéricos que inicialmente estén desordenados, para ejemplificar se usa un vector de 15 elementos con números enteros de entre el 10 y el 70 como lo muestra la imagen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

22
13
45
64
31
18
56
70
27
47
66
35
11
52
36

Existen varios métodos para ordenar los valores de un vector, para éste caso se describe el ordenamiento por el método de burbuja, llamado así por el comportamiento de los valores más bajos, que irán desplazándose lentamente hacia las primeras posiciones, tal como una burbuja emerge a la superficie.

EL proceso de la burbuja consiste recorrer el vector de izquierda a derecha, comparando cada uno de los valores con el siguiente,  si el dato de la izquierda es mayor que el de la derecha, son intercambiados y se compara con el siguiente, esto se repita hasta recorrer el vector tantas veces como la cantidad de elementos contenga, el resultado es que los números menores se desplazan a la izquierda y los mayores a la derecha.

1
2

22
13

Vuelta  1 se compara si  vector[1] (22)  es mayor que  vector[2] (13)

1
2

13
22

Los valores son intercambiados y se continua la comparación de vector[2] con vector[3]

Para hacer este proceso son necesarios dos ciclos uno de 15 vueltas para evaluar todos los elementos y otro anidado de 15-1(14) ciclos para hacer los intercambios. Se debe usar la variable de conteo del ciclo anidado para gestionar el índice del vector.

El método de burbuja es de los más sencillos pero no el más eficiente, el recorrer tantas veces el vector para verificar número por número e intercambiarlos, causa muchas veces ciclos y comparaciones innecesarios, pues el ordenamiento del vector puede darse mucho antes de que terminen los ciclos definidos.


Burbuja mejorado, consiste en incrustar una variable al ciclo de intercambio que registre cuando ya no hay más valores por intercambiar y poder dar por terminado anticipadamente los ciclos restantes. 

Aquí el vídeo de cómo desarrollar el algoritmo.


viernes, 3 de noviembre de 2017

Programando mi primer viedeo juego con Scratch - (Programming my first videogame with Scratch)

Hace ya algún tiempo me comentaron sobre esta nueva modalidad de programar, inmediatamente me llene de curiosidad por saber cómo es éste lenguaje de programación por bloques, no tarde mucho en ingresar al sitio y a empezar a instruirme en sus características, el resultado fue que me sorprendí gratamente en ver como las tecnologías de la información van evolucionando.



El lenguaje viene con todo tipo de herramientas que facilitan la programación de animaciones y procesos para elaborar vídeo juegos o simplemente iniciar con la programación de una forma diferente y sencilla, quiero aclarar que aunque no se escriben líneas de código convencionales como cualquier lenguaje, las estructuras básicas de programación son las mismas, así que ayuda bastante saber programar en un lenguaje clásico.

La modalidad del lenguaje es de tipo visual y dirigido a eventos y objetos, facilitando aún más el desarrollo de los programas.

El editor de programación fue desarrollado por Instituto de Tecnología de Massachusetts y es de uso libre, recomendado para todas las edades y con gran aplicación para las escuelas en los procesos de aprendizaje y desarrollo de habilidades cognitivas.

Para usar la herramienta de desarrollo basta con ir al sitio y ver las instrucciones de uso, está disponible en muchos idiomas incluido el español, cuenta con tutoriales de como programar para iniciar sin problema con su uso, se puede usar en dos modos online y offline.

Además de ser un ambiente de desarrollo, es una comunidad de usuarios donde se pueden ver los trabajos de otros programadores así como exponer las aplicaciones propias.

Aquí el link del sitio: Scratch

En mi experiencia por ésta herramienta pude desarrollar un pequeño vídeo juego, del cual dejo el link al final del artículo para que puedan ver la programación y mejorarlo si así lo desean.

Aquí el link del video juego: Mono Raider

Descargar Objetos: Aquí
Super Deportes: Final
Juego Invasión Final

jueves, 2 de noviembre de 2017

Cómo trabajar con arreglos multidimensionales (matrices) - How to work with multidimensional arrays (matrix)

En programación comúnmente necesitamos usar múltiples valores que sean comunes entre sí, es decir mismo tipo y para procesos semejantes.

Para esos casos los lenguajes de programación implementan un tipo de variables que pueden tener más de un espacio para almacenar valores, los llamamos Arreglos (Arrays).

* Ver en éste blog el artículo como trabajar arreglos unidimensionales (vectores)

Una matriz es una variable a la que reservamos espacios de memoria en más de una fila o renglón, a diferencia del vector que reserva múltiples espacios en un mismo plano, en palabras practicas una matriz de datos puede representarse como una cuadricula, identificando cada uno de los datos con un índice compuesto de dos números enteros, uno para indicar el plano horizontal  y otro para el vertical, formando así, el vértice dentro de la cuadricula que corresponde a cada dato.

La reserva de los espacios de memoria se especifican mediante dos enteros entre corchetes ( variable [nx  , ny] ).

Un arreglo de datos puede almacenar una serie de números o letras o palabras, es decir, datos del mismo tipo.

Para hacer uso de ésta estructura de datos, son necesarias dos sentencias de ciclos, usualmente la instrucción FOR. El número de índice que identifica cada valor en el arreglo es gestionado por dos  variables que los bucles ira modificando para recorrer la matriz.

Algunos lenguajes permiten cambiar el tamaño del arreglo en tiempo de ejecución.



En la imagen vemos un ejemplo que muestra un vector que almacena 10 números y una matriz con espacio para 30 [10,3] asignados en diferentes espacios:
  • El número  5  en la posición [1,1]
  • El número 38 en la posición [2,3]
  • El número 21 en la posición [3,2]
  • El número 55 en la posición [10,3]

Aquí un vídeo con un ejemplo de como programar una matriz en pseudocódigo


miércoles, 25 de octubre de 2017

Cómo trabajar con arreglos unidimensionales - vectores. (Working with one-dimensional arrays - vectors).

En programación comúnmente necesitamos usar variables, definimos su nombre, su tipo y listo podemos asignarle valores y hacer operaciones con ellas, pero que pasa cuando requerimos un conjunto de datos que sean comunes entre sí, es decir mismo tipo y para procesos semejantes.

Para esos casos los lenguajes de programación implementan un tipo de variables que pueden tener más de un espacio para almacenar valores, los llamamos Arreglos (Arrays).

La diferencia consiste en que una variable independiente reserva un único espacio de memoria para almacenar sus valores y el arreglo reserva los espacios de memoria solicitados mediante un entero especificado típicamente entre corchetes ( variable [ n ] ), donde cada espacio será identificado con el mismo nombre de variable pero con un índice de acceso a cada dato.

Un arreglo de datos puede almacenar una serie de números o letras o palabras, es decir, datos del mismo tipo.

El complemento para trabajar eficientemente con arreglos de datos, son las estructuras de ciclos, usualmente la instrucción FOR. El número de índice que identifica cada valor en el arreglo es gestionado en una variable que el ciclo ira modificando para recorrer el vector.

Al usar un arreglo y una estructura de ciclo, es posible transitar entre los valores de modo ascendente, descendente y puntos intermedios, dando la posibilidad al programa de generar resultados más complejos con menos líneas de código.

Usar una variable en el indice de acceso a los datos, permite también hacer cálculos con esa variable por tanto ese indice puede ser el producto de una suma, resta o multiplicación, siempre que el resultado sea un entero dentro del rango establecido.

Algunos lenguajes permiten cambiar el tamaño del arreglo en tiempo de ejecución del programa.

Dentro de un programa se pueden implementar tantos arreglos como sean necesarios.

En la imagen vemos un ejemplo que muestra la diferencia de usar 10 números empleando variables independientes e implementando un arreglo de 10 espacios.



La conveniencia más clara de implementar un arreglo, viene cuando se incrementa la cantidad de valores a usar, por ejemplo: 80, 120, 190, etc. La idea de usar 190 variables independientes es poco práctica.

Aquí vídeos con ejemplos básicos de cómo usar esta estructura de datos. 

lunes, 23 de octubre de 2017

Como usar la sentencia IF (How to use the IF statement in programming)

Ejemplo basado en la sintaxis del lenguaje Visual Basic.

Estructura de sentencia IF - THEN - ELSE

La sentencia IF se utiliza para decidir que líneas del código del programa serán ejecutadas y cuáles no, esta decisión es tomada de acuerdo a una condición que define una salida verdadera o falsa típicamente, necesaria para realizar un cálculo o proceso que nos lleve al resultado esperado.

  • IF  es donde definimos la condición o condiciones a evaluar para obtener una respuesta positiva o negativa, se requiere una variable o más de una para hacer las comparaciones, generando un resultado que nos indique que líneas de código se deberán ejecutar a continuación.

  • ELSE se usa como una instrucción que separa las dos condiciones, verdadera o falsa, de modo que podemos definir si el resultado de la condición no fue positivo, es decir, SI NO, se tome el resultado negativo de la condición para ser ejecutadas las instrucciones definidas en ese bloque.

  • ENDIF define donde se termina la condición.


IF puede definirse con una sola condición o con varias, agrupadas por un AND o un OR de forma lógica de modo que IF - ENDIF  forman un bloque y toda instrucción que se encuentre dentro de éste bloque será ejecutada u omitida de acuerdo al resultado de la condición evaluada.

Hay lenguajes que en su sintaxis no incluyen la instrucción THEN y ENDIF, por lo que es necesario investigar cómo se escribe y se define el bloque de instrucciones a ejecutar.

Si no se crea un bloque de instrucciones, IF ejecuta únicamente la instrucción inmediata siguiente si la condición es positiva.

La instrucción IF puede contener otra sentencia IF dentro, a esto se le llama IF anidado, los IF anidados pueden ser también más de uno, definir varios IF anidados hace más complejo para el programador definir los resultados de salida de la condición.

Este ejemplo compara cuál es el mayor de dos números 5 y 3 mediante la instrucción IF, el 5 asignado a la variable Num1 y el 3 Asignado al variable Num2, al comparar si Num1(5) es mayor que Num2(3), la respuesta será positiva, por lo que lo que muestra el mensaje mediante MSGBOX que Num1(5) Es mayor, si cambiamos los valores, donde Num2 sea mayor se ejecutaría la línea después de la instrucción ELSE, respuesta negativa omitiendo la línea anterior al ELSE.


El ejemplo anterior no puede valorar el caso cuando los números son iguales, pues la respuesta sería negativa ya que un número no será mayor que el otro.

En base al ejemplo anterior se describe como resolver para el caso de que los números sean iguales, se emplea una condición IF anidada para encontrar la solución, usando las variables NumA y NumB.



Solución usando tres sentencias IF independientes para llegar al resultado.


Aquí 2 vídeos con ejemplos en pseudocódigo de la sentencia IF. 




sábado, 14 de octubre de 2017

Cómo usar la sentencia WHILE en programación (How to use the WHILE statement in programming)

Ejemplo basado en la sintaxis del lenguaje Visual Basic.

Estructura del Ciclo condicionado WHILE

WHILE se utiliza para hacer ciclos con condición, es cuando necesitamos que se cumpla una condición para definir las vueltas que necesitamos para realizar un cálculo o proceso, la instrucción consta de dos partes.
  • DO WHILE  es donde definimos la condición requerida para la cantidad de vueltas a realizar, se requiere una variable que almacene un valor que será comparado a cada vuelta, no existe un conteo automático del valor. La instrucción DO no se escribe en algunos otros lenguajes.
  • LOOP define donde se termina el ciclo.


La sentencia WHILE requiere de una condición que permita el final de los ciclos, de lo contrario las vueltas nunca terminaran, generando un ciclo infinito que no producirá ningún resultado funcional.

La condición WHILE puede definirse al inicio o al final del ciclo de acuerdo a la necesidad.

De modo que WHILE puede forman un bloque y toda instrucción que se encuentre dentro de éste bloque será ejecutada tantas veces como la condición se cumpla.

Hay lenguajes que en su sintaxis no incluyen la instrucción LOOP, por lo que es necesario investigar cómo se define el bloque de instrucciones a ejecutar.

La instrucción DO-WHILE puede contener otra sentencia DO-WHILE dentro, a esto se le llama ciclo anidado, los ciclos anidados pueden ser también más de uno, dependiendo el resultado que deseamos obtener.

Este ejemplo define mediante la instrucción WHILE un ciclo de 20 vueltas, donde se ejecutan 2 instrucciones, que son, el incremento en 1 de la variable CONT y la función MSGBOX para mostrar cada valor que ira tomando la variable CONT, iniciando con el número 1 y terminando con el número 20. La condición es que MIENTRAS la variable CONT tenga un valor menor a 20, los ciclos se ejecutaran, si el valor de CONT en mayor o igual a 20 antes de ejecutar la instrucción WHILE, éste no realizará ninguna vuelta y saltara una línea después de la instrucción LOOP.

DIM es la instrucción que nos permite definir las variables.

Cont = Cont  + 1 es la sintaxis típica para incrementar el valor de una variable, pudiendo ser el incremento en más de 1.


En éste ejemplo el programa realiza la misma operación que en ejercicio anterior, con la diferencia que esta vez, la condición se evalúa al final del ciclo lo que permite ejecutar las 2 instrucciones dentro del bloque al menos una vez sin importar el valor inicial de la variable CONT.



Aquí un vídeo con ejemplos en pseudocódigo de ciclo WHILE,  Vídeo

Artículo Reciente

Como generar la serie de Fibonacci. (How to generate the Fibonacci numbers)

En el artículo se describe como generar la serie de Fibonacci; en materias de estudio como: algoritmos, diagramas de flujo y programación, ...

Artículos