Saltar a contenido

Estructura y bloques fundamentales de un programa

Para solucionar un problema real, es necesario encontrar un método de resolución del problema y, posteriormente, descomponerlo en acciones sencillas, que el ordenador sea capaz de realizar.

El pseudocódigo es un lenguaje que permite pasar casi de manera directa la solución del problema a un lenguaje de programación específico. El pseudocódigo es una serie de pasos bien detallados y claros que conducen a la resolución de un problema. La facilidad de pasar casi de forma directa el pseudocódigo a la computadora ha dado como resultado que muchos programadores implementen de forma directa los programas en la computadora.

Ejemplo volumen

Escribe el pseudocódigo para determinar el volumen de una caja de dimensiones A, B y C. Para ello podemos resolverlo con el siguiente pseudocódigo:

  1. Inicio
  2. Leer las medidas A, B y C
  3. Realizar el producto de A * B * C y guardarlo en V (V = A * B * C)
  4. Escribir el resultado V
  5. Fin

Concepto de algoritmo

No todos los métodos de solución de un problema son susceptibles de ser utilizados por un computador. Para que un procedimiento pueda ser implementado en un computador debe cumplir determinados requisitos:

  • Ha de estar compuesto de acciones bien definidas.
  • Debe estar formado por una secuencia finita de operaciones con un orden definido.
  • Por último, debe acabar en un tiempo finito.

Se puede dar la siguiente definición de algoritmo: un algoritmo es un procedimiento no ambiguo que resuelve un problema. Un procedimiento es una secuencia de operaciones bien definidas, cada una de las cuales requiere una cantidad finita de memoria y se realiza en un tiempo finito.

Ejemplo número par

Escribe un algoritmo que determine si un número es par. Siendo N un número cualquiera.

  1. Leer N
  2. Si N=2 entonces Escribe (“es par”)
  3. Si N=1 entonces Escribe (“es impar”)
  4. N=N-2
  5. Si N>0 ir a 2
  6. Fin

Para resolver un mismo problema, se pueden definir infinidad de algoritmos. Normalmente interesa, no solo encontrar un algoritmo, sino que este sea suficientemente bueno. La bondad de un algoritmo puede medirse por dos factores:

  • El tiempo que se necesita para ejecutarlo. Está en relación con el número de instrucciones de cada tipo necesarias.
  • Los recursos que se necesitan para implementar el algoritmo.

No hay ningún procedimiento riguroso que permita construir un algoritmo que resuelva un problema dado, teniendo gran importancia la imaginación y experiencia de la persona que lo realiza.

Ejemplo número par más eficiente

Escribe un algoritmo que determine si un número es par. Siendo N un número cualquiera.

  1. Leer N
  2. M=2*int(N/2)
  3. Si M=N entonces Escribe (“es par”)
  4. Si no entonces Escribe (“es impar”)
  5. Fin

Diagrama de flujo

Símbolos diagrama de flujo

Los diagramas de flujo permiten representar visualmente qué operaciones se requieren y en qué secuencia se deben efectuar para solucionar un problema dado. Dentro de los diagramas de flujo se pueden utilizar los símbolos que se presentan a continuación, con los cuales se indican las operaciones que se efectuarán sobre los datos para producir un resultado La importancia de usar unos símbolos estándares, está en que cualquiera puede entender nuestro diagrama o bien nosotros comprender lo que se nos pide programar.

En todo diagrama de flujo se acompañará con una tabla en la que se especificará: nombre de variable, una descripción y tipo.

Estructuras secuenciales

En este tipo de estructura las instrucciones se realizan o se ejecutan una después de la otra y, por lo general, se espera que se proporcione uno o varios datos, los cuales son asignados a variables para que con ellos se produzcan los resultados que representen la solución del problema.

Estructuras selectivas

Hasta ahora sólo hemos resuelto problemas que se podían hacer de manera secuencial. Pero, ¿qué pasaría si quiere hacer un algoritmo que me resuelva un problema que requiere elegir? Es por ello que los algoritmos, en determinados momentos, requieren ser selectivos en lo que respecta a las acciones que deben seguir. De aquí que las estructuras selectivas para los algoritmos sean tan importantes, de modo que en la mayoría de los problemas se tiene presente una estructura selectiva, que implica seguir o no un determinado flujo de secuencia del problema.

