martes, 18 de noviembre de 2008

Lógica de programación, Estructura de un programa


OBJETIVO GENERAL
Entender la estructura de un programa y comprender la importancia de cada parte en la conformación de la solución.

OBJETIVOS ESPECIFICOS

Comprender cada una de las partes que integra una programa y su importancia.

Aplicar la técnica del análisis en la revisión y comprensión de problemas.

Diseñar soluciones a problemas de programación a partir del análisis.

Dar a conocer técnicas de programación, que se puedan implementar en la construcción de solución a problemas específicos.

Escribir programas en seudolenguaje, que representen la solución optima a un problema propuesto.

Comprobar por medio de un lenguaje de programación que los programas en seudolenguaje creados, funcionan y son coherentes con la solución al problema especifico.

Realizar pruebas de escritorio a los programas en seudolenguaje, como una forma de comprobación manual de funcionalidad.

Facilitar el desarrollo de habilidades para lógica de programación, a través de la aplicación de técnicas para solucionar problemas.

ESTRUCTURA BÁSICA DE UN PROGRAMACIÓN


Conocer el esquema de cómo se integra un programa es importante, para que siempre se tenga en cuenta en que posición debe ir cada conjunto de instrucciones.
1.1 Encabezado
1.2 Zona de declaración
1.3 Cuerpo del programa
1.1 Encabezado
Esta sección del programa se integra por:
1.1.1
Nombre del programa: El identificador que hace alusión al nombre del programa que se resuelve.

1.2 Zona de declaración


Esta sección contiene la declaración de Constantes y variables.
1.2.1 Constantes: Aquí se debe declarara todos los identificadores con los valores constantes identificados para el programa.


1.2.2 Variables: Aquí se declara los identificadores para los datos del programa, clasificados por tipo de dato.


1.3 Cuerpo del programa


ESTRUCTURA BASICA DE UN PROGRAMA


Autor: Luis Heladio Garzón Rodríguez.
En esta sección del programa debe colocar todas las instrucciones que integran la solución del problema.
Aquí es importante que dibuje el esquema de la estructura del programa, para que comprenda de mejor forma la ubicación de cada parte dentro de este.


PASOS PARA RESOLVER UN PROGRAMA


La solución de problemas de programación durante años y a través de la historia de la evolución de la tecnología de los computadores, ha recibido aportes valiosos en relación a la forma de crear solución a problemas para automatizar procesos, que sean ejecutados por la maquina.
En ese esfuerzo han trabajado científicos, matemáticos, físicos, ingenieros, y profesionales de muchas áreas de la ciencia, las mismas empresas productoras de computadoras, han desarrollado, técnicas, métodos y lenguajes, para escribir soluciones a problemas.


Técnicas como algoritmos, diagramas de flujo, diagramas de N-S, se han utilizado durante años para el diseño base en la solución de problemas.


Fruto de la experiencia en la enseñanza de la programación, propongo cinco (5) pasos para la construcción de soluciones eficientes a problemas de programación, que representen un alto grado de precisión y seguridad.


Para avanzar en esta fase del curso debe haber trabajado el tema de Métodos de comprensión y solución de problemas, en el que la propuesta consiste en que el estudiante revise y apropie la utilización de estas técnicas o metodologías, para ahora aplicarlas en torno a la solución de problemas de programación.


Es importante que se tenga en cuenta cinco (5) pasos que aseguren de alguna manera el avance exitoso, en la búsqueda o planteamiento de la solución a un problema. Estos son:


Paso 1. Análisis del problema
Paso 2. Elaboración o escritura del Algoritmo para la solución propuesta.
Paso 3. Declaración y definición de Constantes y Variables.
Paso 4. Escribir programa en Seudo lenguaje.
Paso 5. Prueba de escritorio.

A continuación se explica con algún detalle la forma de emplear y aplicar esta metodología. Después por medio de la implementación paso a paso con un ejercicio practico, se revisa los mismos pasos explicados.

2.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. :


2.1.1 Que me piden?

La respuesta a esta pregunta se debe orientar a identificar que resultados se tiene que lograr con la solución al problema. Dicho en otras palabras, a que debe responder el esfuerzo de elaborar una solución.


2.1.2 Que me dan o que tengo?

