La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Funciones Definidas por el Programador

Presentaciones similares


Presentación del tema: "Funciones Definidas por el Programador"— Transcripción de la presentación:

1 Funciones Definidas por el Programador
Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

2 Funciones Definidas por el Programador
Nuestra primera función!!!!! void main ( ) { cout << “Yo soy una funcion y mi nombre es main!!” << endl; } Un programa en C++ consta de una o varias funciones. Un programa siempre debe contener la función main. La ejecución de un programa siempre comienza por la función main.

3 Definición de una Función
tipo_resultado función nombre_función (lista_parámetros_formales) Declaración_variables_locales Inicio Conjunto de sentencias devolver expresión fin_función El tipo del resultado (tipo de la función), la lista de parámetros formales, la declaración de variables locales y la sentencia devolver son opcionales. Una definición de una función no puede estar incluida en otra.

4 Sentencia Devolver Sentencia devolver expresión devuelve el valor del resultado de la ejecución de la función. El tipo de esta expresión debe ser el mismo que el tipo de la función definida en tipo_resultado. Si la función no tiene asociado un tipo_resultado entonces se omite la sentencia devolver. En otros lenguajes de programación a este tipo de funciones se les llama “procedimiento”.

5 Recordar!!!! Cuando se llama a una función desde alguna parte específica del programa, se ejecutan sus sentencias. Una vez ejecutada la función completa, se devuelve el control a la parte del programa desde donde se realizó la llamada. Generalmente una función devuelve un sólo valor, aunque se pueden escribir funciones que no devuelven ningún valor o que devuelven varios valores.

6 Definición de una Función: Ejemplo 1
Calcular el cuadrado de un número entero entero función cuadrado (entero e) Inicio devolver e * e fin_función tipo_resultado: entero nombre_función: cuadrado lista_parámetros_formales: e de tipo entero (parámetro de entrada) Declaración_variables_locales: No hay variables locales devolver: valor de e * e

7 Definición de una Función: Ejemplo 2
Dados tres números enteros, determinar cuál es el mayor entero función mayor (entero x, entero y, entero z) entero max Inicio max = x Si (y > max) entonces max = y fin_si Si (z > max) max = z devolver max fin_función tipo_resultado: entero nombre_función: mayor lista_parámetros_formales: x de tipo entero, y de tipo entero y z de tipo entero(parámetros de entrada) Declaración_variables_locales: max de tipo entero devolver: valor de max

8 Llamada a una Función Si la función es de un tipo determinado
<var> = <nombre_función> (<lista de parámetros actuales>) x = mayor(a, b + 1, 2) Si la función no tiene tipo asociado <nombre_función> (<lista de parámetros actuales>) ordenar(x, y, z1) Dentro de una expresión <var> = E(x + <nombre_función>(<lista de parámetros actuales>)) y = mayor(a + factorial(b), b, c)

9 Llamada a una Función que no tiene Tipo Asociado
MiFuncion () 0. Inicio …… n. fin_función 0. Inicio 1. MiFuncion() 2. OtraFuncion() 3. Fin OtraFuncion () 0. Inicio …… m. fin_función

10 Llamadas a Funciones: Ejemplos
F = factorial(5); // Funcion de un tipo determinado F = factorial(a)/factorial(a - b); // Funcion de un tipo // determinado if (esBisiesto(anyo) == cierto) // Dentro de una condición MiFuncion(); // Funcion que no tiene tipo asociado

11 Llamadas a Funciones: Ejemplo 1
Calcular x2 + y2/(x-y)2 entero función cuadrado (entero e) Inicio devolver e * e fin_función 0. Inicio 1. Escribir (“Introduzca los valores de x y y”) 2. Leer (x, y) 3. Resultado = (cuadrado(x) + cuadrado(y))/cuadrado(x - y) 4. Escribir (“Resultado =”, Resultado) 5. Fin

12 Llamadas a Funciones: Ejemplo 1
Calcular x2 + y2/(x-y)2 Para x = 5, y = 4 Resultado = (cuadrado(5) + cuadrado(4))/cuadrado(1) 1) entero cuadrado (entero e) devolver 5 * 5 = 25 Resultado = (25 + cuadrado(4))/cuadrado(1) 2) entero cuadrado (entero e) devolver 4 * 4 = 16 Resultado = ( )/cuadrado(1) 3) entero cuadrado (entero e) devolver 1 * 1 = 1 Resultado = ( )/1 = 41 5 4 1

