2 Acciones y funciones 2.1 Concepto

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Métodos y parámetros.
Sesión 3 Estructuras Repetitivas
Repaso para la construcción del intérprete 2012
Elementos básicos del Lenguaje
Procedimientos y Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
FUNCIONES EN C.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Unidad 3 Punteros.
Objetivos Específicos de la Unidad
Curso Práctica 3 1 Funciones CONTENIDO Consideraciones sobre funciones Estructura de un programa en C Uso de funciones Paso de parámetros Punteros.
Acciones y funciones Concepto
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
Funciones y procedimientos
Funciones Computación.
Funciones: conceptos básicos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programación I Teoría VI: Recursividad

FUNCIONES Y PROCEDIMIENTOS
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Recurrencia Programación II 3-4 de febrero de 2009.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Ordenación, Clasificación
Tema 6: Clases Antonio J. Sierra.
Fundamentos de Programación
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Tema 3 Entrada y Salida.
Ejercicios de funciones
Semana 5 Subprogramas..
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Programación en Matlab
3.1 Declaración de tablas en C
Algoritmos numéricos. Método de “aproximación sucesiva”: se genera una hipótesis sobre la respuesta y en cada iteración se utiliza dicha hipóte- sis para.
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.

Descomposición Modular. Funciones
Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Material de apoyo Unidad 4 Estructura de datos
Recurrencia Programación II de enero de 2009.
Elementos básicos del lenguaje
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Elementos básicos del lenguaje
Funciones Curso Propedéutico Maestría en Ingeniería Electrónica.
Funciones Definidas por el Programador
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables
Curso de C # República Bolivariana de Venezuela Área de Computación
Términos algoritmo diseñar algoritmo implementar algoritmo
PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Operaciones Algebraicas
Conalep Coacalco Algoritmos Recursivos
Práctica Profesional PHP.
Introducción a los TADs
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

2 Acciones y funciones 2.1 Concepto Una acción o una función es un conjunto de instrucciones agrupadas a las que se da un nombre que permite referirse a ellas globalmente. La utilización de acciones y funciones hace que los programas sean mucho más cortos y sencillos. Suele ser útil construir acciones y funciones para representar frag- mentos de un algoritmo que se usan más de una vez dentro de un mismo algoritmo o que se repiten en distintos algoritmos.

2.2. Acciones y funciones Ejemplo de definición de una función: función distancia(x, y: real): real devuelve (x2 + y2)1/2; ffunción Cuando un algoritmo utiliza una acción o una función decimos que el algoritmo llama (o invoca) a la acción o a la función correspondiente. Tanto las definiciones de las acciones y funciones como las llamadas a éstas en los algoritmos deben especificar sus parámetros. Los parámetros representan los da- tos que manipula el algoritmo implementado por la acción o la función correspon- diente. Ejemplos de llamadas: x := distancia(1,2); y := distancia(3,4);

El orden de los parámetros es importante El orden de los parámetros es importante. Los parámetros utilizados en las llamadas a una función o a una acción deben escribirse en el mismo orden que los parámetros de su definición. f(x,y) = (x2 – y2)1/2 f(3,2) = 51/2 f(2,3) = (-5)1/2 Vamos a distinguir dos tipos de parámetros: Parámetros formales o simplemente parámetros: son los que se utilizan en la definición de una función o de una acción. Parámetros reales o argumentos: son los utilizados en las llamadas a una función o a una acción. En el ejemplo anterior “x” e “y” son parámetros formales, mientras 3 y 2 son parámetros reales. Cada llamada a una función o a una acción tiene unos parámetros reales distintos. z := f(3,2)  los parámetros reales de esta llamada a la función f son 3 y 2. z := f(5,4)  los parámetros reales de esta llamada a la función f son 5 y 4.

Los parámetros pueden clasificarse de acuerdo con otros criterios Los parámetros pueden clasificarse de acuerdo con otros criterios. A continuación introducimos una segunda clasificación: Parámetros de entrada (ent): representan datos que necesita conocer el algo- ritmo. Su valor no se modifica durante la ejecución del algoritmo. Parámetros de salida (sal): representan los resultados del algoritmo. El algo- ritmo modifica su valor durante la ejecución de manera que reflejen los resul- tados obtenidos. Parámetros de entrada y salida (ent/sal): representan datos cuyo valor ini- cial es necesario para el algoritmo, pero cuyo valor queda modificado duran- te la ejecución de éste. Las acciones utilizan parámetros de estos tres tipos: entrada, entrada/salida y salida. Las funciones sólo utilizan parámetros de entrada y se caracterizan porque siempre devuelven un valor.

