36
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I

Computacion funciones definidas por el programador

  • Upload
    manuel

  • View
    369

  • Download
    1

Embed Size (px)

Citation preview

Com

pu

tació

n I

:: Prof. Yeniffer Peña

Lenguaje CLenguaje C

PresentaciónC

om

pu

tació

n I

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