En los algoritmos para la solución de problemas donde se utilizan estructuras selectivas se emplean frases que están estructuradas de forma adecuada dentro del pseudocódigo.

Estructuras repetitivas

De igual forma se pueden presentar muchos casos donde el proceso se debe repetir varias veces. Por tal motivo se emplean estructuras denominadas repetitivas, de ciclo o de bucle, e independientemente del nombre que se les aplique, lo que importa es que permiten que un proceso pueda realizarse N veces, donde solo cambien los parámetros que se utilizan en el proceso.

Cuando se requiere que un proceso se efectúe de manera cíclica, se emplean estructuras que permiten el control de ciclos. Estas estructuras se utilizan en base a las condiciones propias de cada problema, los nombres con los que se conocen son: “Mientras”, “Repite hasta” y “Desde ... hasta”.

Estructuras repetitivas

¿Cuándo uso cada una?

Con estas estructuras bases podemos llegar a representar cualquier tipo de problema que pueda ser resuelto por un ordenador. No hay que hacer un mal uso de las mismas, pues cada una tiene una funcionalidad asociada.

No usaré una secuencial cuando tengo que hacer una elección. Del mismo modo que no usaré una repetitiva si es una sola secuencia.

Hay que tener en cuenta la optimización y el rendimiento de los algoritmos que desarrollemos, pues esto nos ayudará a simplificar el código y a ahorrar recursos. Un programa será mejor o peor en cuanto su algoritmo esté optimizado de una manera u otra.

Ellen Ullman

Programming is the art of algorithm design and the craft of debugging errant code.

Actividades

  • AC 107 (RA1 / CE1a / IC1 / 3p) Abre tu navegador y accede a la URL: www.draw.io. Se abrirá un software para realizar diagramas online. Realiza el diagrama de flujo y el pseudocódigo del proceso de cálculo del área de un rectángulo, tomando b y a como su base y altura, y teniendo en cuenta que el área es A = b*a.

    Entrega

    Realiza un documento donde se identifique la actividad y contenga:

    • Diagrama de flujo
    • Pseudocódigo
    • Tipo de variables
  • AC 108 (RA1 / CE1a / IC1 / 3p) Abre tu navegador y accede a la URL: www.draw.io. Se abrirá un software para realizar diagramas online. Realiza el diagrama de flujo y escribe el pseudocódigo del proceso de compra de un producto en un supermercado, teniendo como variables (de tipo real) CP (coste del producto), CDC (cantidad de dinero del cliente) y D(devolución). Recuerda indicar primero el tipo de variables que utilizas.

  • AR 109 (RA1 / CE1a / IC1 / 1p) Abre tu navegador y accede a la URL: www.draw.io. Se abrirá un software para realizar diagramas online. Se requiere obtener el área (A) de una circunferencia de radio R, sabiendo que A = PI*R2 . Realiza el algoritmo correspondiente y represéntalo mediante un diagrama de flujo y el pseudocódigo correspondiente. Recuerda indicar las variables

  • PR 110 (RA1 / CE1a / IC1 / 5p) El consultorio del Dr. Lorenzo tiene como política cobrar al paciente en función del número de citas o consultas (NC), de la siguiente forma:

    • Las tres primeras citas a 50 €/cita.
    • Las siguientes dos citas a 40 €/cita.
    • Las restantes a 30 €/cita, mientras dure el tratamiento.

    Se requiere un único algoritmo para determinar cuánto pagará el paciente por cada cita (CC) y el total (TOTAL) de lo que ha pagado por el tratamiento. Para la solución de este problema se necesita saber inicialmente cuántas citas se efectuarán, y con ello se podrá determinar el costo que tendrá cada cita y cuánto se ha gastado en el tratamiento.

  • PR 111 (RA1 / CE1a / IC1 / 5p) Se requiere un algoritmo para determinar, de N cantidades, cuántas son menores o iguales a cero y cuántas mayores a cero. Realiza el diagrama de flujo y escribe su pseudocódigo utilizando los ciclos:

    • a. Mientras.
    • b. Repite hasta.
    • c. Desde...hasta.