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".

Estructuras de decisión
3.1 Selección de alternativas
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.

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
entonces x ß -b/a
escribir x
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
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 > B
then 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 grande
Write `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 datos
Read (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 grande
Write `El valor más grande es`, MAX

4. - Termino

Comentarios

Entradas populares de este blog

5-ESTRUCTURA CONTROL DE DECISIÓN-CON SCRATCH

5- ESTRUCTURA DE CONTROL DE DECISIÓN EN PSEINT

Desarrollos de Scratch para robótica