Sunteți pe pagina 1din 6

SISTEMAS INFORMÁTICOS

PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.

TEMA

Introducción
a la
Programación

1
SISTEMAS INFORMÁTICOS
PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.

1. INTRODUCCIÓN A LA PROGRAMACIÓN
1.1. Introducción
El diseño de aplicaciones ha cambiado drásticamente, en los últimos años y
consecuentemente los estilos de programación, de una programación
secuencial, se pasó de una programación modular, para llegar a una
programación estructurada con muy buenos fundamentos. A partir de la
programación estructurada los esfuerzos se centraron en potenciar la
modularidad y la reutilización de código, lo que condujo a la programación
orientada a objetos. Pero que los estilos hayan cambiado, no significa que el
ultimo elimine a los anteriores, por el contrario se apoyan en ellos.
1.2. Definición de Programación
Es el proceso de creación de un programa de computadora, mediante la
aplicación de procedimientos lógicos, a través de los siguientes pasos:
• El desarrollo lógico del programa para resolver un problema en
particular.
• Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa).
• Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina.
• Prueba y depuración del programa.
• Desarrollo de la documentación.
La Programación también se entiende como la ciencia y arte de diseñar
programas. Ciencia porque utiliza métodos científicos, genera conocimiento y
arte porque interviene creatividad y estilo propio de programación.
1.3. Fases de la Programación
1. Análisis del problema
Podríamos resumir a responderse a las tres siguientes preguntas:
a. ¿Qué entradas se requieren? Tipo y cantidad.
b. ¿Qué salida se desea? Tipo y cantidad.
c. ¿Qué método o proceso (fórmula) se empleará para obtener la salida
deseada?
En esta etapa prácticamente determinamos el QUE es lo que hace el programa
a diseñar.
2. Diseño del Algoritmo
En esta etapa se determina el COMO hace el programa la tarea solicitada. El
diseño del algoritmo es independiente del lenguaje de programación en el que
se va a codificar posteriormente. Para el diseño de un algoritmo tenemos que
utilizar los resultados del análisis del problema y realizar con ello una

2
SISTEMAS INFORMÁTICOS
PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.
estructura modular (diseño modular) que consiste en un conjunto de módulos.
Es decir la solución de un problema complejo se realiza dividiendo el problema
en subproblemas y estos subproblemas en otros de nivel más bajo hasta
conseguir soluciones unitarias. Cada solución unitaria o subprograma o
subproblema se le conoce como MODULO y tiene un punto de entrada y una
salida.
Cualquier programa bien diseñado consta de un programa principal (módulo
de nivel más alto) que llama a subprogramas (módulos de nivel más bajo).
Todo este diseño se le conoce como TOP-DOWN o diseño descendente y la
programación en este diseño se le conoce como programación modular. Por
otra parte, la programación modular nos conduce a la programación
estructurada que significa escribir un programa de acuerdo a las siguientes
reglas:
• El programa tiene un diseño modular.
• Los módulos son diseñados de modo descendente.
• Cada módulo se codifica utilizando las tres estructuras de control
básicas: secuencia, selección y repetición.
Para diseñar un algoritmo se requiere de herramientas, las cuales hay varias;
para nuestro estudio solo estudiaremos 2 de ellas:
Diagramas de flujo (Flowchart) y pseudocódigo. Ud. puede usar cualquiera de
ellas en forma regular. Por su importancia y extensión lo veremos
posteriormente.
3. Codificación de un Programa
Es la escritura en un lenguaje de programación de la representación del
algoritmo desarrollado en la etapa anterior, en cierto modo la codificación es
un proceso mecánico porque el algoritmo ya está hecho y solo queda la
transformación a un lenguaje requerido obteniéndose así el programa fuente.
4. Compilación y ejecución
Hecho el programa fuente debe ser traducido a lenguaje máquina con el
compilador, en este proceso si hay errores del programa se procede a su
corrección para luego obtener así un programa objeto, si a este programa se
hace una fase de montaje o Link, se transforma en un programa ejecutable
5. Verificación y depuración de un programa.
En esta etapa el programa se ejecuta con una amplia variedad de datos de
entrada llamados datos de test o prueba que determina si el programa tiene
errores ("bugs").Si se encuentra errores entonces hay que depurar y corregir.
Los errores frecuentes a conseguir son:
a. Errores de compilación- de sintaxis, de escritura, etc.
b. Errores de ejecución- división por cero, de overflow, etc.
c. Errores lógicos- de lógica interna, de secuencia, etc.

3
SISTEMAS INFORMÁTICOS
PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.
Descripción gráfica

1.4. Heurística de la programación


