Cada caso de uso requiere seguir una serie de instrucciones que habrán de indicarse a la computadora. La computadora trabaja de forma secuencial, hace tareas muy sencillas a una gran velocidad, sin embargo, el programador deberá indicarle que tareas debe hacer.
Para ello, se hace uso de algoritmos que son secuencias (ordenadas) finitas de pasos para resolver un problema. Es similar a una receta de cocina o un manual para ensamblar un mueble. Para realizar una acción es necesario que ocurra algo antes, de lo contrario podríamos tener resultados sorpresivos que pudieron anticiparse con una buena planeación.
Dentro de la metodología de solución de problemas, partimos del diagrama de sistema:
Para ello es necesario identificar las variables de entrada y los resultados esperados como salida del programa, y posteriormente hallar la forma de relacionar ambas partes a través de un procedimiento o algoritmo de solución. En algunos problemas, es necesario retroalimentar datos de la salida o realizar procesos repetitivos.
Para codificar los algoritmos podemos utilizar psudocódigos, que es una representación en lenguaje natural (una lengua como español o inglés) con cierta estructura de un lenguaje formal (como de computadora). Donde se utilizan verbos para representar acciones, se usan variables y se describen los pasos de forma secuencial.
Adicionalmente, se pueden utilizar representaciones gráficas para los verbos más comunes como leer (recuperar un dato del usuario), escribir (dar información al usuario), calcular información y asignar un valor a variables, comparar y, en consecuencia, brincar algunas instrucciones, repetir parte del código o llamar a algún subproceso. Los símbolos se representan con diagramas de flujo.
Haciendo una comparación entre los elementos de un “sistema”, en general, podemos tener las siguientes equivalencias para los pseudocódigos y diagramas de flujo:
Observa con más detalle cómo utilizar cada símbolo:
Las instrucciones inician y terminan con el símbolo del cuadrado con esquinas redondeadas o un óvalo, ahí se escriben las leyendas “inicio” o “fin”. Entre estos dos símbolos se encuentra la ejecución de todo el programa.
Para conocer el orden de la secuencia, los símbolos, que representan a los pasos, se unen con una flecha que indica la precedencia de las sentencias o instrucciones.
Pseudocódigo
inicio
// Aquí va el algoritmo
fin
Lectura o entrada de información
La forma como se le proporciona la información a los algoritmos es a través de la entrada de información; esta operación se hace comúnmente desde el teclado o consola.
Existen varios símbolos
Pseudocódigo
// Comentario de lo que se lee
Leer variable(s)
Aquí usaremos el símbolo de “tarjeta” que corresponde a un rectángulo con una muesca en el lado superior izquierdo. Algunos símbolos que suelen usarse son:
Ejemplos:
La forma como se le proporciona la información a los algoritmos es a través de una operación que se hace comúnmente desde el teclado o consola.
El formato como aparecen las asignaciones es el siguiente:
Pseudocódigo
asignar variable expresión
Del lado izquierdo siempre va una variable, después una flecha hacia la izquierda y del lado derecho una expresión. En los Pseudocódigos y en los diagramas de flujo, las expresiones pueden ir codificadas en el lenguaje del dominio del problema, por ejemplo: matemático, fórmulas químicas, nomenclaturas de biblioteca, etc.; o bien, parecido al que se usaría en un lenguaje de programación. Aunque se prefiere como el primero, ya que será un medio de comunicación con el usuario que solicita el programa. El verbo “Asignar” suele omitirse, ya que el símbolo de asignación () es suficiente.
Ejemplos:
Llamadas a subprocesos
El símbolo de asignación también puede utilizarse para la llamada a un subproceso o para indicar una acción a realizar que puede ser muy compleja o que aún no se sabe cómo hacerse.
Pseudocódigo
// Comentario de lo que se lee
Llamar subproceso()
El verbo “Llamar” se puede omitir.
Por ejemplo, cuando se calcula la desviación estándar de una lista de números antes debe leerse la lista de números (no sólo un número), calcular el promedio y posteriormente calcular la desviación estándar. Se escribe el nombre del proceso y se ponen paréntesis al final. Si se necesita calcular información adicional, se envía a través de parámetros que aparecen en medio de los paréntesis, separados por comas.
Ejemplo:
Inicio
leer N // número de datos
// llamadas a procedimientos:
leer lista de números (N, lista)
calcular promedio (promedio, N, lista)
calcular desviación estándar (desviación estándar, promedio, N, lista)
escribir desviación estándar
fin
Escritura o presentación de datos
La forma como se muestra la información es a través de su salida desde el sistema; esta operación se hace comúnmente desde el monitor o una impresora.
El formato como se muestra, se escribe o se da la salida de la información es el siguiente:
Pseudocódigo
escribir expresión
Por su facilidad de dibujo, usaremos el símbolo de “impresión” que corresponde a un rectángulo una onda en la parte inferior, simulando una hoja de papel de forma continua. Esta instrucción incluye adelante una expresión que puede conformarse con textos, valores de variables, constantes numéricas, fórmulas (que aparecerán en el resultado) o una combinación de todos ellos. Algunos símbolos que suelen usarse son:
Ejemplos:
En ciertos puntos de ejecución de los programas, es necesario realizar la verificación de valores o expresiones que generan resultados booleanos: falso o verdadero. En función al resultado el flujo del programa puede avanzar, brincar una serie de instrucciones o regresar a un punto previo del algoritmo.
La representación de las sentencias de comparación es un rombo, en el interior se hace una pregunta que regresa un valor booleano y de esta forma se decidirá el flujo del programa. Normalmente, esto puede ocurrir en dos situaciones:
Necesita “brincar” instrucciones hacia adelante
Necesita regresar a un punto previo del programa
Recuerda que la computadora trabaja de forma secuencial, por ello se tomarán las siguientes convenciones:
- la llegada a la instrucción de evaluación es por la esquina superior;
- se preferirá continuar hacia abajo si la acción se efectúa en la mayoría de los casos o se presenta como la continuación natural de las sentencias;
- las bifurcaciones para avanzar o brincar a una sentencia posterior se manejarán por la esquina de la derecha; y
- las bifurcaciones para regresar saldrán por el lado izquierdo.
Pseudocódigo
si ( expresión booleana ) entonces
continuar secuencialmente
si no
brincar o regresar
En este material, se tomarán en cuenta las siguientes convenciones:
Esta sentencia es muy importante, y da origen a las sentencias condicionales y las estructuras de control cíclicas. No se abordarán en este punto y se pueden consultar en los materiales propuestos en los hipervínculos, al igual que la estructura de ciclo que se representa con un hexágono y que es una especialización de la sentencia condicional:
Ejemplo:
Elaborar un algoritmo en diagrama de flujo y pseudocódigo para calcular el área de un triángulo:
Fase de un sistema | Diagrama de flujo | Pseudocódigo |
---|---|---|
inicio | ||
Entrada | leer base, altura | |
Proceso | area base*altura/2 | |
Salida | escribir área | |
fin |
Ejercicio 1. IMC
Escribe la respuesta correcta en los espacios en blanco para completar el pseudocódigo y calcular el índice de masa corporal $imc \leftarrow \tfrac{peso}{estatura^2}$ de una persona.
Ejercicio 2. Ecuación de segundo grado
Arrastra la respuesta correcta en los espacios en blanco para completar el pseudocódigo para calcular el índice de masa corporal (recuerda que $x_{1,2}= \leftarrow \tfrac{-b \pm \sqrt{b^2-4ac}}{2a}$ de una persona).
Diagrama de flujo | Pseudocódigo |
---|---|
inicio | |
leer a, b, c | |
$$x_{1,2}= \leftarrow \tfrac{-b \pm \sqrt{b^2-4ac}}{2a}$$ $$x_{1,2}= \leftarrow \tfrac{-b \pm \sqrt{b^2-4ac}}{2a}$$ | |
escribir “la primera raíz es “, X1 escribir “la segunda raíz es “, X2 | |
fin |