SlideShare una empresa de Scribd logo
1 de 50
Presentación resumen del libro:

"EMPEZAR DE CERO A PROGRAMAR EN                lenguaje C"
       Autor: Carlos Javier Pes Rivas (correo@carlospes.com)




                     Capítulo 12
INSTRUCCIONES DE CONTROL ALTERNATIVAS




                                                               1
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




                          OBJETIVOS
• Conocer las instrucciones de control alternativas, y saber hacer uso
  de ellas.

• Saber qué es el anidamiento, y cuándo hacer uso de él.

    – Todas las instrucciones de los algoritmos vistos hasta este momento se
      ejecutan secuencialmente, una detrás de otra, sin excepción, pero, en un
      algoritmo, ¿pueden existir instrucciones que no se ejecuten, o que se
      ejecuten a veces sí a veces no?




                                                                         2
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




                  CONTENIDO

12.1 INTRODUCCIÓN
12.2 INSTRUCCIONES ALTERNATIVAS
12.3 ANIDAMIENTO
12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA
12.5 VARIABLE INTERRUPTOR




                                                                 3
            Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




           12.1 INTRODUCCIÓN (1/2)

• Las instrucciones que se utilizan para diseñar algoritmos se pueden
  clasificar en:

    – Primitivas
    – De control
    – Llamadas a subalgoritmos (llamadas a subprogramas)


• Las instrucciones de control se clasifican en:

    – Alternativas (selectivas)
    – Repetitivas (iterativas)
    – De salto (de transferencia)


                                                                          4
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




          12.1 INTRODUCCIÓN (2/2)
• Se llama flujo de control al orden en el que se ejecutan las
  instrucciones de un programa, siendo las propias instrucciones las
  que determinan o controlan dicho flujo.

• En un programa, a menos que el flujo de control se vea modificado
  por una instrucción de control, las instrucciones siempre se ejecutan
  secuencialmente, una detrás de otra, en orden de aparición, de
  izquierda a derecha y de arriba abajo, que es el flujo natural de un
  programa.

• En programación estructurada, se considera una mala práctica hacer
  uso de las instrucciones de salto, ya que, entre otras cosas, restan
  legibilidad al algoritmo.

                                                                        5
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (1/21)

• Una instrucción de control alternativa permite seleccionar, en el
  flujo de control de un programa, la o las siguientes instrucciones a
  ejecutar, de entre varias posibilidades. Existen tres tipos:
    – Doble
    – Simple
    – Múltiple

• Una instrucción alternativa doble (o simplemente alternativa
  doble) permite seleccionar, por medio de una condición, el
  siguiente bloque de instrucciones a ejecutar, de entre dos posibles.
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado la nota (dato real) de una asignatura.
  2º) Muestre por pantalla:
    – "APROBADO", en el caso de que la nota sea mayor o igual que 5.
    – "SUSPENDIDO", en el caso de que la nota sea menor que 5.           6
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (2/21)

• Solución en pseudocódigo:
   algoritmo Calificacion_segun_nota
   variables
      real nota
   inicio
      escribir( "Introduzca nota (real): " )
      leer( nota )
      si ( nota >= 5 )
         escribir( "APROBADO" )
      sino
         escribir( "SUSPENDIDO" )
      fin_si
   fin

                                                                   7
              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (3/21)

• Solución en ordinograma:




                                                                   8
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (4/21)

• Solución en C:
   #include <stdio.h>
   int main()
   {
      float nota;
      printf( "n   Introduzca nota (real): " );
      scanf( "%f", &nota );
      if ( nota >= 5 )
         printf( "n   APROBADO" );
      else
         printf( "n   SUSPENDIDO" );
      return 0;
   }

                                                                   9
              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




 12.2 INSTRUCCIONES ALTERNATIVAS (5/21)
• Sintaxis de una instrucción       • En C:
  alternativa doble (pseudocódigo):
                                                     if ( <expresión_lógica> )
    si ( <expresión_lógica> )                        {
       <bloque_de_instrucciones_1>                      <bloque_de_instrucciones_1>
    sino                                             }
       <bloque_de_instrucciones_2>                   else
    fin_si                                           {
                                                        <bloque_de_instrucciones_2>
• En ordinograma:                                    }




                                                                             10
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




  EJERCICIOS RECOMENDADOS

• Resueltos: 1, 2 y 3.

• Propuestos: 1, 2 y 3.




                                                                   11
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (6/21)

• Una instrucción alternativa simple (o simplemente alternativa
  simple) es una variante (más sencilla) de una instrucción alternativa
  doble.

• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado la nota (dato real) de una asignatura.
  2º) Muestre por pantalla:
    – "APROBADO", en el caso de que la nota sea mayor o igual que 5.


   En este problema, no se va a mostrar por pantalla "SUSPENDIDO"
   en el caso de que la nota sea menor que 5.



                                                                         12
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (7/21)

• Solución en pseudocódigo:
   algoritmo Calificacion_segun_nota
   variables
      real nota
   inicio
      escribir( "Introduzca nota (real): " )
      leer( nota )
      si ( nota >= 5 )
         escribir( "APROBADO" )
      fin_si
   fin


                                                                   13
              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (8/21)

• Solución en ordinograma:




                                                                   14
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (9/21)

• Solución en C:
   #include <stdio.h>
   int main()
   {
      float nota;
      printf( "n   Introduzca nota (real): " );
      scanf( "%f", &nota );
      if ( nota >= 5 )
         printf( "n   APROBADO" );
      return 0;
   }


                                                                   15
              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (10/21)
• Sintaxis de una instrucción      • En C:
  alternativa simple (pseudocódigo):  if ( <expresión_lógica>                  )
    si ( <expresión_lógica> )                        {
                                                          <bloque_de_instrucciones>
       <bloque_de_instrucciones>
                                                     }
    fin_si


• En ordinograma:




                                                                               16
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (11/21)

• Una instrucción alternativa múltiple (o simplemente alternativa
  múltiple) permite seleccionar, por medio de una expresión, el
  siguiente bloque de instrucciones a ejecutar de entre varios posibles.
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado el número (dato entero) de un día de la semana.
  2º) Muestre por pantalla el nombre (dato cadena) correspondiente a
  dicho día.
   Nota: Si el número
   de día introducido es
   menor que 1 ó mayor
   que 7, se mostrará el
   mensaje: "ERROR:
   Día incorrecto.".
                                                                        17
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (12/21)

• Solución en pseudocódigo:
   algoritmo Dia_de_la_semana
   variables
      entero dia
   inicio
      escribir( "Introduzca día de la semana: " )
      leer( dia )
      segun_sea ( dia )
            1 : escribir( "Lunes" )
            2 : escribir( "Martes" )
            3 : escribir( "Miércoles" )
            4 : escribir( "Jueves" )
            5 : escribir( "Viernes" )
            6 : escribir( "Sábado" )
            7 : escribir( "Domingo" )
         sino : escribir( "ERROR: Día incorrecto." )
      fin_segun_sea
   fin                                                                 18
                  Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (13/21)

