Programación en C++: Resolución de problemas

La metodología de la programación nos marca pautas para la resolución de problemas. Te voy a mostrar los pasos que debes de seguir para resolver pequeños y grandes problemas de programación, al final de este artículo serás capaz de analizar problemas y pensar en programación. Esto es un proceso que no se consigue sólo con estudiar las pautas sino que, se aprende con la experiencia y con la práctica.

La programación intenta resolver problemas cotidianos, dar solución a actividades que son mecánicas y monótonas, en definitiva, intentar satisfacer unos requisitos y hacerlo lo más eficiente posible. Muchas veces la resolución de un problema es inviable o ineficiente si se realiza mediante un programa. Por ello apareció el concepto de crisis del software, crisis en la cual se pensaba que un problema resuelto mediante programación sería mas eficiente y daría mejores resultados. Esta crisis se acentuó cuando se creaban programas que no seguían las pautas de desarrollo marcadas por la ingeniería del software y se realizaban programas que no satisfacían los requisitos de los clientes.

Voy a hacer que tú, desde el principio, aun siendo programas pequeños y simples, pienses como un ingeniero y te  acostumbres a seguir una metodología de programación adecuada a la ingeniería del software y así, crear programas de mayor calidad. Los programas que iremos realizando serán consecuentes con los conocimientos que vayáis adquiriendo.

Para que comprendas mejor la metodología a seguir a la hora de resolver un problema, te lo voy a mostrar con un ejemplo sencillo. Voy a plantearte un pequeño problema y vamos a resolverlo siguiendo unas pautas que, a partir de ahora deberás de seguir para resolver los problemas.

Se quiere realizar un programa que obtenga la división de 2 números. El programa pedirá dos números al usuario y este devolverá por pantalla el resultado.

1.- ANÁLISIS. En esta fase, se hará un planteamiento del problema y se verá las condiciones y el control de las cosas que hemos de tener en cuenta. No debemos pensar ni en el lenguaje ni como lo vamos a resolver, sólo debemos hacer un análisis completo. En esta fase no debes de olvidar ningún detalle por pequeño que sea sino, el resultado final de tu programa no resolverá los requisitos pedidos.

Para el problema anterior, el usuario introducirá dos números, un numerador y un denominador, tenemos que tener en cuenta que si el denominador es cero el resultado de la división es infinito, y eso un computador no lo puede resolver, por tanto hemos de tener en cuenta esa restricción. También hay que tener en cuenta que los números introducidos deben de ser reales, ya que, en el resultado nos pueden dar decimales.

2.-DISEÑO. En esta fase pensamos la resolución de nuestro                   problema sin pensar en que lenguaje lo voy a resolver. Ya                   dije que el lenguaje es independiente a la resolución de los                   problemas de programación. Lo que si debemos ver es que                 medios vamos a utilizar.

Para nuestro problema, vamos a utilizar tres variables de tipo real, una será el numerador, otra el denominador y una que será el resultado. Todo lo vamos hacer mediante la salida estándar, la petición de datos y el resultado. (Se podría hacer mediante una ventana creada por nosotros pero, todavía no tenemos conocimientos por lo que utilizaremos, en principio, siempre la salida estándar.

3.- IMPLEMENTACIÓN. En esta fase es cuando te planteas                en que lenguaje vas a solucionar el problema, unas veces es                factible c++ otras veces no lo será, esto dependerá del tipo                 de problema. Después de elegir el lenguaje programamos,                   teniendo en cuenta el análisis y aplicando el diseño.

En nuestro caso, la implementación la vamos hacer en c++, y quedaría de la siguiente manera:

En la imagen anterior he implementado el problema según el análisis y el diseño realizado, al haberlo estudiado exhaustivamente la implementación es un proceso rápido, eso si, se tiene que dominar el lenguaje en el que se programe. En los grandes proyectos la implementación ocupa el 10% del total del tiempo de desarrollo.

4.-PRUEBAS. Las pruebas es la parte en el que se observa si el programa responde como queremos y satisface los requisitos del enunciado del problema. Dijimos que el programa debía de responder de la siguiente manera, si el denominador es 0 habría que tenerlo en cuenta, en caso contrario debiamos de sacar pon pantalla el resultado. Vamos a verlo:

Este es el resultado que obtenemos si el usuario introduce un 0 en el

denominador, obserbamos que nos muestra un mensaje de error o advertencia.

Aquí observamos que el programa responde a lo que hemos analizado.ñ Nos devuelve por pantalla el resultado de la división. Habría que hacer muchas más comprobaciones y pruebas. Depende de la envergadura del problema. Normalmente las pruebas ocupan un 50% del proyecto, por que también incluyen el mantenimiento.

Quiero que me dejes un comentario contándome que te ha parecido el artículo y consultando tus dudas. Probad el ejercicio y comentadme. Yo mismo os responderé.

Muchas gracias,

Javi Pizarro.

About these ads

Acerca de Javi Pizarro

Ingeniero informático dedicado a la docencia, con experiencia en creación de programas de gestión y desarrollo de aplicaciones web.
Esta entrada fue publicada en Programacion y etiquetada , , , , , , , , , , , , . Guarda el enlace permanente.

12 respuestas a Programación en C++: Resolución de problemas

  1. Wilman dijo:

    Excelente introducción a la programación. ¡¡¡

  2. raul galvez cachairo dijo:

    wenas
    que es el matenimiento del programa??¿¿

    • Javi Pizarro dijo:

      El mantenimiento es una de las fases de la vida de un software. Cuando tu creas un software y lo instalas en alguna empresa, en el 99% de los casos no va a ir de color de rosas. Siempre fallarán cosas habrá que cambiar cosas, habrá que arreglar errores. Esa es la fase de mantenimiento. Es como cuando compras un coche y periodicamente tienes que ir a realizar la revisión y si te falla, tienes que ir a repararlo.

  3. raul galvez cachairo dijo:

    wenas javi
    se me quedo muy caro GRACIAS
    adew

  4. Hannibal dijo:

    Hola a todos .

    En especial , darte las gracias , Javier , por el enorme aporte que ofreces .

    Estudio 2º de CFGS de regulación y control y la verdad es que si no doy contigo …. me suicido.

    Gracias de verdad , e intentaré hacer todos los ejercicios que pueda y así aprender.

  5. Juan dijo:

    muy buena la pagina.
    por facor si me puede indicar como se puede con Dev-c++ manejar el port paralelo de una pc, direccionando a 378h,? como se expresa el import, y el outport.?
    gracias

  6. khaoula dijo:

    hola por favor mi puede ayudar algien se sea posible ahora en resolver ese problema :Diseñar un programa que lea el ordinal de un mes y deduzca el número de días que
    tiene dicho mes (para un año no bisiesto) sabiendo que: enero, marzo, mayo, julio, agosto,
    octubre y diciembre tienen 31 días, febrero 28 y el resto de los meses 30.
    es q no me sale muchas gracias

  7. khaoula dijo:

    en c++ gracias :)

  8. YOJANA dijo:

    HOLA. NECESITO SABER COMO SE RESUELVE ESTE PROGRAMA: A un trabajador le descuentan de su sueldo el 10% se es menor o igual que 1000. por encima de 1000 hasta 2000 el 5% del adicional.Por encima de 2000 el 3% del adicional. calcular el descuento y sueldo neto q recibe el trabajador dado su sueldo.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s