Paso 3 Aporte Individual

UNIDAD 2 SOFTWARE PARA INGENIERIA PASO 5 PRESENTADO POR CHRISTIAN ACERO BARRERA CC : 1121840455 GRUPO: 203036_30 TUT

Views 157 Downloads 3 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIDAD 2 SOFTWARE PARA INGENIERIA PASO 5

PRESENTADO POR

CHRISTIAN ACERO BARRERA CC : 1121840455

GRUPO: 203036_30

TUTOR CAMILO ARTURO LAGOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ACACIAS MAYO 19 DE 2019

INTRODUCCION En principio, las sentencias de un programa se ejecutan secuencialmente, esto es, cada una a continuación de la anterior empezando por la primera y acabando por la última. Sin embargo, es fácil encontrar ejemplos de programas cuyo flujo de ejecución no puede ser secuencial. Pensemos por ejemplo en un menú básico de un cajero automático: Menú de opciones: 1. Sacar Dinero 2. Consulta de Saldo 3. Últimos Movimientos 4. Salir Teclee la opción deseada: _

El funcionamiento habitual de este tipo de programas es el siguiente: el usuario teclea un número de opción (1, 2, 3 ó 4). Si la opción tecleada no fuera una de estas opciones, el programa después de advertir del error volvería a solicitar una opción correcta. Si la opción es válida el programa ejecutará las sentencias correspondientes a la acción seleccionada y una vez acabadas, lo normal es que el programa pregunte si queremos realizar otra operación y si es así volverá al menú inicial esperando de nuevo otra opción. En esta secuencia de ejecución podemos detectar dos tipos de modificación del flujo secuencial: bucles y bifurcaciones. Por un lado, observamos que hay una secuencia de pasos que deben repetirse un número determinado de veces: por ejemplo, si la opción tecleada no es correcta hay que solicitar una que lo sea y también es un bucle cuando termina la primera operación, si el usuario quiere realizar otra. Por otro lado, cuando se escoge una determinada operación el programa debe ejecutar sólo el grupo de sentencias que realizan esa operación, lo que implica que el control del programa debe dirigirse a unas sentencias, saltándose otras, y que cuando terminen, debe volver el control al bucle inicial. El lenguaje C dispone de varias sentencias para modificar el flujo secuencial de la ejecución: fundamentalmente las sentencias if y switch1 implementan las bifurcaciones, que como hemos señalado permiten elegir entre dos o más opciones según ciertas condiciones, y las sentencias for y while2 , que permiten ejecutar repetidamente un conjunto de instrucciones tantas veces como se desee, cambiando o actualizando ciertos valores.

ACTIVIDADES A DESARROLLAR INDIVIDUAL

PARA CONTINUAR LA CONSTRUCCIÓN DE LA SOLUCIÓN DEL PROBLEMA PLANTEADO EN EL CURSO  Releer el problema a resolver. Problema En una empresa de publicidad, se requiere implementar un programa que permita al diseñador bosquejar dos imágenes a visualizar en una matriz de leds a instalar al lado de un semáforo, la idea es mostrar una imagen que le indique al peatón cuando caminar y otra para cuando parar; para ello el aplicativo que diseñe debe permitir: o o o o o

Digitar el orden de la matriz (no inferior a 8x8) El programa debe permitir que el usuario establezca que leds encenderán para formar la imagen a partir del ingreso de un 1 lógico en las casillas que determine, para cada imagen Mostrar la matriz diseñada con la imagen a mostrar para caminar y parar. Simular con un temporizador, la visualización alterna de cada matriz, el usuario determina dicho tiempo. Mostrar una matriz que contenga la coincidencia de led encendido para la imagen de caminar y parar.

 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 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

Otro ejemplo:

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

Char (cl, c2)

crea una matriz de caracteres, completando con blancos las cadenas

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()

Detecta si un carácter es una letra del alfabeto. Devuelve un vector o matriz de unos y ceros

isspace()

Detecta si un carácter es un espacio en blanco. Devuelve un vector o matriz de unos y ceros

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

mas cortas

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)

separa las palabras de una cadena de caracteres t. Devuelve la primera palabra p y el resto de la cadena r

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)

vc=cellstr(cc)

Convierte una matriz de caracteres cc en un vector de celdas vc, eliminando los blancos 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:

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 continúe: Se utilizan para manipular el comportamiento normal de los bucles. Estructuras 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

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



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.

 Elaborar un algoritmo (diagrama de flujo o pseudocódigo) que represente la solución del problema planteado en el curso.



Referencias Bibliográficas

https://es.slideshare.net/RossyGillenM/algoritmos-56071366 https://es.wikipedia.org/wiki/ASCII https://es.wikipedia.org/wiki/Estructuras_de_control