Funciones Definición de función

Documentos relacionados
UNIDAD 3 Modularidad

Estructuración del programa en partes más pequeñas y sencillas

Lenguaje C, tercer bloque: Funciones

Introducción a la Programación en C Funciones

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

Programación. Test Autoevaluación Tema 3

Declaración. Introducción. Definición o implementación. Llamada. Un programa en C consta de una o más funciones.

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

PUNTEROS (Apuntadores)

Clases y Objetos en C++

Unidad IV: Funciones

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Elementos de un programa en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación I Funciones

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

TEMA 5: Subprogramas, programación modular

Informática Ingeniería en Electrónica y Automática Industrial

Cuales son los tipos de instrucciones que se utilizan en la programación?

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Tema 6: Memoria dinámica

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/

8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Capitulo 2. Programación Modular

Introducción al lenguaje C

Programación I Teoría II.

Paso de Parámetros a una Función

PUNTEROS (APUNTADORES)

Tema 13: Apuntadores en C

Bison. Introducción. Índice. Introducción Uso de Bison con Flex. Formato del fichero de especificación de Bison

Funciones y paso de parámetros

Introducción al lenguaje C

Estructura de datos y Programación

Dpto. de Lenguajes y Ciencias de la Computación Universidad de Málaga. TEMA 8: Funciones. Fundamentos de Informática (Ingeniería Técnica Industrial)

El operador contenido ( ) permite acceder al contenido de

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Tema 1: Introducción a C

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

INTRODUCCIÓN A LA POO EN C++

funciones printf scanf

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

7.3. Estructura de un programa

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Tema 18: Memoria dinámica y su uso en C

Expresiones Aritméticas

Introducción a la Programación

Punteros y aritmética de punteros. se almacena el operando

Tipos de datos y Operadores Básicos

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

REPRESENTACIÓN DE DATOS

Programación Orientada a Objetos en C++

LENGUAJE. Tema 1 - Introducción

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

FUNCIONES EN C QUÉ SIGNIFICA VOID? QUÉ ES EL TIPO DE RETORNO? PARA QUÉ SIRVE RETURN? MÓDULOS (CU00547F)

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

Tema 16: Tipos de datos estructurados en lenguaje C

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Capítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

Procesos e Hilos en C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Lenguaje de programación C. Introducción

Punteros y Memoria Dinámica I

Lenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados

Tema 6: Clases. Índice

Dobles: Es el caso de la instrucción if-else (punto 1.2).

CONTENIDO DE LA LECCIÓN 21

Funciones Tipos de funciones y Recursividad

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez

Tema 10: Tipos de datos definidos por el usuario

Modularización en lenguaje C. Funciones

OPERADORES Y EXPRESIONES

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

FUNCIONES O MÉTODOS. Algoritmia y Programación

Introducción a C++ y Code::Blocks

Funciones en Lenguaje C

Laboratorio de Arquitectura de Redes. Introducción al lenguaje C

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Programación Orientada a Objetos

Tipos Recursivos de Datos

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS

Métodos CON valor de retorno

Preliminares. Tipos de variables y Expresiones

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

2.2 Nombres, Ligado y Ámbito

LENGUAJE. Tema 3 Elementos de un programa II

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Introducción al tipo de dato ARRAY

Transcripción:

Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas bien definidas por un grupo de sentencias sobre un conjunto de datos. Las operaciones que realiza la función son siempre las mismas, pero los datos pueden variar cada vez que se llame a la función. Al llamar a una función se ejecutan las sentencias que la componen y, una vez completada la ejecución de la función, la ejecución del programa continúa desde el punto en que se hizo la llamada a la función. Generalmente, al llamar a una función se le proporciona un conjunto de datos (parámetros) que se procesan ejecutando las sentencias que la componen. La función devuelve un solo valor mediante la sentencia return. Algunas funciones reciben parámetros, pero no devuelven nada, mientras que otras no reciben parámetros, pero sí devuelven un valor. La definición de una función se hace de forma similar a la de la función main. Su forma más genérica consta básicamente de dos partes: una línea llamada cabecera donde se especifica el nombre de la función, el tipo del resultado que devuelve y los parámetros que recibe; y un conjunto de sentencias encerrado entre llaves formando el cuerpo. Estructura de una función Una función es un conjunto de sentencias que se pueden llamar desde cualquier parte de un programa. En C todas las funciones son externas o globales, es decir, pueden ser llamadas desde cualquier punto del programa. La estructura de una función en C es: Tipo_de_retorno nombrefunción (listadeparámetros) Cuerpo de la función; return expresión; Tipo_de_retorno Es el tipo de valor devuelto por la función o la palabra reservada void, si la función no devuelve ningún valor. NombreFunción Identificador o nombre de la función. listadeparámetros Lista de declaraciones de los parámetros de la función separados por comas. Expresión Valor que devuelve la función.