1.4.1. Concepto de Heurística
En computación, dos objetivos fundamentales son encontrar algoritmos con
buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas.
Una heurística es un algoritmo que abandona uno o ambos objetivos; por
ejemplo, normalmente encuentran buenas soluciones, aunque no hay
pruebas de que la solución no pueda ser arbitrariamente errónea en algunos
casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba
de que siempre será así. Las heurísticas generalmente son usadas cuando no
existe una solución óptima bajo las restricciones dadas (tiempo, espacio,
etc.), o cuando no existe del todo.
1.4.2. El proceso de resolución de un problema

La resolución de problemas es un proceso mental que supone la


conclusión de un proceso más amplio que tiene como pasos previos la
identificación del problema y su modelado. Por problema se entiende un
asunto del que se espera una solución que dista de ser obvia a partir del
planteamiento inicial. Considerada como la más compleja de todas las
funciones intelectuales, la resolución de problemas ha sido definida como un
proceso cognitivo de alto nivel que requiere de la modulación y control de
habilidades más rutinarias o fundamentales.

La resolución de problemas reside principalmente en dos áreas: la


resolución de problemas matemáticos y la resolución de problemas
personales (en los que se presenta algún tipo de obstáculo a su resolución).

Es posible distinguir varias etapas en el proceso de resolución de problemas:

1) Comprensión del problema,


2) Elaboración de un plan,
3) Desarrollo del plan y
4) Evaluación del proceso.

Esto no quiere decir que las etapas se van realizando secuencialmente. Con
frecuencia logramos comprender cabalmente un problema una vez
terminadas las cuatro etapas. Comenzamos con una primera idea acerca de
4
SISTEMAS INFORMÁTICOS
PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.
lo que tenemos y lo que se pide y, conforme avanzamos en su resolución,
nuestra comprensión del problema va modificándose.

Para mejorar nuestras habilidades de resolver problemas, además de


ejercitarnos haciéndolo, puede ser útil reflexionar acerca de cómo lo
hacemos. Es importante que tengamos control sobre nuestras acciones:
¿cuándo consideramos que el problema ha sido comprendido? ¿cuándo
debemos abandonar la estrategia que elegimos al principio e intentar otra?
¿qué mecanismos desarrollamos para verificar que nuestros procedimientos
están exentos de errores? ¿qué criterios debe cumplir la respuesta que
hemos encontrado para ser satisfactoria? etc.

Comprensión del problema

Debemos hacer un esfuerzo por comprender cabalmente el problema,


empezando por su enunciado. Tenemos que asegurarnos, en primer lugar de
entender las palabras que ahí aparecen. Muchas veces, darnos cuenta de lo
que se sobreentiende en el enunciado. Por ejemplo en el problema C-1,
aunque no se dice, se sobrentiende que lograremos apagar los 10 focos
después de repetir la operación de tocar algunos focos.

¿Qué es lo que se pregunta? ¿Qué tipo de respuesta se espera? Por ejemplo,


en el problema I-2 se pide la cantidad de números que cumplen ciertas
condiciones, no se espera que se escriban los números, sino que se diseñe
una forma eficiente de contarlos.

Parte de la comprensión del problema implica evaluar la información que se


ofrece. ¿Es suficiente? ¿Hay información redundante? Por ejemplo el
problema II-2 presenta la construcción de una figura que está
completamente determinada y por lo tanto las condiciones que la
determinan deben aparecer en el método de solución.

Elaboración de un Plan

Elegir una estrategia o una combinación de varias estrategias. Hay una gran
variedad de estrategias que son útiles en la resolución de problemas y en la
medida que nos vayamos familiarizando con ellas, una vez comprendido el
problema, tendremos que escoger la o las estrategias a seguir. Analizar casos
particulares (en el problema C-1 podemos empezar a ver que pasa si en lugar
de 10 focos tenemos 2, 3, 4, etc.). Podemos hacer diagramas o hacer trazos
auxiliares sobre el diagrama del problema (problema C-2).

Desarrollo del Plan

Es muy importante tener cierto control sobre el desarrollo del plan de


manera que evitemos, por ejemplo, perder demasiado tiempo en la
exploración de un camino que no conduce a la solución. Debemos decidir
cuándo abandonar temporalmente el problema para luego volver a él o

5
SISTEMAS INFORMÁTICOS
PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M.
cuándo abandonar una estrategia y aplicar otra. Es preciso controlar el
tiempo que invertimos en cada búsqueda.

Evaluación de la respuesta

Una vez obtenida una respuesta debemos preguntarnos:

• ¿Es una respuesta razonable?


• ¿Utilizamos todas las condiciones necesarias?
• ¿Se puede generar la misma respuesta con otras estrategias?
• ¿Es posible relacionar el problema con alguno semejante que se haya
resuelto previamente?
• ¿Es posible hacer variantes o generalizaciones del problema? En caso
afirmativo, ¿la estrategia utilizada antes sigue siendo aplicable?

S-ar putea să vă placă și