2.3. Definición de funciones Las funciones se caracterizan porque sólo tienen parámetros de entrada y siempre devuelven un valor. En la definición de las funciones se especifica el tipo de valores que puede tomar cada parámetro y el tipo de valor que devuelve la función. Toda definición de una función contiene al menos una instrucción del tipo “devuelve expresión”. función Mínimo(x, y: entero): entero var r: entero fvar si x < y entonces r := x; si no r := y; fsi devuelve r; ffunción

función Factorial(n: entero): entero var r, i: entero fvar r:=1; si n > 1 entonces para i:=2 hasta n hacer r := r*i; fpara fsi devuelve r; ffunción Ejemplos de llamadas correctas a estas funciones: algoritmo Minimo y tabla de factoriales var x, y, k, n: entero fvar Escribir(“Introduzca dos enteros: “); LeerEntero(x); LeerEntero(y); Escribir(“El mínimo es: “); EscribirEntero(Mínimo(x,y)); Escribir(“Introduzca un entero: “); LeerEntero(n); para k:=0 hasta n hacer Escribir(“El factorial de “); Escribir(k); Escribir(“ es “); Escribir(Factorial(k)); Escribir(‘\n’); falgoritmo

2.4. Definición de acciones En la definición de las acciones se indica para cada parámetro si es de entrada (ent), salida (sal) o entrada/salida (ent/sal), el nombre del parámetro y el tipo de valores que puede tomar. acción saludo( ) Escribir(“Hola. ¿Qué tal?“); facción acción escribir_resultado(ent resultado: real) Escribir(“El resultado es “); EscribirReal(resultado); acción leer_real_positivo(sal x: real) LeerReal(x); mientras ( x < 0 ) hacer fmientras

acción intercambiar(ent/sal x, y: real) var auxiliar: real fvar auxiliar := x; x := y; y := auxiliar; facción Ejemplos de llamadas correctas a estas acciones: algoritmo var x, y: real fvar x=2; y=3; saludo( ); escribir_resultado(x+y); leer_real_positivo(y); Escribir(“x = “); EscribirReal(x); Escribir(“ y = “); EscribirReal(y); intercambiar(x,y); falgoritmo

Ejemplo: Algoritmo que utiliza acciones y funciones. algoritmo Máximo par de una lista de N números positivos. const N: entero = 10 fconst var x, máximo: real; i, contador : entero fvar máximo:=0.0; contador=0; para i:=1 hasta N hacer leer_real_positivo(x); si par(x) entonces contador := contador + 1; máximo := max(máximo,x) fsi fpara si (contador > 0) entonces Escribir(“El máximo número par introducido es “); Escribir(máximo); si no Escribir(“No se ha introducido ningún número par.”); falgoritmo

acción leer_real_positivo(sal número: real) LeerReal(número); mientras número < 0 hacer fmientras facción función max(a, b: real): real var resultado: entero fvar si a > b entonces resultado := a; si no resultado := b; fsi devuelve resultado; ffunción función par(a: real): booleano devuelve ( RealAEntero(a) mod 2 = 0);

Acciones y funciones en C Las acciones y funciones se definen después del programa principal (i.e., main). En C se distinguen dos tipos de parámetros, en lugar de los tres tipos (entrada, salida y entrada-salida) que se consideran en la notación algorítmica. Parámetros que se pasan por valor: la función o acción trabaja con una copia de ellos y no modifica su valor. Parámetros que se pasan por variable o referencia: la acción trabaja con una referencia (tipo&) a la variable original y modifica realmente su valor. Estos parámetros se marcan con el símbolo & detrás del tipo en la primera línea de la definición de una acción y en su prototipo. El prototipo de una acción o función se coloca en la cabecera del programa, antes de la definición de main. Los prototipos de las distintas acciones y funciones que se usan en un programa se escriben en líneas separadas y se recomienda que apa- rezcan en el mismo orden que las definiciones de las acciones y funciones.

