sábado, 31 de marzo de 2012

Estructuras Lógicas Repetitivas en PHP - Parte 1/3

Es muy común encontrar en los algoritmos operaciones que se deben ejecutar un número repetido de veces. Si bien las instrucciones son las mismas, los datos sobre los que se opera varían. El conjunto de instrucciones que se ejecuta repetidamente se llama ciclo.

Todo ciclo debe terminar de ejecutar luego de un número finito de veces, por lo que es necesario en cada interacción del mismo, evaluar las condiciones necesarias para decidir si debe seguir ejecutándose o debe detenerse. En todo ciclo, siempre debe existir una condición de parada o fin de ciclo.

En algunos algoritmos podemos establecer a priori que el ciclo se repetirá un número definido de veces. Es decir, el número de repeticiones no dependerá de las proposiciones dentro del ciclo. Llamaremos Desde a la estructura algorítmica repetitiva que se ejecuta un número definido de veces.

Por otra parte, en algunos algoritmos no podemos establecer a priori el número de veces que se ha de ejecutar el ciclo, sino que este número dependerá de las proposiciones dentro del mismo. Llamaremos Mientras a la estructura algorítmica repetitiva que se ejecuta mientras la condición evaluada resulta verdadera. También tenemos la estructura Hacer Mientras.

En la práctica tanto la estructura Hacer Mientras como la estructura Mientras se pueden usar indistintamente para obtener un resultado.

En la siguiente secuencia de artículos aprenderemos a desarrollar algoritmos sencillos basados en lógicas repetitivas, para luego plasmarlos en diagramas de flujo y codificarlos en el lenguaje PHP.

Lo que veremos:
  • Estructura Hacer Mientras
  • Estructura Mientras
  • Estructura Desde
Todo a través de conceptos claros y ejemplos básicos.

1. Estructura Hacer Mientras.

La estructura sintaxis para esta estructura es la siguiente:

Hacer
{Proceso}
Mientras (Condición)

Proceso, es cualquier operación o conjunto de operaciones que deben ejecutarse mientras se repita el ciclo. El ciclo se repetirá siempre que la Condición sea verdadera, es decir el ciclo se detendrá solo cuando la Condición sea falsa.

Esta estructura garantiza por lo menos una iteración del bloque de proceso, debido a que primero realiza el proceso y al final evalúa la condición.
Muchas veces usaremos esta estructura con el uso de un contador, y la condición estará ligada a dicho contador, obteniendo así la siguiente sintaxis:

V = Vi
Hacer
{proceso}
Calcular V = V + INC
Mientras (Condicion)

Donde
  • V: es una variable de control
  • Vi: es el valor inicial
  • INC: es el incremento
V (contador del ciclo, generalmente representado por las letras I, J, K, V) toma un valor inicial (Vi) y se compara con el valor esperado en la condición. El ciclo se ejecuta mientras la condición sea verdadera. El valor de V se incrementa en cada iteración.

El incremento de INC por lo general es en una unidad, pero eso depende mucho de la naturaleza del problema, veremos casos en que el incremento será de dos unidades o de tres unidades, etc, en general podremos tener un incremento en X unidades, donde X es un número entero.

No es una regla que los valores Vi, V, VF e INC sean enteros, veremos casos en que será necesario un aumento de 0.02 por ejemplo, en ese caso dichas variables tendrán que ser reales.

En resumen las variables de control son enteras o son reales o de cualquier otro tipo, pero no pueden ser una mezcla de ambas.

Por otro lado no siempre tendremos incrementos, sino decrementos, en ese caso el algoritmo sufre un pequeño cambio, como mostramos a continuación:

V = Vi
Hacer
{proceso}
Calcular V = V - INC
Mientras (Condición)

1.1. Ejemplo 1: Obtener el total de sueldos.

Escriba un pseudocódigo, donde ingresando los sueldos de 10 obreros de una fábrica, obtenga el total de los sueldos de la misma.

Pseudocódigo:
Iniciar proceso
Declarar Variables
     I: Entero
     TOTAL, SUELDO: Real
     I = 0
     TOTAL = 0
Hacer
     Leer SUELDO
     Calcular TOTAL = TOTAL + SUELDO
     I = I + 1
Mientras I < 10
Escribir TOTAL
Terminar el proceso 
Codificación en PHP
<?PHP

$SUELDO = 2000;
$I = 0;
$TOTAL = 0;
do {

$TOTAL = $TOTAL + $SUELDO;
$I = $I + 1;

} while ($I < 10);
echo "Total de sueldos <br>";
echo $TOTAL;
?>
Diagrama de flujo
Resultado PHP en WEB


Explicación PHP

PHP trabaja con valores enviados desde un formulario en modo Get y Post o por enlace URL, en este ejemplo usted colocará los valores en el código para que sea procesado.

