Está en la página 1de 7

APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 1 de 7

INTRODUCCIÓN

Metodología de la Programación:

Cuando una persona utiliza un ordenador lo hace con el objetivo de intentar resolver un problema (mirar su email, redactar
un documento, registrar unas ventas, etc.). Un programador escribe los códigos necesarios en un lenguaje de
programación concreto para poder construir un programa que resuelva una tarea dada. Dicho programador deberá seguir
los siguientes pasos:

1. Deberá definir cuál es el problema real que se desea resolver. Una vez que ha delimitado el problema deberá
proceder a analizarlo.
2. A continuación, deberá diseñar el algoritmo o secuencia de pasos que debe seguir con la finalidad de resolver el
problema.
3. Después deberá transformar esa secuencia de pasos en un programa con la finalidad de utilizar el ordenador
para resolver el problema.
4. Por último, resulta completamente necesario que proceda a ejecutar y validar la solución encontrada.

Algoritmos:

Un algoritmo es la definición de una secuencia de pasos que se deben seguir con el objeto de solucionar un problema
específico. Es el paso inmediatamente posterior a la descripción y análisis del problema, y el paso anterior a la codificación
de la solución. Un algoritmo podría definirse también como la representación de las acciones y operaciones detalladas
necesarias para la resolución de un problema dado.

Todo algoritmo debe:

1. Ser preciso: en cuanto al orden de las operaciones.


2. Ser finito: en cuanto al número de operaciones; es decir, debe finalizar en algún momento.
3. Ser correcto: es decir, debe conducir a la solución del problema.
4. Estar definido: si seguimos un algoritmo 2 veces con las mismas condiciones debemos obtener el mismo
resultado.

Representación de Algoritmos:

Las formas más usadas para representar algoritmos son: los diagramas de flujo y el pseudocódigo.

Diagramas de flujo: Son un conjunto de símbolos que detallan los pasos del algoritmo unidos por flechas o líneas de flujo,
que muestran la secuencia en la que se deben ejecutar los pasos. Hay 3 tipos:

1. Diagrama de sistema o de configuración u “organigramas”: Se utilizan para describir el flujo de información


que se realiza entre los distintos soportes físicos de un sistema informático. Suelen representar en su parte
central el proceso o programa que se describe, el cual estará rodeado, en su parte superior por los soportes de
entrada que utilice, en su parte inferior por los soportes de salida, y a sus lados se representarán los soportes de
entrada y salida. Algunos de los símbolos que más se utilizan son:
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 2 de 7

Impresora Pantalla
Teclado Soporte genérico Disco magnético
de entrada

2. Diagrama de macroprocesos o bloques: Se utilizan para representar la estructura de los bloques en los que se
ha dividido el problema a resolver.
3. Diagrama de detalle u “ordinograma”: Detallan la secuencia de instrucciones que debe realizar el ordenador
para resolver el problema.

Pseudocódigo: Notación mediante la cual podemos escribir la solución de un problema en forma de algoritmo, usando
palabras y frases del lenguaje natural sujetas a determinadas reglas.

Un ejemplo de ordinograma podría ser el siguiente, donde se detallan las instrucciones que deben realizarse para solicitar
un número por teclado al usuario e informarle de si el número introducido es cero o no.

Inicio

Leer Número

Número=0

Sí No

Mostrar “Es cero” Mostrar “No es cero”

Fin

En pseudocódigo, la solución al mismo problema sería:

PROGRAMA DetectarCero
OBJETOS: Número: variable numérica de tipo entero.
ALGORITMO:
LEER Número
SI Número=0 ENTONCES
ESCRIBIR “Es cero”
SI NO
ESCRIBIR “No es cero”
FIN SI
FIN PROGRAMA.
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 3 de 7

Ciclo de Vida de una Aplicación Informática:

El desarrollo de un sistema de información contempla una serie de etapas bien diferenciadas, ese conjunto ordenado de
etapas es conocido normalmente como el ciclo de vida de un sistema informático.

Las etapas que suelen realizarse para el desarrollo del proyecto informático son:

1. Identificación de las necesidades.


2. Análisis de requerimientos.
3. Estudio de viabilidad.
4. Diseño externo.
5. Diseño interno.
6. Programación.
7. Pruebas del sistema.
8. Implantación.
9. Mantenimiento.

Programación:

La programación es la construcción de los programas informáticos mediante la codificación de instrucciones de un


lenguaje de programación.

El analista de sistemas concierta una entrevista con el responsable de la empresa que necesita el programa a desarrollar
y con las personas que utilizarán el programa. Comienza el diseño en papel de un futuro proyecto informático que
solucionará problemas manuales y económicos. En el papel se prepara el algoritmo de funcionamiento interno del
programa, un diseño de pantallas que será la interfaz visual con el usuario, y la salida utilizando documentos mercantiles o
de cualquier tipo que la empresa necesite.

Toda esta información se redacta detalladamente para que el programador pueda entenderla fácilmente y sin dudas, y
pueda desarrollar el programa informático final en un lenguaje de programación estructurado.