A esta pregunta tiene 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 que datos de entrada se requiere. En este caso, se tiene que pensar que datos como materia prima, requiere el problema para trabajar. Eso responderá, a que datos se requiere solicitar al usuario, como datos de entrada.


2.1.3 Como 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 del o de los procedimientos, o con formulas. Recomiendo que se haga de las dos formas, primero una descripción por medio de palabras y luego formulas aritméticas que representen los procedimientos descritos, para llegar a la solución.

2.2 Algoritmo

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.

2.3 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 los valores. La clasificación de las variables se debe realizar teniendo en cuenta contenido y utilización, agrupando los datos en tres categorías, que son Entrada, Proceso y Salida.

2.4 Seudo Algoritmo o Seudo Lenguaje


En este paso se debe transcribir las partes que ya se tienen desarrolladas en los tres pasos anteriores, dentro del programa escrito en seudolenguaje, para ello es necesario tener en cuenta de forma clara cuales son las partes de un programa.

2.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 comprobara 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.

Ejercicio
.


A continuación se explica por medio de un ejercicio completo de solución de un programa, con los 5 pasos para solucionar un problema de programación, incluyendo como ultimo (6º.) paso la codificación en el lenguaje C++.

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.


Que piden?


Liquidar el valor del IVA, valor total de una venta. Lo que pide resolver el problema
Autor: Luis Heladio Garzón Rodríguez.
Que me dan?

Valor unitario, cantidad, IVA. Datos de entrada requeridos para trabajar


Como lo hago?


1. Multiplicando el valor unitario por el porcentaje de IVA
VIVA = VU * (IVA/100)
2. este resultado multiplicarlo por la cantidad.
VV = (VIVA * CANT)

Paso 2.


Algoritmo Ventas
Inicio
1 Conocer los datos de la venta
2 Calcular el valor del IVA,
3. Calcular el valor total de la venta incluido el IVA
3 Mostrar valor del IVA, el total de la venta obtenida.

Fin_Algoritmo
Paso 3.

Definición y declaración de variables:
Entrada : VU, CANT, IVA : Real
Proceso : VIVA,VV : Real
Paso 4. (Programa en seudo lenguaje)
Programa Ventas
VAR
VU, CANT, IVA, VV, VIVA : Real //Zona de declaración de variables locales
Inicio

Escriba ‘ Cantidad de elementos : ‘ Lea CANT
Escriba ‘ Valor unitario : ‘ Lea VU
Escriba ‘ IVA : ‘ Lea IVA
//Aquí inicia el proceso de calculo tomando lo resuelto en como lo hago
VIVA = VU * (IVA/100)
VV = (VIVA * CANT)
//Aquí se muestra el resultado obtenido del programa
Escriba ‘ Valor IVA de la venta : ‘, VIVA
Escriba ‘ Valor total de la venta : ‘, VV
Fin

Paso 5.

Prueba de Escritorio


En este paso debe colocar todas las variables declaradas en forma de una lista horizontal. 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.
VU CANT IVA VV VIVA
10,500 10 16 121,680 1,680

Paso
6.

