10
TRABAJO DE ELECTIVA LIBRE II LINUX CASE MARTA DAVID JORGE ARMANDO YEPEZ TUTOR: Juan Manuel Muskus UNIVERSIDAD DE CORDOBA FACULTAD DE CIENCIAS BASICAS E INGENIERIA INGENIERIA DE SISTEMAS SAHAGUN 2011

Trabajo case

Embed Size (px)

Citation preview

Page 1: Trabajo case

TRABAJO DE ELECTIVA LIBRE IILINUX

CASE

MARTA DAVID

JORGE ARMANDO YEPEZ

TUTOR:Juan Manuel Muskus

UNIVERSIDAD DE CORDOBAFACULTAD DE CIENCIAS BASICAS E INGENIERIA

INGENIERIA DE SISTEMASSAHAGUN

2011

Page 2: Trabajo case

INTRODUCCIÓN

Algunas veces resulta de gran ayuda, desde el punto de vista de eficiencias y facilidad de lectura de un programa, tener alguna forma de expresar una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de un predicado; usualmente, a la estructura de control que satisface el requerimiento anterior, se le denomina la estructura CASE. En general, case se considera una evolución de if fi, ya que permite el mismo resultado, escribiendo menos código.

Page 3: Trabajo case

Objetivos

• Conocer la estructura y funcionamiento del case

• Conocer las ventajas que ofrece esta sentencia selectiva.

• saber manejar el control de flujo de nuestro algoritmo.

Page 4: Trabajo case

CASE

Es una estructura de control empleada en programación, a la que pertenecen otras estructuras como el if, if else o until, entre otras, así como combinaciones propias de determinados lenguajes de programación.

El case no es tan popular como el if, pero se utiliza con regularidad en la programación. La estructura de evaluación múltiple (case) evaluara una expresión que podrá tomar n valores distintos, 1,2...n según se elija uno de estos valores en la condición, se realizara una de las n acciones o lo que es igual, el flujo del algoritmo seguirá un determinado camino entre los n posibles

Esta forma es muy útil cuando se tiene que elegir entre más de dos opciones, por lo que le llamaremos forma de selección múltiple.

En programación muchas veces es necesario comprobar el valor de una variable con case y validar si coincide con algún valor ingresado. Esto es posible solucionarlo con el if pero cuando son muchas posibles opciones a evaluar es mejor la ayuda del case, evitando escribir tantos if

Por ejemplo, si es necesario ejecutar una de cien rutinas diferentes en función del valor de un código de 2 dígitos, podemos representar este proceso mediante 100 estructuras IF, sin embargo el sentido común nos induce a pensar que no hay razón para adherirnos rígidamente a las tres estructuras básicas de control y en lugar de 100 IF usaríamos la estructura CASE, esta estructura utiliza el valor de una variable para determinar cual, de varias rutinas, será ejecutada.

La siguiente figura representa la selección múltiple:

Page 5: Trabajo case

Su funcionamiento es el siguiente:

• Se mira si el valor del selector aparece en alguna de las listas de constantes.

• Si aparece, entonces se ejecuta la sentencia correspondiente

• Si no aparece el valor del selector entonces no se hace nada

Estructura de uso es la siguiente: #bin/bin/bash

Case $nombre_variable in Valor_uno) Instrucción Instrucción ;; Valor_dos) Instrucción Instrucción ;;

Valor_tres) Instrucción Instrucción ;;

*) Instrucción Instrucción ;;esac

Page 6: Trabajo case

• En la línea 3 Case $nombre_variable in se evalúa dicha opción y dependiendo cual sea el caso ejecuta las instrucciones necesarias es cogiendo uno de los posibles valores en este caso los que aparecen en las siguientes líneas (4, 8,12).

• En la línea 15 la opción *) aparea con cualquier cadena, por lo que actúa como "en otro caso"; es útil para dar instrucciones sobre el uso del comando.

• El doble punto y coma (;;) se utiliza para indicar que hasta ahí llega una sentencia y da paso a la siguiente.

• El esac no es más que case escrito al revés y se utiliza para el cierre de la estructura y funciona como el ya reconocido (end.) en programación.

Para entender mejor el funcionamiento del case escribimos un script que contiene una lista de opciones y dependiendo escogidas en el programa ejecutara las instrucciones especificadas. El código del script es el siguiente:

#!/bin/bash

Echo “ MENU DE OPCIONES ” Echo “ 1 abrir el editor de texto ”Echo “ 2 listar ficheros del directorio actual ”Echo “ 3 mostrar saludo de bienvenida ”Echo “ 4 salir del programa ”

Echo “ selecciona una opción ”Read op

Case $op

1) gedit exit 0 ;;2) ls-l exit 0 ;;

3) Saludo.sh

Page 7: Trabajo case

exit 0 ;;4) exit 0 ;;*) echo “ No seleccionó ninguna opción ” exit 1 ;;

esac

• Desde la línea dos hasta la ocho son comentarios que me mostrará la

apariencia de nuestro programa cuando se ejecute.

• La línea 9 (read op), permite capturar el valor de la opción a evaluar en el case.

• En la línea 11 (case $op In), se evalúa dicha opción y dependiendo cual sea el caso que se quiere se ejecutara la instrucciones necesarias.

• Si se toma la opción 1 se ejecutara la líneas 13 y 14 y se abrirá el editor de texto del entorno genome.

• Si se toma la opción 2 se ejecutara las líneas 17 y 18 y se listaran los ficheros del directorio actual.

• Si se toma la opción 3 se ejecutara las líneas 21 y 22 se abre el programa saludo.sh (el cual es un script que ya debe de estar echo).

• Si se toma la opción 4 se ejecutara las líneas 25 y 26 y se sale del programa.

• Si no se escogió ninguna opción valida se ejecutara las líneas 28 y 29.

Page 8: Trabajo case
Page 9: Trabajo case

Ejercicio:#!/bin/bashcase $# in #con este case validamos que el numero de parametros sea correcto

2) #nos interesan dos casos que sean dos parametros o que no lo sean # Aquí vemos si el numero de parámetros es 2

echo "digita dos valores";

echo "presiona 1 para sumar";echo "presiona 2 para restar";echo "presiona 3 para multiplicar";echo "presiona 4 para dividir";echo "presiona 5 para obtener modulo o resto ";echo "presiona 6 para reiniciar";echo "presiona 7 para salir";

read orden; # Aquí de damos la orden para que lea la opción desde el teclado

case $orden in

1) suma=`expr $1 + $2` echo "la suma es $suma" ;; 2) resta=`expr $1 - $2` echo "la resta es $resta" ;; 3) multiplicación=`expr $1 \* $2` echo "la multiplicacion $multiplicacion" ;; 4) dividir=`expr $1 / $2` echo "la division $dividir" ;; 5) modulo=`expr $1 % $2` echo "el resto es $modulo" ;;

6) echo "Reiniciando...." sleep 3 ./prueba.sh ;; 7) echo "Saliendo...." sleep 2 exit 0 ;; *) echo "No ha seleccionado nada"

esac ;; *) echo "parametros incorrectos" # vemos cualquier otro caso

Esac

Page 10: Trabajo case

BIBLIOGRAFIA