Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paso 5 Karen Villamil
Paso 5 Karen Villamil
PRESENTADO POR:
GRUPO: 203036_97
SOGAMOSO
2019
Construcción Individual 2
CONTENIDO
INTRODUCCIÓN ..................................................................................................................... 3
OBJETIVOS .............................................................................................................................. 4
General: .................................................................................................................................. 4
Específicos: ............................................................................................................................ 4
CONCLUSIONES ................................................................................................................... 13
BIBLIOGRAFIA ...................................................................................................................... 14
Construcción Individual 3
INTRODUCCIÓN
Las siguientes investigaciones son desarrolladas para cumplir con el problema planteado de la
OBJETIVOS
General:
Recopilar información concreta que le permita construir la solución del problema y elaborar un
Específicos:
CONSTRUCCIÓN INDIVIDUAL
PROBLEMA:
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
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
PLANTEADO EN EL CURSO
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
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
acceso sencillo al software matricial desarrollado por los proyectos LINPACK y EISPACK, que
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
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
específicas denominadas TOOLBOXES. Estas son muy importantes para la mayoría de los
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
microcontrolador como configurarse al iniciarse y qué acciones tiene que realizar mientras esté en
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
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,
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
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
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
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
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.
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++;
}
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
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
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
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