Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos de la programación.
o CORRECCIÓN. Un programa debe realizar el tratamiento esperado, y no producir resultados
erróneos
o CLARIDAD. Prácticamente todos los programas han de ser modificados después de haber sido
desarrollados inicialmente. Es fundamental que sus descripciones sean claras y fácilmente
inteligibles por otras personas.
o EFICIENCIA. Una tarea de tratamiento de información puede ser programada de muy diferentes
maneras sobre un computador determinado, es decir, habrá muchos programas distintos que
producirán los resultados deseados.
Compiladores e Intérpretes.
Compilador. Programa que traduce programas de un lenguaje de programación simbólico a código de la máquina.
La representación del programa en lenguaje simbólico se le llama programa fuente, y su representación en código 1
máquina se le llama programa objeto.
Intérprete . Programa que analiza directamente la descripción simbólica del programa fuente y realiza las
operaciones oportunas. Simula una máquina virtual. Es más sencillo, pero más lento.
Lenguaje de programación. Conjunto de símbolos reglas para crear programas
Programación. En general se encarga de desarrollar programas a pequeña escala.
Ingeniería del software . Conjunto de etapas necesarias para desarrollar programas a gran escala y de gran
calidad. Etapas:
- Análisis
- Diseño
- Codificación
- Pruebas y Mantenimiento
Modelos abstractos de cómputo . Conceptos comunes de un conjunto de lenguajes de programación basados
en elementos computacionales simbólicos. Existen diversos modelos abstractos de cómputo:
- Modelo funcional. Se basa casi exclusivamente en el empleo de funciones
- Modelo de flujo de datos . Un programa corresponde a una red de operadores interconectados entre sí.
Cada operador lo representaremos gráficamente mediante un cuadro con entradas y salidas, y dentro de él el
símbolo de la operación que realiza.
- Modelo imperativo. Responde a la estructura interna habitual de un computador, que se denomina
arquitectura Von Neumann. Deriva del hecho de que un programa aparece como una lista de órdenes a
cumplir.
Elementos de la programación imperativa. El más extendido, identifica el concepto de programa con el
VISTA PREVIA
de secuencia o lista de órdenes. Las órdenes o instrucciones del programa definen determinadas acciones que deben
ser realizadas por el procesador.
- Acciones primitivas: Mostrando 6 páginas
son las acciones de un total
que son directamente depor22el procesador
realizables
- Acciones compuestas . Abstracción equivalente a un fragmento del programa más o menos largo que
realiza una operación bien definida.
El flujo de control durante la ejecución del programa se refleja mediante líneas o vías que van de un elemento a otro.
Las acciones tienen una sola vía de entrada o comienzo y una de terminación o salida. Las condiciones tienen una
vía de entrada y dos vías de salida (SI o NO).
La programación estructurada recomienda descomponer las acciones usando las estructuras más sencillas posibles,
que son:
- SECUENCIA <-> Tupla o registro. Utilizar una secuencia de acciones o partes que se ejecutan de forma
sucesiva
- SELECCIÓN <-> Unión. Consiste en ejecutar una acción u otra, dependiendo de una determinada
condición
- ITERACIÓN <-> Formación (array). Repetición de una acción mientras se cumple una determinada
condición. VISTA PREVIA
Mostrando
Expresiones condicionales 6 páginas de un total de 22
Cada operador tiene una prioridad determinada. Si no se utiliza paréntesis, el orden de evaluación es el siguiente:
1 Operadores unarios !, -
2 Operadores multiplicativos *, /, %
3 Operadores aditivos +, -
4 Comparación matemática >, >=, <, <=
5 Comparación de igualdad ==, !=
6 Conjunción &&
7 Disyunción ||
5
Tema 7. Funciones y Procedimientos
Concepto de subprograma
Es una parte de un programa. Como mecanismo de programación, un subprograma es una parte de un programa que
se desarrolla por separado y se utiliza invocándolo mediante un nombre simbólico. La técnica de refinamientos
sucesivos sugiere descomponer las operaciones complejas de un programa en otras más simples.
Funciones
Una función es un tipo de subprograma que calcula como resultado un valor único a partir de otros valores dados
como argumentos.
TipoResultado NomFuncion (Tipo1 arg1, Tipo2 arg2, …) float AreaTriangulo (float base, float altura).
Estas cabeceras representan la interfaz entre la definición de la función y su utilización posterior. Los argumentos
que aparecen en la cabecera son los argumentos formales. La definición completa de una función se compone de una
cabecera seguida de un cuerpo de función que tiene la misma estructura que un bloque de programa completo. En la
parte declarativa se pueden declarar constantes y variables locales que sólo son visibles en el cuerpo de la función.
float AreaTriangulo (float base, float altura) { return (base*altura)/2.0; }
return expresión; provoca la finalización inmediata de la ejecución de la función. Se puede insertar en cualquier
punto de la parte ejecutable de la función, además es posible utilizar más de una sentencia return en una misma
función.
Procedimientos
VISTA PREVIA
Es una forma de subprograma que agrupa una sentencia o grupo de sentencias que realizan una acción, y permite
darles un nombre por el que se las pueden identificar posteriormente. Se pueden parametrizar mediante una serie de
argumentos acciones parametrizadas.
Mostrando 6 páginas de un total de 22
void NombreProcedimiento (Tipo1 arg1, Tipo2 arg2,… )
La sentencia return se escribe ahora simplemente así, sin ninguna expresión que la acompañe. Sirve simplemente
para terminar la ejecución del procedimiento en ese momento y volver al punto a donde se invocó.
Paso de argumentos
Existen dos formas de realizar esta comunicación, que se denominan paso de argumentos por valor y paso de
argumentos por referencia
Paso de argumentos por valor. Se envía una copia del valor que tiene cada uno de los parámetros actuales en el
momento de realizar una llamada. En este caso el módulo invocado no puede modificar el valor original de las
variables actuales.
void Procedimiento (TipoAlgo MiArgumento) {…}: MiArgumento es un argumento por valor o referencia
según el tipo TipoAlgo
En el paso de argumentos por valor se pueden utilizar: variables, constantes o expresiones.
Un procedimiento es puro si: no usa variables externas ni llama a otros subprogramas que no sean puros.
Medida de complejidad O: evalúa de un programa el tiempo que tarda en ejecutarse
Dentro de un subprograma, un argumento: no puede cambiar de tipo
Paso de argumentos por referencia. El módulo invocado, en lugar de trabajar con los valores de las variables
actuales, trabaja sobre las direcciones de las variables locales. Por tanto, el módulo invocado puede modificar los
valores de las variables actuales del módulo que hace la llamada utilizando el símbolo &