Documentación de los Programas:

El documentar un programa es imprescindible, no basta con tener un programa correcto, debe de ir acompañado de una
documentación que explique cómo se realizó y por qué se hizo de esa manera. Esta información permite entender el
significado de cada parte del programa por cualquier programador, y por cualquier persona sin conocimientos de
programación.

Incluso para el propio programador resulta útil la documentación, ya que al cabo de un tiempo puede examinar su
programa entendiendo a través de los comentarios junto al código la razón de por qué lo realizó de esa forma. Aún es más
necesario cuando otro programador debe realizar modificaciones en el código, pues si no está documentado, tardará
mucho más tiempo en entender el código que desarrolló el programador original y en modificarlo; además, sin comentarios
en el código, la posibilidad de nuevos errores durante las modificaciones se incrementa radicalmente.

Normalmente un manual de usuario y un manual del programador componen la documentación completa de un


programa. El manual de usuario contiene toda la información para poder utilizar el programa: requerimientos, instalación,
configuración, y un tutorial general de uso del programa (pantallas, teclas, funciones, etc…). El manual del programador
contiene la información técnica de cómo internamente se codificó el programa, incluyendo toda la documentación utilizada
en las fases de diseño, programación y pruebas (el código fuente, los diagramas de flujo, etc…).
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 4 de 7

Lenguajes de Programación:

Lamentablemente, el ordenador entiende un lenguaje binario que consta de 0 y 1, llamados bits. Este lenguaje es muy
complicado para las personas ya que resultaba muy lenta la traducción del código binario manualmente, y era muy fácil
equivocarse. Antes, los programadores introducían los datos y programas en forma de largas ristras de unos y ceros con
ayuda de unos interruptores que controlaban la memoria del ordenador. Necesariamente se sustituyó el trabajo directo de
programación con bits por unos lenguajes de programación más fáciles de aprender y utilizar, más cercanos al lenguaje
natural, que además reducían la posibilidad de cometer errores en la codificación.

Un lenguaje de programación es una notación para escribir programas informáticos, a través de los cuales podemos
comunicarnos con el hardware del equipo y dar así las órdenes adecuadas para la realización de un determinado proceso.

Los tipos de lenguajes de programación que existen según la clase de aplicaciones que pueden desarrollarse con ellos
son:

1. Lenguajes de programación de propósito general, para todo tipo de aplicaciones (C,C#, Basic, …)
2. Lenguajes de programación de aplicación particular, sobre algún campo en concreto (Fortran: para
aplicaciones científicas y análisis numérico, …).

Los tipos de lenguajes de programación que existen según sean más cercanos al código binario o al lenguaje natural son:

1. Lenguajes de programación de bajo nivel: Únicamente se encuentra aquí el lenguaje máquina o código
máquina, compuesto por bits que entiende directamente el ordenador.

Ejemplo: 0000 0011 1001 0001


1110 1101 0000 0000
0001 1100 0011 1010
1111 1101 1101 1000

2. Lenguajes de programación de nivel intermedio: Únicamente se encuentra aquí el lenguaje ensamblador, que
es una mera traducción a palabras clave de los bits del ordenador para que pueda entenderse algo mejor por los
programadores. El lenguaje ensamblador fue el primer intento de sustituir el lenguaje máquina por otro más
parecido al lenguaje hablado, aún así sigue siendo complejo para el usuario medio. En este lenguaje, cada
instrucción equivale a una instrucción en lenguaje máquina, utilizando para su escritura palabras con símbolos
nemotécnicos en lugar de cadenas de bits.

Este lenguaje presenta la mayoría de los inconvenientes del lenguaje máquina:

9 El ensamblador depende del procesador del ordenador, por lo que difieren de un ordenador a otro.
9 Sus instrucciones son demasiado elementales.
9 Su programación obliga a conocer perfectamente el hardware del equipo y su funcionamiento interno.

Sus ventajas son: mínima ocupación en memoria, y ejecución muy rápida, comparándolos con los programas
escritos en lenguajes de alto nivel.

Ejemplo: INICIO: ADD B,1


MOV A,B
CMP A,E
JE FIN
JMP INICIO
FIN: END
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 5 de 7
3. Lenguajes de programación de alto nivel: Aquí están todos los demás lenguajes (C, C#, Java, C++, Basic,
etc…), que facilitan la escritura de los programas y el entendimiento de los mismos debido a que son más
cercanos al lenguaje natural de las personas. Se inventaron para evitar la complejidad en la programación con el
lenguaje ensamblador, a mediados de los años 50, entre los que destacaban Fortran, Cobol y Algol 60.

Las ventajas respecto a los anteriores son:

9 Independencia de la máquina, pudiendo utilizar el mismo código fuente en otros ordenadores, siempre que
esos ordenadores dispongan del compilador o intérprete para ese lenguaje, para así obtener el programa
ejecutable en lenguaje binario de la máquina que se trate.
9 Guardar cierta similitud con el lenguaje humano, generalmente al inglés, por lo que el desarrollo de los
códigos resulta tremendamente más fácil.

Existen muchos lenguajes de alto nivel, y de algunos de ellos, se desarrollaron distintas versiones o dialectos con
ciertas modificaciones. Los programas generados a partir de código escrito en lenguajes de alto nivel ocupan más
memoria y son más lentos que los de bajo nivel o de nivel intermedio.

Ejemplo: // Programa en C que muestra Hola mundo en pantalla


#include<stdio.h>
int main()
{
printf(“Hola mundo”);
return(0);
}

Programas Traductores:

Puesto que el ordenador sólo comprende el lenguaje máquina y no puede ejecutar directamente código en otros lenguajes
de programación, deberá traducirse dicha codificación a lenguaje máquina en un programa ejecutable binario resultado, a
través de programas traductores.

Hay 3 tipos de programas traductores de lenguaje simbólico a lenguaje binario:

1. Ensamblador: Este programa traductor traduce un fichero con código en lenguaje ensamblador a lenguaje
máquina generando el fichero con el código binario.
2. Compilador: Este programa traductor traduce un fichero con código en lenguaje de programación de alto nivel a
lenguaje máquina generando el fichero con el código binario.
3. Intérprete: Este programa traductor traduce y ejecuta directamente las instrucciones escritas en un lenguaje
distinto del lenguaje máquina al lenguaje máquina, verificando previamente su correcta sintaxis y su significado. El
intérprete no genera ningún fichero con el código binario, pues realiza la traducción y ejecuta las instrucciones
sobre la marcha, una a una.

Los programas traductores, además de obtener la traducción a lenguaje máquina, verifican el código fuente para
comprobar su correcta sintaxis, identificando errores y generando mensajes de diagnóstico, para así ayudar al
programador a corregir las anomalías encontradas por el traductor.

El programa traductor debe ser eficiente, no debe tardar demasiado en traducir un código fuente, ni ocupar demasiada
memoria principal. El intérprete analiza sintácticamente cada instrucción antes de traducirla a lenguaje máquina, y luego la
ejecuta si no encontró errores, y así con las siguientes instrucciones. El compilador primero revisa sintácticamente todo el
código completo, todas las instrucciones, y si no hubo errores, genera un archivo ejecutable binario depurado y optimizado
para la ejecución. Por ello, la ejecución de un código interpretado es más lenta que la de un programa compilado.
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 6 de 7

Técnicas de Programación:

Programación Convencional: Ante cualquier problema debemos seguir los siguientes pasos:

1. Análisis del problema (requerimientos y viabilidad).


2. Diseño del algoritmo (ordinograma y/o pseudocódigo).
3. Resolución a través del ordenador programando una solución informática, buscando en el código: concreción,
legibilidad, depuración de errores y facilidad en las posibles modificaciones posteriores.

Se observó que la programación convencional lleva implícita poca claridad, por tanto, falta de fiabilidad; si era grande el
proyecto, el mantenimiento posterior se complicaba terriblemente.

Programación Estructurada: Se basa en el Teorema de la Programación Estructurada, de Bohn y Jacopini (1966), que
dice que “Todo programa propio puede ser escrito utilizando nada más que 3 tipos de estructuras de control: la secuencial,
la condicional y la repetitiva”. Entendiendo por programa propio como aquel que tiene un único punto de entrada y un único
punto de salida (un único Inicio y un único Fin en un ordinograma).

Estructura de control Estructura de control Estructura de control


secuencial condicional repetitiva

Programación Modular: Se trata de dividir el programa en “módulos”, es decir, en bloques separados, para dividir el
problema grande en varios problemas más pequeños y más fáciles de resolver. Los programas suelen componerse de
varias partes diferenciadas, donde cada una de ellas puede ser estudiada y desarrollada de forma independiente.
Básicamente se sigue el dicho de “divide y vencerás”.

Las ventajas de la programación modular son:

1. Programas fáciles de escribir y depurar.


2. Evita repeticiones del mismo código.

Fases de la programación modular:

1. Estudio del problema en profundidad y su desglose en partes diferenciadas.


2. Confección de los algoritmos.
3. Codificación de los módulos independientes por separado.
4. Pruebas de cada módulo.
5. Pruebas del programa completo.

La programación modular se basa en el diseño descendente (top-down), que contempla un planteamiento desde lo
general a lo particular del problema. Según esto, el problema general se va descomponiendo en partes diferenciadas más
fáciles de resolver en cada nivel, poco a poco, concretando más en cada nivel, hasta llegar a un nivel en el que todas las
partes son fácilmente desarrollables y depurables.
APUNTES DEL MÓDULO PROFESIONAL: FUNDAMENTOS DE PROGRAMACIÓN Página 7 de 7

Programa de Facturación

Gestión de Gestión de Gestión de


Artículos Clientes Proveedores

Almacén Compras de Ventas de


Artículos Artículos

Albaranes Facturas