sentencia swith

13
La sentencia switch da una alternativa mucho más refinada a la necesidad de utilizar o implementar múltiples sentencias condicionales if cuando deseamos que una determinada variable tome diferentes valores para cada condición. Generalmente, la sentencia switch se implementa cuando es necesarario la utilización de unmenú de opciones ya que el usuario deberá escoger una de las opciones, a esto me refiero cuando comento que la variable puede tomar diferentes valores. La sintaxis o estructura general de la sentencia switch es la siguiente: switch (expresión) { case cte_1: sentencia_11; sentencia_12; ... case cte_2: sentencia_21; sentencia_22; ... ... ... ... case cte_n: sentencia_n; sentencia_n; ... } Vale la pena resaltar que “expresión” es el nombre de la variable que se utilizará como argumento de la sentencia switch.

Upload: kevinlolololo

Post on 17-Dec-2015

29 views

Category:

Documents


2 download

DESCRIPTION

sentencia switch

TRANSCRIPT

  • La sentencia switch da una alternativa mucho ms refinada a la necesidad de utilizar o implementar

    mltiples sentencias condicionales if cuando deseamos que una determinada variable tome diferentes

    valores para cada condicin.

    Generalmente, la sentencia switch se implementa cuando es necesarario la utilizacin de unmen de

    opciones ya que el usuario deber escoger una de las opciones, a esto me refiero cuando comento que la

    variable puede tomar diferentes valores.

    La sintaxis o estructura general de la sentencia switch es la siguiente:

    switch (expresin)

    {

    case cte_1: sentencia_11;

    sentencia_12;

    ...

    case cte_2: sentencia_21;

    sentencia_22;

    ...

    ...

    ...

    ...

    case cte_n: sentencia_n;

    sentencia_n;

    ...

    }

    Vale la pena resaltar que expresin es el nombre de la variable que se utilizar como argumento de

    la sentencia switch.

  • Ahora bien, en la sintaxis de la sentencia switch que anteriormente present se comprueba el valor que

    ingrese el usuario que es el que tomar la variable expresin y lo compara con algunas de las etiquetas

    que acompaen a cada case. En caso de no encontrar ninguna coincidencia, el valor lo tomar

    como default.

    Por otra parte, como antes lo mencion, si la sentencia switch no contiene el valor ingresado por el

    usuario (que lo tomar la variable expresin o el argumento), se puede crear un default (que es

    una palabra clave reservada del lenguaje C), y mostrar un mensaje que diga, por ejemplo: opcin

    errnea, intente de nuevo., as de esa manera, cuidamos nuestro programa.

    En tal sentido, se podra hacer un caso prctico. Creemos un programa donde se muestre al usuario

    un men de opciones conformado por:

    1. Capital de Argentina

    2. Capital de Espaa

    3. 10000+58000 = ?

    4. Capital de Alemania

    A su vez, si el usuario ingresa una opcin errnea que no se presenta en el men de opciones, que se

    muestre un mensaje al mismo. Utilice la sentencia switch.

    Se puede observar en el programa anterior nuevas cosas que quiero aclarar que se refiere a lasintaxis de

    la sentencia switch que propuse al principio del artculo.

  • Si bien, dentro de la sentencia switch es necesario la implementacin de { } (abrir/cerrar el ciclo);

    tambin, para cada case (en espaol: caso), es necesario que al final se rompa el case con una palabra

    clave reservada llamada break.

    Es muy elegante utilizar esta sentencia switch.

    La sentencia switch() en Lenguaje C es una sentencia de seleccin. Esta sentencia permite seleccionar las

    acciones a realizar de acuerdo al valor que tome una variable.

    Modo de uso:

    switch(variable)

    {

    case valor_1: //acciones

    break;

    case valor_2: //acciones

    break; . . .

    case valor_n: //acciones

    break;

    defalut: //acciones

    break;

    } Si el valor que toma la variable no coincide con los valores especificados en

    los casos, se realizarn las acciones definidas en la etiqueta default.

    Ejemplos:

    1. Escriba un programa en Lenguaje C que solicite el ingreso de un nmero del 1 al 9 y que muestre por

    pantalla el nmero seleccionado en letras.

    Solucin:

    #include

    void main() {

    int opcion;

    printf("Ingrese un numero entero: ");

    scanf("%d",&opcion);

    switch(opcion) {

  • case 1:

    printf("Ha ingresado el numero uno\n");

    break;

    case 2:

    printf("Ha ingresado el numero dos\n");

    break;

    case 3:

    printf("Ha ingresado el numero tres\n");

    break;

    case 4:

    printf("Ha ingresado el numero cuatro\n");

    break;

    case 5:

    printf("Ha ingresado el numero cinco\n");

    break;

    case 6:

    printf("Ha ingresado el numero seis\n");

    break;

    case 7:

    printf("Ha ingresado el numero siete\n");

    break;

    case 8:

    printf("Ha ingresado el numero ocho\n");

    break;

    case 9:

    printf("Ha ingresado el numero nueve\n");

    break;

    defalut:

    printf("Ha ingresado un numero no valido\n");

    break; } }

    2. Escriba un programa en Lenguaje C que solicite el ingreso de dos nmeros enteros y que luego

    permita seleccionar si se sumarn, restarn dividirn o multiplicarn y muestre el resultado por pantalla.

    Solucin:

    #include

    void main() {

    int opcion,a,b,resultado;

    printf("Ingrese un numero entero [a]: ");

    scanf("%d",&a);

    printf("Ingrese un numero entero [b]: ");

    scanf("%d",&b);

    printf("Menu\n");

    printf("1. Sumar\n");

    printf("2. Restar\n");

    printf("3. Dividir\n");

    printf("4. Multiplicar\n");

  • printf("Elija una operacion: ");

    scanf("%d",&opcion);

    switch(opcion) {

    case 1: resultado=a+b;

    printf("%d + %d = %d\n",a,b,resultado);

    break;

    case 2: resultado=a-b;

    printf("%d - %d = %d\n",a,b,resultado);

    break;

    case 3: resultado=a/b;

    printf("%d / %d = %d\n",a,b,resultado);

    break;

    case 4: resultado=a*b;

    printf("%d x %d = %d\n",a,b,resultado);

    break;

    defalut:

    printf("Opcion no valida\n");

    break; } }

  • Definicin de Cycle time:

    Se le llama Cycle Time o se le conoce tambin como el Tiempo de ciclo.

    Es la mtrica para establecer el tiempo de duracin de un proceso. Es importante

    detallar que el tiempo de ciclo es el tiempo de una sola tarea desde su inicio a su

    final. Al ser una tarea especfica tendremos tiempos de ciclo de una sola actividad

    como el tiempo de ciclo de corte, tiempo de ciclo de una inspeccin, tiempo de ciclo

    de ensamble en un proceso productivo etc..

    Ejemplo: tiempo de ciclo = 30min (tiempo promedio)

    Ponte a sacar los tiempos de ciclo de las actividades en tu empresa, te puede ayudar

    a revisar cual es el verdadero cuello de botella de la planta ya que ste casi siempre

    es la actividad de mayor duracin.

    De donde viene la palabra Takt Time?

    La palabra takt time viene del alemn taktzeit que si lo pones en un traductor te dice

    que es tiempo de ciclo, pero a diferencia del tiempo de ciclo que conocemos este

    mide el ritmo de trabajo en una planta de manufactura.

    Definicin de Takt time:

  • En lo que respecta al lean production, este takt time es el ritmo en que los productos

    deben ser completados o finalizados para satisfacer las necesidades de la demanda.

    Ejemplo. Planta de manufactura de televisores

    Si fabricamos televisores y tenemos un takt time de 8 min quiere decir que cada 8min

    debemos tener finalizado un televisor para ser vendido. Este ritmo de fabricacion se

    da debido a que las ventas de la compaa o el pronstico nos indican la cantidad

    necesaria a fabricar (80 unids)y esta debe ser fabricada en el tiempo disponible de

    manufactura (540 min), de ahi viene que requerimos fabricar cada 8minutos un

    televisor.

    Cmo se calcula el takt time.

  • Qu es el Lead Time? Lead time es el tiempo que transcurre desde que se inicia un proceso de produccin hasta que se completa, incluyendo normalmente el tiempo requerido para entregar ese producto al cliente.

    El Lead Time ntimamente relacionado con la obra en curso y con otros indicadores como

    plazo de entrega, stocks por lo que la reduccin del Lead Time es objetivo importante en la

  • reduccin de costos o la aplicacin del lean manufacturing o lean production. El camino para

    reducirlo consiste en la reduccin de los lead time de los subprocesos de fabricacin.

    2 tipos de Lead Time (LT):

    El LT de cadena de suministros

    Manufacturing LT o Production LT

    Lead time de cadena suministro:

    El lead time es una variable que es usada en otras reas fuera de produccin, por

    ejemplo el lead time es mencionado para la planeacin de productos, cuando se

    planea por punto de re-orden este considera el tiempo de produccin y entrega (Lead

    time) para determinar el inventario de seguridad necesario y cantidad a ordenar a

    produccin. El lead time es tambin usado en departamento de logstica para analizar

    el tiempo promedio transcurrido de los productos y poder pronosticar fechas de

    llegada.

    Tipos de Lead time ms usados en cadena de suministros:

    Order Lead Time Tiempo desde que se reciben los pedidos de clientes

    hasta la entrega del pedido al cliente.

    Order Handling Time Tiempo desde que se reciben las ordenes de los

    clientes hasta la que la venta es realizada.

    Delivery Lead Time Tiempo desde que termina la produccin hasta que la

    orden es entregada al cliente.

    Manufacturing Lead time Production Lead time:

    Este indicador de Production lead Time es el tiempo que un producto requiere para

    ser producido. Puede decirse que desde que genera la orden de fabricacin hasta que

    est terminado. Esta mtrica contempla tiempo de actividades sin valor agregado

    como por ejemplo tiempo que estuvo en inventario en proceso.

    Cmo medimos el Manufacturing Lead Time para el lean process?

    Para medir recomendamos hacerlo en forma diaria sacando un promedio de

    fabricacin de todos los productos. De esta forma tendrs una referencia y

    podrs tomar acciones en el da a da.

    El segundo paso que hicimos fue descomponerlo por rea dndonos cuenta

    que el tiempo de espera de los productos (trabajo en proceso o WIP) era el

    mayor tiempo de valor no agregado, por lo que requerimos hacer

  • modificaciones a los reportes para observar el tiempo de duracin de los

    inventarios en proceso y adems debimos hacer sentir al personal la urgencia

    y la importancia de productos respetando el fifo (firs in. first out) o tambin

    llamado PEPS (primero en entrar primero en salir)

    Como tercer paso luego de mejorar el WIP fue modificar los

    subprocesos mediante herramientas de lean con equipo kaizen para mejorar

    la capacidad y as reducir el Lead time.

    Importancia de Lead time en Lean process

    Repasemos el lean process brevemente, el cual es un mtodo para identificar

    actividades que agregan valor y adems la eliminacin de desperdicios en nuestros

    procesos ya sea de manufactura o de servicio. Si deseamos tener un lean

    process en nuestra orgaizacin debemos contar con mtricas desde el inicio para ir

    mejorando. El Lead Time es primordial para nuestro xito, ya que si reducimos el lead

    time, obtendremos rpidez para realizar los productos y lograremos una mejora en el

    nivel de servicio.

    Balanceo de lneas

    El Balanceo de lneas consiste en la agrupacin de las actividades secuenciales de trabajo en centros de trabajo, con el fin de lograr el mximo aprovechamiento de la mano de obra y equipo y de esa forma reducir o eliminar el tiempo ocioso.

    Qu es Takt Time? Los conceptos de Lead-Time y nivelacin (HEIJUNKA) son bsicos para la

    aplicacin del concepto de takt-time en la implantacin del lean manufacturing.

    Takt, en alemn, significa entre otras cosas ritmo, comps. Se define como takt

    time la cadencia a la cual un producto debe ser fabricado para satisfacer la

    demanda del cliente.

    En el dibujo inferior se representa como el departamento de planificacin o control de

    produccin realiza la nivelacin de los pedidos de manera que en fbrica durante un periodo

  • determinado (un turno, una semana, un trimestre) se trabaja a un ritmo nivelado o

    promediado de las demandas del cliente.

    Esquema que representa los problemas de producir por encima o por debajo del tacto del cliente

    Si tenemos un puesto o una lnea o un taller que produce a un ritmo inferior al del cliente, es

    decir que el tiempo de ciclo es superior al takt time, necesitaremos horas extras, turnos

    adicionales para poder conseguir la produccin que el cliente nos pide.

  • Si por el contrario producimos a un ritmo superior al del cliente, es decir que el tiempo ciclo es

    inferior al takt time tendremos tiempos de espera, o tendremos que desplazar a los operarios a

    otros puestos y estaremos generando produccin en ms.

    Por tanto nuestro objetivo al organizar la produccin o disear un puesto de trabajo es hacer

    coincidir al mximo el tiempo de ciclo con el tiempo tcto.

    Dado que las demandas de produccin son cambiantes a lo largo del tiempo deberemos

    definir formas de trabajo flexibles que mantengan su eficacia al acoplarse a los cambios,

    permanentes o cclicos, previsibles o imprevisibles del tiempo takto o demanda del cliente.

    Informacin relacionada: lead-time

    En el siguiente esquema, cada da se est procesando una pieza sola, con un tiempo de

    produccin Lead Time desde pedido a entrega de 48 horas.

  • En siguiente esquema, cada da se estn procesando dos piezas simultaneamente, pero el

    tiempo de produccin Lead Time de cada una de ellas se eleva a 96 horas por cada pieza

    desde el pedido hasta la entrega.

    En el siguiente video, se puede ver un ejemplo de como la organizacin de los puestos y

    procesos de trabajo consigue reducir el Lead Time. El mismo nmero de operarios consigue

    producir la misma cantidad de piezas en un tiempo mucho menor.