Definición de funciones Es necesario preceder la definición de una función con una declaración del tipo de valor que devuelve la función. La expresión “devuelve exp;” que aparece siempre en el cuerpo de una función, se traduce por “return exp;”. Las variables locales se definen en primer lugar, antes que las instrucciones de la función. función Mínimo(x, y: real): real var resultado: real fvar si x < y entonces resultado := x si no resultado := y fsi devuelve resultado ffunción double Minimo(double x, double y) { double resultado; if (x < y) {resultado = x;} else {resultado = y;} return resultado; } El prototipo de una funcción se obtiene sustituyendo “{“ por “;” en la primera línea de su definición: double Minimo(double x, double y);

función Factorial(n: entero): entero var r, i: entero fvar r:=1; si n > 1 entonces para i:=2 hasta n hacer r:=r*i; fpara fsi devuelve r; ffunción int Factorial(int n) { int r=1, i; if (n > 1) { for (i=2; i <= n; i++) { r = r*i; } return r;

#include <stdlib.h> #include <iostream> using namespace std; int factorial(int n); /* Prototipo*/ int main (void) { int i, N; cout << “Este programa escribe la tabla de los N primeros factoriales” << endl; cout << “Introduzca N: “; cin >> N; for (i=0; i<N; i++) { cout << “El factorial de “ << i << “ es “ << factorial(i) << endl; } /* Llamada */ system(“pause”); } int factorial(int n) { /* Definición */ int r=1, i; if (n > 1) { for (i=2; i <= n; i++) { r = r*i; } return r;

Definición de acciones En la definición de una acción se utiliza la palabra clave void para indicar que no devuelve ningún valor. acción escribir_resultado(ent resultado: real) Escribir(“El resultado es “); EscribirReal(resultado); facción void escribir_resultado(double resultado) { cout << “ El resultado es “ << resultado; } Los parámetros que se pasan por variable o referencia se indican utilizando el sím- bolo & después de su tipo en la cabecera de la acción y en su prototipo, pero no en el cuerpo de la acción ni en las llamadas a ésta. acción leer_real_positivo(sal x: real) Escribir(“Numero positivo: ”); Leer(x); mientras ( x < 0 ) hacer fmientras facción void leer_real_positivo(double& x) { cout << “Numero positivo: ”; cin >> x; while (x<0) { cout << “Numero positivo: “; cin << x; }

Los parámetros que se pasan por variable o referencia se indican utilizando el sím- bolo & después de su tipo en la cabecera de la acción y en su prototipo, pero no en el cuerpo de la acción ni en las llamadas a ésta. acción intercambiar(ent/sal x, y: entero) var auxiliar: entero fvar auxiliar := x; x := y; y := auxiliar; facción void intercambiar(int& x, int& y) { int auxiliar; auxiliar = x; x = y; y = auxiliar; } Las variables locales se definen en primer lugar, antes que las instrucciones de la ac- ción. El prototipo de una acción se obtiene sustituyendo “{“ por “;” en la primera línea de su definición: void intercambiar(int& x, int& y);

Si una acción no tiene parámetros se indica colocando la palabra clave void en lugar de éstos en su definición. acción saludo( ) Escribir(“Hola. ¿Qué tal?“); facción void hello(void) { cout << “Hola!”; }

Utilización de las acciones y funciones Las funciones o acciones pueden ser utilizadas en la función principal (i.e., main) de un programa o en otras acciones y funciones definidas dentro del programa siempre que sus prototipos se hayan declarado antes de la definición de main. Cuando esto ocurre se dice que existe una llamada a la función o acción correspon- diente. Una llamada a una función o acción simplemente contiene el nombre de la función o acción seguido de los parámetros reales a los que se quiere aplicar. Ilustramos la utilización de acciones y funciones con una implementación en C del algoritmo que calcula el máximo número par de una lista de N números positivos. #include <stdlib.h> #include <iostream> #define N 10 using namespace std; /* Prototipos de las funciones y acciones utilizadas en el programa. */ void leer_real_positivo(double& x); bool par(double x); double max(double x, double y);

int main(void) { double numero, maximo=0.0; int i, contador=0; for (i=1; i <= N; i++) { leer_real_positivo(numero); if ( par(numero) ) { contador++; maximo = max(maximo, numero); } if (contador > 0) { cout << “El maximo numero par introducido es “ << maximo << endl; } else { cout << “No se ha introducido ningún número par.” << endl; system(“pause”);

void leer_real_positivo(double& x) { cout << endl << “Introduzca un numero positivo: “; cin >> x; while ( x<0 ) { } bool par(double x) { return ( (int)x % 2 == 0 ); double max(double x, double y) { double resultado; if ( x>y ) { resultado=x; } else { resultado=y; return resultado;