Funciones Definidas por el Programador

Slides:



Advertisements
Presentaciones similares
Instrucciones Básicas Entrada de Información
Advertisements

Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Procedimientos y Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
FUNCIONES EN C.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Introducción a la Computación
Introducción a la Computación (8va Semana) Lunes 23 de Abril del 2007
Funciones Funciones De biblioteca Definidas por el usuario
SOBRECARGA DE FUNCIONES
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2006 – II (8va Semana) Lunes 25 de Setiembre del 2006 Juan José Montero Román.
Unidad 3 Punteros.
Objetivos Específicos de la Unidad
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
Funciones y procedimientos
Funciones Computación.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Estructuras de repetición
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Paso de Vectores como Parámetros
ESTRUCTURAS CONTROL SECUENCIAL
Estructuras de Decisión Múltiple
Introducción a la Computación
Semana 5 Subprogramas..
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Capítulo 1 “Elementos de Programación”
Descomposición Modular. Funciones
Computación II Unidad IV Funciones y Módulos. Objetivos: –Comprender como construir programas en forma modular partiendo de pequeñas partes conocidas.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Estructuras de Control.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Estructuras de Decisión Simples y Dobles
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Elementos básicos del lenguaje
Principios de programación LIA. Suei Chong Sol, MCE. Sentencias de Control Repetitivas.
Funciones Curso Propedéutico Maestría en Ingeniería Electrónica.
Estructuras de Repetición (Hacer-Mientras)
Expresiones Lógicas Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Matrices Prof. Flor Narciso Departamento de Computación
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables
Estructuras de Repetición (Hacer-Mientras)
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
INTRODUCCION A LA PROGRAMACION
PRINCIPIOS DE PROGRAMACIÓN

Expresiones Aritméticas
Algoritmo.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Corporación Universitaria del Caribe CECAR Fundamentos de programación II.
ESTRUCTURAS DE DECISION MULTIPLE
 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.
Gabriela Araya Baez Estudiante Ingenieria Civil Industrial.
Tratamientos Secuenciales Generalizados II Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 19 Versión
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Transcripción de la presentación:

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

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.

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.

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”.

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.

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

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

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)

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

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

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

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 = (25 + 16)/cuadrado(1) 3) entero cuadrado (entero e) devolver 1 * 1 = 1 Resultado = (25 + 16)/1 = 41 5 4 1

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

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

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

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

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!!!! }

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; }

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; }

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 2 < 4 ? f = 1 n = 4 i = 0 f = 6 0 < 4 ? i = 3 n = 4 3 < 4 ? i = 1 f = 24 1 < 4 ? i = 4 n = 4 4 < 4 ? f = 2 return 24 i = 2

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);

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;

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; }

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);

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;

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;

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; } }

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)!

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 1234321 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).

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.

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.

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.