• Solución en ordinograma:




                                                                   19
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (14/21)
• Solución en C:
   #include <stdio.h>
   int main()
   {
      int dia;
      printf( "n    Introduzca dia de la semana: " );
      scanf( "%d", &dia );
      switch ( dia )
      {
         case 1 : printf( "n    Lunes" );
                  break;
         case 2 : printf( "n    Martes" );
                  break;
         case 3 : printf( "n    Miercoles" );
                  break;
         case 4 : printf( "n    Jueves" );
                  break;
         case 5 : printf( "n    Viernes" );
                  break;
         case 6 : printf( "n    Sabado" );
                  break;
         case 7 : printf( "n    Domingo" );
                  break;
        default : printf( "n    ERROR: Dia incorrecto." );
      }
      return 0;
   }                                                                            20
                           Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (15/21)
• Sintaxis de una instrucción alternativa múltiple (pseudocódigo):
     segun_sea ( <expresión> )
       <lista_de_valores_1> : <bloque_de_instrucciones_1>
       <lista_de_valores_2> : <bloque_de_instrucciones_2>
       ...
       <lista_de_valores_n> : <bloque_de_instrucciones_n>
                     [ sino : <bloque_de_instrucciones_n+1> ]
     fin_segun_sea

• En ordinograma:




                                                                         21
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (16/21)

• En C:
    switch ( <expresión> )
    {
       case <expresión_1> : [ <bloque_de_instrucciones_1>                ]
                            [ break; ]
       case <expresión_2> : [ <bloque_de_instrucciones_2>                ]
                            [ break; ]
       ...
       case <expresión_n> : [ <bloque_de_instrucciones_n>                ]
                            [ break; ]
                [ default : <bloque_de_instrucciones_n+1>                ]
    }


                                                                    22
               Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (17/21)

• EJEMPLO. En la tabla se muestran las categorías
  a las que pertenecen los signos del zodíaco.
• Se quiere diseñar el algoritmo de un programa que:
  1º) Muestre el listado de los signos del zodíaco,
  con sus números asociados .
  2º) Pida por teclado un número (dato entero)
  asociado a un signo del zodíaco.
  3º) Muestre la categoría a la que pertenece el
  signo del zodíaco seleccionado.
  Nota: Si el número introducido por el usuario, no
  está asociado a ningún signo del zodíaco, se
  mostrará el mensaje: "ERROR: <número> no está
  asociado a ningún signo.".
                                                                          23
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (18/21)

• En pantalla:




                                                                      24
                 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (19/21)

• En pantalla:




                                                                      25
                 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (20/21)
• Solución en pseudocódigo:
   algoritmo Signo_del_zodiaco                                   algoritmo Signo_del_zodiaco

   variables                                                     variables
      entero numero                                                 entero numero
                                                                    cadena categoria
   inicio                                                        inicio
      escribir(    "Listado de signos del zodíaco:" )               escribir( "Listado de signos del zodíaco:" )
      escribir(    "1. Aries" )                                     ...
      escribir(    "2. Tauro" )                                     escribir( "Introduzca número de signo: " )
      escribir(    "3. Géminis" )
      ...                                                              leer( numero )
      escribir(    "12. Piscis" )
      escribir(    "Introduzca número de signo: " )                    segun_sea ( numero mod 4 )
                                                                           1 : categoria  "Fuego"
         leer( numero )                                                    2 : categoria  "Tierra"
                                                                           3 : categoria  "Aire"
         segun_sea ( numero )                                              0 : categoria  "Agua"
             1, 5, 9 : escribir(   "Es un signo de Fuego." )           fin_segun_sea
            2, 6, 10 : escribir(   "Es un signo de Tierra." )
            3, 7, 11 : escribir(   "Es un signo de Aire." )            si ( numero >= 1 y numero <= 12 )
            4, 8, 12 : escribir(   "Es un signo de Agua." )               escribir( "Es un signo de ", categoria, "." )
                sino : escribir(   "ERROR: ", numero,                  sino
                       " no está   asociado a ningún signo." )            escribir( "ERROR: ", numero,
         fin_segun_sea                                                    " no está asociado a ningún signo." )
   fin                                                                 fin_si
                                                                 fin                                          26
                               Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




12.2 INSTRUCCIONES ALTERNATIVAS (21/21)
• En C:
  switch (   numero )                                                 switch ( numero % 4   )
  {                                                                   {
     case   1 :                                                          case 1 : strcpy(   categoria, "Fuego" );
     case   5 :                                                                   break;
     case   9 : printf(   "n      Es un signo de Fuego." );             case 2 : strcpy(   categoria, "Tierra" );
                break;                                                            break;
      case 2 :                                                           case 3 : strcpy(   categoria, "Aire" );
      case 6 :                                                                    break;
      case 10 : printf(   "n      Es un signo de Tierra." )             case 0 : strcpy(   categoria, "Agua" );
                break;                                                }
      case 3 :
      case 7 :
      case 11 : printf(   "n      Es un signo de Aire." )
                break;
      case 4 :
      case 8 :
      case 12 : printf(   "n      Es un signo de Agua." )
                break;
      default : printf(   "n      ERROR: %d no esta asociado a ningun signo.", numero )
  }




                                                                                                          27
                            Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




  EJERCICIOS RECOMENDADOS

• Resueltos: 4 y 5.

• Propuestos: 4 y 5.




                                                                  28
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




              12.3 ANIDAMIENTO (1/13)
•   Las instrucciones alternativas y repetitivas pueden escribirse una dentro de
    otra. A este hecho se le conoce como anidamiento.
•   Las instrucciones alternativas permiten realizar las siguientes
    combinaciones de anidamiento:
     –   Doble en doble.
     –   Doble en simple.
     –   Doble en múltiple.
     –   Simple en simple.
     –   Simple en doble.
     –   Simple en múltiple.
     –   Múltiple en múltiple.
     –   Múltiple en doble.
     –   Múltiple en simple.
•   De ellas, vamos a estudiar, como ejemplo, las siguientes combinaciones:
     – Doble en doble.
     – Múltiple en doble.
                                                                               29
                         Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




        12.3 ANIDAMIENTO (2/13)

• Sintaxis de alternativa doble en doble:
      si ( <expresión_lógica_1> )

         /* Inicio del anidamiento */
         si ( <expresión_lógica_2> )
            <bloque_de_instrucciones_1>
         sino
            <bloque_de_instrucciones_2>
         fin_si
         /* Fin del anidamiento */

      sino
         <bloque_de_instrucciones_3>
      fin_si
                                                                    30
               Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




        12.3 ANIDAMIENTO (3/13)

• Sintaxis de alternativa doble en doble:
      si ( <expresión_lógica_1> )
         <bloque_de_instrucciones_1>
      sino

        /* Inicio del anidamiento */
        si ( <expresión_lógica_2> )
           <bloque_de_instrucciones_2>
        sino
           <bloque_de_instrucciones_3>
        fin_si
        /* Fin del anidamiento */

      fin_si
                                                                    31
               Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




          12.3 ANIDAMIENTO (4/13)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado la nota (real) de una asignatura.
  2º) Muestre por pantalla:
   – "APTO", en el caso de que la nota sea mayor o igual que 5 y menor o igual que 10.
   – "NO APTO", en el caso de que la nota sea mayor o igual que 0 y menor que 5.
   – "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó mayor
     que 10.




                                                                               32
                     Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




                  12.3 ANIDAMIENTO (5/13)
