Por favor, activa JavaScript y desactiva tu adblock para este sitio

El Javatar

Blog dedicado a la Programación en Java, C, PHP, Phyton, HTML, SQL y Mucho Más

martes, 22 de abril de 2014

Método para Resolver Algoritmos y Problemas de Programación

Método para Resolver Algoritmos y Problemas de Programación
Hoy me puse a revisar archivos y documentos que ni recordaba que los tenía en mi computador, y entre ellos encontré un documento que un profesor nos compartió cuando estaba en primer semestre, en el cual se detalla un método sencillo para la construcción de soluciones eficientes a problemas de programación.

La verdad, es que cuando uno está iniciando en este mundo de la programación, es bueno contar con una guía o un método que le ayuden a uno en la resolución de problemas, pues como te darás cuenta en algún momento, la construcción de soluciones eficientes de problemas de programación no se limita solamente a la escritura de código.

Así que primeramente explicaré el método y posteriormente haré un ejemplo para mayor comprensión del mismo. Éste método está estructurado en seis pasos:

1. Análisis del problema

En el primer paso, el de análisis debe ser capaz de entender o comprender el enunciado del problema. Si se comprende lo que se pide, puede abordar el diseño de la solución. Si no entiende en una primera lectura el contenido del problema, lea y relea hasta comprender. De esta forma puede identificar a que se refiere el problema en cuestión.

Luego de esto estará en capacidad también de poder responder, a tres preguntas fundamentales, que le orientaran hacia la identificación de tres aspectos importantes, para iniciar el análisis y diseño de la solución del problema:

1.1 ¿Qué me piden? La respuesta a esta pregunta se debe orientar a identificar que resultados se tienen que lograr con la solución al problema. Dicho en otras palabras, a qué debe responder el esfuerzo de elaborar una solución.

1.2 ¿Qué necesito o que me dan o que tengo? A esta pregunta se debe responder indicando cuales datos de entrada diferentes de datos constantes, identifica para el problema. Se debe tener en cuenta, que el enunciado del problema no siempre especifica qué datos de entrada se requieren.

En este caso, se tiene que pensar qué datos como materia prima, requiere el problema para trabajar. Eso responderá, a que datos se requieren solicitar al usuario, como datos de entrada, a través del teclado.

1.3 ¿Cómo lo hago? Esta pregunta cuestiona sobre el hecho de cómo enfocar la solución al problema, bien sea por medio de una descripción mediante palabras de los procedimientos, o con formulas. Se recomienda se haga de las dos formas, primero una descripción por medio de palabras y luego elaborar o crear formulas aritméticas que representen los procedimientos descritos, para llegar a la solución.

Es necesario siempre comprobar las formulas, para cerciorarse de que cumple con le objetivo para el que se crearon. Para ello asigne valores ficticios a cada variable y realice las operaciones de la formula.

2. Elaboración o escritura del Algoritmo para la solución propuesta

Debe tener claro el significado y propósito de algoritmo, cual es el lenguaje en que se escribe, cuales son sus partes. Entonces se debe escribir el algoritmo para solucionar el problema.

El algoritmo en esta fase del diseño y construcción de la solución al problema, proporciona una descripción abstracta paso a paso de cómo se organizarán las instrucciones, para que el programa funcione, produciendo los resultados pedidos.

El algoritmo no es detallado, se puede decir que es una macro propuesta a la solución del problema especifico. El algoritmo busca definir el orden secuencial de los pasos, como se debe escribir la solución final, tal como se hace en una planificación.

3. Declaración y definición de Constantes y Variables

En este paso de la solución del problema, es necesario clasificar los datos y asignarles identificadores.

Primero, identifique las constantes, asígneles identificadores y sus respectivos valores. Las constantes son aquellas cuyos valores se indiquen explícitamente en el enunciado del problema.

Segundo, identifique y clasifique las variables, para ello se debe tener en cuenta el criterio de contenido y utilización, agrupando los datos en tres categorías, que son Entrada, Proceso y Salida.

Clasificar los datos variables en estas categorías, asegura que no se quede por fuera ningún dato importante para la realización del proceso y obtención del resultado esperado.

4. Escribir programa en Pseudolenguaje

En este paso se deben transcribir las partes que ya se tienen desarrolladas en los tres pasos anteriores, dentro del programa escrito en pseudolenguaje. Escribir el programa en pseudolenguaje, consiste en reunir las piezas ya desarrolladas en los tres pasos anteriores, de forma que se aproveche el esfuerzo realizado en el análisis.

5. Prueba de escritorio

Es un recurso de tipo matemático-lógico, por medio del cual se hace seguimiento a cada una de las instrucciones del programa para comprobar su funcionamiento, así se comprobará de forma manual si funciona o no. La importancia de este paso radica, en realizar seguimiento en estricto orden de secuencialidad a cada instrucción en el programa.

6. Solución codificada en un lenguaje de programación

