lunes, 30 de marzo de 2015

EJEMPLOS DE ALGORITMOS ESTRUCTURAS EN MATLAB sema.6

EJEMPLOS, ESTRUCTURA DECISIÓN 

1.












Solución:




























A continuación se muestra la escritura del anterior anterior algoritmo en matlab:
Lo copio y pego en el editor de matlab


Corrijo y  ajusto a lenguaje matlab


 Ejemplo 2

 lo copio y pego en matlab






















corrijo y escribo en lenguaje matlab


Para mirar como se programa en matlab de forma general se deja este link:  https://www.youtube.com/watch?v=QWZr_3IYkaw

Mas ejemplos:


































Ejemplo 



traducción del algoritmo anterior a matlab.













El actual trabajo fue realizado con la ayuda de las notas tomadas de la clase de algoritmos y programación de la universidad de Antioquia  en el link:
http://www.wiziq.com/online-class/2347661-iav-304-algoritmos-y-programaci%C3%B3n


ESTRUCTURA DECISIÓN Sema. 5


ESTRUCTURA DECISIÓN

La estructura decisión, usada correctamente en un algoritmo permite revisar si se cumple o no una condición y luego definir un grupo de instrucciones que se ejecutarán si la condición se cumple, y otro grupo distinto de instrucciones que se ejecutarán si la condición no se cumple. Esta funcionalidad permite que el computador pueda usarse para desarrollar soluciones a problemas de la vida real donde se actúa de diferente manera con respecto al resultado de la evaluación de una condición.
Para comprender más fácilmente la utilidad la estructura decisión, considere el siguiente ejemplo:

Situación:
Suponga que usted y 7 de sus amigos (en total 8 personas) vistan una pizzería, al revisar el menú
encuentran que existen dos tamaños de pizzas: la pizza pequeña que tiene 4 porciones y la pizza
grande que tiene 8 porciones. Luego, al momento de decidir cuál será su pedido, deberán analizar
la siguiente condición:
Pregunta:
¿Es mas económico pedir 2 pizzas pequeñas (total 8 porciones), o pedir solo 1 pizza grande (total
8 porciones)?
La respuesta dependerá del precio de la pizza pequeña y del precio de pizza grande así:
Condición:
2*precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
La cual se lee así: ¿dos veces el precio de la pizza pequeña es mayor que el precio de la pizza mediana?
Cuando la respuesta es esta pregunta sea SI (verdadero), entonces se deben pedir 2 pizzas  pequeñas, pero si la respuesta es NO (falso) entonces se debe pedir solo 1 grande.
En este sencillo ejemplo se ha utilizado un proceso de racionamiento muy simple:

1. Definir cuál es la pregunta que se debe responder

2. Definir la condición que expresa la pregunta que se debe responder

3. Definir que se debe hacer si la condición es verdadera

4. Definir que se debe hacer si la condición es falsa
Si se llegara a utilizar el computador ofrecer una solución al problema de seleccionar el menú que
se les ha presentado a los 8 amigos que visitaron la pizzería, la estructura decisión jugaría un papel fundamental. A continuación se presenta un algoritmo que podría ser útil:

Algoritmo SelecciónDeMenu
Variables: precio_de_la_pizza_pequena, precio_de_la_pizza_grande: numericaReal
INICIO
LEA(precio_de_la_pizza_pequena)
LEA(precio_de_la_pizza_grande)
   SI2* precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
ESCRIBA(“Se debe pedir una pizza grande”)
   DE_LO_CONTRARIO
ESCRIBA(“Se debe pedir una pizza pequeña”)
   FIN(SI)
  FIN
FIN(SelecciónDeMenu)


Como se puede observar, utilizar la estructura decisión es un algoritmo es muy sencillo, basta con apegarse a este formato de escritura
SI (Incluir en este espacio la condición que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la condición la respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la condición la respuesta fue NO)
FIN(SI)
Debe tenerse en cuenta que la condición que se incluye después de la palabra SI, debe ser una expresión que al ser evaluada deberá producir como resultado cierto o falso. Por lo tanto se debe corresponder a una expresión booleana, o a una expresión en la que se relacionan algunas de las variables del algoritmo a través de los operadores relacionales.

Relaciones entre las estructuras decisión
En un algoritmo puede utilizarse más de una vez la estructura decisión, por lo que se pueden dar dos tipos de relaciones entre ellas según la posición relativa que ocupen unas con respecto a otras.

