La estructura de repetición while

Una estructura de repetición le permite al programador especificar que se repita una acción, en tanto cierta condición se mantenga verdadera. 

El enunciado en seudocódigo

While queden elementos en mi lista de compras 
    Adquirir elemento siguiente y tacharlo de la lista

describe la repetición que ocurre durante una salida de compras. La condición, "queden elementos en mi lista de compras" puede ser verdadera o falsa. Si es verdadera, entonces la acción, "Adquirir elemento siguiente y tacharlo de la lista" se ejecutará. Esta acción se ejecutará en forma repetida, en tanto la condición sea verdadera. El enunciado o enunciados contenidos en la estructura de repetición while constituyen el cuerpo del while. El cuerpo de la estructura while puede ser un enunciado sencillo o un enunciado compuesto.

Eventualmente, la condición se hará falsa (cuando se haya adquirido el último elemento de la lista de compras y se haya tachado de la misma). Llegado a este punto, la repetición se termina, y se ejecutará el enunciado que sigue después de la estructura de repetición.

La estructura de selección if / else

Recordemos que la estructura de selección if ejecuta una acción indicada sólo cuando la condición es verdadera; de lo contrario la acción es pasada por alto, en cambio la estructura de selección if / else permite que el programador especifique que se ejecuten acciones distintas cuando la condición sea verdadera y cuando la condición sea falsa. Por ejemplo, el enunciado en seudocódigo

If la nota del estudiante es mayor que o igual a 60 
    Print "Aprobo"
else
    Print "Fracaso"

imprime Aprobo, si la calificación del alumno es mayor que o igual a 60 e imprime Fracaso si la calificación del alumno es menor de 60. En cualquiera de los casos, después de haber terminado la impresión, se ejecutará el siguiente enunciado del seudocódigo. Advierta que el cuerpo de else también queda con sangría.

Consejo

Haga sangrías en ambos cuerpos de los enunciados de una estructura if / else.

La estructura de selección if

Una estructura de selección se utiliza para elegir entre cursos alternativos de acción. 

Por ejemplo, suponga que en un examen la nota de 60 es la nota de aprobado. El enunciado en seudocódigo

if la nota del estudiante es mayor que o igual a 60
Print "Aprobó"

determina si la condición "la nota del estudiante es mayor que o igual a 60” es verdadera o falsa. Si la condición es verdadera, entonces se imprime "Aprobó” y el siguiente enunciado en seudocódigo se "ejecuta" (recuerde que el seudocódigo no es un lenguaje de programación verdadero). Si la condición resulta falsa, se ignora la impresión, y se ejecuta el siguiente enunciado del seudocódigo. Note que la segunda línea de esta estructura de selección está con sangría. Esta sangría es opcional, pero es muy recomendada, ya que auxilia a destacar la estructura de los programas estructurados. 

Estructuras de control

Por lo regular, en un programa los enunciados son ejecutados uno después del otro, en el orden en que aparecen escritos. Esto se conoce como ejecución secuencial. Varios enunciados de C, que pronto analizaremos, le permiten al programador especificar que el enunciado siguiente a ejecutar pueda ser otro diferente del que sigue en secuencia. Esto se conoce como transferencia de control.

Durante los años 60, se hizo claro que el uso indiscriminado de transferencias de control era la causa de gran cantidad de dificultades experimentadas por los grupos de desarrollo de software. El problema era causada por el enunciado goto, que le permite al programador especificar una transferencia de control a uno de una amplia gama de destinos posibles, dentro de un programa. Lo que se conoce como programación estructurada se convirtió prácticamente en sinónimo de "eliminación  de goto”.

Las investigaciones de Bohm y de Jacopini hablan demostrado que los programas podían ser escritos sin ningún enunciado goto. Para los programadores el reto se convirtió en modificar sus estilos a "programación sin goto". Y no fue sino hasta entrados los años 70 que la profesión de la programación en general empezó a tomar en serio la programación estructurada. Los resultados han sido impresionantes, ya que los grupos de desarrollo de software han informado reducciones en tiempos de desarrollo, entrega a tiempo más frecuente de sistemas y terminación dentro del presupuesto del software. La clave de estos éxitos es simplemente que los programas producidos con las técnicas estructuradas, son más claros, más fáciles de depurar y de modificar, y tal vez más libres de fallas desde el primer momento.

El trabajo de Bohm y Jacopini demostró que todos los programas podrían ser escritos en términos de sólo tres estructuras de control

  1. La estructura de secuencia
  2. La estructura de selección 
  3. La estructura de repetición

Seudocódigo

El seudocódigo es un lenguaje artificial e informal que auxilia a los programadores a desarrollar los algoritmos. El seudocódigo que presentamos aquí es en particular útil para desarrollar algoritmos que deberán ser convertidos en programas estructurados en C. el seudocódigo es similar al inglés coloquial; es cómodo y amigable, aunque no se trate de un lenguaje verdadero de programación de computadoras.

De hecho los programas en seudocódigo no son ejecutados. Mas bien, sólo ayudan al programador “a pensar” un programa, antes de intentar escribirlo en un lenguaje de programación C.

El seudocódigo consiste solo de caracteres, por lo que los programadores pueden de forma cómoda escribir los programas en seudocódigo en una computadora, utilizando el programa de edición SDK de CASIO.

Un programa preparado cuidadosamente en seudocódigo, puede ser convertido con facilidad en el programa C. esto se lleva a cabo en muchos casos sólo reemplazando enunciados en seudocódigo por sus equivalentes en C.

Algoritmos

Antes de escribir un programa para resolver un programa particular, es esencial tener compresión completa del mismo, y un método para su resolución.

Algoritmos
La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en un orden específico. Un procedimiento para resolver un problema en términos de las acciones a ejecutarse, y el orden en el cual estas acciones deben de ejecutarse a esto se llama algoritmo.

Veamos el “algoritmo de levantarse” que debe seguir un ejecutivo para salir de la cama y llegar al trabajo:

Salir de la cama
Quitarse los pijamas
Darse una ducha
Vestirse
Desayunar
Utilizar vehículo común para llegar al trabajo

Mediante esta rutina el ejecutivo llega al trabajo bien preparado para tomar decisiones críticas.

Suponga sin embargo, que los mismos pasos se llevan a cabo en un orden ligeramente distinto:

Salir de la cama
Quitarse los pijamas
Vestirse
Darse una ducha
Desayunar
Utilizar vehículo común para llegar al trabajo

En este caso, nuestro ejecutivo aparecerá en el trabajo totalmente mojado

Aritmetica

La mayor parte de los programas en C ejecutan cálculos aritméticos. Los operadores aritméticos son todos operadores binarios. Por ejemplo, la expresión 7 + 3 contiene el operador binario + y los operandos 7 y 3.

Los operadores aritméticos se muestran a continuación:

Operación en C
Operador aritmético
Expresión algebraica
Expresión en C
Suma
Substracción
Multiplicación
División
Módulo
+
-
*
/
%
f + 7
p – c
bm
x/y
r mod s
f + 7
p – c
b * m
x / y
r % s

La división de enteros da como resultado también un entero. Por ejemplo al expresión 7 / 4 da como resultado 1, y la expresión 17 / 5 da como resultado 3. El C tiene el operador modulo, %, que proporciona el residuo después de una división entera. Por lo tanto 7 % 4 da como resultado 3, y 17 % 5 da como resultado 2. Analizaremos muchas aplicaciones del operador de módulos.

Error

Un intento de dividir por cero, por lo regular resulta no definido y en general da como resultado un error fatal, es decir, el error hace que el programa termine de inmediato sin haber ejecutado con éxito su tarea.