Solución codificada en lenguaje C++
#include //Declaración de librerías de biblioteca del lenguaje
#include
void main() //Aquí inicia la función principal
{ //Entre llaves se establece un bloque de
Autor: Luis Heladio Garzón Rodríguez.
instrucciones
float VU, CANT, IVA, VV, VIVA; //Zona de declaración de variables locales
cout <<” Cantidad de elementos : “; //El comando cout se utiliza para mostrar mensajes o datos cin>> CANT; //El comando cin se utiliza para captura de datos por teclado
cout<<>> VU;
cout<< “ IVA : “; cin>> IVA;
//Aquí inicia el proceso de cálculo del valor de la venta
VIVA = VU * (IVA/100)
VV = (VIVA * CANT)
//Aquí se muestra el resultado obtenido del programa
cout<< “ Valor IVA de la venta : “<PROGRAMACIÓN ESTRUCTURADA


La programación estructurada es una forma de escribir programación de computadora de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional ( GOTO ).


Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 60, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.


Orígenes de la programación estructurada


A finales de los años sesenta surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior.


El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
Secuencia


Instrucción condicional.


Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los
programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.


Por ejemplo, en Visual Basic la secuencia de instrucciones consiste en la escritura de una instrucción debajo de otra (también se pueden poner en la misma línea separadas por el símbolo de dos puntos ":" aunque no es recomendable). La instrucción condicional es la instrucción If y la iteración con condición al inicio sería la instrucción do-while-loop o while-wend.


Ventajas de la programación estructurada


Con la programación estructurada, elaborar programas de computador sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas:


1. Los programas son más fáciles de entender, ya que pueden ser leído de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica.
2. La estructura del programa es clara puesto que las instrucciones están más ligadas o relacionadas entre sí.
3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente.
4. Reducción de los costos de mantenimiento de los programas.
5. Programas más sencillos y más rápidos (ya que es más fácil su optimización).
6. Los bloques de código son auto explicativos, lo que facilita a la documentación.
7. Los GOTO se reservan para construir las instrucciones básicas.


Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración.


8. Un programa escrito de acuerdo a estos principios no solamente tendra una estructura sino también una excelente presentación.
9. La programación estructurada ofrece estos beneficios,pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad.

Inconvenientes de la programación estructurada


El principal inconveniente de este método de programación, es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado. Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica muy definida y se denominan capas.


VISUAL STUDIO .NET C++

Para trabajar en Visual Studio .Net C++, se debe tener en cuenta que todas las aplicaciones o programas deben estar contenidas en un proyecto. El proyecto es un gran contenedor o receptáculo, en el que se alberga todos los elementos que forman parte del proyecto.
A continuación se explica paso a paso las instrucciones que debe seguir para crear proyectos para las aplicaciones que va a desarrollar.


1. INGRESANDO A VISUAL STUDIO .NET C++


1.1 Haga click en el botón Inicio del sistema operativo, elija la opción programas y ubique Microsoft Visual studio .NET 2005 - Microsoft Visual studio .NET 2005, haga click para ejecutar.
1.2 En este momento se ha cargado el ambiente de trabajo visual studio .NET

2. CREANDO UN PROYECTO EN C++


Ya dentro del ambiente de trabajo de visual studio .NET, se debe elegir que lenguaje se va a utilizar para escribir la aplicación, siga los siguientes pasos, para crear un proyecto nuevo o si ya tiene una aplicación y la quiere compilar y ejecutar en VSNet.:
2.1 Haga click en el menú Archivo y elija Nuevo – proyecto
2.2 De las opciones desplegadas al lado izquierdo, elija Proyectos de visual C++, en las opciones a la derecha busque Proyecto Win32.
Ahora se debe diligenciar la información en la parte inferior, primero el nombre del proyecto. Luego hay que ubicar el sitio de alojamiento del proyecto, para ello se puede utilizar el botón Examinar, haciendo click se despliega una ventana para indicar la

ubicación del proyecto (si es necesario se puede crear una carpeta para el proyecto) , cree la carpeta o asigne la ubicación del proyecto, esto equivale a la definición del camino donde se almacenara todos los elementos relacionados con el proyecto y quedara definido en los parámetros de este, así cada vez que se elija trabajar con el mismo proyecto el sistema automáticamente sabe donde encontrarlo.


En este caso como ejemplo, se asigna como nombre prueba, se establece como ubicación C:\U.T\L_C++\Programs\Preubas, al nombre de la solución se asigno prueba. Completos los pasos anteriores haga click en el botón Aceptar.


Elija la opción Configuración de la aplicación con un click, ahora se definirá características especiales para evitar que el asistente cree una aplicación en ambiente Windows.

1. En tipo de aplicación, elija Aplicación de consola.
2. En opciones adicionales, elija Proyecto vació.
3. Haga click en el botón Finalizar, para crear el proyecto.


3. ADICIONAR UN PROGRAMA FUENTE C++ A UN PROYECTO


Luego de haber creado el proyecto se debe crear o agregar programas, siga los siguientes pasos.
En la ventana Explorador de soluciones a la derecha, ubique el cursor sobre el nombre del proyecto (en este caso prueba), haga click con el botón derecho del mouse, elija Agregar – Agregar nuevo elemento.

En la siguiente ventana elija de las opciones de plantillas a la derecha Archivo C++ (.cpp), asigne nombre a la aplicación (para el caso ejemplo prueba1), la ubicación por defecto es la misma asignada para el proyecto, hecho esto haga click en el botón Abrir
Se puede observar que en el Explorador de soluciones ahora aparece en source files (archivos fuente) el archivo prueba1.cpp que se acaba de agregar.
Ahora se puede escribir las instrucciones del programa. Se debe tener en cuenta escribir en el encabezado las siguientes instrucciones:
#include
using namespace std;
La primera instrucción le indicara al preprocesador que se trabajara con los comandos incluidos en esa libreria, llamada iostream.

La segunda linea indica el nombre del espacio std que incluye otras clases, para que puedan ser utilizadas sin mayor complicación.
El texto escrito aparece como el que se muestra a continuación, escriba estas instrucciones en la venta de edición.
#include
using namespace std;
void main()
{
int tecla;
cout<<"Despliegue en pantalla"; cin>>tecla; //Captura de entrada de dato
}
Para grabar el programa, haga click en el disquete en la parte superior izquierda, o elija Archivo – Guardar.



4. CREAR EL PROGRAMA EJECUTABLE EN C++

Para poder ejecutar el programa se debe cumplir dos pasos compilar y encadenar, pasos que pueden ejecutarse por separado, el primero determina e identifica que errores de sintaxis o advertencias, encuentra; el segundo encadena la aplicación, Se puede realizar en una instrucción, eligiendo del menú Generar – Generar , de esta manera compila y encadena.
Si el proceso de generación se cumple con éxito, el resultado será:
Generar: 1 correctos, 0 Incorrectos, 0 Omitidos.
Significa que no se encontraron errores de sintaxis, ni hay advertencias, por posibles malos usos. Si por el contrario se presentan errores en el proceso, primero debe corregirlos para poder continuar con la ejecución de la aplicación.


Para corregir errores de sintaxis hay que revisar el contenido detallado de la ventana Resultados, ubicar el cursor sobre el error y leer el tipo de error, hacer doble click para ir a la línea donde se presenta la falla. Hay ocasiones que el error se presenta en la línea anterior. Un error de sintaxis puede generar varios errores en el proceso de compilación, por ello debe repetir el proceso hasta obtener 0 errores.


5. EJECUTAR EL PROGRAMA


Para ejecutar el programa elija del menú Depurar - Iniciar, con ello se ejecuta la aplicación, entonces siga las indicaciones que aparecen en la ventana de ejecución.

6. VINCULAR Y EJECUTAR PROGRAMAS ANTIGUOS


Si desea utilizar la Biblioteca estándar de C++, incluya en el código uno o más de los archivos de encabezado de esta biblioteca, por ejemplo:
#include
#include


Información general sobre la Biblioteca estándar de C++ contiene una lista de los archivos de encabezado. Los archivos de encabezado no tienen la extensión .h.
Los nombres de archivo de la Biblioteca estándar de C++ son Libcp.lib, Libcpmt.lib y Msvcprt.lib. Las versiones de depuración se encuentran en Libcpd.lib, Libcpmtd.lib y Msvcprtd.lib. Para obtener una descripción de todas las bibliotecas de tiempo de ejecución de C, vea Bibliotecas de tiempo de ejecución de C y Rutinas de depuración.
Si incluye los archivos de encabezado de la Biblioteca estándar de C++, los archivos de la biblioteca de tiempo de ejecución que contengan la Biblioteca estándar de C++ se convertirán en las bibliotecas predeterminadas. Por ejemplo, si utiliza /MT y ha incluido en el código un archivo de encabezado de C++ estándar, Libcpmt.lib se convierte en la biblioteca predeterminada.
La Biblioteca estándar de C++ abarca las extensiones más modernas de ANSI C++, incluidas la Biblioteca de plantillas estándar y una nueva biblioteca iostream. La Biblioteca estándar de C++ proporciona nuevas funcionalidades, como, por ejemplo, multitud de algoritmos para la manipulación de objetos C++ y una ruta de migración para aquellos desarrolladores que deseen usar la iostream estándar.
Desde Visual Studio .NET 2005, Visual C++ ya no suministrará las antiguas bibliotecas iostream.

La Biblioteca estándar de C++ es un conjunto de archivos de encabezado. Puede encontrar una lista de los archivos de encabezado en Información general sobre la Biblioteca estándar de C++. Los nuevos archivos de encabezado no tienen la extensión .h.
Las bibliotecas mas comunes son: cmath, cctype, cstring, cstdio, iostream, familiarícese con estas para saber que funciones incluye cada una.



No hay comentarios: