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
lunes, 30 de marzo de 2015
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.
Tomado
de http://es.wikipedia.org/wiki/MATLAB.
Iniciando matlab
Ingresando
por el menú Inicio y seleccionando el programa MATLAB.
Current
directory
Es un navegador de archivos. Permite abrir los archivos con
extensión m
Para su
edición.
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:
- Wikilibros alberga un manual sobre MATLAB.
- Página web del producto
- Introducción Informal a Matlab y Octave de Guillem Borrell i Nogueras (libro libre en español)
- MatlabLatino (Video-tutoriales introductorios de Matlab y Simulink en idioma español)
- www.matpic.com (sitio web sobre Matlab/Simulink, microcontroladores (en especial PIC de Microhip y AVR de Atmel) y lenguajes de descripción de hardware, con guías y ejemplos.)
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
Suscribirse a:
Entradas (Atom)