UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
PASO 3 – CONSTRUCCIÓN CONSTRUCCIÓN INDIVIDUAL
SOFTWARE PARA INGENIERIA
DIRECTOR / TUTOR : JUAN MONROY
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGIA E INGENIERIA NOVIEMBRE 01 DEL 2018
1
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
ACTIVIDADES A DESARROLLAR PASO 3 ...................................................................................................................... 3
1.
PARA EL COMPONENTE PRÁCTICO ............................................................................................................... 3 1.1 Descargar la guía para el desarrollo del componente práctico que encuentra en el e ntorno de aprendizaje práctico y desarrollar la práctica No 2 descrita allí. ............................................................................. 3 1.2 Crear y publicar un video (en su cuenta de youtube), donde se explique el funcionamiento de los programas desarrollados para dar solución a la actividad práctica No 2, tanto a nivel de programador (código) como de usuario ..............................................................................................................................................
3
2. PARA CONTINUAR LA CONSTRUCCIÓN DE LA SOLUCIÓN DEL PROBLEMA PLANTEADO EN EL CURSO ........................................................................................................................................................................ 4 2.1
Releer el problema a resolver ........................................................................................................................... 4
2.2 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 .................................................................................................................... 4 2.3 Elaborar un algoritmo (diagrama de flujo o pseudocódigo) que represente la solución del problema planteado en el curso................................................................................................................................................... 11
2
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
ACTIVIDADES A DESARROLLAR PASO 3 Individual 1. PARA EL COMPONENTE PRÁCTICO 1.1 Descargar la guía para el desarrollo del componente práctico que encuentra en el entorno de aprendizaje práctico y desarrollar la práctica No 2 descrita allí. Práctica no 2
Realice un programa donde el usuario ingrese una matriz de orden m*n y en ella se puedan rotar sus elementos ya sea de izquierda a derecha y viceversa; o de arriba abajo y viceversa. Las veces que el usuario determine - Por ejemplo, si el usuario ingresa la matriz A 1
2
3
4
5
6
7
8
9
Y el usuario desea rotarla 2 veces a la derecha, la matriz debe quedar
2
3
1
5
6
4
8
9
7
Realice un programa que genere un número aleatorio y le dé la opción al usuario de adivinar cuál número se generó. El programa debe permitirle cierta cantidad de intentos (mínimo 5), que los establece el programador y lo informa al usuario Una vez el usuario acierte o no, se debe exportar a un archivo en Excel: -
el número aleatorio generado Cada uno de los números que el usuario digitó La palabra ACERTÓ o no ACERTÓ, según corresponda La cantidad de intentos empleados.
1.2 Crear y publicar un video (en su cuenta de youtube), donde se explique el funcionamiento de los programas desarrollados para dar solución a la actividad práctica No 2, tanto a nivel de programador (código) como de usuario
Link del video: https://www.youtube.com/watch?v=32Ezozm93A0
3
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
2. PARA CONTINUAR LA CONSTRUCCIÓN DE LA SOLUCIÓN DEL PROBLEMA PLANTEADO EN EL CURSO 2.1 Releer el problema a resolver Se requiere diseñar e implementar un programa que muestre un menú que le dé la posibilidad al usuario de:
Capturar una palabra y mostrarla en pantalla en código Braille (solamente alfabeto, incluyendo vocales tildadas, no representar números ni caracteres especiales) Digitar una letra y mostrar la imagen (*.jpg) del código Braille correspondiente Ingresar una letra y representar el código Braille de la letra que ocupa la posición anterior y posterior a ella dentro del alfabeto, dicho código exportarlo a una hoja electrónica. Por ejemplo, si ingresa la letra “b”, se debe representar en Braille la letra “a” y “c” y exportar éstos códigos.
2.2 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
Indexado de Vectores
Un vector renglón de dimensión 1Xn, puede ser indexado utilizando solamente un índice numérico, de esta manera si se considera a este vector como v, se elegirá el primer elemento sis e indexa como v (1), de la misma forma se elegirá el elemento número 2 del vector si se indexa v (2). Esto puede ejemplificarse de la siguiente forma: >>v=[1 2 3 4 5 6 7]; Para elegir un valor de la matriz escribimos: >>v
(2)
%
indica
la
posición
del
elemento
en
la
matriz
v
Para elegir un rango de valores de una matriz, escribimos: >>v (2:4) % indica las posiciones del elemento en la matriz v
4
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Para describir los valores de la matriz desde la segunda posición hasta el valor final tenemos: >>v
(2:end)
%
indica
las
posiciones
del
elemento
en
la
matriz
v
Para obtener un rango personalizado, podemos realizarlo con este ejemplo:
Indexado de Matrices
La siguiente notación es la que se usa para representar una matriz con 3 filas y 3 columnas
En la forma reducida A = (a j) є M (k), donde k es el cuerpo (por ejemplo, K= R o K = C. el símbolo a j se refiere a la entrada situada en la fila i y columna j. MATLAB usa una notación similar para representar los elementos de una matriz. ᵢ
₃
ᵢ
% pascal no funciona en octave >> A=pascal (5) >> A (1,2) >> A (3,4) En general, A (i, j) se refiere al elemento de la fila i, columna j de la matriz A. También es fácil cambiar el valor de una entrada. >> A (3,3) =11111 5
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Cadenas de Caracteres (Array)
Los caracteres de una cadena se almacenan en un vector, con un carácter por elemento. Cada carácter ocupa dos bytes. Las cadenas de caracteres van entre apóstrofos o comillas simples, como por ejemplo: 'cadena'. Si la cadena debe contener comillas, éstas se representan por un doble carácter comilla, de modo que se pueden distinguir fácilmente del principio y final de la cadena. Por ejemplo, para escribir la cadena ni ’idea’ se escribiría ’ni’’idea’’’. Una matriz de caracteres es una matriz cuyos elementos son caracteres, o bien una matriz cuyas filas son cadenas de caracteres. Todas las filas de una matriz de caracteres deben tener el mismo número de elementos. Si es preciso, las cadenas (filas) más cortas se completan con blancos. A continuación, se pueden ver algunos ejemplos y practicar con ellos:
COMANDOS EN MATLAB (imread, rgb2gray, imresize, size, cat, montage).
Imread
lee la imagen del archive especificado por filename, deduciendo el formato del archive de su contenido. Si filename es un archivo de imágenes múltiples, entonces lee la primera imagen del archivo.
Rgb2gray
convierte imagen RGB o mapa de colores a escalas de grises.
Imresize
cambia el tamaño de la imagen.
Size
leer el tamaño de una matriz en filas y columnas.
Cat
concatenar matrices a lo largo de la dimensión especifica.
Montage
mostrar múltiples marcos de imagen como montaje rectangular
Double (c)
convierte en números ASCII cada carácter
Char (v)
convierte un vector de números v en una cadena de caracteres 6
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Char (cl, c2)
crea una matriz de caracteres, completando con blancos las cadenas mas cortas
Deblank (c)
elimina los blancos al final de una cadena de caracteres
Disp (c)
imprime el texto contenido en la variable c
ischar(c)
detecta si una variable es una cadena de caracteres
isletter() ceros
detecta si un carácter es una letra del alfabeto. Devuelve un vector o matriz de unos y
isspace() ceros
detecta si un carácter es un espacio en blanco. Devuelve un vector o matriz de unos y
strcmp(c1,c2)
comparación de cadenas. Si las cadenas son iguales devuelve un uno, y si no lo son, devuelve un cero (funciona de modo diferente que la correspondiente función de C)
strcmpi(c1,c2)
igual que strcmp(c1,c2), pero ignorando la diferencia entre mayúsculas y minúsculas
strncmp(c1,c2, n)
compara los n primeros caracteres de dos cadenas
c1==c2
compara dos cadenas carácter a carácter. Devuelve un vector o matriz de unos y ceros
s=[s,' y más']
concatena cadenas, añadiendo la segunda a continuación de la primera
findstr(c1,c2)
devuelve un vector con las posiciones iniciales de todas las veces en que la cadena más corta aparece en la más larga
strmatch(cc,c)
devuelve los índices de todos los elementos de la matriz de caracteres (o vector de celdas) cc, que empiezan por la cadena c
strrep(c1,c2,c3)
sustituye la cadena c2 por c3, cada vez que c2 es encontrada en c1
[p,r]=strtok(t) de la cadena r
separa las palabras de una cadena de caracteres t. Devuelve la primera palabra p y el resto
int2str(v)
convierte un número entero en cadena de caracteres
num2str(x,n) convierte un número real x en su expresión por medio de una cadena de caracteres, con cuatro cifras decimales por defecto (pueden especificarse más cifras, con un argumento opcional n) convierte una matriz de caracteres cc en un vector de celdas vc, eliminando los blancos vc=cellstr(cc) adicionales al final de cada cadena. La función char() realiza las conversiones opuestas
sprintf Convierte valores numéricos en cadenas de caracteres, de acuerdo con las reglas y formatos de conversión del lenguaje C. Esta es la función más general para este tipo de conversión y se verá con más detalle en otro lugar Con las funciones anteriores se dispone en MATLAB de una amplia gama de posibilidades para trabajar con cadenas de caracteres. A continuación, se pueden ver algunos ejemplos:
7
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Es habitual convertir los valores numéricos en cadenas de caracteres para poder imprimirlos como títulos en los dibujos o gráficos. Véase el siguiente ejemplo:
Estructuras de Control
Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Quiere decir, que permite que unas condiciones se lleven a cabo cuando el programador lo desee, ya sea un número determinado de veces o hasta un cierto error, etc. Las estructuras de control tienen un único punto de entrada y un único punto de salida, por lo que están estructuradas. Se clasifica en Estructura de bifurcación: Se utilizan cuando en el programa se debe decidir en qué situación se tiene que
cumplir una cierta condición. Su estructura básica es el IF o el SWITCH. Estructuras repetitivas: Se utilizan cuando hay que repetir más de una vez un grupo de instrucciones. Pueden
ser FOR o WHILE. Sentencias break y continue: Se utilizan para manipular el comportamiento normal de los bucles.
E structuras repetitivas: Se utilizan cuando hay que repetir más de una vez un grupo de instrucciones. Hay dos tipos fundamentales:
1. Bucle FOR: Una variable tomará valores desde un número inicial, hasta uno final, con un determinado paso (que es la distancia entre dos valores). En Matlab, el paso por defecto es de valor 1, pero se puede cambiar. Cada vez que la variable cambie su valor, se realizarán las operaciones que se hayan programado después. El bucle FOR se utiliza cuando se sabe previamente el número de iteraciones que se van a realizar. El parámetro inicial, final y el paso pueden ser variables previamente definidas. El paso puede ser negativo, siempre que el valor inicial sea mayor que el final. El bucle FOR escribe en Matlab del siguiente modo:
For variable = inicial : paso : final(grupo de instrucciones) End
8
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Veremos un ejemplo del bucle FOR para calcular un factorial.
2. Bucle WHILE: Se da una condición que se tiene que evaluar, que se realizará siempre que sea verdadera. En el momento en el que la condición sea falsa, cesará. Por tanto, no se conoce de antemano el número de iteraciones a realizar. Las variables utilizadas tienen que estar inicializadas antes del bucle, que cumplan la condición la primera vez por lo menos y cambiar de valor en cada iteración dentro del bucle (de lo contrario se producirá un bucle infinito). En Matlab, se escribe como:
While (condición lógica) (grupo de instrucciones)
End veremos un ejemplo de bucle WHILE para calcular un factorial.
Hay una variante del bucle WHILE que es el DO-WHILE, que es similar, pero con la diferencia de que las instrucciones se tienen que cumplir por lo menos una vez, y una vez cumplida, se evalúa la condición. Si la condición se cumple, se entra en el bucle hasta que sea falsa, que se acaba la iteración. Se escribe de este modo: (instrucciones 1)
While (condición lógica) (instrucciones 1)
End 9
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
Código ASCII
El ASCII es un código numérico que representa los caracteres, usando una escala decimal del 0 al 127. Esos números decimales son convertidos por la computadora en números binarios para ser posteriormente procesados. Por lo tanto, cada una de las letras que escribas va a corresponder a uno de estos códigos. Tal es la importancia que ha cobrado el código ASCII en la informática, que es prácticamente imposible utilizar una computadora o dispositivo sin que este código ASCII se encuentre presente, tal es la importancia que tiene todavía en nuestros días.
10
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
2.3 Elaborar un algoritmo (diagrama de flujo o pseudocódigo) que represente la solución del problema planteado en el curso DIAGRAMA DE FLUJO INICIO
Ingrese una palabra que desee convertir a Braille
Se hace la comparación del código ASCII de cada letra
El código de la letra (j) ingresada coincide con el código (a) previamente definido?
Crear un vector con los diferentes códigos que coinciden
Busca la imagen correspondiente a cada codigo y forma una imagen compuesta con cada uno
Digite una letra de la cual quiera ver su imagen en Braille
Se hace la comparación del código ASCII de la letra ingresada
El código de la letra (j) ingresada coincide con el código (a) previamente definido?
Busca la imagen correspondiente al código que coincide
Muestra imagen en código Braille de la letra Ingresada
Ingrese una letra para conocer el código Braille de la letra anterior y posterior
SALIR
Se hace la comparación del código ASCII de la letra ingresada
El código de la letra (j) ingresada coincide con el código (a) previamente definido?
Busca la imagen correspondiente al código que coincide dentro de un vector
Muestra imagen en código Braille de la letra ubicada en el índice anterior y posterior a donde se encuentra el código ingresado
Muestra imagen en código Braille de la palabra Ingresada
Desea continuar? FIN
11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD Software para Ingeniería 203036A_474 Paso 3
BIBLIOGRAFIA Zeta, J. (2014). Ingeniería mecatrónica. Indexado de vectores y matrices MATLAB. Disponible en http://ute-mecatronica.blogspot.com/2014/02/indexado-de-vectores-y-matrices-en.html Ojeda, I & Gago,J. (2018). Departamento de matemáticas. Vectores y MATLAB. Practica 1. Universidad de Extremadura. Disponible en http://matematicas.unex.es/~sancho/Asignatura.%20Algebra%20y%20Geometria/practicas/practica1/pr actica1.pdf Valentín, J & Cobos,J.(2018).Wikidot. Guía Matlab para ¨nodos¨. Estructuras repetitivas. Disponible en http://guiamatlabnoobs.wikidot.com/estructuras-repetitivas Anónimo. (2018). The MathWords, Inc. MATLAB. Estados Unidos. Disponible en http://www.mathworks.com/help/matlab/index.html Anónimo. (2018). Tecnología & Informática. Que es el código ASCII. Disponible en https://tecnologia-informatica.com/que-es-codigo-ascii/# Link de soporte: https://www.youtube.com/watch?v=uFGXZG0cJm0 http://personales.unican.es/segurajj/mii/matlab.pdf https://es.wikibooks.org/wiki/Matlab/Entrada_de_valores_por_teclado Variables, Vectores Y matrices https://www.youtube.com/watch?v=Z_hPq0JRPss strings en Matlab https://www.youtube.com/watch?v=V7e_CrocUU4
12