Comenzando a programar (parte 2)

Metodología Para La Solución De Problemas Por Medio De Computadora

La principal razón para que las personas aprendan lenguajes de programación es utilizar la computadora como una herramienta para la resolución de problemas. Dos fases pueden ser identificadas en el proceso de resolución de problemas.

  • Fase de resolución del problema.
  • Fase de implementación (realización) en un lenguaje de programación.

Definición del Problema

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Tomar en cuenta que la solución del problema debe estar en función de lo que el problema requiera y no en función de lo que el programador quiera.

Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

Análisis del Problema

No existe un método general para la resolución de problemas, la resolución de un problema es un proceso creativo donde el conocimiento, la habilidad y la experiencia tienen un papel importante, el proceder de manera sistemática ayuda a resolver un problema.

Al comenzar a abordar un problema hay que tener en cuenta que para la mayoría de ellos hay muchas maneras de resolver y pueden existir muchas soluciones, se plantean algunos criterios o estrategias generales que se deben tomar en cuenta, las cuales son útiles en el análisis del problema.

  • Usar toda la información útil (no superficial) disponible en el enunciado del problema.
  • Hacer explícita las reglas y datos que aparezcan implícitos (en muchos problemas numéricos se pueden utilizar reglas de la aritmética o álgebra)
  • Profundizar en el problema considerado (emplear algún tipo de notación).
  • Dividir el problema complejo en subproblemas más simples. Que se pueden resolver independientemente y después combinar sus soluciones.
  • Otra forma de abordar el problema consiste en trabajar “hacia atrás” es decir parir de la solución e intentar llegar al estado inicial.

El propósito del análisis del problema es ayudar al programador para llegar a una cierta comprensión de la naturaleza del problema. Una buena definición del problema junto con una descripción detallada de las especificaciones de entrada y de salida, son los requisitos más importantes para llegar a una solución eficaz.

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

  • Los datos de entrada.
  • Cual es la información que se desea producir (salida)
  • Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy práctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

Ejercicio.- Leer el radio de círculo y calcular e imprimir su superficie.

*Definición del problema.

  • Calcular la superficie de una circunferencia
  • Análisis del problema
  • La entrada a este problema es el radio de la circunferencia y de tipo real.
  • La salida de este problema es la superficie que también es de tipo real.

Diseño del Algoritmo

Un computador no tiene capacidad para solucionar problemas más que cuando se le proporciona los sucesivos pasos a realizar. Estos pasos indican las instrucciones a ejecutar por la máquina y se denomina algoritmo.

*Las características de un buen algoritmo son:

  • Debe tener un punto particular de inicio.
  • Debe ser definido, no debe permitir dobles interpretaciones.
  • Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
  • Debe ser finito en tamaño y tiempo de ejecución.

Se pueden utilizar cualquier técnica de diseño de algoritmos, diseño descendente, divide y vencerás. Normalmente los pasos diseñados en un primer esbozo del algoritmo son incompletos e indican solo unos pocos pasos, tras esta primera descripción estos se amplían en una descripción más detallada con pasos específicos este proceso se denomina refinamiento del algoritmo.

Ejemplo problema cálculo de la superficie de una circunferencia.

En el diseño de un algoritmo tomamos en cuenta el siguiente desarrollo.

Verificación del algoritmo

Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que ha sido diseñado y produce el resultado correcto y esperado.
El modo más normal de comprobar un algoritmo es mediante la ejecución manual (prueba de escritorio), usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se producen en las diferentes fases hasta la obtención de los resultados.

Para resolver el anterior Algoritmo tenemos que investigar como hacer la operación para calcular la superficie del circulo (se describe arriba pero vamos a investigar más).

Pseudocódigo


Algoritmo calcular_superficie_circulo
    
    //Declaración de variables de tipo reales
    Definir radio Como Real;
    Definir calculo Como Real;
    Definir constante_pi Como Real;
    //Asignación del valor PI 3.14.... a la variable constante_pi
    constante_pi = 3.14;
    
    //Salida de mensaje para solicitar el radio del circulo
    Escribir "Introduce el radio del circulo: ";
    //Lectura de datos entrantes
    Leer radio;
    
    //Operación para calcular la superficie del circulo
    calculo = ((radio*radio) * constante_pi);
    
    //Salida de mensaje para mostar la operacion del calculo
    Escribir "La superficie del circulo es de: ", calculo;
    
FinAlgoritmo

Nota: las dos diagonales dentro del Pseudocódigo // es para colocar comentarios, recuerden siempre es buena práctica colocar comentarios dentro de nuestro código...

Explicación del Pseudocódigo

¿Porqué nuestras variables serán de tipo reales? porque haremos operaciones con número DECIMALES en consecuencia obtendremos resultados DECIMALES... REALES = DECIMALES
Recuerden reglas básicas de las matemáticas, es bueno colocar entre paréntesis las operaciones aritmética para que el ordenador respete el orden... calculo = ((radio*radio) * constante_pi); // para elevar al cuadrado solo bastará multiplicar el mismo producto por si mismo en este caso el radio... fácil verdad ???

*Antes de seguir leyendo el articulo, te recomiendo que le des una leída a la primera parte.

Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Si continúas navegando consideramos que aceptas su uso. Más información X Cerrar