Está en la página 1de 14

Construcción Individual 1

PASO 5 – CONSTRUCCIÓN INDIVIDUAL

PRESENTADO POR:

KAREN LIZETH VILLAMIL. CODIGO: 1233695732

PRESENTADO A: JUAN MONROY

GRUPO: 203036_97

UNIVERSIDAD ABIERTA Y A DISTANCIA UNAD

INTRODUCCION INGENIERIA TELECOMUNICACIONES

PROGRAMA INGENIERIA DE TELECOMUNICACIONES

SOGAMOSO

2019
Construcción Individual 2

CONTENIDO
INTRODUCCIÓN ..................................................................................................................... 3

OBJETIVOS .............................................................................................................................. 4

General: .................................................................................................................................. 4

Específicos: ............................................................................................................................ 4

CONSTRUCCIÓN INDIVIDUAL ............................................................................................ 5

SOLUCIÓN DE ALGORITMO AL PROBLEMA PLANTEADO. ....................................... 10

CONCLUSIONES ................................................................................................................... 13

BIBLIOGRAFIA ...................................................................................................................... 14
Construcción Individual 3

INTRODUCCIÓN

Las siguientes investigaciones son desarrolladas para cumplir con el problema planteado de la

actividad individual del paso 5 construcción individual, recopilar información y proponer

algoritmo de la idea seleccionada.


Construcción Individual 4

OBJETIVOS

General:

Recopilar información concreta que le permita construir la solución del problema y elaborar un

algoritmo que represente la solución del problema planteado por el curso.

Específicos:

 Volver a leer el problema planteado.


 Generar un informe con la información pertinente hacia el problema.
 Generar un algoritmo para el problema.
Construcción Individual 5

CONSTRUCCIÓN INDIVIDUAL

PROBLEMA:

Una empresa de juegos didácticos virtuales, quieren implementar un juego de rompecabezas

numérico, junto con sus respectivas reglas de puntuación, para ello es necesario diseñar un

aplicativo que genere una matriz de números aleatorio de 3x3 donde se almacenen 8 números

entero consecutivos y le dé la posibilidad al usuario de:

 Establecer el primer número de los ocho posibles a almacenar, (los demás serán
consecutivos).
 El usuario debe poder determinar cómo mover la casilla vacía, indicando si el movimiento
lo hace hacia arriba ó abajo, derecha ó izquierda.
 Tener la opción de no continuar con el armado del rompecabezas.
 Decidir si el armado lo dese hacer horizontal o vertical.
 Leer las reglas de la puntuación con la que se valorará su desarrollo.
Una vez el usuario termine de ordenar el rompecabezas o haya decidido no continuar con el

armado, el aplicativo debe:

 Indicar la cantidad de movimientos realizados


 Puntuación obtenida
El aplicativo, en su funcionamiento debe cumplir con las siguientes características:

 Permitir el movimiento de una celda a la vez.


 En los bordes de la matriz restringir los movimientos, es decir que de la última columna no
es posible desplazarse a la primera o viceversa, igual con las filas, de la primera fila no es
posible llegar a la última y viceversa.
 Mostar solo una matriz en pantalla, ir actualizándola a medida que se van realizando los
movimientos, para dar la sensación de desplazamiento de los números.
 Cuando logre ordenar el rompecabezas informarle al usuario que lo terminó.

PARA CONTINUAR LA CONSTRUCCIÓN DE LA SOLUCIÓN DEL PROBLEMA

PLANTEADO EN EL CURSO

 Releer el problema a resolver


Construcción Individual 6

 Recopile información concreta que le permita construir la solución del problema (teorías,
conceptos, manuales, videos, ejercicios resueltos, entre otros), resúmala y digítela en un
procesador de texto con sus respectivas referencias con normas APA
 Elaborar un algoritmo (diagrama de flujo o pseudocódigo) que represente la solución del
problema planteado en el curso
SOLUCIÓN:

MATLAB

