Para ejecutar un grupo de instrucciones de entre varios posibles, dependiendo del valor tomado por una determinada expresión de evaluación, se utiliza una estructura basada en la sentenciaSelect Case.Cuando se llega a la sentencia Select Case, en primer lugar se evalúa Expresión. El resultado de la evaluación, que puede ser un valor de cualquier tipo de datos, se compara con los valores indicados en ListaComprobación1. Si coincide con algún valor, se ejecuta el grupo Instrucciones1 y se pasa a la siguiente instrucción a End Select.
Select Case <Expresión> Case <ListaComprobación1> [instruccines1] ... Case <ListaComprobación2> [instruccines2] ... Case Else [instruccinesN] ... End Select
Si el valor no se encuentra, se comprueba si coincide con alguno de ListaComprobación2. Si coincide con algún valor, se ejecuta el grupo Instrucciones2 y se pasa a la siguiente instrucción a End Select.
Si el valor no se encuentra se busca en ListaComprobación3, y así sucesivamente. Por último, si el valor devuelto por Expresión no se encuentra en ninguna de las listas de comprobación, se ejecuta el grupo InstruccionesN, finalizando la ejecución de la estructura.
Las listas de comprobación de las cláusulas Case, también pueden incluir rangos de valores, haciendo uso de la cláusula To, de forma similar a como se realiza en la declaración de matrices.
También es posible indicar una condición de comparación con un determinado valor mediante el uso de la cláusula Is, que debe ir siempre acompañada de un operador relaciona¡ (=, <, >, <=, >=, <>).
FUNCIÓN Switch
sRespuesta = Switch(N>5, "SI", N>2, "NO", N<2, "MÁS O MENOS")
martes, 11 de febrero de 2014
Bifurcación Compuesta
Operadores relacionales y lógicos
Una expresión lógica es aquella que sólo puede devolver dos valores (Verdadero o Falso). Los valores que pueden aparecer en una expresión lógica son de 2 tipos: lógicos y relacionales.
La particularidad de las expresiones lógicas es que mientras en una expresión numérica por devolver un valor numérico los operandos solo pueden ser números, en una expresión lógica los operandos no tienen porque ser booleanos aunque se devuelva un valor booleano. Esto es lo que ocurre cuando en la expresión lógica utilizamos operadores relacionales con lo cual se obtienen valores lógicos o booleanos a partir de otros que no lo son.
En cambio cuando los operadores son lógicos los operandos obligatoriamente tambien tienen que ser lógicos.
Operadores relacionales:
<
>
=
<> en C: !=
"
"
< Operando1> operador < Operando2>
5 > 3 Verdadero
¿Cómo se evalua una expresión relacional?:
- Primero se evalua el primer operando y se sustituye por su valor.
- Luego se evalua el seguno operando y se sustituye por su valor.
- Finalmente se aplica el operador relacional y se devuelve el valor booleano correspondiente.
((3*2)+1-5^2) < (2-1)
-18 < 1 Verdadero.
El problema del tipo real:
Desde la informática, los numeros reales son finitos, ya que tenemos un máximo de cifras decimales. Cuando trabajamos con un =, matematicamente da un valor exacto, pero informaticamente no es exacto.
1/5 * 5 =1
1.0/5.0 *5.0 <>1.0
Soluciones:
- La que nos aporte el propio lenguaje de programación. Se considera un valor de error.
- Trabajar con números enteros siempre que sea posible.
- Utilizar las comparaciones <> en vez de " " si es posible.
- Si hay que preguntar por igual, cambiar la condición utilizando valores absolutos y un valor mínimo de error.
Si la diferencia < 0.00000001 y ABS (A-B)< min ; son iguales.
Operadores lógicos:
El problema es que a veces queremos preguntar o evaluar por más de una condición al mismo tiempo y para esto estan los operadores lógicos.
Y and &&
O or !!
No not ~!
Y, O, son operadores binarios (necesitan 2 operandos de tipo logico).
Operando 1 Operador Operando 2
El No es unario y se coloca primero el No, y despues el operando.
El resultado es lógico y depende de:
Operando 1
|
Operando 2
|
AND
|
OR
|
V
|
V
|
V
|
V
|
V
|
F
|
F
|
V
|
F
|
V
|
F
|
V
|
F
|
F
|
F
|
F
|
El No niega :
NOT
|
1/0
|
V
|
F
|
F
|
V
|
Prioridades de los operadores:
- Lo más prioritario es el NOT
- Luego el Y y el O.
- <, > =,...
Tabla de prioridades:
^ NO
/ div mod y
+ - O
<, >, =, <>,...
Bifurcaciones
Un programa (o función) Matlab consta de una serie de líneas con comandos (ordenes de ejecución), de tal manera que lleva un orden. Los comandos se van ejecutando según ese orden, desde la primera hasta la última línea del programa. Así, por ejemplo, podemos asignar a una variable numérica "x" un valor, a otra "y" otro valor distinto... luego hacer operaciones como sumarlas, multiplicarlas por números etc.
Bifurcaciones: Llega un momento en que necesitamos hacer una bifurcación condicional: si se cumple una condición hacer una cosa, si no se cumple hacer otra. Para ello colocaremos las llamadas "bifurcaciones", que las hay de tres tipos:
* Bifurcación simple: Se trata de ejecutar unos comandos en caso de que se cumpla una condición o nada en caso contrario. Lo cual viene expresado mediante el llamado "diagrama de flujo" así:
Es decir, el orden de ejecución del programa que viene de arriba hacia abajo, al llegar a condición , la evalúa y si la condición resulta verdadera pasa a ejecutar comandos, mientras que si resulta falsa se salta ese conjunto de comandos y sigue ejecutando los demás hacia abajo.
La estructura del Matlab para la bifurcación condicional simple es la siguiente:
if (condición)comandos;
end;
Un ejemplo muy simple es el siguiente:
* Si x > y queremos imprimir en pantalla el valor de x, pero en caso de no ser x > y no nos interesa sacarlo en pantalla sino continuar con el programa normalmente. Esto lo podríamos hacer con una bifurcación simple así:
El "if" abre la bifurcación y el "end" la finaliza, en su interior se hallan encerradas uno o varios comandos que sólo se ejecutarán si la condición es verdadera.
Bifurcación completa: Otro caso es ejecutar unos comandos en caso de que se cumpla una condición o otros comandos en caso contrario. Lo cual viene expresado por "diagrama de flujo" así:
Es decir, el orden de ejecución del programa que viene de arriba hacia abajo, al llegar a condición , la evalúa y si la condición resulta verdadera pasa a ejecutar comandos(1), mientras que si resulta falsa ejecuta el bloque de comandos(2), a continuación continúa el programa en orden descendente.
La estructura del Matlab para la bifurcación completa es la siguiente:
if (condición)comandos(1);
else comandos(2);
end;
Un ejemplo muy simple es el siguiente:
* Si x > y queremos imprimir en pantalla el valor de x e imprimir una frase que lo indique, pero en caso de no ser x > y (entonces y será mayor o igual a x) queremos sacar en pantalla el valor de y e indicarlo con un mensaje. Esto lo podríamos hacer con una bifurcación simple así:
Entre el "if" que abre la bifurcación y el "end" que la cierra, tenemos la condición (que viene tras el "if"), el bloque de sentencias a ejecutarse si se cumple la condición, a continuación el "else", y tras él viene el bloque de sentencias a ejecutarse en caso de no cumplirse la condición.
* Bifurcación multiple: Un tercer caso es el de ejecutar unos comandos en caso de que se cumpla una condición(1) o ejecutar otros en caso de cumplir una condición2 ... etc. finalmente ejecutar otros en caso de fallar las dos (o más) condiciones anteriores. Lo cual viene expresado mediante el "diagrama de flujo" así:
En este caso se pueden poner no sólo dos condiciones, sino más de dos (aunque con más de tres el código de programa se oscurece demasiado). Fijarse cómo el bloque decomandos(3) se ejecuta cuando fallan todas las condiciones, que por cierto podrían ser más de dos.
La estructura del Matlab para la bifurcación condicional multiple es la siguiente:
if (condición1)comandos(1);
elseif (condición2)
comandos(2);
else comandos(3);
end;
Un ejemplo muy simple es el siguiente:
* Si x > y queremos imprimir en pantalla el valor de x e imprimir una frase que lo indique; en caso de ser y > x queremos sacar en pantalla el valor de y e indicarlo con un mensaje; finalmente si no se dan ninguna de las dos condiciones entonces sacaremos en pantalla que "x es igual a y". Esto lo podríamos hacer con una bifurcación simple así:
* Operadores relacionales
Para expresar la condición de arriba deben ser unidas dos expresiones con un operador relacional en medio, de tal manera que el resultado sea verdadero o falso. Los operadores relacionales que utiliza Matlab son los siguientes:
* > "mayor que"
* >= "mayor o igual que"
* < "menor que"
* <= "menor o igual que"
* = = "igual que" (Atención: se trata del doble =)
* >= "mayor o igual que"
* ~= "distinto que"
* Operadores lógicos
* >= "mayor o igual que"
* < "menor que"
* <= "menor o igual que"
* = = "igual que" (Atención: se trata del doble =)
* >= "mayor o igual que"
* ~= "distinto que"
* Operadores lógicos
Por otra parte para expresar la condición de arriba, además de los operadores relacionales indicados, utilizamos también operadores lógicos tales como el "and", "or" y "not", los cuales en Matlab se expresan así:
* & equivale a "and".
* | equivale a "or".
* ~ equivale a "not".
* | equivale a "or".
* ~ equivale a "not".
De esta manera pueden ser expresadas condiciones complicadas tales como:
A >= B & B ~= C ("A mayor que B y B distinto de C")
(A+B) <= (C-D) | (E+F) >= (G/H) ("A+B menor o igual que C-D ó E+F mayor o igual que G/H").
(A+B) <= (C-D) | (E+F) >= (G/H) ("A+B menor o igual que C-D ó E+F mayor o igual que G/H").
Reglas de prioridad
En la programación de “n”trabajos en una máquina se pueden implementar distintas políticas o reglas de prioridad que en particular buscan mejorar el desempeño de la programación en un indicador en particular (minimizar la cantidad de trabajos atrasados, minimizar el atraso promedio, minimizar el atraso máximo, minimizar el tiempo de flujo promedio, etc), sin embargo, el makespan o tiempo requerido para completar los trabajos será idéntico independiente de la regla de prioridad.
A continuación mediante un ejemplo mostraremos la aplicación de las reglas de prioridad más comunes en la programación de 5 trabajos. Asumiremos para efectos prácticos que los tiempos de proceso y fechas de entrega se expresan en días:
FIFO: (First In First Out) Es una de las reglas de prioridad más utilizada y considera atender los trabajos según orden de llegada. En nuestro ejemplo consideraremos que los trabajos fueron recibidos en el siguiente orden: A, B, C, D, E.
- Tiempo de Flujo Promedio = 245[días]/5[trabajos]=49[días/trabajo]
- Tiempo de Atraso Promedio = 108[días]/5[trabajos]=21,6[días/trabajo]
- Atraso Máximo = 40[días]
- Número de Trabajos Atrasados = 3[trabajos]
LIFO: (Last In First Out) Se atienden los trabajos en orden inverso al orden de llegado. En este caso E, D, C, B y finalmente A.
- Tiempo de Flujo Promedio = 235[días]/5[trabajos]=47[días/trabajo]
- Tiempo de Atraso Promedio = 73[días]/5[trabajos]=14,6[días/trabajo]
- Atraso Máximo = 30[días]
- Número de Trabajos Atrasados = 4[trabajos]
SPT: (Shortest Processing Time) Los trabajos se procesan en orden creciente de tiempo de proceso.
- Tiempo de Flujo Promedio = 180[días]/5[trabajos]=36[días/trabajo]
- Tiempo de Atraso Promedio = 50[días]/5[trabajos]=10[días/trabajo]
- Atraso Máximo = 35[días]
- Número de Trabajos Atrasados = 3[trabajos]
LPT: (Largest Processing Time) Los trabajos se procesan en orden decreciente de tiempo de proceso.
- Tiempo de Flujo Promedio = 300[días]/5[trabajos]=60[días/trabajo]
- Tiempo de Atraso Promedio = 133[días]/5[trabajos]=26,6[días/trabajo]
- Atraso Máximo = 58[días]
- Número de Trabajos Atrasados = 4[trabajos]
EDD: (Earliest Due Date) Los trabajos se atienden por fecha de entrega.
- Tiempo de Flujo Promedio = 215[días]/5[trabajos]=43[días/trabajo]
- Tiempo de Atraso Promedio = 55[días]/5[trabajos]=11[días/trabajo]
- Atraso Máximo = 30[días]
- Número de Trabajos Atrasados = 2[trabajos]
Por supuesto existen otros criterios que permiten secuenciar “n” trabajos en una máquina y cada uno de ellos se debe evaluar en su merito. En nuestro ejemplo podemos apreciar lo que generalmente ocurre en este tipo de procedimientos respecto a que es difícil encontrar una regla de prioridad que en términos comparativos sea mejor que las restantes en todos los indicadores. En consecuencia, el tomador de decisiones deberá privilegiar aquel indicador que en su caso en particular resulte ser más crítico. Por ejemplo si se busca la menor cantidad de trabajos atrasados podría seleccionar EDD, sin embargo, si lo más importante es el tiempo de flujo promedio podría seleccionar SPT. Notar finalmente que independiente de la regla de prioridad utilizada el makespan es de 80[días].
Las variables
Son las variables que expresan distintas cualidades, características o modalidad. Cada modalidad que se presenta se denomina atributo o categoría, y la medición consiste en una clasificación de dichos atributos. Las variables cualitativas pueden ser dicotómicas cuando sólo pueden tomar dos valores posibles, como sí y no, hombre y mujer o ser politómicas cuando pueden adquirir tres o más valores. Dentro de ellas podemos distinguir:
Variable cualitativa ordinal o variable cuasicuantitativa: La variable puede tomar distintos valores ordenados siguiendo una escala establecida, aunque no es necesario que el intervalo entre mediciones sea uniforme, por ejemplo: leve, moderado, fuerte.
- Variable cualitativa nominal: En esta variable los valores no pueden ser sometidos a un criterio de orden, como por ejemplo los colores.
- con las variables que toman como argumento, cantidades numéricas, son variables matemáticas. Las variables cuantitativas además pueden ser:
- Variable discreta : Es la variable que presenta separaciones o interrupciones en la escala de valores que puede tomar. Estas separaciones o interrupciones indican la ausencia de valores entre los distintos valores específicos que la variable pueda asumir. Ejemplo: El número de hijos (1, 2, 3, 4, 5).
- Variable continua: Es la variable que puede adquirir cualquier valor dentro de un intervalo especificado de valores. Por ejemplo la masa (2,3 kg, 2,4 kg, 2,5 kg,...) o la altura (1,64 m, 1,65 m, 1,66 m,...), o el salario. Solamente se está limitado por la precisión del aparato medidor, en teoría permiten que exista un valor entre dos variables.
- Según la influencia que asignemos a unas variables sobre otras, podrán ser:
- Una variable independiente es aquella cuyo valor no depende de otra variable. La variable independiente se representa en el eje de abscisas.Son las que el investigador escoge para establecer agrupaciones en el estudio, clasificando intrínsecamente a los casos del mismo. Un tipo especial son las variables de control, que modifican al resto de las variables independientes y que de no tenerse en cuenta adecuadamente pueden alterar los resultados por medio de un sesgo.Es aquella característica o propiedad que se supone ser la causa del fenómeno estudiado. En investigación experimental se llama así a la variable que el investigador manipula.
Variables intervinientes
Son aquellas características o propiedades que, de una manera u otra, afectan el resultado que se espera y están vinculadas con las variables independientes y dependientes.Y es muy similar a la variable moderados aunque no son iguales solo son muy similares a la forma de relacionarlas.Variables moderadoras
Según Tuckman: Representan un tipo especial de variable independiente, que es secundaria, y se selecciona con la finalidad de determinar si afecta la relación entre la variable independiente primaria y las variables dependientes. Son las variables que expresan distintas cualidades, características o modalidad. Cada modalidad que se presenta se denomina atributo o categoría y la medición consiste en una clasificación de dichos atributos. Las variables cualitativas pueden ser dicotómicas cuando sólo pueden tomar dos valores posibles como sí y no, hombre y mujer o son politómicas cuando pueden adquirir tres o más valores.
Reglas para la diagramación
Se utilizan los símbolos indicados a continuación, estandarizados según ISO 5807:
Inicio/Final
Se utiliza para indicar elinicio y el final de undiagrama; del Inicio sólopuede salir una línea deflujo y al Final sólo debellegar una línea.
Flujo
Indica el seguimientológico del diagrama.También indica el sentidode ejecución de lasoperaciones; lo veremosen el transcurso del temay usted se familiarizaracon ella comprendiéndolopoco a poco.
Entrada General
Entrada/Salida de datosen General (en esta guía,solo la usaremos para laEntrada).Leer unnúmero porteclado
Acción/ProcesoGeneral
Indica una acción oinstrucción general quedebe realizar elcomputador (cambios devalores de variables,asignaciones, operacionesaritméticas, etc.).Leer dosnúmeros ysumarlos
Salida Impresa
Indica la presentación de unoo varios resultados en formaimpresa, es decir imprime elresultado del diagrama deflujo.
Reglas para la creación de Diagrama
Simbología
| Símbolo | Símbolo Nombre (Alias) | Símbolo Descripción |
|---|---|---|
| Proceso / Símbolos Operación | ||
| Proceso |
Mostrar un proceso o paso de acción. Este es el símbolo más común en los diagramas de flujo de procesos y mapas de procesos de negocio.
| |
| Proceso predefinido (Subrutina) |
Un símbolo predefinidos proceso es un marcador de otra etapa del proceso o una serie de medidas de flujo del proceso que están formalmente definidos en otros lugares. Esta forma normalmente representa subprocesos (o subrutinas en diagramas de flujo de programación). Si el sub-proceso que se considera "conocida", pero en realidad no se define en un procedimiento de proceso, instrucciones de trabajo, o algún otro proceso de diagrama de flujo o la documentación, entonces es mejor no utilizar este símbolo, ya que implica un proceso definido formalmente.
| |
| Suplente Proceso |
Como su nombre lo sugiere la forma, este símbolo de diagrama de flujo se utiliza cuando el paso de flujo del proceso es una alternativa a la etapa del proceso normal. líneas de flujo en un paso de flujo de procesos alternativos son generalmente discontinuas.
| |
| Retraso | El símbolo de diagrama de flujo de retardo representa un período de espera que es parte de un proceso. Hay un atraso de las formas comunes de mapeo de procesos. | |
| Preparación |
Como dice el nombre, cualquier paso del proceso que es un proceso de preparación de caudal, como una puesta a punto la operación.
| |
| Manual de Operación |
Manual de las formas de diagrama de flujo de operaciones que se muestran los pasos del proceso no están automatizados. En los diagramas de flujo de proceso de datos, esta forma de flujo de datos indica una operación de bucle junto con un símbolo de límite de bucle (que no es compatible con Microsoft Office, sino un símbolo Manual de Operación de girar 180 ° hará el truco.)
| |
| y Control de ramificación de los símbolos de flujo | ||
| Flow Line (Flecha, conector) | Conectores de flujo línea de mostrar la dirección que el proceso de los flujos. | |
| Terminator (Terminal Punto de óvalo) |
Terminators mostrar los puntos de inicio y fin de un proceso. Cuando se utiliza como un símbolo en Inicio, terminadores representan un grupo de disparo, que establece el flujo de proceso en marcha.
| |
| Decisión |
Indica una pregunta o una sucursal en el flujo del proceso. Por lo general, una forma de diagrama de flujo Decisión se utiliza cuando hay dos opciones (Sí / No, No / No-Go, etc)
| |
| Conector (Inspección) | Diagrama de flujo: En los diagramas de flujo, este símbolo suele ser pequeño y se utiliza como un conector para mostrar un aumento de un punto en el flujo de proceso a otro. Los conectores son usualmente marcadas con letras mayúsculas (A, B, AA) para mostrar los puntos de coincidencia salto. Son útiles para evitar el flujo de las líneas que se cruzan otras formas y líneas de flujo. Ellos también son útiles para el salto y de un sub-procesos definidos en la zona para que el diagrama de flujo principal. Proceso de Asignación: En los mapas de procesos, este símbolo es de tamaño completo y muestra un punto de inspección en el flujo del proceso. [Sólo para confundir más las cosas, algunas personas utilizan un círculo para indicar una operación y un cuadrado para indicar una inspección. Es por eso que es importante incluir una clave de símbolo en el diagrama de flujo.] | |
| Conector fuera de página |
Fuera de la página Conector muestra la continuación de un organigrama de proceso en otra página. Cuando se utilizan en combinación con conectores, lo mejor es para diferenciar las etiquetas, por ejemplo, números de uso para Off-Page Conectores y letras mayúsculas para conectores.En la práctica, la mayoría de los diagramas de flujo sólo tiene que utilizar la forma de conectar dos referencias en la página y fuera de la página.
| |
| Combinación (Almacenamiento) | Diagrama de flujo: Muestra la fusión de varios procesos y la información en una sola. Proceso de asignación: por lo general indica que el almacenamiento de materias primas. | |
| Extracto (medición) |
Diagrama de flujo: Aparece cuando un proceso se divide en caminos paralelos. También indica una frecuencia de medición, con "M" mayúscula dentro del símbolo.
Proceso de asignación: por lo general indica que el almacenamiento de productos terminados. | |
| O |
La muestra o símbolo lógico cuando un proceso se aparta - por lo general durante más de dos ramas. Cuando se utiliza este símbolo, es importante etiquetar las líneas de flujo saliente para indicar los criterios a seguir cada rama.
| |
| En resumen la salida |
La lógica Resumiendo forma de diagrama de flujo de conexiones se muestra cuando convergen varias ramas en un solo proceso. El símbolo de combinación es más común para este uso, sin embargo.Este símbolo y el símbolo O son realmente más relevantes en el procesamiento de datos de diagramas de flujo que en los diagramas de flujo del proceso.
| |
| Entrada y símbolos de salida | ||
| Datos (E / S) | La forma de diagrama de flujo de datos indica que las entradas y salidas de un proceso. Como tal, la forma es más a menudo se conoce como E / S que forma una forma de datos. | |
| Documento |
Muy explica por sí mismo - el símbolo de diagrama de flujo de documentos es para una fase del proceso que produce un documento.
| |
| Multi-Documento | Igual que el documento, excepto, bueno, varios documentos. Esta forma no es tan de uso general como la forma de diagrama de flujo de documentos, incluso cuando están implicados varios documentos. | |
| Mostrar |
Indica una etapa del proceso donde la información se muestra a una persona (por ejemplo, los usuarios de PC, operador de la máquina).
| |
| Manual de Entrada |
Manual de las formas de diagrama de flujo de entrada muestra los pasos del proceso donde se le pide al operador / usuario para obtener información que deben introducir manualmente en un sistema.
| |
| Tarjeta |
Esta es la compañía de las formas de diagrama de flujo de cinta perforada. Esta forma se utiliza raramente.
| |
| Perforadas de cinta | Si eres muy bueno en todos los estiramientos de la vida de una máquina, usted todavía puede tener el uso del símbolo de cintas perforadas - se usa para la entrada en ordenadores antiguos y máquinas CNC. | |
| Archivo y Almacenamiento de símbolos de información | ||
| Los datos almacenados |
Un general de almacenamiento de datos forma de diagrama de flujo utilizado para cualquier etapa del proceso que almacena los datos (a diferencia de las formas más específicas a seguir al lado de este cuadro).
| |
| Disco magnético (base de datos) |
El símbolo más universalmente reconocibles para una ubicación de almacenamiento de datos, esta forma de diagrama de flujo representa una base de datos.
| |
| Almacenamiento de acceso directo |
Direct Access Storage es una manera elegante de decir unidad de disco duro.
| |
| De almacenamiento interno |
Se utiliza en los diagramas de flujo de programación en el sentido de la información almacenada en la memoria, en lugar de en un archivo.
| |
| De almacenamiento de acceso secuencial (Cinta magnética) |
A pesar de que parece una "Q", el símbolo se supone que se vea como un rollo de cinta.
| |
| Símbolos de datos de procesamiento | ||
| Cotejar |
La forma de diagrama de flujo Intercalar indica una fase del proceso que requiere la organización de los datos, información o materiales de acuerdo a un formato estándar o el arreglo.
| |
| Ordenar | Indica la clasificación de datos, información, materiales en un orden pre-definido. | |
Suscribirse a:
Comentarios (Atom)