Estructuras de decisión secuenciales
Esta relación se da cuando dos o más estructuras de decisión son completamente independientes y no dependen para nada entre sí. Retomando el ejemplo del grupo de amigos que visitan una pizzería, si en la misma situación el grupo también de debiera decidir si es más económico comprar 1 gaseosa de tamaño grande en lugar de 8 gaseosas de tamaño personal, entonces estas dos decisiones son secuenciales, pues no tienen ninguna relación entre sí. El comprar uno u otro tipo de pizza no tiene nada que ver con el tamaño de gaseosa que compra el grupo.
A continuación se presenta un algoritmo en el que se combina una decisión relacionada con el tipo de pizza que compra el grupo y adicionalmente una decisión relacionada con el tamaño de la gaseosa. Se comprara si es más económico comprar 8 gaseosas tamaño personal o una gaseosa de 2 litros que posee el mismo contenido.
Algoritmo SelecciónDeMenuYGaseosa
Variables: precio_de_la_pizza_pequena, precio_de_la_pizza_grande,
precio_gaseosa_personal, precio_gaseosa_2_litros: numericaReal
INICIO
                              LEA(precio_de_la_pizza_pequena)
                              LEA(precio_de_la_pizza_grande)
             SI2*precio_de_la_pizza_pequeña>precio_de_la_pizza_grande
                               ESCRIBA(“Se debe pedir una pizza grande”)
             DE_LO_CONTRARIO
                              ESCRIBA(“Se debe pedir una pizza pequeña”)
             FIN(SI)
                              LEA(precio_gaseosa_personal)
                              LEA(precio_gaseosa_2_litros)
            SI8*precio_gaseosa_personal>precio_gaseosa_2_litros
                              ESCRIBA(“Se debe pedir una gaseosa 2 litros”)
            DE_LO_CONTRARIO
                              ESCRIBA(“Se deben pedir 8 gaseosas personales”)
            FIN(SI)
            FIN
FIN(SelecciónDeMenuYGaseosa)

Note que las estructuras de decisión secuenciales aparecen en los algoritmos en forma
consecutiva (primero una y después otra), aunque eventualmente pueden estar separadas por
otras instrucciones lo importante es que las instrucciones de cada una de las decisiones son
totalmente independientes.

Estructuras de decisión anidadas
Esta relación se da cuando dos o más estructuras de decisiones son interdependientes, es decir una o varias decisiones hacen parte de las instrucciones que deben ejecutarse cuando la evaluación de una condición anterior fue verdadera o falsa. De una forma un poco mas practica,
se pude decir que una o varias decisiones están anidadas cuando unas están al interior de otras.
Retomando el ejemplo de la pizzería, suponga que el día que el grupo salió a comer se estaba
ofreciendo una promoción en la cual las pizzas pequeñas venían una gaseosa personal gratis. Por
lo tanto la decisión sobre el tipo de gaseosa que se debe pedir va a ser afectado por el tamaño de
tipo pizza que se haya elegido, pues si se llegan a pedir dos pizzas pequeñas, entonces se tiene 2
gaseosas personales gratis y solo seria necesario comprar 6 adicionales.
A continuación se presentan un algoritmo que incluye las nuevas condiciones que implica la
promoción ofrecida.

Note que cuando las instrucciones decisión están anidadas, existen unas que están al interior de
otras de niveles superiores por lo que están desplazadas hacia la derecha.
















La instrucción decisión en Matlab
La forma de representar la instrucción decisión en Matlab y bastante sencilla y corresponde
directamente a sintaxis que se describe en los algoritmos anteriores, con la diferencia de que las
palabras que componen la instrucción se escriben en el idioma ingles. La instrucción decisión en
Matlab se presenta a continuación:
if (Incluir en este espacio la condición que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la respuesta fue SI)
else
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la respuesta fue NO)
end
Que en los algoritmos corresponde a la siguiente instrucción decisión:
SI (Incluir en este espacio la condición que se va a evaluar)
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la respuesta fue SI)
DE_LO_CONTRARIO
(Incluir en este espacio una o varias instrucciones que deban ejecutarse si al evaluar la
condición la respuesta fue NO)
FIN(SI)


RESUMEN Y EJEMPLOS

La estructura decisión permite instruir al computador para que ejecute ciertas acciones (instrucciones) según alguna condición.

Forma general 

SI condición
Instrucciones cuando la condición es verdadera
DE_LO_CONTRARIO
Instrucciones cuando la condición es falsa
Fin(SI)

Pasos para la estructura decisión
Definir cuál es la pregunta que se debe responder
Definir la condición que expresa la pregunta que se debe responder
Definir qué se debe hacer si la condición es verdadera
Definir qué se debe hacer si la condición es falsa
  
Ejemplos de condiciones
A = 4
B = 6
A > B Falsa
(A + B) >= 2 Verdadera
Nombre == “pepe”
Tipo == “A”

Ejemplo

Elabore un algoritmo que lea el salario actual de un empleado y calcule e imprima el nuevo salario de acuerdo a la siguiente condición: si el salario es menor que 1000 pesos, aumentar el 10%, de lo contrario no hacer aumento.
solución:
 
















Ejemplo 2
Elabore un algoritmo que lea 2 números y diga cual es el mayor de ambos. Ambos números deben ser diferentes.
solución:
Entrada:
•Primer número: a
•Segundo número: b
Salida:
•Número mayor

Análisis:
•La condición es a > b, también b > a o cualquier expresión relacional que compare ambos números.

Algoritmo mayor
Variables:
                       a, b : enteros