Es un entorno de cálculo técnico de altas prestaciones para cálculo numérico y visualización.

Integra:

 Análisis numérico
 Cálculo matricial
 Procesamiento de señales
 Gráficos
En un entorno fácil de usar, donde los problemas y las soluciones son expresados como se escriben

matemáticamente, sin la programación tradicional. El nombre MATLAB proviene de ``MATrix

LABoratory'' (Laboratorio de Matrices). MATLAB fue escrito originalmente para proporcionar un

acceso sencillo al software matricial desarrollado por los proyectos LINPACK y EISPACK, que

juntos representan lo más avanzado en programas de cálculo matricial. MATLAB es un sistema

interactivo cuyo elemento básico de datos es una matriz que no requiere dimensionamiento. Esto

permite resolver muchos problemas numéricos en una fracción del tiempo que llevaría hacerlo en

lenguajes como C, BASIC o FORTRAN. MATLAB ha evolucionado en los últimos años a partir

de la colaboración de muchos usuarios. En entornos universitarios se ha convertido en la

herramienta de enseñanza estándar para cursos de introducción en álgebra lineal aplicada, así como

cursos avanzados en otras áreas. En la industria, MATLAB se utiliza para investigación y para

resolver problemas prácticos de ingeniería y matemáticas, con un gran énfasis en aplicaciones de

control y procesamiento de señales. MATLAB también proporciona una serie de soluciones


Construcción Individual 7

específicas denominadas TOOLBOXES. Estas son muy importantes para la mayoría de los

usuarios de MATLAB y son conjuntos de funciones MATLAB que extienden el

entorno MATLAB para resolver clases particulares de problemas como:

 Procesamiento de señales
 Diseño de sistemas de control
 Simulación de sistemas dinámicos
 Identificación de sistemas
 Redes neuronales y otros.
Probablemente la característica más importante de MATLAB es su capacidad de crecimiento. Esto

permite convertir al usuario en un autor contribuyente, creando sus propias aplicaciones. En

resumen, las prestaciones más importantes de MATLAB son:

 Escritura del programa en lenguaje matemático.


 Implementación de las matrices como elemento básico del lenguaje, lo que permite una
gran reducción del código, al no necesitar implementar el cálculo matricial.
 Implementación de aritmética compleja.
 Un gran contenido de órdenes específicas, agrupadas en TOOLBOXES.
 Posibilidad de ampliar y adaptar el lenguaje, mediante ficheros de script y funciones. m.

Estructura básica de los códigos:

Un código Arduino es una serie de comandos de programación que le dirán a nuestro

microcontrolador como configurarse al iniciarse y qué acciones tiene que realizar mientras esté en

funcionamiento. Estos comandos utilizados en Arduino son sentencias muy sencillas.

El bloque de código debe tener 2 partes, o funciones principales, que siempre debemos incluir.
Construcción Individual 8

Primero void setup (). Dentro de esta función principal escribiremos las sentencias de

configuración que necesitaremos para que Arduino trabaje correctamente. Éstas se ejecutarán al

iniciar Arduino y una única vez. Con ellas, por ejemplo, asignaremos la característica de

entrada/salida a los pines, el modo de comunicación serial, activaremos los sensores que vayamos

a necesitar, escribiremos órdenes de inicio del programa…etc. Algunas de estas sentencias pueden

ser: pinMode (,), Serial.begin(,), sensors.begin(,)…

La segunda función principal es void loop (). Ésta debe ir siempre después de void setup (). En

ella escribiremos todas las sentencias, bucles y llamadas a funciones que necesitemos que nuestro

Arduino repita constantemente. Se escribirán en orden de ejecución. Ejemplo de éstas pueden ser

digitalWrite(,),Serial.print(““),if()…

Tenemos zonas que pueden ser un espacio para el título, el autor, librerías, definiciones (variables

que vayamos a usar en el programa), una zona para funciones a las que el programa irá