PHP inicia con la etiqueta <?PHP y termina con ?>, cuando escribimos las variables le anteponemos el signo "$", y luego ingresamos el valor y finalizamos con ";", ejemplo:

$SUELDO = 600;
$I = 0;
$TOTAL = 0;

El echo permite imprimir los valores o comentarios encerrados entre comillas, que desea mostrar en la pantalla, ejemplo:

echo "Total de sueldos <br>

Si solo imprimirá el resultado no es necesario encerrarlo entre comillas, ejemplo:

echo $TOTAL;

la etiqueta html <br> es para dar un salto de línea y de esta manera evitará que se vea todo en una línea.

El do ... while permite repetir una secuencia mientras $I sea menor que < 10, dentro de este bucle sumar una cantidad hasta 10 veces donde todo se acumulará en $TOTAL, si no se define el $I, el bucle se repetirá indefinidamente:

do {

$TOTAL = $TOTAL + $SUELDO;
$I = $I + 1;

} whiel ($I < 10);

1.2. Ejemplo 2: Listar años.

Escriba un pseudocódigo, que muestre la lista de años desde 1995 hasta 2005, y al finalizar muestre un mensaje de lista finalizada.

Pseudocódigo:
Iniciar proceso
Declarar Variables
     I: Entero
     ANIO: Real
Hacer
     Leer ANIO
     Calcular ANIO = ANIO + 1
              I = I + 1
     Escribir ANIO
Mientras I < 10
Escribir Lista Finalizada
Terminar el proceso 

Diagrama de flujo
Codificación en PHP
<?PHP

$ANIO = 1995;
$I = 0;
do {

$ANIO = $ANIO + 1;
echo "$ANIO <br>";
$I = $I + 1;

} while ($I < 10);
echo "Lista Finalizada";
?>
Resultado PHP en WEB
Explicación PHP

PHP inicia con la etiqueta <?PHP y termina con ?>, cuando escribimos las variable le anteponemos el signo "$" y luego ingresamos el valor para cada variable y finalizamos con ";", ejemplo:

$ANIO = 1995;
$I = 0;

El echo permite imprimir los valores o comentarios encerrados entre comillas, que desea mostrar en la pantalla, ejemplo:

echo "$ANIO <br>";
echo "Lista Finalizada";

La etiqueta html <br> es para dar un salto de línea y de esta manera evitara que se vea todo en una línea.

El do ... while permite repetir una secuencia mientras $I sea menor que < 10, dentro de este bucle sumará los años hasta 10 veces y los irá mostrando uno por uno echo "$ANIO <br>", si no se define el $I, el bucle se repetirá indefinidamente:

do {

$ANIO = $ANIO + 1;
echo "$ANIO <br>";
$I = $I + 1;

} while ($I < 10);

1.3. Ejemplo 3: Contar números divisibles.

Escriba un pseudocódigo, que cuente del 1 al 20 cuantos números son divisibles entre 2 y mueste cuáles son los números.

Pseudocódigo:
Iniciar proceso
Declarar Variables
     I: Entero
     N: Entero
     CONT: Entero
Hacer
     Si N MOD 2 = 0 entonces
          Escribir N
          CONT = CONT + 1
     Fin_si
     I = I + 1
     N = N + 1
Mientras I < 20
Escribir Total de números divisibles entre 2: CONT
Terminar el proceso

Diagrama de flujo
Codificación en PHP
<?PHP
$I = 0;
$N = 1;
do {
if ($N % 2 == 0) {
     echo "$N <br>";
     $CONT = $CONT + 1;
}
$I = $I + 1;
$N = $N + 1;
} while ($I < 20);
echo "Total de números divisibles entre 2: $CONT";
?>
Resultado PHP en WEB
Explicación PHP

PHP inicia con la etiqueta <?PHP y termina con ?>, cuando escribimos las variables le anteponemos el signo "$" y luego ingresamos el valor para cada variable y finalizamos con ";", ejemplo:

$I = 0;
$N = 1;

El echo permite imprimir los valores o comentarios encerrados entre comillas, que desea mostrar en pantalla, ejemplo:

echo "$N <br&gt";
echo "Total de números divisibles entre 2: $CONT";

la etiqueta html <br> es para dar un salto de línea y de esta manera evitará que se vea todo en una línea.

El do ... while permite repetir una secuencia mientras $I sea menor que < 20, dentro de este bucle sumará los N números 20 veces y los irá mostrando echo "$N <br>", solo los números divisibles entre 2.

Para esto utilizamos un $N % 2 == 0, que cuando cumpla la condición muestre el número divisible y cuente $CONT = $CONT + 1, si no se define $I, el bucle se repetirá indefinidamente.

Eso es todo por ahora, en el próximo post estaremos detallando el uso de la estructura cíclica Mientras.

No hay comentarios :

Publicar un comentario

Encuesta: ¿Quién es el mejor catedrático de la carrera de Ing. Informática de la UAGRM?