• Solución:
   algoritmo Calificacion_segun_nota

   variables
      real nota

   inicio
      escribir( "Introduzca nota (real): " )
      leer( nota )

         si ( nota >= 5 y nota <= 10 )
            escribir( "APTO" )
         sino

           /* Inicio del anidamiento */
           si ( nota >= 0 y nota < 5 )
              escribir( "NO APTO" )
           sino
              escribir( "ERROR: Nota incorrecta." )
           fin_si
           /* Fin del anidamiento */

         fin_si
   fin
                                                                                  33
                             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




            12.3 ANIDAMIENTO (6/13)
• En C:
   #include <stdio.h>

   int main()
   {
      float nota;

       printf( "n   Introduzca nota (real): " );
       scanf( "%f", &nota );

       if ( nota >= 5 && nota <= 10 )
          printf( "n   APTO" );
       else

         /* Inicio del anidamiento */
         if ( nota >= 0 && nota < 5 )
            printf( "n   NO APTO" );
         else
            printf( "n   ERROR: Nota incorrecta.n" );
         /* Fin del anidamiento */

       return 0;
   }                                                                         34
                        Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




          12.3 ANIDAMIENTO (7/13)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado la nota (dato real) de una asignatura.
  2º) Muestre por pantalla:
   – "SOBRESALIENTE", en el caso de que la nota sea mayor o igual que 9 y
     menor o igual que 10.
   – "NOTABLE", en el caso de que la nota sea mayor o igual que 7 y menor que 9.
   – "BIEN", en el caso de que la nota sea mayor o igual que 6 y menor que 7.
   – "SUFICIENTE", en el caso de que la nota sea mayor o igual que 5 y menor que
     6.
   – "INSUFICIENTE", en el caso de que la nota sea mayor o igual que 3 y menor
     que 5.
   – "MUY DEFICIENTE", en el caso de que la nota sea mayor o igual que 0 y
     menor que 3.
   – "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó
     mayor que 10.


                                                                             35
                    Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




                  12.3 ANIDAMIENTO (8/13)
• Solución:
   algoritmo Calificacion_segun_nota

   variables
      real nota

   inicio
      escribir( "Introduzca nota (real): " )
      leer( nota )
      si ( nota < 0 o nota > 10 )
         escribir( "ERROR: Nota incorrecta." )
      sino
         si ( nota >= 9 )
            escribir( "SOBRESALIENTE" )
         sino
            si ( nota >= 7 )
               escribir( "NOTABLE" )
            sino
               si ( nota >= 6 )
                  escribir( "BIEN" )
               sino
                  si ( nota >= 5 )
                     escribir( "SUFICIENTE" )
                  sino
                     si ( nota >= 3 )
                        escribir( "INSUFICIENTE" )
                     sino
                        escribir( "MUY DEFICIENTE" )
                     fin_si
                  fin_si
               fin_si
            fin_si
         fin_si
      fin_si
   fin                                                                                36
                                 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




           12.3 ANIDAMIENTO (9/13)
• En C:
   #include <stdio.h>

   int main()
   {
      float nota;

       printf( "n   Introduzca nota (real): " );
       scanf( "%f", &nota );

       if ( nota < 0 || nota > 10 )
          printf( "n    ERROR: Nota incorrecta." );
       else
          if ( nota >= 9 )
             printf( "n    SOBRESALIENTE" );
          else
             if ( nota >= 7 )
                printf( "n    NOTABLE" );
             else
                if ( nota >= 6 )
                   printf( "n    BIEN" );
                else
                   if ( nota >= 5 )
                      printf( "n    SUFICIENTE" );
                   else
                      if ( nota >= 3 )
                          printf( "n   INSUFICIENTE");
                      else
                          printf( "n   MUY DEFICIENTE" );

       return 0;
   }
                                                                               37
                          Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




  EJERCICIOS RECOMENDADOS

• Resueltos: 6 y 7.

• Propuestos: 6, 7 y 8.




                                                                  38
             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




        12.3 ANIDAMIENTO (10/13)

• Sintaxis de alternativa múltiple en doble:
    si ( <expresión_lógica> )

      /* Inicio del anidamiento */
      segun_sea ( <expresión> )
        <lista_de_valores_1> : <bloque_de_instrucciones_1>
        <lista_de_valores_2> : <bloque_de_instrucciones_2>
        ...
        <lista_de_valores_n> : <bloque_de_instrucciones_n>
                      [ sino : <bloque_de_instrucciones_n+1> ]
      fin_segun_sea
      /* Fin del anidamiento */

    sino
      <bloque_de_instrucciones_n+2>
    fin_si                                                            39
                 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




         12.3 ANIDAMIENTO (11/13)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado el número (dato entero) de un día de la semana.
  2º) Muestre por pantalla el nombre (dato cadena) correspondiente a
  dicho día.

  Nota: Si el número
  de día introducido es
  menor que 1 ó mayor
  que 7, se mostrará el
  mensaje: "ERROR:
  Día incorrecto.".



                                                                        40
                  Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




             12.3 ANIDAMIENTO (12/13)
• Solución:
  algoritmo Dia_de_la_semana

  variables
     entero dia

  inicio
     escribir( "Introduzca día de la semana: " )
     leer( dia )
     si ( dia >= 1 y dia <= 7 )

     /* Sólo si el día es válido, se ejecuta la
     instrucción alternativa múltiple. */

        /* Inicio del anidamiento */
        segun_sea ( dia )
           1 : escribir( "Lunes" )
           2 : escribir( "Martes" )
           3 : escribir( "Miércoles" )
           4 : escribir( "Jueves" )
           5 : escribir( "Viernes" )
           6 : escribir( "Sábado" )
           7 : escribir( "Domingo" )
        fin_segun_sea
        /* Fin del anidamiento */

     sino
        escribir ( "ERROR: Día incorrecto." )
     fin_si
  fin
                                                                                    41
                               Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




          12.3 ANIDAMIENTO (13/13)
• En C:
   #include <stdio.h>

   int main()
   {
      int dia;

       printf( "n   Introduzca dia de la semana: " );
       scanf( "%d", &dia );

       if ( dia >= 1 && dia <= 7 ) /* Sólo si el día es válido, se ejecuta la instrucción alternativa múltiple */

         /* Inicio del anidamiento   */
         switch ( dia )
         {
            case 1 : printf( "n     Lunes" );
                     break;
            case 2 : printf( "n     Martes" );
                     break;
            case 3 : printf( "n     Miercoles" );
                     break;
            case 4 : printf( "n     Jueves" );
                     break;
            case 5 : printf( "n     Viernes" );
                     break;
            case 6 : printf( "n     Sabado" );
                     break;
            case 7 : printf( "n     Domingo" );
         }
         /* Fin del anidamiento */

       else
          printf( "n   ERROR: Dia incorrecto." );

       return 0;
   }                                                                                                                42
                             Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




      12.4 DISTINTAS SOLUCIONES
       PARA UN PROBLEMA (1/3)
• En programación, para solucionar un problema, se pueden diseñar
  algoritmos distintos, o dicho de otro modo, no existe una única
  solución para resolver un problema dado.

• Pero, a veces, unas soluciones son mejores (más óptimas) que
  otras.

