Funciones Programación básica. Definición una función es un bloque de código reconocido por un identificador que realiza un trabajo específico. Su propósito.

Slides:



Advertisements
Presentaciones similares
Unidad 15 Características de C++ no relacionadas con el DOO.
Advertisements

Ejemplo de Programa C++
Repaso para la construcción del intérprete 2012
Procedimientos y Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
FUNCIONES EN C.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
SOBRECARGA DE FUNCIONES
Acciones y funciones Concepto
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
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.
El lenguaje de programación C - Funciones -
Chapter 7 Functions Dale/Weems/Headington. 2 Tópicos Capítulo 7 l Writing a Program Using Functional Decomposition l Writing a Void Function for a Task.
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.
Introducción a la Computación
Semana 5 Subprogramas..
Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.
Concepto de tupla Las tuplas son estructuras de datos que constan de varios campos que pueden contener datos de tipos distintos. El acceso al contenido.
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Capítulo 1 “Elementos de Programación”
FUNCIONES O PROCEDIMIENTOS
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.
FIEE VARIABLES Ing. José Antonio Poma G.. FIEE Variables Una variable es un identificador (nombre de la variable) que hace referencia a.
Material de apoyo Unidad 4 Estructura de datos
Análisis de algoritmos
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 repetición
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Elementos básicos del lenguaje
Funciones Curso Propedéutico Maestría en Ingeniería Electrónica.
Funciones Definidas por el Programador
Estructuras de control condicional
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCIÓN AL LENGUAJE C++
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Radio Volumen esfera m. m #include.
Modularización (Funciones) Prof. Miguel Vélez Rubio.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Fundamentos de Programación
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
INTRODUCCION A LA PROGRAMACION
PRINCIPIOS DE PROGRAMACIÓN

UNIVERSIDAD NACIONAL “SAN LUIS GONZAGA” DE ICA
Algoritmo.
Una función es un bloque de instrucciones que se ejecuta al ser llamada desde algún punto del programa, con nombre, que ejecuta una tarea específica y.
Corporación Universitaria del Caribe CECAR Fundamentos de programación II.
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
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.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Recursividad.
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 Programación básica

Definición una función es un bloque de código reconocido por un identificador que realiza un trabajo específico. Su propósito es dividir los programas en módulos manejables separados (divide y vencerás). El formato para la declaración de funciones es: tipo-devuelto nombre-de-función(lista-de-parámetros) { declaraciones e instrucciones } Las funciones deben declararse antes de utilizarse. Generalmente se definen mediante un prototipo que contiene solo el encabezado de la función.

Ejemplos de prototipos int f(int a, float x, float y); double g(double a, int c); short m(int n, char c); float promedio3(float x1,float x2,float x3); int cuentaNegativos(void); int cuentaNegativos(); char leeCaracter();

Ejemplo de llamada a función #include Using namespace sd; int cuadrado( int ); // prototipo de la función int main() { // repite 10 veces, calcula e imprime el cuadrado de x for ( int x = 1; x <= 10; x++ ) cout << cuadrado( x ) << " "; cout << endl; return 0; } // definición de la función cuadrado int cuadrado( int y ) //y es una copia del argumento de la función { return y * y; // devuelve el cuadrado de y como un int } // fin de la función cuadrado Prototipo de la función (puede omitirse) Llamada a la función Definición de la función

Área de una esfera #include using namespace std; /*prototipo de función, devuelve un flotante y lleva un parámetro de tipo flotante*/ float areaEsfera(float); main(){ float r,area; cout << "radio de la esfera: "; cin >> r; /*llamada a la función areaEsfera*/ area = areaEsfera(r); cout << "El area de la esfera es: " << area << endl; return 0; } /*definición de la función areaEsfera*/ float areaEsfera(float radio){ return 4* *radio*radio; }

