Page 56 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 56

32                      PROGRAMACIÓN Y SOFTWARE

                                         La estructura CASE es una variante de este tipo de toma de decisiones (figura 2.4b).
                                      En lugar de probar condiciones individuales, las ramificaciones dependen del valor de
                                      una sola expresión de prueba. Según sea su valor, se presentarán diferentes bloques
                                      de código. Además, si la expresión no toma ninguno de los valores previstos, se puede
                                      proponer un bloque opcional (CASE ELSE).

                                      Repetición.  La repetición nos proporciona una manera de llevar a cabo instrucciones
                                      repetidamente. Las estructuras resultantes, llamadas loops o ciclos, se presentan en dos
                                      formas distintas que se diferencian por la manera en que terminan.
                                         El primer tipo, y el fundamental, es el llamado loop de decisión debido a que ter-
                                      mina basándose en el resultado de una condición lógica. La figura 2.5 muestra el tipo
                                      general de loop de decisión, la construcción DOEXIT, también llamada loop de inte-
                                      rrupción (break loop). Esta estructura realiza repeticiones hasta que una condición ló-
                                      gica resulte verdadera.
                                         En esta estructura no es necesario tener dos bloques. Cuando se omite el primer
                                      bloque, a la estructura se le suele llamar loop de preprueba porque la prueba lógica se
                                      realiza antes de que ocurra algo. Si se omite el segundo bloque, se le llama loop pos-
                                      prueba. Al caso general, en el que se incluyen los dos bloques, se le llama loop de
                                      prueba intermadia (midtest).
                                         Hay que hacer notar que el loop DOEXIT fue introducido en Fortran 90 para tratar
                                      de simplificar los loops de decisión. Esta estructura de control es parte estándar del
                                      lenguaje VBA de macros en Excel; pero no forma parte estándar de C o de MATLAB,
                                      que usan la estructura llamada WHILE. Como nosotros consideramos superior a la
                                      estructura DOEXIT, la hemos adoptado en este libro como la estructura de loop de
                                      decisión. Para que nuestros algoritmos se realicen tanto en MATLAB como en Excel,
                                      mostraremos más adelante, en este capítulo (véase la sección 2.5), cómo simular el loop
                                      de interrupción usando la estructura WHILE.






              FIGURA 2.5
              Loop DOEXIT                  Diagrama de flujo      Seudocódigo
              o de interrupción.





                                             Bloque 1         DO
                                                               Bloque 1
                                                                IF condición EXIT
                                                    Verdadero   Bloque 2
                                            Condición         ENDDO
                                                ?
                                                 Falso

                                             Bloque 2






                                                                                                         6/12/06   13:43:41
          Chapra-02.indd   32
          Chapra-02.indd   32                                                                            6/12/06   13:43:41
   51   52   53   54   55   56   57   58   59   60   61