5- ESTRUCTURA DE CONTROL DE DECISIÓN
SENTENCIA IF
Dado que las expresiones lógicas toman el valor verdadero o falso, se necesita una sentencia de control que dirija a las computadoras para ejecutar una sentencia si la expresión es verdadera, en caso contrario no se toma ninguna acción.
La forma general de la sentencia if es:
if (condición) sentencia;
La sentencia if funciona de la siguiente manera:
1. Se evalúa la expresión lógica
2. Si la expresión toma el valor verdadero, se ejecutará la sentencia y sino sigue con la siguiente sentencia.
Ejemplo:
If (num<20)
Cout<<”el valor esta dentro del rango”;
SENTENCIA IF/ELSE
La sentencia if/else se ejecuta una acción cuando toma un valor de verdad y cuando el valor es falso o no cumple con la condición cumple con otra acción.
La forma general de la sentencia if/else es:
if (condición)
sentencia;
else
sentencia;
La sentencia if funciona de la siguiente manera:
1. Se evalúa la expresión lógica
2. Si la expresión toma el valor verdadero, se ejecutará la sentencia y sino sigue con la siguiente sentencia.
3. Si la expresión toma el valor de falso entonces se ejecutara la sentencia.
4. El control pasa de nuevo inmediatamente a la siguiente sentencia del programa.
Ejemplo:
If (num<44)
Cout<<”esta dentro del rango”;
Else
Cout<<”esta fuera del rango”;
SENTENCIA IF/ELSE ANIDADAS
La sentencia que sigue de la palabra else puede ser cualquiera, incluso otra sentencia de este mismo tipo. Cuando una o más sentencias otra sentencia, se dice que dicha sentencia esta anidada y al proceso anidamiento.
Una sentencia if anidad se puede utilizar para construir decisiones con diferentes alternativas.
if (condición)
sentencia;
else if (condición)
sentencia;
else if (condición)
sentencia;
if (condición)
sentencia;
else
if (condición)
sentencia;
else
if (condición)
sentencia;
else
sentencia;
Ejemplo:
If (num<=56)
Cout<<”Esta dentro del rango”;
Else
If (num>=115)
Cout<<”Esta fuera del rango”;
Else
If (num<=0)
Cout<<”Valor no Valido”;
SWITCH-CASE
La sentencia múltiple switch ( ) está formada por una serie de etiquetas case que solamente cumplen con una condición determinada y un caso opcional default en el que están contemplados todos los valores que no se encuentran en los case.
La forma general de las sentencias switch ( ) es:
switch (expresion)
{
case constante1:
sentencia1;
break;
case constante2:
sentencia2;
break;
case constante_n:
sentencia_n;
break;
default:
sentencias;
break;
En esta sentencias el case solamente evalúa una expresión y no mas aunque puede llevar n numero de case, pero son un gran numero se recomienda usar ciclos. Estas expresiones solo puede ser de tipo entero y de un solo carácter, al igual las constantes que se colocan.
Si el valor de la expresión es igual a alguna de las constantes, se ejecutará el bloque de instrucciones hasta encontrar la instrucciónbreak, de lo contrario pasa al siguiente bloque y si no cumple ninguno de los bloques entonces se ejecuta las sentencias del default.
Ejemplo:
Switch (confiabilidad_del_producto) {
Case A:
Cout<<”perfecta”;
Break;
Case B:
Cout<<”Muy Buena”;
Break;
Case C:
Cout<<”Regular”;
Default:
Cout<<”Fuera de rango”;
Break ;
Modelos Matemáticos para La Toma de Decisiones.
Estructura y Naturaleza.
Un modelo matemático comprende 3 conjuntos básicos de
elementos.
•
Variables y parámetros de decisión. Son incógnitas que deben
determinarse resolviendo el modelo. Los parámetros son los valores conocidos
que relacionan las variables, restricciones y función objetivo.
• Restricciones. Van
relacionadas con los recursos disponibles.
• Función Objetivo.
Puede ser de 2 tipos: maximizar o minimizar como una función matemática de las
variables de decisión.
Concepto de
Investigación de Operaciones.
La investigación de operaciones
es la aplicación por grupos interdisciplinarios, del método científico a
problemas relacionados con el control de las organizaciones o sistemas, a fin
de que se produzcan las soluciones que sirvan mejor a los objetivos de una
organización.
La investigación de operaciones
la investigación de operaciones es la aplicación científica a través de modelos
matemáticos, primero para presentar o representar el problema después para
poder resolverlo.
Perspectiva Histórica
de La Investigación de Operaciones.
Las raíces de la investigación de
operaciones se remite a cuando se comenzó a tratar de aplicar el método
científico en la administración de Empresas. Aun así el comienzo de esta
disciplina se la atribuye a los servicios militares prestados al comenzar la
segunda guerra mundial. En 1947 George Dantz desarrolla el método Simplex y
para 1950 desarrolla la teoría de lineas o colas un proceso utilizado en
programación de espera y para 1955 a 1960 la primera comunicación digital en
ese mismo año se termina las teorías de decisiones.
Naturaleza de La
Investigación de Operaciones.
La investigación de operaciones se aplica a problemas que se
refieren a la conducción y coordinación de operaciones dentro de una
organización.
La investigación de operaciones intenta encontrar una mejor
solución, (llamada solución óptima) para el problema bajo consideración.
Modelos Lineales.
Relacionan 2 o más variables en forma directamente
proporcional.
Todos los modelos lineales, tiene como representación una
recta y su proporcionalidad es directa.
Modelos Inversamente Proporcionales.
Relaciona 2 o más variables con la característica de que
cuando una crece la otra decrece.
Modelo Exponencial.
Son modelos de crecimiento muy rápido donde una de las
variables relacionadas es el exponente de una constante de una constante
llamada base.
Modelos Recursivos.
Son modelos en que una variable esta en función del estado
anterior de ella misma y todos estados en función de un valor inicial.
Modelos Matemáticos.
Es cualquier conjunto de
ecuaciones o estructuras matemáticas, completo y consistente, que es elaborado
para corresponder a alguna otra entidad. Puede ser una física, biológica,
social, psicológica o conceptual, incluso otro modelo matemático, la
construcción de un modelo matemático cumple con un mínimo de objetivos.
• Obtener respuestas
sobre lo que sucederá en el mundo físico.
• Influir en la
experimentación u observaciones posteriores.
• Promover el
progreso y la comprensión conceptuales.
• Auxiliar a la
automatización de la situación.
Áreas de Solución.
Solución Factible.
Es aquella solución factible que cumple con todas las
restricciones.
Solución No Factible.
Es aquella solución que no cumple con un a o más de las
restricciones.
Solución Óptima.
Es la Solución que además de ser factible optimiza la
Función Objetivo.
La compañía xyz produce 2 tipos
de juguetes los osos Boby y Tedy cada uno de estos productos debe ser procesado
en 2 maquinas diferentes. Una maquina tiene 12 horas de capacidad disponible y
la otra 8 horas cada Boby producido necesita 2 horas de tiempo en cada maquina
y cada Tedy necesita 3 horas en la 1ª y 1 hora en la 2ª.
La ganancia es de 6$ por cada
Boby y 7$ por cada Tedy vendido. La firma puede vender tantas unidades de
producto como es factible fabricar.
Variables.
B = Cantidad de Bobys a Fabricar diariamente.
T = Cantidad de Tedys a Fabricar diariamente.
Función Objetivo: Zmax = 6B + 7T [unidad $]
Restricciones.
Maquina1 N(B)+N(T)≤12 Hrs Maquina2 N(B)+N(T)≤8 Hrs
La toma de decisiones a nivel
individual se caracteriza por el hecho de que una persona haga uso de su
razonamiento y pensamiento para elegir una solución a un problema que se le
presente en la vida; es decir, si una persona tiene un problema, deberá ser capaz
de resolverlo individualmente tomando decisiones con ese específico motivo.
También, la toma de decisiones es considerada como una de las etapas de la
dirección.
Etapas de dirección:
Toma de decisiones.
En la toma de decisiones importa
la elección de un camino a seguir, por lo que en un estado anterior deben
evaluarse alternativas de acción. Si estas últimas no están presentes, no
existirá decisión. Para tomar una decisión, cualquiera que sea su naturaleza,
es necesario conocer, comprender, analizar un problema, para así poder darle
solución. En algunos casos, por ser tan simples y cotidianos, este proceso se
realiza de forma implícita y se soluciona muy rápidamente, pero existen otros
casos en los cuales las consecuencias de una mala o buena elección pueden tener
repercusiones en la vida y si es en un contexto laboral en el éxito o fracaso
de la organización, para los cuales es necesario realizar un proceso más
estructurado que puede dar más seguridad e información para resolver el
problema.
Clasificación de las
decisiones[editar]
Las decisiones se pueden
clasificar teniendo en cuenta diferentes aspectos, como lo es la frecuencia con
la que se presentan. Se clasifican en cuanto a las circunstancias que afrontan
estas decisiones sea cual sea la situación para decidir y cómo decidir.
• Decisiones
programadas:
Son aquellas que se toman
frecuentemente, es decir son repetitivas y se convierte en una rutina tomarlas;
como el tipo de problemas que resuelve y se presentan con cierta regularidad ya
que se tiene un método bien establecido de solución y por lo tanto ya se
conocen los pasos para abordar este tipo de problemas, por esta razón, también
se las llama decisiones estructuradas. La persona que toma este tipo de
decisión no tiene la necesidad de diseñar ninguna solución, sino que
simplemente se rige por la que se ha seguido anteriormente.
Las decisiones programadas se
toman de acuerdo con políticas, procedimientos o reglas escritas o no escritas,
que facilitan la toma de decisiones en situaciones recurrentes porque limitan o
excluyen otras opciones.
Por ejemplo, los gerentes rara
vez tienen que preocuparse por el ramo salarial de un empleado recién
contratado porque, por regla general, las organizaciones cuentan con una escala
de sueldos y salarios para todos los puestos. Existen procedimientos rutinarios
para tratar problemas rutinarios.
Las decisiones programadas se
usan para abordar problemas recurrentes. Sean complejos o simples. Si un
problema es recurrente y si los elementos que lo componen se pueden definir,
pronosticar y analizar, entonces puede ser candidato para una decisión
programada. Por ejemplo, las decisiones en cuanto a la cantidad de un producto
dado que se llevará en inventario puede entrañar la búsqueda de muchos datos y
pronósticos, pero un análisis detenido de los elementos del problema puede
producir una serie de decisiones rutinarias y programadas. En el caso de Nike,
comprar tiempo de publicidad en televisión es una decisión programada.
En cierta medida, las decisiones
programadas limitan nuestra libertad, porque la persona tiene menos espacio
para decidir qué hacer. No obstante, el propósito real de las decisiones
programadas es liberarnos. Las políticas, las reglas o los procedimientos que
usamos para tomar decisiones programadas nos ahorran tiempo, permitiéndonos con
ello dedicar atención a otras actividades más importantes. Por ejemplo, decidir
cómo manejar las quejas de los clientes en forma individual resultaría muy caro
y requeriría mucho tiempo, mientras que una política que dice “se dará un plazo
de 14 días para los cambios de cualquier compra” simplifica mucho las cosas.
Así pues, el representante de servicios a clientes tendrá más tiempo para
resolver asuntos más espinosos.
• Decisiones
no programadas:
También denominadas no estructuradas,
son decisiones que se toman ante problemas o situaciones que se presentan con
poca frecuencia, o aquellas que necesitan de un modelo o proceso específico de
solución, por ejemplo: “Lanzamiento de un nuevo producto al mercado”, en este
tipo de decisiones es necesario seguir un modelo de toma de decisión para
generar una solución específica para este problema en concreto.
Las decisiones no programadas
abordan problemas poco frecuentes o excepcionales. Si un problema no se ha
presentado con la frecuencia suficiente como para que lo cubra una política o
si resulta tan importante que merece trato especial, deberá ser manejado como
una decisión no programada. Problemas como asignar los recursos de una
organización, qué hacer con una línea de producción que fracasó, cómo mejorar
las relaciones con la comunidad –de hecho, los problemas más importantes que
enfrentará el gerente –, normalmente, requerirán decisiones no programadas.
DEFINICIÓN
Las sentencias de decisión o
también llamadas de CONTROL DE FLUJO son estructuras de control que realizan
una pregunta la cual retorna verdadero o falso (evalúa una condicion) y
selecciona la siguiente instrucción a ejecutar dependiendo la respuesta o
resultado.
En algún momento dentro de
nuestros algoritmos, es preciso cambiar el flujo de ejecución de las
instrucciones, es decir, el orden en que las instrucciones son ejecutadas.
Muchas de las veces tenemos que tomar una decisión en cuanto a que se debe
ejecutar basándonos en una respuesta de verdadero o falso (condicion).
La ejecución de las instrucciones incluyendo una estructura
de control como el condicional funcionan de esta manera:
• Las
instrucciones comienzan a ejecutarse de forma secuencial (en orden) y cuando se
llega a una estructura condicional, la cual esta asociada a una condicion, se
decide que camino tomar dependiendo siempre del resultado de la condicion
siendo esta falsa o verdadera.
• Cuando se
termina de ejecutar este bloque de instrucciones se reanuda la ejecución en la
instrucción siguiente a la de la condicional.
• ________________________________________
• La
instrucción if es, por excelencia, la más utilizada para construir estructuras
de control de flujo.
• SINTAXIS
• Primera
Forma
• Ahora
bién, la sintaxis utilizada en la programación de C++ es la siguiente:
• if
(condicion)
• {
• Set de instrucciones
• }
siendo "condicion" el lugar donde se pondrá la
condición que se tiene que cumplir para que sea verdadera la sentencia y así
proceder a realizar el "set de instrucciones" o código contenido
dentro de la sentencia.
Segunda Forma
Ahora veremos la misma sintaxis pero ahora le añadiremos la
parte "Falsa" de la sentencia:
if (condicion)
{
Set de
instrucciones //PARTE VERDADERA
}
else
{
Set de
instrucciones 2 //Parte FALSA
}
La forma mostrada anteriormente muestra la union de la parte
"VERDADERA" con la nueva secuencia la cual es la parte
"FALSA" de la sentencia de decision "IF" en la cual esta
compuesta por el:
else
{
Set de
instrucciones 2 //Parte FALSA
}
la palabra "else" o "De lo contrario"
indica al lenguaje que de lo contrario al no ser verdadera o no se cumpla la
parte verdadera entonces realizara el "set de instrucciones 2".
Pseudocódigo en español Pseudocódigo en inglés
si <condición> if <condición>
entonces <acción S1> then <acción S1>
fin_si endif
Pseudocódigo en español Pseudocódigo en inglés
si <condición> if <condición>
entonces <acción S1> then <acción S1>
sino <acción S2> else <acción S2>
fin_si endif
Del ejemplo anterior (se requiere de operadores relaciónales):
if A>B
then Write (A)
else Write (B)
Ejemplo:
Resolución de una ecuación de primer grado.
Si la ecuación es ax+b=0, a y b son los datos, y las posibles soluciones son:
a <> 0 x = -b /a
a = 0 b <> 0 entonces "solución imposible"
a = 0 b = 0 entonces "solución indeterminada"
El algoritmo correspondiente será:
algoritmo RESOL1
inicio
{Solución de la ecuación ax+b=0}
leer a,b
si a<>0
sino si b<> 0
entonces escribir "solución imposible"
sino escribir "solución indeterminada"
fin_si {fin de si para b<> 0}
fin_si { fin de si para a<> 0}
fin
then if A > C
Write `El valor más grande es`, MAX
4.- Termino
Exit
Read (A, B, C)
2. - Se determina el mayor valor
Write `El valor más grande es`, MAX
Estructuras de decisión
La unidad aritmética y lógica es uno de los componentes mas importantes de una computadora típica. El propósito de la unidad aritmética es el manejo de las operaciones aritméticas; la porción lógica da a la computadora la capacidad de tomar decisiones. Esto forma la base de la construcción algoritmica if-then-else (si-entonces-de lo contrario), la que permitirá la selección de acciones alternativas.
Una decisión se especifica en una expresión lógica de la misma forma en que una operación de calculo se especifica en una expresión numérica.
Por ejemplo:
Suponga que tiene dos variables numéricas, denominadas A y B, que tienen valores diferentes, y suponga que desea imprimir el valor de la mas grande. Si A es mayor que B, debe imprimir el valor de A; pero, por otro lado, si B es mayor que A, debe imprimirse el valor de B. La elección de que alternativa tomar depende de la decisión de si la variable A es o no mayor que B. Esta estructura se representa mediante el diagrama siguiente:
Suponga que A tiene el valor de 5 y B el valor de 3. Como 5 es mayor que 3, la condición A>B es verdadera, de lo que resulta que se tomara la acción de la izquierda y se imprime el valor de A, es decir 5. Ahora supóngase que estos valores están invertidos, de manera que A tiene el valor 3 y B el valor 5, entonces A>B es falsa ya que 3 es menor que 5, y se tomara la acción de la derecha y se imprime el valor de B, es decir, 5. En ambos casos el valor impreso es le mas alto, como se requería.
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas.
En las estructuras selectivas se evalúa una condición y en función del resultado de la misma se realiza un opción u otra. Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino), con una figura geométrica en forma de rombo o bien con un triángulo en el interior de una caja rectangular.
Las estructuras selectivas o alternativas pueden ser:
- simples
- dobles
- múltiples
Alternativa simple (if-then/si-entonces)
La estructura alternativa simple si--entonces ejecuta una determinada acción cuando se cumple una determinada condición. La selección si-entonces evalúa la condición y
- si la condición es verdadera, entonces ejecuta la acción S1
- si la condición es falsa, entonces no hacer nada
Representación gráfica:
Pseudocódigo en español Pseudocódigo en inglés
si <condición> if <condición>
entonces <acción S1> then <acción S1>
fin_si endif
Alternativa doble (si-entonces-sino/if-then-else)
La estructura anterior es muy limitada y normalmente se necesitará una estructura que permita elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición.
Si la condición C es verdadera, se ejecuta la acción S1, y si es falsa, se ejecuta la acción S2.
si <condición> if <condición>
entonces <acción S1> then <acción S1>
sino <acción S2> else <acción S2>
fin_si endif
Del ejemplo anterior (se requiere de operadores relaciónales):
if A>B
then Write (A)
else Write (B)
Ejemplo:
Resolución de una ecuación de primer grado.
Si la ecuación es ax+b=0, a y b son los datos, y las posibles soluciones son:
a <> 0 x = -b /a
a = 0 b <> 0 entonces "solución imposible"
a = 0 b = 0 entonces "solución indeterminada"
El algoritmo correspondiente será:
algoritmo RESOL1
inicio
{Solución de la ecuación ax+b=0}
leer a,b
si a<>0
entonces x ß -b/a
escribir xsino si b<> 0
entonces escribir "solución imposible"
sino escribir "solución indeterminada"
fin_si {fin de si para b<> 0}
fin_si { fin de si para a<> 0}
fin
3.3 Ifs anidados
En algunas aplicaciones, una de las alternativas de una estructura if-then-else puede incluir un decisión adicional. Por ejemplo, después de que se elija una determinada acción sobre una determinada calificación de una prueba, podría quererse evitar la posibilidad de error en los datos de entrada. Esto requiere una comprobación adicional para verificar que los datos de entrada son validos, lo que sugiere el uso de una estructura if-then-else adicional incluida en cada una de las dos alternativas originales. Este proceso es un ejemplo de anidamiento.
Ejemplo:
Algoritmo MAX_3
Este algoritmo lee tres números A, B, C, imprimiendo el valor del más grande. Se supone que los tres valores son diferentes.
1.- Entrada de valores
Read (A, B, C)
2.- Se determina el valor más grande mediante comprobación por pares
if A > Bthen if A > C
then MAX ß A (A > B, A > C)
else MAX ß C (C > A > B)
else if B > C
then MAX ß B (B > A, b > C)
else MAX ß C (C > B > A)
3.- Se imprime el valor más grandeWrite `El valor más grande es`, MAX
4.- Termino
Exit
3.4 Condiciones compuestas
Estas condiciones se obtienen a partir de las expresiones simples, utilizando los operadores lógicos and, or y not.
Los significados de estos operadores se describen adecuadamente por medio de las tablas de verdad.
Las condiciones compuestas pueden utilizarse ya sea en enunciados if o en repeticiones condicionales. Ejemplo:
Algoritmo MAX_3 (2a. versión)
Este algoritmo lee tres números A, B, C, imprime el valor del más grande de ellos. Se supone que los tres valores son distintos.
1. - Entrada de los datosRead (A, B, C)
2. - Se determina el mayor valor
if A > B and A > C then MAX ß A
if B > A and B > C then MAX ß B
if C > A and C > B then MAX ß C
3. - Se imprime el valor más grandeWrite `El valor más grande es`, MAX
4. - Termino
Comentarios
Publicar un comentario