Mayor de 3 números double maximo( double x, double y, double z ) { double max = x; // asume que x es el mayor if ( y > max ) // si y es mayor, max = y; // asigna y a max if ( z > max ) // si z es mayor, max = z; // asigna z a max return max; // max es el mayor } int main() { double numero1; double numero2; double numero3; cout << "Introduzca tres numeros de punto flotante: "; cin >> numero1 >> numero2 >> numero3; // numero1, numero2 y numero3 son argumentos // de la función maximo cout << "El maximo es: " << maximo( numero1, numero2, numero3 ) << endl; return 0; } No necesita prototipo

Función senoidal decreciente La siguiente función implementa la fúrmula double ExpSenoidal(double A, double alfa, double f, double t){ return A*exp(-alfa*t)*sin(2*M_PI*f*t); }... x = ExpSenoidal(2.0,50,2000,1e-3);

#include using namespace std; double ExpSenoidal(double A, double alfa, double f, double t){ return exp(-alfa*t)*A*sin(2*M_PI*f*t); } main(){ int i,n; double t,x,a,alfa,f,dt; cout >a; cout >alfa; cout >f; cout >n; dt = n/20.0/f; t = 0; for(i=0;i<20;i++){ x = ExpSenoidal(a,alfa,f,t); cout <<"t = "<<t<<" x= "<<x<<endl; t += dt; } system("pause"); }

Función factorial El factorial se defino por: N! = 1*2*3*... *(N-1)*N double fact(int N){ double f =1; for(int i=2; i<=N; i++) f *= i; return f; } double combi(int N, int M){ return fact(N)/fact(N-M) /fact(M); } El número de combinaciones de N elementos tomados de M en M esta dado por: C = N! /((N-M)!M!) Variables locales

Uso de la función combi double fact(int N){ double f =1; for(int i=2; i<=N; i++) f *= i; return f; } double combi(int N, int M){ return fact(N)/fact(N-M)/fact(M); } int main(){ int p; cout << "Teclee la potencia del binomio: "; cin >> p; cout << "Los coeficientes son: "; for(int i= 0; i<=p ; i++) cout << combi(p,i) << " "; cout << "\n"; getch(); return 0; } Este programa calcula los coeficientes de la expansión de un binomio a la potencia N.

Funciones tipo void Se utiliza el tipo void para indicar que la función no regresa ningún valor. Una función tipo void no debe aparecer en una instrucción de asignación en. Ejemplo: void despliegaNombre(){ cout << “Programa hecho por Fulanito de Tal.\n”; } Llamada a la función: despliegaNombre();

Ejemplo #include void printReal(float r, int w, int d){ cout << fixed << setw(w) << setprecision(d) << r; } int main(){ double x; for(int i=0; i<=45 ; i+=2){ x = i* /180.0; cout << "sen("; printReal(i,2,0); cout << ") = "; printReal(sin(x),8,6); cout << "\n"; } getch(); return 0; } Despliega un número real con ancho w y d decimales llamadas a printReal ancho 2 decimales 0 ancho 8 decimales 6

Diseño con funciones Como ejemplo construyamos una aplicación basada en menús para hacer conversiones de unidades físicas. Primero definiremos el esquema básico de la función main. Supondremos que el programa se ejecutará hasta que el usuario elija la opción de terminar. Una primera versión de la función main sería: main(){ do{ desplegarMenu(); opcion=leerOpcion(); ejecutarOpcion(opcion); }while(opcion!=SALIR); }

void desplegarMenu(){ system(“cls”); cout << “\n\nCONVERSION DE UNIDADES\n\n”); cout << “1. Velocidad m/s a km/h\n”; cout << “2. Velocidad km/h a mi/hr\n”; cout << “3. Temperatura ºC a ºF\n”; cout << “4. Temperatura ºF a ºC\n”; cout << “5. Salir\n”; cout << “\n\n\n opcion: ”; }