13 Llamadas a Funciones: Ejemplo 2
entero función mayor (entero x, entero y, entero z) entero max Inicio max = x Si (y > max) entonces max = y fin_si if (z > max) max = z devolver max; fin_función 0. Inicio 1. Escribir (“Introduzca los valores de a, b y c”) 2. Leer (a, b, c) 3. P = mayor (3, 4, 6) 4. Q = mayor (a, b, c); 5. R = mayor (a + 1, b, 1) 6. S = mayor (P, Q, R) 7. Escribir (“mayor =”, S) 8. Fin

14 Definición de una Función en C++
<tipo_función> <nombre_función> (<lista_parámetros_formales>) { <Declaración_variables_locales> <Sentencias> return <expresión> } Cuerpo de la función

15 Encabezado de una Función en C++
<tipo_función> <nombre_función> (<lista_parámetros_formales>) void main ( ) Tipo_función (no tiene) No hay parámetros formales Nombre_función

16 Encabezado de una Función en C++
El tipo void se usa para indicar que la función no devuelve ningún valor, o que no existen parámetros formales. void function (void) // No devuelve valor y no // tiene parámetros formales Cada parámetro formal debe ser declarado. int F2 (int a, int b, char c) // La funcion F2 devuelve un valor entero // Tiene tres parametros formales // Dos enteros a y b, uno caracter c