• Cuando se dice que un algoritmo es mejor (más óptimo) que otro,
  teniendo ambos la misma funcionalidad, esto puede ser debido a
  distintas razones, entre ellas, de momento, vamos a destacar dos:

   – El código es más reducido (se ejecutan menos instrucciones).
   – Utiliza menos variables (menos memoria).

                                                                        43
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




       12.4 DISTINTAS SOLUCIONES
        PARA UN PROBLEMA (2/3)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado la nota (dato entero) de una asignatura.
  2º) Muestre por pantalla:
   –   "SOBRESALIENTE", en el caso de que la nota sea un 9 ó un 10.
   –   "NOTABLE", en el caso de que la nota sea un 7 ó un 8.
   –   "BIEN", en el caso de que la nota sea un 6.
   –   "SUFICIENTE", en el caso de que la nota sea un 5.
   –   "INSUFICIENTE", en el caso de que la nota sea un 3 ó un 4.
   –   "MUY DEFICIENTE", en el caso de que la nota sea un 0, un 1, ó un 2.
   –   "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó
       mayor que 10.




                                                                                44
                      Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




           12.4 DISTINTAS SOLUCIONES
            PARA UN PROBLEMA (3/3)
• Solución en pseudocódigo:
   algoritmo Calificacion_segun_nota
                                                                  algoritmo Calificacion_segun_nota
   variables
      real nota
   inicio                                                         variables
      escribir( "Introduzca nota (entera): " )                       real nota
      leer( nota )
      si ( nota >= 0 y nota <= 10 )
         si ( nota >= 9 )                                         inicio
            escribir( "SOBRESALIENTE" )                              escribir( "Introduzca nota (entera): " )
         sino                                                        leer( nota )
            si ( nota >= 7 )
               escribir( "NOTABLE" )
            sino                                                        si ( nota >= 0 y nota <= 10 )
               si ( nota = 6 )                                             segun_sea ( nota )
                  escribir( "BIEN" )                                             10, 9 : escribir( "SOBRESALIENTE" )
               sino
                                                                                  8, 7 : escribir( "NOTABLE" )
                  si ( nota = 5 )
                     escribir( "SUFICIENTE" )                                        6 : escribir( "BIEN" )
                  sino                                                               5 : escribir( "SUFICIENTE" )
                     si ( nota >= 3 )                                             4, 3 : escribir( "INSUFICIENTE" )
                        escribir( "INSUFICIENTE" )
                                                                               2, 1, 0 : escribir( "MUY DEFICIENTE" )
                     sino
                        escribir( "MUY DEFICIENTE" )                       fin_segun_sea
                     fin_si                                             sino
                  fin_si                                                   escribir( "ERROR: Nota incorrecta." )
               fin_si
                                                                        fin_si
            fin_si
         fin_si                                                   fin
      sino
         escribir( "ERROR: Nota incorrecta." )
      fin_si
   fin                                                                                                          45
                                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




  EJERCICIOS RECOMENDADOS

• Resueltos: 8, 9, 10, 11 y 12.

• Propuestos: 9, 10, 11, 12 y 13.




                                                                   46
              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




    12.5 VARIABLE INTERRUPTOR (1/3)

• Una variable interruptor es un tipo de variable que se utiliza con
  frecuencia en programación.

• Un interruptor es una variable que sólo puede tomar por valor dos
  valores opuestos. Por norma general, estos valores son: verdadero
  y falso. También es frecuente utilizar los valores: 0 y 1.

• Normalmente, una variable interruptor tomará un valor u otro
  dependiendo de ciertas circunstancias ocurridas en el algoritmo
  y, después, según sea su valor, se ejecutarán unas instrucciones u
  otras.


                                                                         47
                   Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




    12.5 VARIABLE INTERRUPTOR (2/3)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
  1º) Pida por teclado una fecha en tres variables: día, mes y año
  (datos enteros).
  2º) Muestre por pantalla:
    – "FECHA CORRECTA", en el caso de que la fecha sea válida.
    – "FECHA INCORRECTA", en el caso de que la fecha no sea válida.
    Nota1: Para que una fecha sea válida, se tiene que cumplir que:
    – El mes debe ser mayor o igual que 1 y menor o igual que 12.
    – El día debe ser mayor o igual que 1 y menor o igual que un número, el cual
      dependerá del mes y año introducidos por el usuario.
    Nota2:
    – Tienen 31 días: enero, marzo, mayo, julio, agosto, octubre y diciembre.
    – Tienen 30 días: abril, junio, septiembre y noviembre.
    – Tiene 29 días: febrero (si el año es bisiesto).
    – Tiene 28 días: febrero (si el año no es bisiesto).
    Nota3: Son bisiestos todos los años múltiplos de 4, excepto aquellos que son
    múltiplos de 100 pero no de 400. (Véase el ejercicio resuelto 12.2).         48
                      Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS




      12.5 VARIABLE INTERRUPTOR (3/3)
• Solución en pseudocódigo:
  algoritmo Validar_fecha                            si ( mes >= 1 y mes <= 12 )
                                                        segun_sea ( mes )
  variables                                                1, 3, 5, 7, 8, 10, 12 : dia_maximo     31
     entero dia_maximo, dia, mes, anio                               4, 6, 9, 11 : dia_maximo     30
     logico fecha_correcta /* Interruptor */                                   2 : si ( anio mod   4 = 0 y
                                                                                        anio mod   100 <> 0 o
  inicio                                                                                anio mod   400 = 0 )
     escribir( "Introduzca dia: " )                                                   dia_maximo    29
     leer( dia )                                                                   sino
                                                                                      dia_maximo    28
     escribir( "Introduzca mes: " )
                                                                                   fin_si
     leer( mes )
                                                        fin_segun_sea
     escribir( "Introduzca año: " )
     leer( anio )                                       si ( dia >= 1 y dia <= dia_maximo )
                                                           fecha_correcta  verdadero
    fecha_correcta  falso                              fin_si

                                                     fin_si

                                                     si ( fecha_correcta )
                                                        escribir( "FECHA CORRECTA" )
                                                     sino
                                                        escribir( "FECHA INCORRECTA" )
                                                     fin_si
                                                  fin

                                                                                                                49
                              Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
GRACIAS POR SU ATENCIÓN


  Para más información, puede visitar la web del autor:


http://www.carlospes.com



                                                          50

Más contenido relacionado

La actualidad más candente

1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractoserwin_alexander
 
Sistemas de control eficaz
Sistemas de control eficazSistemas de control eficaz
Sistemas de control eficazsfernandezf
 
Historia de las máquinas de cómputo ii
Historia de las máquinas de cómputo iiHistoria de las máquinas de cómputo ii
Historia de las máquinas de cómputo iiLorenzo Agudo García
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2danny7206
 
Desarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlDesarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlJavashi
 
Tipos de medición con el multímetro
Tipos de medición con el multímetroTipos de medición con el multímetro
Tipos de medición con el multímetroricardo
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivosfeytho
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesAndreina Trejo
 
Fundamentos de administracion
Fundamentos de administracionFundamentos de administracion
Fundamentos de administracioneclipso00
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigocoldclean
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 

La actualidad más candente (20)

Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Manual de codeblocks
Manual de codeblocksManual de codeblocks
Manual de codeblocks
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractos
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Sistemas de control eficaz
Sistemas de control eficazSistemas de control eficaz
Sistemas de control eficaz
 
Historia de las máquinas de cómputo ii
Historia de las máquinas de cómputo iiHistoria de las máquinas de cómputo ii
Historia de las máquinas de cómputo ii
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2
 
Desarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlDesarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySql
 
Tipos de medición con el multímetro
Tipos de medición con el multímetroTipos de medición con el multímetro
Tipos de medición con el multímetro
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Fundamentos de administracion
Fundamentos de administracionFundamentos de administracion
Fundamentos de administracion
 
