Introducción a la programación
Se llama Programación a la implementación de un algoritmo en un determinado lenguaje de programación, para realizar un programa.Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema.
Programa (Software en inglés) es una secuencia de instrucciones que una computadora puede interpretar y ejecutar.
El proceso de creación de software es materia de la ingeniería del software, una de las ramas propias de la Ingeniería Informática.
Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos.
Se han propuesto diversas técnicas de programación, cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas se pueden mencionar las programaciones lineal, estructurada, modular y orientada a objetos.
Fases para la resolución de problemas con una computadora
- Análisis: Comprender y definir el problema
- Desrrollo de la solución o algoritmo: La esencia lógica de pasos para resolver el problema
- Trascripción de la solución a 1 lenguaje de programación
- Prueba: Seguir los pasos para planificar que la solución resuelve verdaderamente el problema
4.FASES EN LA ELABORACIÓN DE UNA APLICACIÓN INFORMÁTICA
El
desarrollo de la aplicación o conjunto de programas se basa en un
concepto llamado ciclo de vida que establece una serie de etapas o fases
que hay que seguir secuencialmente y de forma ordenada, cuando se desea
desarrollar un determinado producto del Software. Se pueden considerar
las distintas fases:- Diagrama de flujos de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas del flujo de la información con diferentes niveles de abstracción y división del problema
- Modelos de datos: Sirven para conocerlas estructuras de datos y sus características, se pueden emplear modelos entidad relación y formas normales
- Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos así como las estructuras de datos
- Definición de los interfase de usuarios: Sirven para determinar la información, a manejar las entradas y salidas de datos.
- Diseño externo: Especifica los formatos de la información en los soportes de E/S se diseñarán esencialmente formatos de pantalla y listados
- Diseño de datos: Establece las estructuras de datos de acuerdo con sus soporte físico y lógico específico como son estructuras en memoria, ficheros y bases de datos
- Diseño modular: Es una técnica de representación en la que se reflejan de forma descendiente la división de la aplicación en módulos. Así como la interconexión de los mismos con variables de enlace o parámetros. Esta basado en los diagramas de flujo de datos obtenidos en el análisis y se deberá tener en cuenta la cohesión de cada módulo y el acoplamiento o interdependencia entre ellos
- Diseño procedimental: Establece las especificaciones para cada módulo describiendo el algoritmo necesario que permita posteriormente una correcta y rápida codificación . Se emplean técnicas de programación estructurada utilizando principalmente ordinogramas y pseudo códigos. Con la finalización de esta etapa se obtiene como documentación el cuaderno de carga
- Pruebas unitarias: para comprobar que cada módulo realizan correctamente su tarea
- Pruebas de interconexión: Para comprobar que en cada programa es correcto el funcionamiento conjunto de todos los módulos
- Pruebas de integración: Para comprobar el funcionamiento correcto del conjunto de programas que constituyen la aplicación. Es decir el funcionamiento de todo el sistema
- Explotación: En esta fase se realiza la implantación de los programas en el operativo o sistema físico donde van a funcionar normalmente y su puesta en marcha para obtener un funcionamiento adecuado de todo el sistema. Las actividades que se pueden realizar son
- Instalación de los programas:
- Pruebas globales de aceptación del sistema
- Conversión de la información del sistema anterior a nuevo sistema
- La eliminación del sistema anterior En esta fase se debe completar la formación del usuario con respecto el sistema y el uso de la aplicación así como la documentación necesaria para la explotación del sistema y el manual de uso o guía de la aplicación
- Correctivo: Puede estar incluido en contratos de garantía y mantenimiento de la aplicación
- Adaptativo: Consiste en modificar los programas existentes a causa de un cambia en el entorno físico y lógico en el que están implantados. Por ejemplo: nuevas generaciones de ordenadores de SSOO y cambios en equipos periféricos
- Perfectivo: Consiste en una mejora de la aplicación al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones sobre sistemas existentes
- Conjunto ordenado y finito de operaciones que permiten hallar la solución a un problema determinado
- Conjunto de operaciones necesarias que se deben hacer para resolver un problema o una dtmda tarea
- Descripción de pasos de una tarea usando un método particular Los algoritmos son independientes del lenguaje de programación que se vaya a utilizar y también son independientes del ordenador donde se vaya a ejecutar
- Entrada de datos: En esta fase se especifican las instrucciones que tomarán los datos de un periférico de entrada y llevarán esos datos a la memoria
- Proceso de datos: En esta fase se incluyen las instrucciones en el algoritmo que manipulan esos datos
- Salida de resultados: En esta fase las instrucciones se toman de la memoria y se llevan a los periféricos de salida
- Debe ser preciso e indicar el orden de radicación de cada paso es decir a entradas idénticas se deben obtener salidas idénticas
- Deber ser finito : Es decir debe tener un nº finito de pasos así como un principio y un fin
- Deber ser flexible para facilitar su mantenimiento
- Deber ser claro y sencillo para facilitar su comprensión por el personal encargado de su codificación y mantenimiento La resolución de un problema desde el punto de vista algorítmico tiene 3 fases
- Análisis de programa: El objetivo de esta fase es comprender el problema especificando las salidas y entradas del programa
- Diseño del algoritmo: Una vez comprendido el problema se trata de determinar que pasos o acciones tenemos que realizar para resolverlo . Como criterios a seguir a la hora de dar la solución algorítmica hay que tener en cuenta lo siguiente
- Si el problema es bastante complicado lo mejor es dividirlo en partes más pequeñas e intentar resolverlo por separado. Esta técnica se conoce con el nombre de diseño descendente divide y vencerás
- Otra filosofía a la hora de diseñar algoritmos es el refinamiento por pasos que consiste en que a partir de una idea general vamos completando cada vez mas esa descripción hasta que tengamos algo concreto que resolver. Al escribir el algoritmo hay que tener en cuenta que los pasos a realizar deben tener un determinado orden
- Resolución en el ordenador: Es la codificación del algoritmo en un determinado lenguaje de programación
TÉCNICAS DE PROGRAMACIÓN
Programación convencional: Fue el comienzo de la programación. Es la realización de programa sin seguir un método de programación riguroso los problemas son - Los programas son excesivamente rígidos presentando problemas para adaptarlo a distintas configuraciones
- Los programadores gastan la mayoría de su tiempo corrigiendo errores producidos
- Las modificaciones de estos programas son difíciles de hacer
e) Mantenimiento: Esta fase compelta el ciclo de vida y en ella se realizan las consideraciones necesarios para solucionar errores y deficiencias del producto desarrollado existiendo la posibilidad de que ciertas acciones puedan reiniciar el ciclo de vida. El tiempo invertido en la actividad de mantenimiento está basado en un desarrollo correcto y documentado de las fases anteriores del ciclo de vida fases de mantenimiento
5ALGORITMO
Es
una descripción abstracta y ordenada de todos las acciones que se deben
realizar así como la descripción de los datos que deben ser manipulados
por dichas acciones para llegar a la solución del problema
Definiciones de algoritmo:
El diseño de un algoritmo debe reflejar las tres partes de un programa
Características de un algoritmo
- Estudio de la programación desde planteamientos globales a concretos escalonadamente que es lo que se conoce como diseño descendente o Top-Down que consiste en abordar la aplicación desde el problema principal hasta los problemas más particulares en los que se puede dividir; consiguiendo así una comprensión más fácil de todo el problema
- Obtener programas de fácil interpretación y fácil mantenimiento
- Consecución de un programa propio que es aquel capaz de ser recorrido de principio a fin sin realizar ningún salto en su configuración. Las características de un programa propio son
- Posee un único punto de entrada y un único punto de salida
- Existen caminos desde la entrada hasta la salida que pasan por todas las partes del programa
- Todas las instrucciones son ejecutadas y no existen bucles infinitos La característica de la programación estructurada es que cualquier programa con un solo punto de salida puede resolverse con tres únicos tipos de estructuras de control
- Secuencial: se realizan las instrucciones secuencia a secuencia
- Alternativa:
- Repetitiva: La programación estructurada es una técnica que consiste en olvidarse del lenguaje y el ordenador hasta encontrarnos en el último nivel. Uno de los objetivos de esta programación es la minimización de errores humanos. Un programa estructurado tiene una representación en forma de árbol
Programación modular: Los problemas complejos se pueden resolver más eficazmente cuando se dividen en subproblemas que sean mas fáciles de solucionar que el original este método se conoce como divide y vencerás y consiste en dividir un problema complejo en otros más simples con autonomía propia. La descomposición del problema original en sus problemas más simples y así sucesivamente se llama diseño descendente. A cada subprograma se le llama módulo y se codifica con pila y ejecuta por separado. Existe un módulo llamado módulo raíz o módulo principal que relaciona a todos los demás.
Prueba de escritorio: Se debe ejecutar el algoritmo con diferentes datos de entrada para verificar si se obtienen los datos de salida esperados, en caso contrario se procede a hacer las modificaciones necesarias al algoritmo. Se recomienda verificar los resultados obtenidos en los ejercicios realizados en la etapa de análisis del problema. Los datos de prueba deben escogerse de modo a someter al algoritmo a todas las posibles situaciones que puedan darse.
El diseño del algoritmo esta listo si la prueba de escritorio muestra que éste satisface las características de un algoritmo; si la prueba no es satisfactoria se revisa el pseudocódigo o el diagrama de flujo y se procede de esta manera hasta obtener los resultados esperados. La siguientes etapas son la codificación del algoritmo en el lenguaje de programación seleccionado y su prueba en la computadora.
A continuación utilizamos esta metodología en el diseño de un algoritmo:
Problema 1: Diseñar un algoritmo para convertir una temperatura dada en grados Fahrenheit a la correspondiente temperatura en grados Centígrados.
Entender el problema
El agua se congela a 0º Centígrados y hierve a 100º Centígrados. El agua se congela a 32º Fahrenheit y hierve a 212º Fahrenheit. Lo que indica una diferencia de 180º. Por lo tanto cada grado en la escala Fahrenheit es igual a 100/180 o 5/9 grados en la escala Celsius.
Para convertir grados Fahrenheit a grados Celsius se resta 32º a los grados Fahrenheit y el resultado se multiplica por 5/9
Declaración de los datos
Cualquier tarea que se pretenda resolver utilizando la computadora debe expresarse como un algoritmo. Para diseñar algoritmos que sean entendibles y fáciles de modificar por las personas interesadas, se utiliza un conjunto de estructuras o construcciones lógicas restringidas, que son la secuencial, la de decisión y la iterativa. La estructura secuencial se utiliza cuando las instrucciones del algoritmo deben ejecutase en la secuencia en que se presentan, de la primera a la última; La estructura de decisión se utiliza cuando existen situaciones en que se debe escoger entre ejecutar una instrucción u otra, dependiendo del cumplimiento de una condición y la estructura iterativa se utiliza cuando es necesario repetir varias veces una instrucción o un conjunto de instrucciones para que la tarea sea ejecutada.
En la siguiente sección se estudiaran cada una de estas construcciones lógicas, también conocidas como estructuras básicas de control lógico
PRUEBAS DE ESCRITORIO.
La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo o programa ya que esta es una ejecución a mano de nuestro algoritmo llevando el registro de los valores que cada variable tendrán.EJEMPLO:


https://brendabalderas.wordpress.com/2012/09/18/pruebas-de-escritoriodiagramas-de-flujo-y-estructuras-de-control/
http://www.infor.uva.es/~jvegas/cursos/prog/tema1.html
https://brendabalderas.wordpress.com/2012/09/18/pruebas-de-escritoriodiagramas-de-flujo-y-estructuras-de-control/
No hay comentarios.:
Publicar un comentario