llamando…Cada uno es libre de organizarlo como quiera, pero cuanto más ordenado esté todo,

más difícil será perdernos cuando los códigos se compliquen.

Abajo tenemos un ejemplo simple de cómo debe estructurarse un código.


Construcción Individual 9

Sentencias básicas, funciones y librerías.

Para poder realizar un código Arduino debemos tener las herramientas con las que decirle a nuestro

microcontrolador que es lo que debe hacer en cada momento. Estas herramientas son las sentencias

y funciones.

Arduino usa una serie de sentencias y comandos básicos muy sencillos, pero a la vez muy potentes.

Combinándolos crearemos programas para decirle a nuestra placa que haga prácticamente

cualquier cosa que queramos.

Las sentencias se dividen por su manera de funcionar dentro del programa, pudiendo dividirlas en

3 grandes grupos:

 Estructurales: Nos dan la forma computacional del código y las operaciones lógicas a
ejecutar. Con éstos son con los que le marcamos al programa qué camino debe seguir el
código al ejecutarse y qué operaciones debe hacer. Algún ejemplo de las más usadas son
if, for, while, +, -, =, *, /, ==, >, < …
 Variables: Con éstas definiremos qué tipo y qué características tendrán los valores que
vamos a usar en el código. Pueden ser números, caracteres o estados. Podemos
encontrarnos aquí las sentencias int, float, HIGH, LOW, char, string, true, false…
 Funciones: Nos permiten realizar una serie de operaciones concretas y volver a la zona del
código en la que se ejecutó. Existen funciones que están propiamente definidas ya por
Arduino como tales y también podemos crearnos nuestras propias funciones para que sean
llamadas en las zonas de setup o loop cuando lo necesitemos. Son muy útiles cuando
necesitamos realizar un grupo de acciones varias veces en distintas zonas del código.
También es una buena forma de ahorrar líneas y de organizarse. Ejemplo de funciones
tenemos pinMode, digitalWrite, delay, max, sin, cos, analogWrite…
Otra cosa importante son las librerías. Son una serie de sentencias y funciones específicas de cada

elemento o shield que conectemos a Arduino, que no están dentro de las propias de la IDE, y que

realizarán acciones específicas de cada uno facilitándonos mucho la programación.

Adicional hay un par de pequeños detalles necesarios para poder programar nuestro código. Para

que cada sentencia o función se ejecute debe llevar al final de cada orden el signo de puntuación

punto y coma “; “y al utilizar la doble barra “//” le decimos al código que lo que se escriba a la
Construcción Individual 10

derecha es un comentario y que no debe ejecutarlo (Arduino lo coloreará en gris). Esto es muy útil

para explicar que estamos haciendo en cada momento.

Compilación y carga.

Una vez que hayamos escrito nuestro código en la IDE Arduino procederemos a verificar que está

correctamente escrito. Para ello pulsamos el “w” si es hacia arriba, “s” si es abajo, “a” si es

izquierda, “d” si es derecha o “0” para salida. Arduino leerá el texto y nos dirá si es correcto o no.

Para ello lo que hará será compilarlo, que significa traducir el código del lenguaje de programación

a un lenguaje que entienda el microcontrolador directamente.

En el caso de contener un error nos aparecerá en la consola una explicación orientativa del error.

Si la compilación ha sido correcta, ya podemos cargar nuestro programa al Arduino. Para ello, con

la placa conectada por USB, pulsamos el botón de carga y esperamos a que termine.

SOLUCIÓN DE ALGORITMO AL PROBLEMA PLANTEADO.

void imprimir_matriz ();


int matriz [3] [3]
int x = 2, y = 2

