1. Conceptos generales.
1.Conceptos generales.
1.1.Introducción.1.2.Solución de problemas.
1.3.Lenguajes de programación.
1.4.Metodología de la programación.
1.5.Elementos en los programas.
1.1.Introducción.
Un ordenador es una máquina de procesamiento de información. Dispone de rapidez, precisión y memoria para ejecutar programas elaborados por el programador, pero carece de inteligencia.(El tonto rápido).
Un programa es un conjunto de instrucciones que el ordenador debe ejecutar para realizar la tarea prevista por el programador.
1.2.Solución de problemas.
En el proceso de resolución de un problema de programación se distinguen las siguientes fases:
- Análisis detallado del problema.
- Descomposición de la solución en tareas elementales o diseño del algoritmo.
- Codificación del algoritmo.
- Obtención del programa ejecutable.
- Prueba, verificación y depuración.
- Documentación.
1.2.1.Análisis del problema.
Al analizar el problema deben considerarse los siguientes factores:
- El equipo que se va a utilizar.
- Los datos de entrada.
- El tratamiento que debe realizarse con los datos.
- Los resultados de salida.
- La posibilidad de descomponer el problema en módulos más pequeños.
1.2.2.Diseño del algoritmo.
Es una formula para resolver un problema. Conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Existen muchas formas de resolver un problema, hay que coger la más efectiva. Características:
- Tiene que ser preciso.
- Tiene que estar bien definido.
- Tiene que ser finito.
El algoritmo se puede expresar de forma gráfica o mediante pseudocódigo (Parecido a los lenguajes de programación de alto nivel).
1.2.3.Codificación del algoritmo.
Se trata de la traducción del algoritmo al lenguaje de programación elegido.
1.2.4.Obtención del programa.
Se realiza en tres fases:
- Edición. En esta fase se crea el código fuente. Se trata de un fichero de texto escrito en el lenguaje de programación elegido
- Compilación. Sirve para obtener el programa en lenguaje máquina (Instrucciones que la máquina entiende). El resultado son los ficheros de código objeto o código máquina (depende del Hardware). La compilación se realiza con programas compiladores o intérpretes, según el lenguaje elegido.
- Montaje o linkado. El montaje o linkado (enlazado) es un proceso de enlace entre las distintas partes que componen el programa y la adecuación del código para obtener un programa ejecutable para el sistema operativo en el que estamos trabajando. (Depende del sistema operativo).
1.2.5.Depuración del programa.
Es la fase en la cual debe estudiarse el comportamiento del programa en todas las situaciones límite que puedan plantearse, retocando el código y el algoritmo para conseguir un resultado óptimo.
1.2.6.Documentación.
Un programa debe tener dos niveles de documentación:
- Documentación Interna: Comentarios del código fuente incluidos en el mismo fichero, que clarifiquen el funcionamiento del programa para que pueda ser comprendido por cualquier programador.
- Documentación externa: No forma parte del programa y se suele suministrar en papel. Debe incluir la descripción del problema, de los datos de entrada y salida, del algoritmo, del programa completo y los manuales de usuario y de mantenimiento.
1.3.Lenguajes de programación.
1.3.1.Lenguajes interpretados.
Se ejecuta el código fuente directamente por medio de un intérprete, que es un programa que realiza el siguiente proceso:
- Carga el código fuente (fichero de texto).
- Lee el código de una línea.
- Convierte al código en código máquina.
- Envía las instrucciones al procesador.
- Repite desde el punto 2 hasta el final del programa.
En este caso el código fuente es independiente del sistema operativo.
Los lenguajes interpretados más utilizados actualmente son los diversos script. (Java, c, perl, delfi).
1.3.2.Lenguajes compilados.
Son aquellos que permiten obtener un programa ejecutable y autónomo a partir del código fuente, que puede ser ejecutado en cualquier máquina bajo el sistema operativo para el que se compiló.
El proceso anterior se realiza por medio de un programa que se llama compilador y que realiza las siguientes tareas:
- Carga el código fuente (fichero de texto).
- raduce el código fuente a código máquina /código objeto).
- Enlaza (Linkado) el código objeto con las librerías y funciones necesarias y crea el ejecutable.
1.4.Metodología de la programación.
La calidad de un programa está determinada por las siguientes características:
- Legibilidad. Facilidad para ser entendido por cualquier programador.
- Portabilidad. Capacidad para compilarse o interpretarse en distintas máquinas, e incluso para ser traducido a otros lenguajes.
- Fiabilidad. Facilidad de recuperación del control tras errores de ejecución o uso inadecuado.
- Eficiencia. Grado de aprovechamiento de los recursos.
La metodología de programación describe las técnicas y métodos para elaborar programas que reúnan los máximos requisitos de calidad. Para ello es necesario que el programa pueda mantenerse, modificarse o actualizarse fácilmente por distintos programadores. Para conseguirlo se han definido dos criterios de programación: La programación modular y la programación estructurada. Los dos criterios son complementarios y no excluyentes.
1.4.1.Programación modular.
Consiste en descomponer el programa en partes claramente diferenciadas, llamadas módulos, que pueden ser tratados de forma independiente. Son bloques de instrucciones con nombres diferenciados que pueden ser llamados varias veces desde el módulo principal.
Los módulos pueden estar compuestos, a su vez, por otros módulos o realizar llamadas a otros módulos.
Los criterios para la división de un programa en módulos dependen del programador, aunque es importante que cumplan los siguientes requisitos:
- Tendrán un único punto de entrada y otro de salida.
- El módulo principal será reducido, para que se aprecie claramente el algoritmo.
- Deben ser independientes entre sí.
- Deben resolver completamente partes diferenciadas y definidas del problema.
1.4.2.Programación estructurada.
Es la técnica que permite realizar cualquier programa que disponga de un único punto de entrada y uno solo de salida mediante el empleo de tres tipos de estructuras de control:Secuenciales, condicionales y repetitivas.
- Estructura secuencial: Se agrupan las operaciones o sentencias de forma consecutiva.
- Estructura condicional: Se permite la selección entre dos o más grupos de operaciones dependiendo del cumplimiento de una condición.
- Estructura repetitiva: Permite ejecutar repetidamente una o varias sentencias un número determinado de veces dependiendo de una condición.
1.5.Elementos en los programas.
Cuando se escribe el programa se utilizan unos elementos cuyas características están determinadas por el lenguaje utilizado. Entre estos elementos cabe destacar los identificadores, las constantes, las variables, los operadores, las expresiones y las sentencias.
1.5.1.Identificadores.
Los identificadores o etiquetas son palabras escogidas por el programador para designar los elementos de un programa susceptibles de ser nombrados (como: variables, constantes, subprogramas, etc.). Están formados por caracteres alfabéticos y dígitos que empiezan por un carácter alfabético. Los identificadores deben que ser significativos.
1.5.2.Datos.
Constituyen la información que será procesada por el programa. Los datos pueden ser simples o estructurados.
- Simples: Aquellos que no pueden descomponerse en otros más sencillos.
- Carácter. Es la unidad de información más pequeña, pueden ser alfabéticos (A...Z, a...z), numéricos (0...9) y especiales (=, *, +, -, etc.).
- Numéricos: Representan cantidades y pueden ser de tipo entero o real.
- Lógicos o booleanos: Solo pueden tomar dos valores (1 ó 0, Cierto ó falso).
- Estructurados: Son conjuntos de datos simples agrupados como una única entidad con un único identificador.
- Cadenas de caracteres: Conjunto de caracteres alfabéticos, numéricos y especiales.
1.5.3.Constantes.
Tienen un valor fijo que se le da cuando se define la constante y que ya no puede ser modificado durante la ejecución.
1.5.4.Variables.
El valor puede cambiar durante la ejecución del algoritmo, pero nunca varia su nombre y su tipo. Las características de cada variable son: tipo de dato(entero, carácter, booleano, etc.), identificador, contenido y memoria ocupada.
Dirección de memoria -> | 12345 | 12346 | 12347 | 12348 | 12349 | 12350 |
Contenido de la variable | 8 | 28 | 921427011 |
|||
Nombre de las Variables | Nota1 | Alumnos | Tléfono |
1.5.5.Operadores.
Son símbolos que representan las distintas operaciones que se pueden realizar con los datos. Su cantidad y símbolo dependen del lenguaje utilizado. De acuerdo con su tipo se pueden clasificar en:
- Aritméticos: Suma, resta, multiplicación, división, potenciación, división entera, módulo o resto de división entera...
- Alfanuméricos: Concatenación.
- De asignación: Para establecer nuevos valores de las variables.
- Relacionales: Que permiten realizar comparaciones.
- Lógicos: AND, OR, OR exclusiva, NOT...
1.5.6.Expresiones.
Es la combinación de operadores y datos cuyo resultado es un valor. Es importante el orden de evaluación de los operadores y los paréntesis que es similar a los convenios matemáticos habituales.
1.5.7.Sentencias o instrucciones.
Son las acciones que forman el programa y se forman con expresiones válidas en el lenguaje de programación elegido. Las sentencias pueden ser:
- De asignación: Dar valor a las variables.
- De entrada: Recoge datos de un dispositivo de entrada (teclado, archivo, puerto, etc.) y asigna su valor a una variable.
- De salida: Coloca datos del programa en un dispositivo de salida (pantalla, archivo, impresora, etc.)
- Condicionales: Para codificar las tomas de decisiones del algoritmo.
- Repetitivas: Definidas para programar la repetición de bloques un determinado número de veces.