Introducción al PSeint
Introducción al PSeintIntroducción al PSeint
Introducción al PSeint
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Orientada a objetos
Orientada a objetosOrientada a objetos
Orientada a objetos
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 

Destacado

Introducción a la codificación en lenguaje C
Introducción a la codificación en lenguaje CIntroducción a la codificación en lenguaje C
Introducción a la codificación en lenguaje CCarlos Pes
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCarlos Pes
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivasCarlos Pes
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y EntradaCarlos Pes
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
manual yamaha multi 12 en español
manual yamaha multi 12 en españolmanual yamaha multi 12 en español
manual yamaha multi 12 en españolpercycayteantonio
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasyance1
 
Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Videoconferencias UTPL
 
Tema6
Tema6Tema6
Tema6UH
 
tecnologia- algoritmos
tecnologia- algoritmostecnologia- algoritmos
tecnologia- algoritmosj3palacios
 
Problemas.
Problemas.Problemas.
Problemas.Ali VB
 
Introducción a JavaScript 1
Introducción a JavaScript 1Introducción a JavaScript 1
Introducción a JavaScript 1Lorenzo Alejo
 
Ciclo de vida de un programa
Ciclo de vida de un programaCiclo de vida de un programa
Ciclo de vida de un programaCarlos Pes
 
Mml caso barrio de los chorrillos
Mml caso barrio de los chorrillosMml caso barrio de los chorrillos
Mml caso barrio de los chorrillosRaul Guamanrrigra
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE Cflaquita_dany
 

Destacado (20)

Introducción a la codificación en lenguaje C
Introducción a la codificación en lenguaje CIntroducción a la codificación en lenguaje C
Introducción a la codificación en lenguaje C
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujo
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
manual yamaha multi 12 en español
manual yamaha multi 12 en españolmanual yamaha multi 12 en español
manual yamaha multi 12 en español
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
 
Tema6
Tema6Tema6
Tema6
 
algoritmos
algoritmos algoritmos
algoritmos
 
tecnologia- algoritmos
tecnologia- algoritmostecnologia- algoritmos
tecnologia- algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Problemas.
Problemas.Problemas.
Problemas.
 
Introducción a JavaScript 1
Introducción a JavaScript 1Introducción a JavaScript 1
Introducción a JavaScript 1
 
Ciclo de vida de un programa
Ciclo de vida de un programaCiclo de vida de un programa
Ciclo de vida de un programa
 
Mml caso barrio de los chorrillos
Mml caso barrio de los chorrillosMml caso barrio de los chorrillos
Mml caso barrio de los chorrillos
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 

Similar a Instrucciones de control alternativas

Instrucciones basicas c_(2)
Instrucciones basicas c_(2)Instrucciones basicas c_(2)
Instrucciones basicas c_(2)Efren Pacheco
 
Instrucciones basicas-para-c (1)
Instrucciones basicas-para-c (1)Instrucciones basicas-para-c (1)
Instrucciones basicas-para-c (1)luis_ocampo27
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativasAbrirllave
 
Estructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CEstructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CMarvin Romero
 
Estructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfEstructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfnicolaspelaez3
 
Prog estruc tic a
Prog estruc tic aProg estruc tic a
Prog estruc tic aGaby Real
 
Pseudocodigos, diagrama de flujo y tipos de programacion
Pseudocodigos, diagrama de flujo y tipos de programacionPseudocodigos, diagrama de flujo y tipos de programacion
Pseudocodigos, diagrama de flujo y tipos de programacionJosé Luis Houtman Otamendi
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte IIYelixa Araque Angulo
 
Técnicas de programación estructurada
Técnicas de programación estructuradaTécnicas de programación estructurada
Técnicas de programación estructuradaGabriel Mondragón
 

Similar a Instrucciones de control alternativas (13)

Asignació..
Asignació..Asignació..
Asignació..
 
Asignación #4
Asignación #4Asignación #4
Asignación #4
 
Instrucciones basicas c_(2)
Instrucciones basicas c_(2)Instrucciones basicas c_(2)
Instrucciones basicas c_(2)
 
Instrucciones basicas-para-c (1)
Instrucciones basicas-para-c (1)Instrucciones basicas-para-c (1)
Instrucciones basicas-para-c (1)
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativas
 
Estructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CEstructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje C
 
Estructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfEstructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdf
 
Prog estruc tic a
Prog estruc tic aProg estruc tic a
Prog estruc tic a
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Pseudocodigos, diagrama de flujo y tipos de programacion
Pseudocodigos, diagrama de flujo y tipos de programacionPseudocodigos, diagrama de flujo y tipos de programacion
Pseudocodigos, diagrama de flujo y tipos de programacion
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte II
 
Técnicas de programación estructurada
Técnicas de programación estructuradaTécnicas de programación estructurada
Técnicas de programación estructurada
 
Unidad3.pptx
Unidad3.pptxUnidad3.pptx
Unidad3.pptx
 

Más de Carlos Pes

Fases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroFases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroCarlos Pes
 
EL CASO RENFE-FJD
EL CASO RENFE-FJDEL CASO RENFE-FJD
EL CASO RENFE-FJDCarlos Pes
 
35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultarCarlos Pes
 
Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Carlos Pes
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaCarlos Pes
 
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryAnalisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryCarlos Pes
 
16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEOCarlos Pes
 
Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Carlos Pes
 
Descubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresDescubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresCarlos Pes
 
Factores que influyen en el SEO
Factores que influyen en el SEOFactores que influyen en el SEO
Factores que influyen en el SEOCarlos Pes
 
1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seoCarlos Pes
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEOCarlos Pes
 
Aspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerAspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerCarlos Pes
 
Ejemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOEjemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOCarlos Pes
 
Ejemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOEjemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOCarlos Pes
 
SEO Una profesión en auge
SEO Una profesión en augeSEO Una profesión en auge
SEO Una profesión en augeCarlos Pes
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un AlgoritmoCarlos Pes
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y ExpresionesCarlos Pes
 
Tipos de datos definidos por el programador
Tipos de datos definidos por el programadorTipos de datos definidos por el programador
Tipos de datos definidos por el programadorCarlos Pes
 

Más de Carlos Pes (20)

Fases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroFases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libro
 
EL CASO RENFE-FJD
EL CASO RENFE-FJDEL CASO RENFE-FJD
EL CASO RENFE-FJD
 
35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar
 
Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en Pamplona
 
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryAnalisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
 
16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO
 
Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013
 
Descubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresDescubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadores
 
Factores que influyen en el SEO
Factores que influyen en el SEOFactores que influyen en el SEO
Factores que influyen en el SEO
 
1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEO
 
Aspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerAspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community Manager
 
Ejemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOEjemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEO
 
Ejemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOEjemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEO
 
SEO Una profesión en auge
SEO Una profesión en augeSEO Una profesión en auge
SEO Una profesión en auge
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un Algoritmo
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y Expresiones
 
Tipos de datos definidos por el programador
Tipos de datos definidos por el programadorTipos de datos definidos por el programador
Tipos de datos definidos por el programador
 
Chuleta SEO
Chuleta SEOChuleta SEO
Chuleta SEO
 

Último

FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdfPaulaAnglicaBustaman
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdfInformacionesCMI
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdfsesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdfmaria luisa pahuara allcca
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxcandy torres
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxLorenaHualpachoque
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteinmaculadatorressanc
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...Agrela Elvixeo
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdfDemetrio Ccesa Rayme
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfGonella
 