En este último paso, se lleva la solución planteada, es decir el algoritmo escrito en pseudolenguaje a un lenguaje de programación como puede ser, C, C++, Java, Python, en fin, respetando claro está, la secuencia planteada en el proceso de solución del algoritmo.

Es como transcribir de pseudolenguaje a otro lenguaje de programación; es decir, que básicamente lo que cambiaría sería la sintaxis de código utilizada en cada lenguaje, pues al final el resultado debe ser el mismo tanto para el pseudocódigo como para el código de cualquier otro lenguaje.

Ejemplo de Solución de un Problema de Programación

A continuación se explicará por medio de un ejercicio completo la solución de un programa, aplicando los pasos explicados anteriormente para solucionar un problema de programación, incluyendo como último paso la codificación en lenguaje Java.

- Escriba un programa que facilite calcular el valor del IVA y el valor total de una venta a partir del valor unitario, cantidad e IVA (porcentaje de impuesto de valor agregado que debe ser aumentado al valor obtenido)

Paso 1: Análisis del problema

Escribir un programa para calcular el valor total de una venta teniendo en cuenta cantidad, valor unitario y el IVA.

1.1 ¿Que piden? Liquidar el valor del IVA, valor total de una venta. (Lo que pide resolver el problema)

1.2 ¿Que necesito o que me dan? Valor unitario, cantidad, IVA. (Datos de entrada requeridos o necesarios para trabajar)

1.3 ¿Como lo hago?
a) Obtenemos el valor de la venta sin IVA multiplicando el valor unitario por la cantidad:
    ventsiniva = (valunit * cant)
b) Multiplicamos el valor de la venta sin IVA por el porcentaje de IVA
    valiva = ventsiniva * (iva/100)
c) Obtenemos el total de la venta sumando el valor de la venta sin IVA con el valor del IVA
    totventa = ventsiniva + valiva

Paso 2: Elaboración del Algoritmo
Algoritmo Ventas
Inicio
    1. Conocer los datos de la venta
    2. Calcular el valor de la venta sin IVA
    3. Calcular el valor del IVA
    4. Calcular el valor total de la venta incluido el IVA
    5. Mostrar valor del IVA y el total de la venta obtenida.
Fin_Algoritmo

Paso 3: Definición y declaración de constantes y variables

Entrada: valunit, cant, iva: Real
Proceso: ventsiniva: Real
Salida: valiva, totventa: Real

Paso 4: Programa en pseudolenguaje (Realizado en PSeInt)
Proceso Ventas
    // Declaramos las variables
    Definir valunit, cant, iva, ventsiniva, valiva, totventa Como Real
    
    // Pedimos datos de entrada al usuario
    Escribir "Cantidad de elementos: "
    Leer cant
    Escribir "Valor unitario: " 
    Leer valunit
    Escribir "Porcentaje del IVA: "
    Leer iva
    
    // Realizamos los cálculos(Procesos del Cómo lo hago)
    ventsiniva = (valunit * cant)
    valiva = ventsiniva * (iva/100)
    totventa = ventsiniva + valiva
    
    // Mostramos los resultados obtenidos
    Escribir "Valor del IVA de la venta: ",valiva
    Escribir "Valor total de la venta: ",totventa
FinProceso

Paso 5: Prueba de Escritorio

En este paso debe colocar todas las variables declaradas en forma de una lista horizontal o vertical. Empezar a recorrer el programa paso a paso en orden secuencial, interpretando la ejecución de cada una de las instrucciones y asignando valores en la medida que aparezcan instrucciones de entrada de datos.

valunit cant iva ventsiniva valiva totventa
10000 10 16 100000 16000 116000

Paso 6: Solución codificada en Java

import java.util.Scanner;

public class Ventas {

    public static void main(String args[]) {
        // Declaramos las variables
        double valunit, cant, iva, ventsiniva, valiva, totventa;
        
        // Pedimos datos de entrada al usuario
        Scanner sc = new Scanner(System.in);
        System.out.println("Cantidad de elementos: ");
        cant = sc.nextDouble();
        System.out.println("Valor unitario: ");
        valunit = sc.nextDouble();
        System.out.println("Porcentaje del IVA: ");
        iva = sc.nextDouble();

        // Realizamos los cálculos(Procesos del Cómo lo hago)
        ventsiniva = (valunit * cant);
        valiva = ventsiniva * (iva/100);
        totventa = ventsiniva + valiva;

        // Mostramos los resultados obtenidos
        System.out.println("Valor del IVA de la venta: "+valiva);
        System.out.println("Valor total de la venta: "+totventa);
    }
}

Bueno, con esto termino este artículo. Estuvo un poquito largo pero en verdad que es un buen método a aplicar cuando se está empezando en el mundo de la programación, y además, realizar estos pasos nos van dando poco a poco la capacidad de entender mucho más rápido y dar soluciones eficientes a futuros problemas.

No hay comentarios.:

Publicar un comentario