void ejecutarOpcion(char opcion){ float v,t; switch(opcion){ case '1':cout << "Velocidad en mi/hr: "; cin >> v; cout<<"La velocidad en km/hr es:“z<< v*1.609; break; case '2':cout << "Velocidad en km/hr: "; cin >> v; cout<<"La velocidad en mi/hr es: "<<v/1.609; break; case '3':cout << "Temperatura en C: "; t = leerTemp(1); cout << "La Temperatura en F es: " << t; break; case '4':cout << "Temperatura en F: "; t = leerTemp(2); cout << "La Temperatura en C es: “ << t; break; }

float leerTemp(int tipo){ float x; do{ cin >> x; if(tipo==1&&x<-273.0) cout<<"La temperatura debe ser mayor a -273!\nTemperatura en C: "; if(tipo==1&&x<-450.0) cout<<"La temperatura debe ser mayor a -450!\nTemperatura en F: "; }while((tipo==1&&x<-273.0)||(tipo==2&&x< )); return x; }

char leerOpcion(){ char c; do{ c = cin.get(); if(c>='1'&&c<='5') cout << c; }while(c '5'); return c; }

Reglas de alcance Las variables tiene un alcance dentro del bloque en que son declaradas. Ver ejemplo: 3.12

Parámetros por referencia Una función puede modificar los valores de los parámetros si estos se pasan por referencia. Los parámetros por referencia se especifican con la siguiente notación Tipo-función nombre-función (tipo &parámetro)

Ejemplo de paso por referencia #include void test(int &x){ x = 5; } int main(){ int a = 8; test(a); cout << a; getch(); return 0; } El valor del parámetro a es modificado dentro de la función. Se imprime 5

Ecuación cuadrática con funciones void leer(double &a, double &b, double &c){ cout << "Tecle coeficientes a,b,c: "; cin >> a >> b >> c; } void calcularRaices(double a, double b, double c,double &x1, double &x2, int &caso){ double d = b*b-4*a*c; if(d>0){ x1 = (-b+sqrt(d))/2/a; x2 = (-b-sqrt(d))/2/a; caso = 1; }else if(d==0){ x1 = (-b+sqrt(d))/2/a; x2 = (-b-sqrt(d))/2/a; caso = 2; }else{ x1 = -b/2/a; x2 = sqrt(-d)/2/a; caso = 3; } Por referencia

Ecuación cuadrática con funciones void imprime(double x1,double x2,int caso){ switch(caso){ case 1:cout <<"x1 = "<<x1<<" x2 = "<<x2<< endl;break; case 2:cout <<"x1 = x2 =" << x1 << endl;break; case 3:cout <<"re = "<<x1<<" im = "<<x2<< endl;break; } int main(){ double a,b,c,x1,x2; int caso; leer(a,b,c); calcularRaices(a,b,c,x1,x2,caso); imprime(x1,x2,caso); getch(); return 0; }

Funciones recursivas Una función es recursiva si dentro del cuerpo de la función se hace una llamada a si misma. Las funciones recursivas deben cumplir lo siguiente: 1. Debe existir un salida en la que no se haga la llamada recursiva 2. La llamada recursiva debe ser versión más simple que la llamada que la invocó.

Máximo Común Divisor int gcd(int x, int y){ if((y<=x)&&(x%y == 0) return y; else if(x < y) return gcd(y,x); else return gcd(y,x % y); } Definición: 1. el gcd(x,y) = y si y<x y el x mod y = 0 2. el gcd(x,y) = gcd(y,x) si x < y 3. el gcd(x,y) = gcd(y, x mod y) Salida trivial Llamadas recursivas

Calculo recursivo del factorial Definición: 1. n! = 1 si n = 0 2. n! = n*(n-1)! Salida trivial Llamada recursiva double fact(int n){ if(n==0) return 1; else return n*fact(n-1); }

Números de Fibonacci int fib(int n){ if(n == 0 || n ==1 ) return n; else return fib(n-1)+fib(n-2); } Los números de Fibonacci forman la secuencia: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … Es decir cada uno es la suma de los dos anteriores. Definición: 1. Fib(n) = n si n = 0 o 1 2. Fib(n) = fib(n-1) + fib(n-2) Salida trivial Llamada recursiva

Solución no recursiva a los números de Fibonacci int fib(int n){ int a = 0; int b = 1; int c = a + b; for(int i=2, i<=n; i++){ c = a + b; a = b; b = c; } return c; }

Funciones en línea Una función en línea no genera sobrecarga en cada llamada. Se optimiza el código generado por el compilador al sustituir la función en lugar de generar el código correspondiente a la llamada. Las funciones en línea comienzan por la palabra reservada inline. Las funciones en línea deben ser muy breves.

ejemplo de función en línea inline double cubo( const double lado ) { return lado * lado * lado; // calcula el cubo } // fin de la función cubo int main(){ cout << "Introduzca la longitud del lado de su cubo: "; double valorLado; cin >> valorLado; // calcula el cubo de valorLado y despliega el resultado cout << "El volumen del cubo de lado " << valorLado << " es " << cubo( valorLado ) << endl; return 0; // indica terminación exitosa } // fin de main función en línea