Último (20)

FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdfsesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdf
 

Instrucciones de control alternativas

  • 1. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 12 INSTRUCCIONES DE CONTROL ALTERNATIVAS 1
  • 2. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS OBJETIVOS • Conocer las instrucciones de control alternativas, y saber hacer uso de ellas. • Saber qué es el anidamiento, y cuándo hacer uso de él. – Todas las instrucciones de los algoritmos vistos hasta este momento se ejecutan secuencialmente, una detrás de otra, sin excepción, pero, en un algoritmo, ¿pueden existir instrucciones que no se ejecuten, o que se ejecuten a veces sí a veces no? 2 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 3. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS CONTENIDO 12.1 INTRODUCCIÓN 12.2 INSTRUCCIONES ALTERNATIVAS 12.3 ANIDAMIENTO 12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA 12.5 VARIABLE INTERRUPTOR 3 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 4. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.1 INTRODUCCIÓN (1/2) • Las instrucciones que se utilizan para diseñar algoritmos se pueden clasificar en: – Primitivas – De control – Llamadas a subalgoritmos (llamadas a subprogramas) • Las instrucciones de control se clasifican en: – Alternativas (selectivas) – Repetitivas (iterativas) – De salto (de transferencia) 4 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 5. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.1 INTRODUCCIÓN (2/2) • Se llama flujo de control al orden en el que se ejecutan las instrucciones de un programa, siendo las propias instrucciones las que determinan o controlan dicho flujo. • En un programa, a menos que el flujo de control se vea modificado por una instrucción de control, las instrucciones siempre se ejecutan secuencialmente, una detrás de otra, en orden de aparición, de izquierda a derecha y de arriba abajo, que es el flujo natural de un programa. • En programación estructurada, se considera una mala práctica hacer uso de las instrucciones de salto, ya que, entre otras cosas, restan legibilidad al algoritmo. 5 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 6. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (1/21) • Una instrucción de control alternativa permite seleccionar, en el flujo de control de un programa, la o las siguientes instrucciones a ejecutar, de entre varias posibilidades. Existen tres tipos: – Doble – Simple – Múltiple • Una instrucción alternativa doble (o simplemente alternativa doble) permite seleccionar, por medio de una condición, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una asignatura. 2º) Muestre por pantalla: – "APROBADO", en el caso de que la nota sea mayor o igual que 5. – "SUSPENDIDO", en el caso de que la nota sea menor que 5. 6 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 7. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (2/21) • Solución en pseudocódigo: algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (real): " ) leer( nota ) si ( nota >= 5 ) escribir( "APROBADO" ) sino escribir( "SUSPENDIDO" ) fin_si fin 7 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 8. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (3/21) • Solución en ordinograma: 8 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 9. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (4/21) • Solución en C: #include <stdio.h> int main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota >= 5 ) printf( "n APROBADO" ); else printf( "n SUSPENDIDO" ); return 0; } 9 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 10. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (5/21) • Sintaxis de una instrucción • En C: alternativa doble (pseudocódigo): if ( <expresión_lógica> ) si ( <expresión_lógica> ) { <bloque_de_instrucciones_1> <bloque_de_instrucciones_1> sino } <bloque_de_instrucciones_2> else fin_si { <bloque_de_instrucciones_2> • En ordinograma: } 10 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 11. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS EJERCICIOS RECOMENDADOS • Resueltos: 1, 2 y 3. • Propuestos: 1, 2 y 3. 11 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 12. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (6/21) • Una instrucción alternativa simple (o simplemente alternativa simple) es una variante (más sencilla) de una instrucción alternativa doble. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una asignatura. 2º) Muestre por pantalla: – "APROBADO", en el caso de que la nota sea mayor o igual que 5. En este problema, no se va a mostrar por pantalla "SUSPENDIDO" en el caso de que la nota sea menor que 5. 12 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 13. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (7/21) • Solución en pseudocódigo: algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (real): " ) leer( nota ) si ( nota >= 5 ) escribir( "APROBADO" ) fin_si fin 13 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 14. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (8/21) • Solución en ordinograma: 14 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 15. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (9/21) • Solución en C: #include <stdio.h> int main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota >= 5 ) printf( "n APROBADO" ); return 0; } 15 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 16. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (10/21) • Sintaxis de una instrucción • En C: alternativa simple (pseudocódigo): if ( <expresión_lógica> ) si ( <expresión_lógica> ) { <bloque_de_instrucciones> <bloque_de_instrucciones> } fin_si • En ordinograma: 16 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 17. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (11/21) • Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado el número (dato entero) de un día de la semana. 2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día. Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.". 17 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 18. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (12/21) • Solución en pseudocódigo: algoritmo Dia_de_la_semana variables entero dia inicio escribir( "Introduzca día de la semana: " ) leer( dia ) segun_sea ( dia ) 1 : escribir( "Lunes" ) 2 : escribir( "Martes" ) 3 : escribir( "Miércoles" ) 4 : escribir( "Jueves" ) 5 : escribir( "Viernes" ) 6 : escribir( "Sábado" ) 7 : escribir( "Domingo" ) sino : escribir( "ERROR: Día incorrecto." ) fin_segun_sea fin 18 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 19. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (13/21) • Solución en ordinograma: 19 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 20. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (14/21) • Solución en C: #include <stdio.h> int main() { int dia; printf( "n Introduzca dia de la semana: " ); scanf( "%d", &dia ); switch ( dia ) { case 1 : printf( "n Lunes" ); break; case 2 : printf( "n Martes" ); break; case 3 : printf( "n Miercoles" ); break; case 4 : printf( "n Jueves" ); break; case 5 : printf( "n Viernes" ); break; case 6 : printf( "n Sabado" ); break; case 7 : printf( "n Domingo" ); break; default : printf( "n ERROR: Dia incorrecto." ); } return 0; } 20 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 21. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (15/21) • Sintaxis de una instrucción alternativa múltiple (pseudocódigo): segun_sea ( <expresión> ) <lista_de_valores_1> : <bloque_de_instrucciones_1> <lista_de_valores_2> : <bloque_de_instrucciones_2> ... <lista_de_valores_n> : <bloque_de_instrucciones_n> [ sino : <bloque_de_instrucciones_n+1> ] fin_segun_sea • En ordinograma: 21 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 22. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (16/21) • En C: switch ( <expresión> ) { case <expresión_1> : [ <bloque_de_instrucciones_1> ] [ break; ] case <expresión_2> : [ <bloque_de_instrucciones_2> ] [ break; ] ... case <expresión_n> : [ <bloque_de_instrucciones_n> ] [ break; ] [ default : <bloque_de_instrucciones_n+1> ] } 22 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 23. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (17/21) • EJEMPLO. En la tabla se muestran las categorías a las que pertenecen los signos del zodíaco. • Se quiere diseñar el algoritmo de un programa que: 1º) Muestre el listado de los signos del zodíaco, con sus números asociados . 2º) Pida por teclado un número (dato entero) asociado a un signo del zodíaco. 3º) Muestre la categoría a la que pertenece el signo del zodíaco seleccionado. Nota: Si el número introducido por el usuario, no está asociado a ningún signo del zodíaco, se mostrará el mensaje: "ERROR: <número> no está asociado a ningún signo.". 23 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 24. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (18/21) • En pantalla: 24 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 25. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (19/21) • En pantalla: 25 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 26. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (20/21) • Solución en pseudocódigo: algoritmo Signo_del_zodiaco algoritmo Signo_del_zodiaco variables variables entero numero entero numero cadena categoria inicio inicio escribir( "Listado de signos del zodíaco:" ) escribir( "Listado de signos del zodíaco:" ) escribir( "1. Aries" ) ... escribir( "2. Tauro" ) escribir( "Introduzca número de signo: " ) escribir( "3. Géminis" ) ... leer( numero ) escribir( "12. Piscis" ) escribir( "Introduzca número de signo: " ) segun_sea ( numero mod 4 ) 1 : categoria  "Fuego" leer( numero ) 2 : categoria  "Tierra" 3 : categoria  "Aire" segun_sea ( numero ) 0 : categoria  "Agua" 1, 5, 9 : escribir( "Es un signo de Fuego." ) fin_segun_sea 2, 6, 10 : escribir( "Es un signo de Tierra." ) 3, 7, 11 : escribir( "Es un signo de Aire." ) si ( numero >= 1 y numero <= 12 ) 4, 8, 12 : escribir( "Es un signo de Agua." ) escribir( "Es un signo de ", categoria, "." ) sino : escribir( "ERROR: ", numero, sino " no está asociado a ningún signo." ) escribir( "ERROR: ", numero, fin_segun_sea " no está asociado a ningún signo." ) fin fin_si fin 26 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 27. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.2 INSTRUCCIONES ALTERNATIVAS (21/21) • En C: switch ( numero ) switch ( numero % 4 ) { { case 1 : case 1 : strcpy( categoria, "Fuego" ); case 5 : break; case 9 : printf( "n Es un signo de Fuego." ); case 2 : strcpy( categoria, "Tierra" ); break; break; case 2 : case 3 : strcpy( categoria, "Aire" ); case 6 : break; case 10 : printf( "n Es un signo de Tierra." ) case 0 : strcpy( categoria, "Agua" ); break; } case 3 : case 7 : case 11 : printf( "n Es un signo de Aire." ) break; case 4 : case 8 : case 12 : printf( "n Es un signo de Agua." ) break; default : printf( "n ERROR: %d no esta asociado a ningun signo.", numero ) } 27 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 28. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS EJERCICIOS RECOMENDADOS • Resueltos: 4 y 5. • Propuestos: 4 y 5. 28 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 29. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (1/13) • Las instrucciones alternativas y repetitivas pueden escribirse una dentro de otra. A este hecho se le conoce como anidamiento. • Las instrucciones alternativas permiten realizar las siguientes combinaciones de anidamiento: – Doble en doble. – Doble en simple. – Doble en múltiple. – Simple en simple. – Simple en doble. – Simple en múltiple. – Múltiple en múltiple. – Múltiple en doble. – Múltiple en simple. • De ellas, vamos a estudiar, como ejemplo, las siguientes combinaciones: – Doble en doble. – Múltiple en doble. 29 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 30. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (2/13) • Sintaxis de alternativa doble en doble: si ( <expresión_lógica_1> ) /* Inicio del anidamiento */ si ( <expresión_lógica_2> ) <bloque_de_instrucciones_1> sino <bloque_de_instrucciones_2> fin_si /* Fin del anidamiento */ sino <bloque_de_instrucciones_3> fin_si 30 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 31. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (3/13) • Sintaxis de alternativa doble en doble: si ( <expresión_lógica_1> ) <bloque_de_instrucciones_1> sino /* Inicio del anidamiento */ si ( <expresión_lógica_2> ) <bloque_de_instrucciones_2> sino <bloque_de_instrucciones_3> fin_si /* Fin del anidamiento */ fin_si 31 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 32. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (4/13) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (real) de una asignatura. 2º) Muestre por pantalla: – "APTO", en el caso de que la nota sea mayor o igual que 5 y menor o igual que 10. – "NO APTO", en el caso de que la nota sea mayor o igual que 0 y menor que 5. – "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó mayor que 10. 32 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 33. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (5/13) • Solución: algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (real): " ) leer( nota ) si ( nota >= 5 y nota <= 10 ) escribir( "APTO" ) sino /* Inicio del anidamiento */ si ( nota >= 0 y nota < 5 ) escribir( "NO APTO" ) sino escribir( "ERROR: Nota incorrecta." ) fin_si /* Fin del anidamiento */ fin_si fin 33 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 34. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (6/13) • En C: #include <stdio.h> int main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota >= 5 && nota <= 10 ) printf( "n APTO" ); else /* Inicio del anidamiento */ if ( nota >= 0 && nota < 5 ) printf( "n NO APTO" ); else printf( "n ERROR: Nota incorrecta.n" ); /* Fin del anidamiento */ return 0; } 34 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 35. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (7/13) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una asignatura. 2º) Muestre por pantalla: – "SOBRESALIENTE", en el caso de que la nota sea mayor o igual que 9 y menor o igual que 10. – "NOTABLE", en el caso de que la nota sea mayor o igual que 7 y menor que 9. – "BIEN", en el caso de que la nota sea mayor o igual que 6 y menor que 7. – "SUFICIENTE", en el caso de que la nota sea mayor o igual que 5 y menor que 6. – "INSUFICIENTE", en el caso de que la nota sea mayor o igual que 3 y menor que 5. – "MUY DEFICIENTE", en el caso de que la nota sea mayor o igual que 0 y menor que 3. – "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó mayor que 10. 35 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 36. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (8/13) • Solución: algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (real): " ) leer( nota ) si ( nota < 0 o nota > 10 ) escribir( "ERROR: Nota incorrecta." ) sino si ( nota >= 9 ) escribir( "SOBRESALIENTE" ) sino si ( nota >= 7 ) escribir( "NOTABLE" ) sino si ( nota >= 6 ) escribir( "BIEN" ) sino si ( nota >= 5 ) escribir( "SUFICIENTE" ) sino si ( nota >= 3 ) escribir( "INSUFICIENTE" ) sino escribir( "MUY DEFICIENTE" ) fin_si fin_si fin_si fin_si fin_si fin_si fin 36 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 37. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (9/13) • En C: #include <stdio.h> int main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota < 0 || nota > 10 ) printf( "n ERROR: Nota incorrecta." ); else if ( nota >= 9 ) printf( "n SOBRESALIENTE" ); else if ( nota >= 7 ) printf( "n NOTABLE" ); else if ( nota >= 6 ) printf( "n BIEN" ); else if ( nota >= 5 ) printf( "n SUFICIENTE" ); else if ( nota >= 3 ) printf( "n INSUFICIENTE"); else printf( "n MUY DEFICIENTE" ); return 0; } 37 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 38. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS EJERCICIOS RECOMENDADOS • Resueltos: 6 y 7. • Propuestos: 6, 7 y 8. 38 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 39. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (10/13) • Sintaxis de alternativa múltiple en doble: si ( <expresión_lógica> ) /* Inicio del anidamiento */ segun_sea ( <expresión> ) <lista_de_valores_1> : <bloque_de_instrucciones_1> <lista_de_valores_2> : <bloque_de_instrucciones_2> ... <lista_de_valores_n> : <bloque_de_instrucciones_n> [ sino : <bloque_de_instrucciones_n+1> ] fin_segun_sea /* Fin del anidamiento */ sino <bloque_de_instrucciones_n+2> fin_si 39 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 40. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (11/13) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado el número (dato entero) de un día de la semana. 2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día. Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.". 40 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 41. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (12/13) • Solución: algoritmo Dia_de_la_semana variables entero dia inicio escribir( "Introduzca día de la semana: " ) leer( dia ) si ( dia >= 1 y dia <= 7 ) /* Sólo si el día es válido, se ejecuta la instrucción alternativa múltiple. */ /* Inicio del anidamiento */ segun_sea ( dia ) 1 : escribir( "Lunes" ) 2 : escribir( "Martes" ) 3 : escribir( "Miércoles" ) 4 : escribir( "Jueves" ) 5 : escribir( "Viernes" ) 6 : escribir( "Sábado" ) 7 : escribir( "Domingo" ) fin_segun_sea /* Fin del anidamiento */ sino escribir ( "ERROR: Día incorrecto." ) fin_si fin 41 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 42. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.3 ANIDAMIENTO (13/13) • En C: #include <stdio.h> int main() { int dia; printf( "n Introduzca dia de la semana: " ); scanf( "%d", &dia ); if ( dia >= 1 && dia <= 7 ) /* Sólo si el día es válido, se ejecuta la instrucción alternativa múltiple */ /* Inicio del anidamiento */ switch ( dia ) { case 1 : printf( "n Lunes" ); break; case 2 : printf( "n Martes" ); break; case 3 : printf( "n Miercoles" ); break; case 4 : printf( "n Jueves" ); break; case 5 : printf( "n Viernes" ); break; case 6 : printf( "n Sabado" ); break; case 7 : printf( "n Domingo" ); } /* Fin del anidamiento */ else printf( "n ERROR: Dia incorrecto." ); return 0; } 42 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 43. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA (1/3) • En programación, para solucionar un problema, se pueden diseñar algoritmos distintos, o dicho de otro modo, no existe una única solución para resolver un problema dado. • Pero, a veces, unas soluciones son mejores (más óptimas) que otras. • Cuando se dice que un algoritmo es mejor (más óptimo) que otro, teniendo ambos la misma funcionalidad, esto puede ser debido a distintas razones, entre ellas, de momento, vamos a destacar dos: – El código es más reducido (se ejecutan menos instrucciones). – Utiliza menos variables (menos memoria). 43 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 44. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA (2/3) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato entero) de una asignatura. 2º) Muestre por pantalla: – "SOBRESALIENTE", en el caso de que la nota sea un 9 ó un 10. – "NOTABLE", en el caso de que la nota sea un 7 ó un 8. – "BIEN", en el caso de que la nota sea un 6. – "SUFICIENTE", en el caso de que la nota sea un 5. – "INSUFICIENTE", en el caso de que la nota sea un 3 ó un 4. – "MUY DEFICIENTE", en el caso de que la nota sea un 0, un 1, ó un 2. – "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 ó mayor que 10. 44 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 45. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA (3/3) • Solución en pseudocódigo: algoritmo Calificacion_segun_nota algoritmo Calificacion_segun_nota variables real nota inicio variables escribir( "Introduzca nota (entera): " ) real nota leer( nota ) si ( nota >= 0 y nota <= 10 ) si ( nota >= 9 ) inicio escribir( "SOBRESALIENTE" ) escribir( "Introduzca nota (entera): " ) sino leer( nota ) si ( nota >= 7 ) escribir( "NOTABLE" ) sino si ( nota >= 0 y nota <= 10 ) si ( nota = 6 ) segun_sea ( nota ) escribir( "BIEN" ) 10, 9 : escribir( "SOBRESALIENTE" ) sino 8, 7 : escribir( "NOTABLE" ) si ( nota = 5 ) escribir( "SUFICIENTE" ) 6 : escribir( "BIEN" ) sino 5 : escribir( "SUFICIENTE" ) si ( nota >= 3 ) 4, 3 : escribir( "INSUFICIENTE" ) escribir( "INSUFICIENTE" ) 2, 1, 0 : escribir( "MUY DEFICIENTE" ) sino escribir( "MUY DEFICIENTE" ) fin_segun_sea fin_si sino fin_si escribir( "ERROR: Nota incorrecta." ) fin_si fin_si fin_si fin_si fin sino escribir( "ERROR: Nota incorrecta." ) fin_si fin 45 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 46. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS EJERCICIOS RECOMENDADOS • Resueltos: 8, 9, 10, 11 y 12. • Propuestos: 9, 10, 11, 12 y 13. 46 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 47. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.5 VARIABLE INTERRUPTOR (1/3) • Una variable interruptor es un tipo de variable que se utiliza con frecuencia en programación. • Un interruptor es una variable que sólo puede tomar por valor dos valores opuestos. Por norma general, estos valores son: verdadero y falso. También es frecuente utilizar los valores: 0 y 1. • Normalmente, una variable interruptor tomará un valor u otro dependiendo de ciertas circunstancias ocurridas en el algoritmo y, después, según sea su valor, se ejecutarán unas instrucciones u otras. 47 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 48. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.5 VARIABLE INTERRUPTOR (2/3) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado una fecha en tres variables: día, mes y año (datos enteros). 2º) Muestre por pantalla: – "FECHA CORRECTA", en el caso de que la fecha sea válida. – "FECHA INCORRECTA", en el caso de que la fecha no sea válida. Nota1: Para que una fecha sea válida, se tiene que cumplir que: – El mes debe ser mayor o igual que 1 y menor o igual que 12. – El día debe ser mayor o igual que 1 y menor o igual que un número, el cual dependerá del mes y año introducidos por el usuario. Nota2: – Tienen 31 días: enero, marzo, mayo, julio, agosto, octubre y diciembre. – Tienen 30 días: abril, junio, septiembre y noviembre. – Tiene 29 días: febrero (si el año es bisiesto). – Tiene 28 días: febrero (si el año no es bisiesto). Nota3: Son bisiestos todos los años múltiplos de 4, excepto aquellos que son múltiplos de 100 pero no de 400. (Véase el ejercicio resuelto 12.2). 48 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 49. Capítulo 12. INSTRUCCIONES DE CONTROL ALTERNATIVAS 12.5 VARIABLE INTERRUPTOR (3/3) • Solución en pseudocódigo: algoritmo Validar_fecha si ( mes >= 1 y mes <= 12 ) segun_sea ( mes ) variables 1, 3, 5, 7, 8, 10, 12 : dia_maximo  31 entero dia_maximo, dia, mes, anio 4, 6, 9, 11 : dia_maximo  30 logico fecha_correcta /* Interruptor */ 2 : si ( anio mod 4 = 0 y anio mod 100 <> 0 o inicio anio mod 400 = 0 ) escribir( "Introduzca dia: " ) dia_maximo  29 leer( dia ) sino dia_maximo  28 escribir( "Introduzca mes: " ) fin_si leer( mes ) fin_segun_sea escribir( "Introduzca año: " ) leer( anio ) si ( dia >= 1 y dia <= dia_maximo ) fecha_correcta  verdadero fecha_correcta  falso fin_si fin_si si ( fecha_correcta ) escribir( "FECHA CORRECTA" ) sino escribir( "FECHA INCORRECTA" ) fin_si fin 49 Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 50. GRACIAS POR SU ATENCIÓN Para más información, puede visitar la web del autor: http://www.carlospes.com 50