float suma (float num1, float num2) float resp; resp=num1+num2; return resp; Llamada de función Las funciones para poder ser ejecutadas, han de ser llamadas o invocadas. Cualquier expresión puede contener una llamada a una función que redirigirá el control del programa a la función nombrada. Normalmente la llamada a una función se realizará desde la función principal main( ), aunque naturalmente también podrá ser desde otra función. La función llamada que recibe el control del programa se ejecuta desde el principio y cuando termina el control del programa vuelve y retorna a la función main( ) o a la función llamadora si no es main. En el siguiente ejemplo se declaran dos funciones y se llaman desde la función main(). #include <stdio.h> void func1 (void) printf( Segunda function \n ); void func2 (void) printf( Tercera función\n ); int main() printf( Primera función llamada main\n ); func1(); func2(); printf( se termina main ); return 0; Valor de retorno Si la función no devuelve un valor int, se debe especificar el tipo de dato devuelto (de retorno) por la función; cuando devuelve un valor int, se puede omitir ya que por defecto C asume que todas las funciones son enteras. El tipo debe ser uno de los tipos simples de C, tales como int, char, float, un puntero a cualquier tipo C o un tipo struct.

Si la función no devuelve un resultado, se puede utilizar el tipo void, que se considera como un tipo de dato especial. Ejercicio Escribir una función que convierta una temperatura dada en grados Celsius a grados Fahrenheit. La fórmula de conversión es: F=9/5 C + 32 Deberá imprimir el resultado en la función main() Prototipos de las funciones La declaración de una función se denomina prototipo. Los prototipos de una función contienen la cabecera de la función, con la diferencia de que los prototipos terminan con un punto y coma. Específicamente un prototipo consta de los siguientes elementos: nombre de la función, una lista de argumentos encerrados entre paréntesis y un punto y coma. En C no es estrictamente necesario que una función se declare o defina antes de su uso, no es necesario incluir el prototipo aunque si es recomendable para que el compilador pueda hacer chequeos en las llamadas a las funciones. Los prototipos de las funciones llamadas en un programa se incluyen en la cabecera del programa para que así sean reconocidas en todo el programa. Los prototipos se sitúan normalmente al principio de un programa, antes de la definición de la función main(). El compilador utiliza los prototipos para validar que el número y los tipos de datos de los argumentos reales de la llamada a la función son los mismos que el número y tipo de argumentos formales en la función llamada. Si se detecta una inconsistencia, se visualiza un mensaje de error. Sin prototipos, un error puede ocurrir si un argumento con un tipo de dato incorrecto se pasa a una función. En programas complejos, este tipo de errores son difíciles de detectar. Parámetros de una función C siempre utiliza el método de parámetros por valor para pasar variables a funciones. Para que una función devuelva un valor a través de un argumento hay que pasar la dirección de la variable, y que el argumento correspondiente de la función sea un puntero, es la forma de conseguir en C un paso de parámetro por referencia. Ámbito de una variable Parámetros por valor Paso por valor (también llamado paso por copia) significa que cuando C compila la función y el código que llama a la función, la función recibe una copia de los valores de los parámetros. Si se cambia el valor de un parámetro variable local, el cambio sólo afecta a la función y no tiene efecto fuera de ella.

En la técnica de paso de parámetro por valor, la modificación de la variable (parámetro pasado) en la función receptora no afecta al parámetro argumento en la función llamadora. El método por defecto de pasar parámetros es por valor. Ejemplo: El siguiente programa muestra el mecanismo de paso de parámetros por valor. #include <stdio.h> void DemoLocal(int valor); int main() int n=10; printf ( Antes de llamar a DemoLocal, n= %d \n,n); DemoLocal(n); printf( Después de llamar a DemoLocal, n= %d \n,n); void DemoLocal(int valor) printf( Dentro de DemoLocal, valor=%d\n,valor); valor=999; printf( Dentro de DemoLocal, valor=%d\n,valor); Al ejecutar este programa se visualiza la salida: Antes de llamar a DemoLocal, n=10 Dentro de DemoLocal, valor=10 Dentro de DemoLocal, valor=999 Después de llamar a DemoLocal, n=10;

Paso de parámetros por referencia Cuando una función debe modificar el valor del parámetro pasado y devolver este valor modificado a la función llamadora, se ha de utilizar el método de paso de parámetro por referencia o dirección. En este método el compilador pasa la dirección de memoria del valor del parámetro a la función. Cuando se modifica el valor del parámetro (la variable local), este valor queda almacenado en la misma dirección de memoria, por lo que al retornar a la función llamadora la dirección de la memoria donde se almacenó el parámetro contendrá el valor modificado. Para pasar una variable por referencia, el símbolo & debe preceder al nombre de la variable y el parámetro variable correspondiente de la función debe declararse como puntero. float x; int y; entrada(&x, &y); void entrada(float* x, int * y) C permite utilizar punteros para implementar parámetros por referencia, ya que por defecto en C el paso de parámetros es por valor. /* método de paso por referencia, mediante punteros */ void intercambio(int * a, int * b) int aux=*a; *a=*b; *b=aux; En la llamada siguiente, la función intercambio() utiliza las expresiones *a y *b para acceder a los enteros referenciados por las direcciones de las variables i y j: int i=3, j =50; printf( i=%d y j =%d \n, i,j); intercambio(&i,&j); printf( i= %d y j=%d \n, i,j); La llamada a la función intercambio() debe pasar las direcciones de las variables intercambiadas. El operador & delante de una variable significa dame la dirección de la variable. double x; &x; /*dirección en memoria de x */ Una variable, o parámetro puntero se declara poniendo el asterisco (*) antes del nombre de la variable.