INICIO
ESCRIBA(“Ingrese el primer número”)
LEA(a)
ESCRIBA(“Ingrese el segundo número”)
LEA(b)
SI a > b
ESCRIBA(“el mayor es”, a)
DE_LO_CONTRARIO
ESCRIBA(“el mayor es”, b)
Fin(SI)
FIN
Fin(mayor).

Ejemplo 3






Solución:












Ejemplo 4








Solución:
Dentro de la estructura decisión SI que representa una condición hay instrucciones con  la estructura decisión  (SI, DE_LO_CONTRARIO). Así:


Ejemplo 5

Ejemplo 6
Escriba un algoritmo que dados los datos a y b, escriba un mensaje diciendo si a es mayor, menor o igual a b.
Solución:


El actual trabajo se realizo con la ayuda de las notas obtenidas de la clase de algoritmos y programación dictada por el docente Angel rey de la universidad de Antioquia en el el siguiente Link 







domingo, 29 de marzo de 2015

ALGORITMOS, MATLAB Y LÓGICA PROPOSICIONAL sem. 4

MANIPULACIÓN DE DATOS EN LOS ALGORITMOS 





























MATLAB

Vamos a realizar una breve definición de matlab y veremos una guía de inicio en matlab.
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X.
Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware.

Iniciando matlab
Ingresando por el menú Inicio y seleccionando el programa MATLAB.























Command Window
En ella se ejecutan los comandos de MATLAB.

















Promt (consola)




















Current directory
Es un navegador de archivos. Permite abrir los archivos con extensión m
Para su edición.























Workspace/Comando Whos


Acceso a las variables














Whos




Array Editor
Permite editar vectores y matrices  


















Command history
Bitácora de comandos ejecutados 

















Path
Establece el camino de búsqueda de las funciones de Matlab y propias.

















                                                                                                         

Ayuda 



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 

Matlab nos ayuda a resolver problemas particulares 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.
Algunas referencias con respecto a MATLAB:
n    Como se expresan los algoritmos en matlab

En Matlab la instrucción LEA corresponde a input(‘anuncio para el usuario: ’) y que ésta permite definir el texto con el que se le anuncia al usuario el dato que debe ingresar. Por lo tanto:
ESCRIBA(“Teclee nombre: ”)
LEA(nom)
Pueden expresarse en Matlab en una solo instrucción así:
nom=input(‘Teclee nombre: ’)
En ésta última instrucción se le indica a Matlab que debe mostrar al usuario el texto ‘Teclee nombre: ’ y que la información tecleada debe almacenarse en la variable nom. Tenga en cuenta que en Matlab se usa la comilla sencilla (‘) en lugar de la comilla doble (“) para delimitar los mensajes al usuario.
De otro lado, tenga en cuenta que la instrucción ESCRIBA en algoritmos, se codifica en Matlab como disp y que en lugar de separa los elementos que se van a mostrar por comas, cada uno de ellos se pone en un disp separado.


LÓGICA PROPOSICIONAL 

Una proposición es cualquier enunciado lógico al que se le pueda asignar un valor de verdad (1) o falsedad (0). (1)
–El perro es grande
–Voy al baile
–Estudié para el parcial

•La lógica proposicional es la parte de la lógica que estudia la formación de proposiciones complejas a partir de proposiciones simples, y la inferencia de proposiciones a partir de proposiciones, pero sin tener en cuenta la estructura interna de las proposiciones más simples. (Tomado de Wikipedia)
Tomado de: http://wmatem.eis.uva.es/~matpag/CONTENIDOS/Conjuntos/marco_conjuntos.htm)

Términos de enlace / Operaciones
Negación: El valor de verdad de la negación es el contrario de la proposición negada.
Disyunción: La disyunción solamente es falsa si lo son sus dos componentes.
Conjunción: Solamente si las componentes de la conjunción son ciertas, la conjunción es cierta.
Condicional: El condicional solamente es falso cuando el antecedente es verdadero y el consecuente es falso. De la verdad no se puede seguir la falsedad.

Representación









Tablas de verdad 
Es una tabla que muestra el valor de verdad de una proposición compuesta, para cada combinación de valores de verdad que se pueda asignar a sus componentes.








Expresiones relacionales

•Expresiones que producen un resultado lógico (verdadero o falso).
•Poseen operandos: Variables, constantes, expresiones aritméticas
•Operadores: > (mayor), >= (mayor o igual), < (menor), <= (menor o igual) , == (igual, estrictamente igual, de comparar) ,!= (diferente).

Expresiones lógicas

•Operandos: Expresiones relacionales, variables lógicas
•Operadores: ¬ negación , ^ conjunción  , v disyunción 


El trabajo actual fue realizado con la ayuda de las notas obtenidas en clase de algoritmos y programación  de la universidad de Antioquia en el siguiente link.


También de:
http://nereida.deioc.ull.es/~pcgull/ihiu01/cdrom/matlab/contenido/node2.html

https://www.google.com.co/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=wikipedia%20wikipedia