Computacion funciones definidas por el programador
Transcript of Computacion funciones definidas por el programador
Com
pu
tació
n I
En lenguaje C existen dos tipos de funciones: Las funciones de biblioteca y las definidas por el programador.
Funciones de Biblioteca:
Funciones
Realizan varias operaciones y cálculos de uso frecuente.Algunas devuelven un dato en su llamada, otras indican cuando una condición es cierta o falsa, y otras efectúan operaciones específicas sobre los datos y no devuelven nada.
Por ejemplo hay funciones de biblioteca que efectúan las operaciones estándar de entrada/salida, funciones que realizan operaciones sobre caracteres, funciones que realizan operaciones en cadenas de caracteres y funciones que realizan diversos cálculos matemáticos.
Com
pu
tació
n I Funciones de Biblioteca de uso
común:
Funciones
Operaciones de Entrada/Salida
scanf(.....) Introducir datos del dispositivo de entrada
getchar( ) Introducir un carácter desde el dispositivo de entrada
printf(…..) Mandar datos al dispositivo de salida
putchar(c) Mandar un carácter al dispositivo de salida
Operaciones sobre caracteres
tolower(c) Convertir una letra en minúscula
toupper(c) Convertir una letra en mayúscula
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
getchar: int getchar ()
Se encuentra en la librería stdio.h y se encarga de leer un carácter de la consola de entrada.
#include “stdio.h”#include “conio.h”
void main(){ char res; printf(“Desea continuar S/N: ”); res=getchar(); printf(“respuesta = %c”,res); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
putchar: int putchar (int ch)
Se encuentra en la librería stdio.h y se encarga de mostrar un carácter de la pantalla.
#include “stdio.h”#include “conio.h”
void main(){ char res; printf(“Desea continuar S/N: ”); res=getchar(); putchar(res); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
tolower: int tolower(int ch)
Se encuentra en la librería ctype.h y se encarga de devolver la minúscula de ch siempre y cuando ésta sea una letra.
#include “stdio.h”#include “conio.h”#include “ctype.h”void main(){ char letra=‘A’; char res;
res= tolower(letra); printf(“letra= %c”,letra); getch();}
#include “stdio.h”#include “conio.h”#include “ctype.h”void main(){ char res; printf(“Desea continuar S/N: ”); scanf(“%c”,&res); res= tolower(res); printf(“respuesta = %c”,res); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
toupper: int toupper(int ch)
Se encuentra en la librería ctype.h y se encarga de devolver la mayúscula de ch siempre y cuando ésta sea una letra.
#include “stdio.h”#include “conio.h”#include “ctype.h”void main(){ char letra=‘a’; char res;
res=toupper(letra); printf(“letra= %c”,letra); getch();}
#include “stdio.h”#include “conio.h”#include “ctype.h”void main(){ char res; printf(“Desea continuar s/n: ”); scanf(“%c”,&res); res=toupper(res); printf(“respuesta = %c”,res); getch();}
Com
pu
tació
n I
Funciones
Operaciones en cadena de caracteres
strcmp(s1,s2) Comparar dos cadenas de caracteres
strcmpi(s1,s2) Comparar dos cadenas de caracteres ignorando mayúsculas y minúsculas
strcat(s1,s2) Concatenar dos cadenas
strcpy(s1,s2) Copiar una cadena de caracteres en otra
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcmp: int strcmp(cad1, cad2)
Se encuentra en la librería string.h y se encarga de comparar una cadena de caracteres con otra, comenzando con el primer carácter de ambas cadenas hasta que sean diferentes ó hasta que lleguen al final.
• Si cad1 es menor que cad2 devuelve un valor < 0
• Si cad1 es igual a cad2 devuelve un valor == 0
• Si cad1 es mayor que cad2 devuelve un valor > 0
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcmp: int strcmp(cad1, cad2)
#include “stdio.h”#include “conio.h”#include “string.h”void main(){ char region[]=“Oriente”; if ( strcmp(region,”Oriente”) == 0 ) printf(“La region es Oriente”); else printf(“\nNo coincide con Oriente”);
getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcmpi: int strcmpi(cad1, cad2)
Se encuentra en la librería string.h y se encarga de comparar una cadena de caracteres con otra sin tomar en cuenta los casos sensibles, comenzando con el primer carácter de ambas cadenas hasta que sean diferentes ó hasta que lleguen al final.
• Si cad1 es menor que cad2 devuelve un valor < 0
• Si cad1 es igual a cad2 devuelve un valor == 0
• Si cad1 es mayor que cad2 devuelve un valor > 0
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcmpi: int strcmpi(cad1, cad2)
#include “stdio.h”#include “conio.h”#include “string.h”void main(){ char region[]=“Oriente”; if ( strcmpi(region,”ORIENTE”) == 0 ) printf(“La region es Oriente”); else printf(“\nLa region no es Oriente”);
getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcpy: int strcpy(cadDestino, cadOrigen)
Se encuentra en la librería string.h y se encarga de copiar el contenido de la cadOrigen en la cadDestino.
#include “stdio.h”#include “conio.h”#include “string.h”void main(){ char cadena[]=“ABCdef”; char prueba[10]; strcpy(prueba, cadena); printf(“prueba tiene: %s”, prueba); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
strcat: int strcat(cadDestino, cadOrigen)
Se encuentra en la librería string.h y se encarga de concatenar el contenido de la cadOrigen al final del contenido de la cadDestino.
#include “stdio.h”#include “conio.h”#include “string.h”void main(){ char nombre[]=“Ana”; char apellido[]=“ Perez”; strcat(nombre, apellido); printf(“nombre tiene: %s”, nombre); getch();}
Com
pu
tació
n I
Funciones
Operaciones para cálculos matemáticos
Se encuentran en la librería math.h
abs(i) Devolver el valor absoluto de i (int)
pow(d1,d2) Devolver d1 elevado a la potencia d2
exp(d) Elevar e a la potencia d
sqrt(d) Devolver la raíz cuadrada de d
cos(d) Devolver el coseno de d (double)
sin(d) Devolver el seno de d (double)
tan(d) Devolver la tangente de d (double)
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
abs: int abs(int i)
Se encuentra en la librería math.h y se encarga de retornar el valor absoluto de un número entero.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ int num = -123; int aux; aux = abs(num); printf(“\nEl valor absoluto de %d es %d”, num, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
pow: double pow(double d1, double d2)
Se encuentra en la librería math.h y se encarga de retornar el valor de d1 elevado a la potencia de d2.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double base=2.0, exponente=4.0; double aux; aux = pow(base,exponente); printf(“\nEl resultado es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
exp: double exp(double d)
Se encuentra en la librería math.h y se encarga de retornar el valor de la exponencial de d.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double num=4.0; double aux; aux = exp(num); printf(“\nEl resultado es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
sqrt: double sqrt(double d)
Se encuentra en la librería math.h y se encarga de retornar el valor de la raíz cuadrada .
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double num=4.0; double aux; aux = sqrt(num); printf(“\nLa raíz cuadrada es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
sin: double sin(double d)
Se encuentra en la librería math.h y se encarga de retornar el valor del seno del ángulo d especificado en radianes.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double num=0.5; double aux; aux = sin(num); printf(“\nEl resultado del seno es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
sin: double cos(double d)
Se encuentra en la librería math.h y se encarga de retornar el valor del coseno del ángulo d especificado en radianes.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double num=0.5; double aux; aux = cos(num); printf(“\nEl resultado del coseno es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones de Biblioteca:
Funciones
sin: double tan(double d)
Se encuentra en la librería math.h y se encarga de retornar el valor del coseno del ángulo d especificado en radianes.
#include “stdio.h”#include “conio.h”#include “math.h”void main(){ double num=0.5; double aux; aux = tan(num); printf(“\nEl resultado de la tangente es %lf”, aux); getch();}
Com
pu
tació
n I
Funciones definidas por el programador:
Funciones
La modularización, es una técnica usada por los programadores para hacer sus códigos más cortos, ya que consiste en reducir un gran problema complejo, en pequeños problemitas más sencillos, concentrándose en la solución por separado, de cada uno de ellos. Para lograr que un programa sea modular, Lenguaje C introduce las funciones definidas por el programador.
En C, se conocen como funciones aquellos trozos de códigos utilizados para dividir un programa con el objetivo que, cada bloque realice una tarea determinada.
Com
pu
tació
n I
Funciones definidas por el programador:
Funciones
Cuando se accede a una función (cuando se invoca o llama a una función) se ejecutan las instrucciones de que consta.
Se puede acceder a una misma función desde varios lugares distintos del programa. Una vez que se ha completado la ejecución de una función, se devuelve el control al punto desde que se accedió a ella.
Generalmente, una función procesará la información que le es pasada desde el punto del programa en donde se accede a ella y devolverá un solo valor.
Com
pu
tació
n I
Funciones definidas por el programador:
Funciones
La información se le pasa a una función mediante unos identificadores especiales llamados argumentos o parámetros y es devuelta por medio de la instrucción return. Sin embargo, algunas funciones aceptan información pero no devuelven nada (void).
Com
pu
tació
n I
Funciones definidas por el programador:
Funciones
En las funciones juegan un papel muy importe las variables, ya que éstas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que pueden ser llamadas, leídas, modificadas, etc; desde cualquier función. Se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan sido declaradas.
Com
pu
tació
n I
Funciones
Definición de una función:
Una función tiene dos componentes principales: la primera línea (incluyendo las declaraciones de los argumentos) y el cuerpo de la función.
tipo_valor_devuelto nombre_funcion (tipo1 arg1, …., tipon argn)
Los argumentos formales representan los nombres de los elementos que se transfieren a la función desde la parte del programa que hace la llamada.
Argumentos formales
Com
pu
tació
n I Funciones definidas por el
programador:
Funciones
Los identificadores utilizados como argumentos formales son “locales” en el sentido en que no son reconocidos fuera de la función. Por tanto, sus nombres no tienen por qué coincidir con los nombres de los argumentos reales en la parte del programa que se hace la llamada.
El resto de la definición de una función es una instrucción compuesta que define las acciones que debe realizar ésta. Se le suele llamar cuerpo de la función. Debe incluir una o mas instrucciones return para devolver un valor al punto de llamada, el cual debe coincidir con el tipo_valor_devuelto en la primera línea de la función.
Com
pu
tació
n I Funciones definidas por el
programador:
Funciones
Ejemplo:
/* Función que determina el valor máximo de dos enteros diferentes */
int maximo (int x, int y) { if ( x > y ) return x; else return y;}
int maximo (int x, int y) {int z; if ( x > y ) z = x; else z = y;return z;}
Com
pu
tació
n I Funciones definidas por el
programador:
Funciones
Se puede llamar a una función especificando su nombre, seguido de una lista de argumentos encerrados entre paréntesis y separados por comas. Si la llamada a la función no requiere ningún argumento, se debe colocar un par de paréntesis vacíos.
La llamada a la función puede formar parte de una expresión simple (como por ejemplo una sentencia de asignación) o puede ser el operando de una expresión mas compleja.
Com
pu
tació
n I
Funciones definidas por el programador:
Funciones
Los argumentos que aparecen en la llamada de una función se llaman argumentos reales. En una llamada de una función habrá un argumento real por cada argumento formal coincidiendo incluso en el tipo de dato, ya que el valor de cada argumento real es transferido y asignado al correspondiente argumento formal.
Si la función devuelve un valor, el acceso a la función se puede escribir como: una instrucción de asignación, como un operando dentro de una expresión o dentro de una sentencia de salida.
Si la función no devuelve nada el acceso se escribirá como una instrucción sencilla.
Com
pu
tació
n I
FuncionesEjemplo: /* Determinar el valor máximo de tres enteros */
#include “stdio.h”#include “conio.h”int maximo (int x, int y) { if ( x > y ) return x; else return y; }
void main( ){ int num1,num2,num3, aux, res; printf(“\nIngrese tres numeros enteros: ”); scanf(“%d %d %d”, &num1,&num2,&num3); aux=maximo(num1,num2); printf(“\nEl maximo es %d”,maximo(aux,num3) ); /*Multiplicar por 5 el maximo y restarle 3*/ res = maximo(aux,num3) * 5 - 3; printf(“\nEl calculo es %d”,res ); getch();}
Com
pu
tació
n I
Prototipos de Funciones:
Funciones
En el ejemplo anterior la definición de la función precede a la función main, con el objetivo de que al compilar el programa la función sea conocida por el compilador antes del primer acceso a la función. Sin embargo, algunos programadores prefieren que la función main aparezca antes de las funciones definidas por ellos.
Para esta finalidad existen los prototipos de funciones.
Com
pu
tació
n I
FuncionesEjemplo: /* Determinar el valor máximo de tres enteros */
#include “stdio.h”#include “conio.h”int maximo (int x, int y); void main( ){ int num1,num2,num3, aux, res; printf(“\nIngrese tres numeros enteros: ”); scanf(“%d %d %d”, &num1,&num2,&num3); aux=maximo(num1,num2); printf(“\nEl maximo es %d”,maximo(aux,num3) ); /*Multiplicar por 5 el maximo y restarle 3*/ res = maximo(aux,num3) * 5 - 3; printf(“\nEl calculo es %d”,res ); getch();}int maximo (int x, int y) { if ( x > y ) return x; else return y; }
Prototipo de función.Prototipo de función.
Definición de la función.Definición de la función.
Com
pu
tació
n I Paso de argumentos a una
función:
Funciones
Cuando se pasa un valor a una función mediante un argumento real, se copia el valor del argumento real en el correspondiente argumento formal. Por tanto, se puede modificar el valor del argumento formal dentro de la función, pero el valor del argumento real en la rutina que efectúa la llamada no cambiará. A esto se le llama paso por valor.
Com
pu
tació
n I
Paso de argumentos a una función:
Funciones
Paso por valor#include <stdio.h>#include <conio.h>
int cuadrado_por_valor (int nx);
void main( ){ int n, c; printf(“\nIntroduzca un numero: "; scanf(“%d”,&n); printf(“\nEl valor inicial de n es: %d“, n); c=cuadrado_por_valor(n); printf(“\nEl valor final de n es: %d y el cuadrado es %d“, n, c); getch( );}
int cuadrado_por_valor (int nx){ nx = nx * nx; return (nx);}