PROGRAMACION ESTRUCTURADA
PROGRAMACION
Consiste en el diseño de una secuencia de instrucciones en un lenguaje de
programación, que procesan un conjunto de datos con el objetivo de obtener
resultados o datos de salidas a partir de datos iniciales.
OBJETIVOS DE LA PROGRAMACION
Agilizar cálculos complicados o numerosos
Almacenar información organizada y formateada con el fin de obtenerla
rápidamente cuando se necesite.
Minimizar los riesgos de pérdidas, equívocos e imprecisión de la información.
LENGUAJES DE PROGRAMACION
Un lenguaje de programación es un lenguaje formal diseñado para expresar
procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso por el
cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene
el código fuente de un programa informático se le llama programación.
TRADUCTORES DE LENGUAJES
Una vez que se diseña el programa y se transcribe en un lenguaje específico, existe un
proceso de conversión del código escrito (código fuente) a un código binario
entendible por el computador (código Objeto), a este proceso se le denomina
Compilación y posteriormente se genera un archivo ejecutable (código ejecutable)
para que el usuario pueda usar el programa.
TIPOS DE TRADUCTORES:
Compilador: En programación, cuando se desarrolla un programa, en la fase de
codificación se llevará a cabo la compilación, que consiste en que el compilador
traducirá el código fuente a código binario, también llamado código objeto, siempre y
cuando, el propio compilador no detecte ningún error en dicho código fuente.
Interpretador: El proceso consiste en leer una línea, si la sintaxis es correcta se traduce
a lenguaje de máquina y se ejecuta, para luego pasar a la siguiente. Si existe un error
en alguna de las líneas el programa emite el error y se interrumpe.
Terminología asociada a la Compilación
Código fuente: Conjunto de sentencias entendibles por el programador que componen
el programa o una parte de ello. Suele estar almacenado en un fichero del tipo texto
como los que se pueden abrir por ejemplo, con el bloc de notas o Wordpad en los
entornos Windows. El código fuente estará escrito en un lenguaje de programación
determinado, elegido por el programador, como pueden ser: Basic, C, C++, C#, Java,
Perl, Python, PHP.
Código objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entiende
el ordenador directamente: binario o código máquina. Provienen de la traducción de
cierto código fuente, es un fragmento del programa final y es específico de la
plataforma de ejecución.
Código ejecutable: Reúne diferentes códigos u objetos generados por los
programadores junto con las “librerías de uso general” (propias del entorno o del
lenguaje de programación) componiendo el programa final. Este es el código que
ejecutan los usuarios del sistema, y es específico para una plataforma concreta:
Windows, Linux, Mac OS, o cierto sistema Hardware.
PROGRAMACION ESTRUCTURADA
La programación estructurada es un estilo de programación que utiliza elementos de
control lógico como la secuencia, la selección, la iteración y las subrutinas, de tal
manera que el programa resultante sea claro, preciso y más entendible.
VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA
1. Programas más fáciles de entender.
2. Reducción de esfuerzos en las pruebas.
3. Reducción en costos de mantenimiento.
4. Programas más sencillos y más rápidos.
5. Aumento en la productividad del programador.
6. Facilita la utilización de otras técnicas para el mejoramiento de la productividad
como la creación de librerías o unidades.
7. Programas mejor documentados internamente.
TÉCNICAS DE DISEÑO DE ALGORITMOS
Top Down
También conocida como de arriba-abajo y consiste en establecer una serie de
niveles de mayor a menor complejidad (arriba-abajo) que den solución al
problema. Consiste en efectuar una relación entre las etapas de la
estructuración de forma que una etapa jerárquica y su inmediato inferior se
relacionen mediante entradas y salidas de información. Este diseño consiste en
una serie de descomposiciones sucesivas del problema inicial, que recibe el
refinamiento progresivo del repertorio de instrucciones que van a formar parte
del programa.
La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos
básicos:
Simplificación del problema y de los subprogramas de cada descomposición.
Las diferentes partes del problema pueden ser programadas de modo
independiente e incluso por diferentes personas.
El programa final queda estructurado en forma de bloque o módulos lo que
hace más sencilla su lectura y mantenimiento.
Bottom Up
El diseño ascendente se refiere a la identificación de aquellos procesos que
necesitan computarizarse conforme vayan apareciendo, su análisis como
sistema y su codificación, o bien, la adquisición de paquetes de software para
satisfacer el problema inmediato.
Cuando la programación se realiza internamente y haciendo un enfoque
ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el
desempeño global, sea fluido. Los problemas de integración entre los
subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta
que la programación alcanza la fecha límite para la integración total del
sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o
paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que
en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se
requiere, cuando se contempla al sistema como una entidad global, adolece de
ciertas limitaciones por haber tomado un enfoque ascendente.
Uno de ellos es la duplicación de esfuerzos para acceder el software y mas aún
al introducir los datos. Otro es, que se introducen al sistema muchos datos
carentes de valor. Un tercero y tal vez el más serio inconveniente del enfoque
ascendente, es que los objetivos globales de la organización no fueron
considerados y en consecuencia no se satisfacen.
La diferencia entre estas dos técnicas de programación se fundamenta en el
resultado que presentan frente a un problema dado.
Imagine una empresa, la cual se compone de varios departamentos
(contabilidad, mercadeo, …), en cada uno de ellos se fueron presentando
problemas a los cuales se le dieron una solución basados en un enfoque
ascendente (Bottom Up): creando programas que satisfacían sólo el problema
que se presentaba.
Cuando la empresa decidió integrar un sistema global para suplir todas las
necesidades de todos los departamentos se dio cuenta que cada una de las
soluciones presentadas no era compatible la una con la otra, no representaba
una globalidad, característica principal de los sistemas.
Como no hubo un previo análisis, diseño de una solución a nivel global en todos
sus departamentos, centralización de información, que son características
propias de un diseño Descendente (Top Down) y características fundamentales
de los sistemas; la empresa no pudo satisfacer su necesidad a nivel global.
La creación de algoritmos es basado sobre la técnica descendente, la cual
brinda el diseño ideal para la solución de un problema.
FASES DE RESOLUCION DE PROBLEMAS CON EL COMPUTADOR
ANALISIS DEL PROBLEMA: Se debe examinar cuidadosamente el problema a fin
de obtener una idea clara lo que se solicita y los datos necesarios para conseguirlo.
DISEÑO DEL ALGORITMO: Se especifican las secuencias de pasos ordenados que
conducen a la solución del problema y puede ser expresado de manera natural.
Todo algoritmo debe ser:
Preciso: Indicando el orden de realización de cada uno de los pasos.
Definido: Si se sigue el algoritmo varias veces proporcionándole los mismos datos, se
deben obtener siempre los mismos resultados.
Finito: Debe tener un número definido de pasos.
ENTRADA PROCESO SALIDA
Elementos de un algoritmo:
Especificaciones de Entrada:
¿Cuáles son los datos de entrada?
¿Cuántos datos se introducirán?
¿Cuáles son los datos de entrada válidos?
Especificaciones de Salida
¿Cuáles son los datos de Salida?
¿Cuántos datos de salida se producirán?
¿Cuál debe ser a precisión de los resultados?
¿Cómo serán los encabezados?
Verificación de un Algoritmo
Se debe realizar una ejecución manual denominada corrida en frío, usando datos
significativos que abarquen valores extremos y medios, y observar su comportamiento
en cada caso.