int main () {
int i = 0, j = 0, contador = 1;
char caracter; enter;
// Inicializar la matriz del juego

while (i < 3) {
j = 0;
while (j < 3) {
matriz [i] [j] = Contador;
//printf (“(%2i)”, matriz [i] [j]);
j++
Contador ++;
}
printf (“\n”);
i++;
}

matriz [y] [x] = 0;


imprimir_matriz ();
do {
caracter = getchar ();
enter = getchar ();
Construcción Individual 11

switch (caracter) {
case ‘w’: //arriba
if (y < = 1) {
//movimiento de ficha
matriz [y] [x] = matriz [x] [y+1];
matriz [y+1] [x] = 0;
imprimir_tablero ();
y++;
}
else {
printf (“fuera de los limites\n”);
}
Break;
case ‘s’: //abajo
if (y > = 0) {
//movimiento de ficha
matriz [y] [x] = matriz [y-1] [x];
matriz [y-1] [x] = 0;
imprimir_tablero ();
y--;
}
else {
printf (“fuera de los limites\n”);
}
Break;
case ‘a’: //izquierda
if (x < = 1) {
//movimiento de ficha
matriz [y] [x] = matriz [y] [x+1];
matriz [y] [x+1] = 0;
imprimir_tablero ();
x++;
}
else {
printf (“fuera de los limites\n”);
}
Break;
case ‘d’: //derecha
if (x > = 0) {
//movimiento de ficha
matriz [y] [x] = matriz [y] [x-1];
matriz [y] [x-1] = 0;
imprimir_tablero ();
x--;
}
else {
printf (“fuera de los limites\n”);
}
break;
case ‘0’: //salida
break;
default
printf (“caracter incorrecto”);
break;
}
printf (“carácter: % c\n”,caracter);
} while (caracter !=’0’);
return 0;
}
void imprimir_matriz () {
int i = 0, j;
Construcción Individual 12

while (i < 3) {
j = 0;
while (j < 3) {
if (matriz [i] [j] ! = 0
printf (“[%2i]”, matriz [i] [j]);
}
else {
printf (“[ ]”);
}
j++;
}
Printf (“\n”);
i ++:
}
}
Construcción Individual 13

CONCLUSIONES

 De manera muy atenta se volvió a leer el problema planteado a resolver

 Se recopilo información concreta que me permitió construir la solución del problema

 Se elaboró un algoritmo que representa la solución del problema planteado en el curso

 Esta actividad nos ayuda a reforzar los conocimientos sobre programación de códigos para
lograr desarrollar el problema planteado en el curso.
Construcción Individual 14

BIBLIOGRAFIA

 Monroy, J. (2014). PLE Matlab-Scilab. Recuperado de. http://www.netvibes.com/


juanolmv#Donde_Buscar_informacion

 Scilab for very beginners. (2013). Capítulos 1-3. pág. 1-18. Recuperado de: https://
www.scilab.org/tutorials/scilab-beginners-%E2%80%93-tutorial

 Scott Hudson (2014). Scilab Lectures. Pág. 1-9. Recuperado de: http://users.tricity.
wsu.edu/~hudson/Teaching/EE221/Text/03%20Programming%20structures.pdf

 Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia e ingeniería.


Madrid, ES: Ediciones Díaz de Santos. Capítulo 1. pág. 1-21. Capítulo 3. pág. 35-37
Recuperado de: http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=
1&docID=11059428&tm=1479848795401

 Monroy, J. (2016). Conceptos Básicos de programación. [Archivo de video] Recuperado


de: http://hdl.handle.net/10596/10293

 Monroy, J. (2018). Fundamentos de Programación en Software de Tratamiento


Matemático. [Archivo de video] Recuperado de: http://hdl.handle.net/10596/22302

 Hahn, B. D., & Valentine, D. T. (2013). Essential MATLAB for Engineers and Scientists
(Vol. Fifth edition). Waltham, MA: Academic Press. Capítulo 5. Pág. 111-129. Recuperado
de: http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=485981&lang=es&site=eds-live

 Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia e ingeniería.


Madrid, ES: Ediciones Díaz de Santos. Capítulo 3. pág. 38-40. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=1&docID=11059
428&tm=1479848795401

También podría gustarte