17 Cuerpo de una Función en C++
Declaración de variables locales. Código ejecutable (conjunto de sentencias). Ejemplo int F2 (int a, int b) { // Declaración de variables locales int c; // Codigo ejecutable c = a*a; c += b; return c; // Sentencia muy importante!!!! }

18 Sentencia Return Sentencia que devuelve el valor obtenido como resultado de la ejecución de una función. Ejemplo int cuadrado (int e) { return e * e; }

19 Funciones en C++: Ejemplo 1
Algoritmo Codificación entero función mayor (entero x, entero y, entero z) entero max Inicio max = x Si (y > max) entonces max = y fin_si Si (z > max) max = z devolver max fin_función int mayor (int x, int y, int z) { int max = x; if (y > max) max = y; if (z > max) max = z; return max; }

20 Funciones en C++: Ejemplo 2
Codificación Corrida en frío // Funcion factorial long int factorial (int n) { long int f; int i; f = 1; i = 0; while (i < n) { i++; f = f * i; } return f; x = factorial(4) n = < 4 ? f = 1 n = 4 i = 0 f = 6 0 < 4 ? i = 3 n = < 4 ? i = 1 f = 24 1 < 4 ? i = 4 n = < 4 ? f = 2 return 24 i = 2

21 Funciones en C++: Ejemplo 3
#include <iostream.h> int a; // a es global void f1 (int b, int c) { int k; // k es local k = b * b; cout << “k = ” << k << endl; a = k + c; // a es global cout << “a = “ << a << endl; } void f2 (int b, int c) // b y c diferentes a las de f1 { int k; // k local diferente // a la de f1 k = b + 2; cout << “k = “ << k << endl; a = k * a * c; // a global cout << “a = ” << a << endl; } void main () { f1(1,2); a++; f2(3,4);

22 Funciones en C++: Ejemplo 4
// Calcular los cuadrados de los enteros del 1 al 10 #include <iosream.h> int cuadrado (int e) { return e * e; } void main () { int x; for (x = 1; x <= 10; x++) cout << cuadrado(x) << endl;

23 Funciones en C++: Ejemplo 5
// Convertir un caracter en minuscula a // mayuscula #include <iosream.h> #include <ctype.h> int minusc_mayusc (int c1) { int c2; c2 = toupper(c1); return c2; } void main () { int may, min, x; for (x = 1; x <= 10; x++) cout << “Introduzca una letra minuscula” << endl; cin >> min; may = minusc_mayusc(min); cout << may << end; }

24 Prototipos de Funciones en C++
En los ejemplos descritos anteriormente, las funciones definidas por el programador siempre han precedido a la función main. Cuando la función main precede a las funciones definidas por el programador se utilizan prototipos. <tipo_función> <nombre_función> (tipo_param_1, … , tipo_param_n);

25 Funciones en C++: Ejemplo 1
#include <iostream.h> void Pas( void ); // Prototipo de la // funcion Pas void EscribirMiVar( void );// Prototipo // de la funcion EscribirMiVar int gMiVar = 10; //gMiVar es global void main( ) { // Llamada a una funcion dentro // de otra Pas(); } void Pas( void ) { // Llamada a una funcion dentro // de otra EscribriMiVar(); } void EscribirMiVar( void ) cout << "gMiVar = " << gMiVar << endl;

26 Funciones en C++: Ejemplo 2
#include <iostream.h> void Pas(int); // Prototipo de la funcion // Pas void EscribirMiVar(int); // Prototipo // de la funcion EscribirMiVar void main( ) { int miVar = 10; // Llamada a una funcion dentro // de otra Pas(miVar); } void Pas(int miVar) { // Llamada a una funcion dentro // de otra EscribriMiVar(miVar); } void EscribirMiVar(int miVar) cout << ”miVar = " << miVar << endl;

27 Ejercicios Explicar el significado de cada uno de los siguientes prototipos de funciones: int f(int); double f1(double, int); char f2(void) Escribir una llamada a apropiada para cada una de las siguientes funciones: float formula(float x) void escribir(int a, int b) { { float y; int c; y = 3 * x - 1; c = sqrt(a * a + b * b); return (y); cout << “c = “ << c << end; } }

28 Ejercicios Escribir una función (algoritmo y codificación) que reciba como parámetro un número y devuelva como resultado un valor de tipo lógico que indique si el número es o no par. Escribir una función (algoritmo y codificación) que reciba como parámetro dos números y devuelva como resultado un valor de tipo lógico que indique si el primer número es múltiple del segundo. Utilizando la función factorial, escribir una función (algoritmo y codificación) que calcule el número combinatorio dado por la fórmula siguiente: n! m! x (n - m)!

29 void piramide (int niveles)
Ejercicios Escribir una función (algoritmo y codificación) que reciba los valores de x y n como parámetros de entrada y devuelva el valor de xn como salida. Escribir una función (algoritmo y codificación) que imprima la pirámide 1 121 12321 La declaración de la función será la siguiente: void piramide (int niveles) Siendo niveles el número de filas de la pirámide (en el ejemplo 4).

30 Ejercicios Escribir una función de nombre Siguiente tal que, recibiendo un número primo mayor que uno, devuelva el número primo inmediatamente siguiente y superior a dicho número primo. Por ejemplo, si se invoca Siguiente(7), la función devolverá el número 11. Escriba una función que reciba como parámetros las dos coordenadas cartesianas (x, y) de un punto del plano y devuelva como resultado un número del 1 al 4 que indique el cuadrante al cual pertenece al punto (no considere los ejes de coordenadas). Escribir una función que reciba como parámetros de entrada dos instantes de tiempo expresados en horas, minutos y segundos y devuelva como resultado un 1 o un 2según el primer instante de tiempo sea anterior al segundo o viceversa.

31 Ejercicios Sea el siguiente programa incompleto:
#include <iostream.h> void main (void) { int x1, x2, suma; cout << “Introduce dos valores: ” << endl; cin >> x1 >> x2; suma = suma_intervalo (x1, x2); cout << “La suma de los valores del intervalo es:” << suma << endl; } Completar el programa escribiendo la función suma_intervalo que calcula la suma de todos los números enteros comprendidos entre los dos parámetros de entrada, ambos inclusive.

32 Ejercicios Escribir una función
void maxmin (int x1, int x2, Pint max, Pint min); que reciba como parámetros de entrada dos números enteros x1 y x2 y devuelva a través de los parámetros de salida max y min el máximo y el mínimo, respectivamente, de ambos números. Modificar la función anterior para que calcule también el valor medio de ambos números. El nuevo prototipo de la función será ahora el siguiente: void maxmin (int x1, int x2, Pint max, Pint min, Pint media); Escribir una función cuyo prototipo es: Logico esLetra (char c); que reciba como parámetro de entrada un carácter y devuelva un valor lógico Cierto si dicho carácter es una letra del alfabeto, y Falso en caso contrario.


Descargar ppt "Funciones Definidas por el Programador"

Presentaciones similares


Anuncios Google