You are on page 1of 61

FUNCIONES EN C Y C++

Fundamentos de Programacin

IMPORTANTE
LAS FUNCIONES QUE ESTN RESALTADAS EL TTULO CON COLOR AMARILLO SON LAS QUE REQUIEREN SU ATENCIN Y AYUDAN PRINCIPALMENTE EN SUS TRABAJOS, DEBERES, PRUEBAS, ETC.

PRIMER GRUPO

1. FUNCION GETCHAR()
1.1 Sintaxis:

1.3 Particularidades: Tomar un valor entero La funcin getchar () carece de argumento. Si existe un error o si ha alcanzado el final del archivo, getchar () devuelve un EOF

1.2 Caractersticas:
Toma un solo carcter del teclado y lo entrega a un programa de ejecucin Lee un carcter del teclado y espera un retorno de carro. Devuelve el carcter que se halle en la entrada estndar.

Entrada y Salida de carcter por consola

Ejemplo
Contador de nmeros ingresados

2. FUNCIN RAND ()
Biblioteca Necesaria: <stdib.h>. #include<stdlib.h>
Categoras bsicas : Aritmticas. Nmeros aleatorios Conversin de cadenas.

2.1 Caractersticas: Genera un entero sin signo es decir nmeros pseudoaleatorios.los limites de estos numero estn entre 0 y RAND_MAX()una constante simblica definida en el encabezamiento <stdlib>.

Ejemplo
Rand() #include<stdio.h> #include<stdlib.h> void main() { int i; for(i=1;i<=30;i++) { printf("%7d",rand()% 30); if(i%4==0) printf("\n"); }

int atoi(const char *s);


La cadena de caracteres puede tener los siguientes elementos: Un conjunto de espacios o tabulaciones. Una cadena de dgitos. Opcionalmente un carcter de signo. Caractersticas: No se comprueba el desbordamiento; es decir si el nmero cabe en un int. Si este no cabe el valor de retorno queda indefinido. Los caracteres en blanco son saltados. Caracteres ilegales son ignorados. El primer carcter no reconocido finaliza el proceso de conversin.

Ejemplo
#include <stdio.h> #include <stdlib.h> int main () { int i; char num[256]; printf ("ingrese un numero: "); scanf("%c",num); i = atoi (num); printf ("el entero es %d. el doble es %d.\n",i,i*2); return 0; }

itoa( dato [int], cadena [char], formato a convertir {Base[2-36]})


Si ingresamos un formato igual a 2 lo pondr en unos y ceros (binarios)... Significados: Valor: Lo que buscamos convertir a una cadena. Str: Es una especie de matriz en la memoria donde almacenaremos la cadena nula resultante. Base: Es la base numrica en la cual se representa los valores como una cadena entre 2 y 36; donde 2 significa base binaria, 8 octal, 10 base decimal, y 16 hexadecimal. Valor de retorno: Una cadena de texto conteniendo el resultado.

Ejemplo
#include <stdio.h> #include <stdlib.h> int main () { int i; char num [33]; printf ("ingrese un numero: "); scanf ("%d",&i); itoa (i,num,10); printf ("decimal: %s\n",num); itoa (i,num,16); printf ("hexadecimal: %s\n",num); itoa (i,num,2); printf ("binary: %s\n",num); return 0; }

Nombre de la funcin

Tipo

Biblioteca

Sintaxis

Descripcion

atof(s)

double

stdlib.h

atof(const char *cadena)

Convierte la cadena s a una cantidad de doble precisin.


Convierte una letra a minscula.

tolower

int

ctype.h o stdlib.h

int tolower(int c);

FUNCION ATOF #include <stdio.h> #include <stdlib.h>


int main() {

char numPtr[11] = "123.456789"; printf( "Convirtiendo la cadena \"%s\" en un numero: %f\n", numPtr, atof(numPtr) ); return 0;
} FUNCION TOLOWER #include <stdio.h> #include <ctype.h> void main() { char letra; printf("Ingrese letra mayuscula:"); fflush(stdin); scanf("%c",&letra); letra = tolower(letra); printf("Letra con funcion TOLOWER es: %c",letra); printf("\n"); }

Nombre de la funcin
abs(x) floor(d)

Tipo

Biblioteca

Sintaxis

Descripcin

Ejemplo

int, float int, float

math.h math.h

int abs(int x); float abs(float x) floor (int num) floor (float num)

Calcula el valor x = abs(-9) // x es 9 absoluto de x. Calcula el valor x=floor(7.25); // x vale 7 entero menor que x ms cercano.

//Programa que imprime la funcin piso de un numero real ingresado #include <stdio.h> #include <math.h> Funcin floor () void main () Cdigo fuente { float x,y=0,a,b; char decide; do { printf("Ingresar un valor: "); scanf("%f", &x); a=floor(x); printf("El entero menor mas cercano a %.2f es: %.2f\n",x,a); do { fflush(stdin); printf("Desea continuar (S/N): "); scanf("%c",&decide); }while(decide!='S' && decide!='s' && decide!='N' && decide!='n'); }while(decide=='S' || decide=='s');

//Programa que imprime el valor absoluto de un numero ingresado (x) #include <stdio.h> #include <math.h> Funcin abs () void main () Cdigo fuente { float x,a; char decide; do { printf("Ingresar un valor: "); scanf("%f", &x); a=abs(x); printf("El valor absoluto de %.2f es: %.2f\n",x,a); do { fflush(stdin); printf("Desea continuar (S/N): "); scanf("%c",&decide); }while(decide!='S' && decide!='s' && decide!='N' && decide!='n'); }while(decide=='S' || decide=='s');

CEIL Y FMOD
ceil(): Se encarga de devolver un valor entero mayor redondeando hacia arriba si este fuese necesario. fmod(): Se encarga de devolver el residuo de un flotante de la divisin de los argumentos Devuelve el residuo de un flotante de dividir el dividendo () por el divisor (). El residuo (r) es definido como: = i * + r, para algn entero i. Si es diferente de cero, r tiene el mismo signo que y una magnitud menor que la magnitud de .

EJEMPLOS

GETCH Y GETCHE
Entrada de caracteres; getch, getche: Perteneciente a la biblioteca conio.h, las funciones getch y getche sirve para leer caracteres del teclado con algunas diferencias que las mencionaremos a continuacin: Funcin getch(): Esta funcin retorna el cdigo del carcter escrito. Es sin eco y no espera Intro, esto es, el carcter escrito no se muestra en la pantalla y en cuanto s e escriba est, la ejecucin del programa contina sin tener que pulsar la tecla Intro. Funcin getche(): A diferencia de la funcin getch, esta es con eco y no espera Intro. Para la realizacin de ejercicios el complemento de esas dos funciones es otra funcin denominada putchar la cual har que el carcter ingresado por teclado con la funcione getch y getche se almacene en las variables convenientes.

GETCH

GETCHE

SEGUNDO GRUPO

Funcin toupper()
Convierte una letra minscula a mayscula. Si es una letra minscula retornar su equivalente en mayscula, de lo contrario retornar el caracter sin modificacin alguna. Sintaxis: int toupper (int c);

Funcin isalnum()
Determina si el caracter c es una letra del alfabeto (de la a a la z sin distinguir entre maysculas y minsculas) o un digito. Si no es letra o digito regresa un valor cero, de lo contrario regresa un valor distinto de cero. Sintaxis: Int isalnum (int c);

ISALPHA Determina si el argumento es alfabtico. Devuelve un valor distinto de cero si es cierto; en otro caso devuelve 0.

Tipo: int Biblioteca: <ctype.h>

SINTAXIS int isalpha (int c);

Ejemplo #include <stdio.h> #include <ctype.h> void main() { int A=9; int B='A'; if( isalpha(A) ) printf( "Character 1 is alpha\n" ); else printf( "Character 1 is not alpha\n" ); if( isalpha(B) ) printf( "Character 2 is alpha\n" ); else printf( "Character 2 is not alpha\n" ); }

ISASCII(C)

Determina si el argumento es un caracter ASCII, perteneciente al rango de o a 127 y en hexadecimal desde el 00 hasta el 7F. Devuelve un valor distinto de cero

si es cierto; en otro caso devuelve 0.


Tipo: int Biblioteca a la que pertenece: <ctype.h>

SINTAXIS: int isascii(int c);

EJEMPLO: #include <stdio.h> #include <ctype.h>

void main()
{ char cadena[] = ";0sR(h&~?R1/"; int i;

for(i = 0; cadena[i]; i++) printf("%c, %d\n", cadena[i], isascii(cadena[i]));

EJEMPLO(ISDIGIT())
Ejemplo

#include <stdio.h> #include <ctype.h>


int main() { char cadena[] = ";0fR(4h&~?R1/"; int i; for(i = 0; cadena[i]; i++) printf("%c, %d\n", cadena[i], isdigit(cadena[i]));

return 0;
}

EJEMPLO(ISLOWER())
#include <stdio.h> #include <ctype.h> int main() { char cadena[] = dAvId 00457(); int i; for(i = 0; cadena[i]; i++) printf("%c, %d\n", cadena[i], islower(cadena[i])); return 0; }

FUNCION ISPUNCT
Comprueba sin un carcter es correspondiente a un signo de puntuacin. ispunct es una macro que verifica el entero c pertenece al rango de caracteres de los signos de puntuacin, que por defecto son todos menos los alfanumricos y el blanco ' '. Determina si el argumento es un carcter de puntuacin. Devuelve un valor distinto de cero si es cierto; en otro caso devuelve 0
El valor de retorno ser no nulo si C es un signo de puntuacin.

FUNCION ISSPACE
Comprueba sin un carcter es de tipo espacio. isspace es una macro que verifica el entero c pertenece grupo de caracteres de espacio, ' ', tab, retorno de carro, nueva lnea, tabulador vertical o salto de pgina. Determina si el argumento es un espacio en blanco. Devuelve un valor distinto de cero si es cierto; en otro caso devuelve 0 Valor de retorno: El valor de retorno ser no nulo si c es un carcter de tipo espacio

FUNCIN ISUPPER()
DEFINICIN: DETERMINA SI EL ARGUMENTO ES UNA MAYSCULA. DEVUELVE UN VALOR DISTINTO DE CERO SI ES CIERTO; EN OTRO CASO DEVUELVE 0. TIPO DE DATO: CHAR LIBRERA: CTYPE.H SINTAXIS: ISUPPER() EJEMPLO: #include<ctype.h> #include<stdio.h>

void main() { char c; scanf("%c",&c); if (isupper(c)) printf("%c ES UNA MAYUSCULA\n",c); else printf("%c NO UNA MAYUSCULA\n",c); }

FUNCIN PUTCHAR()
DEFINICIN: ENVA UN CARCTER AL PUERTO SERIAL. EL ARGUMENTO ES EL VALOR ASCII DEL CARCTER QUE DESEA ENVIARSE. EN EL CASO DEL COMPILADOR HITECH, LA FUNCIN EQUIVALENTE ES PUTCH( ) TIPO DE DATO: INT LIBRERA: STDIO.H SINTAXIS: INT PUTCHAR(INT C); EJEMPLO: #include <stdio.h> void main() { putchar('B'); printf("\n"); }

FUNCIN GETS
La funcin gets retorna cadena si es realizada con xito. Si un final de fichero (EOF) es encontrado y ningn carcter ha sido ledo en el array, entonces el contenido del array permanece invariable y un puntero nulo es retornado. Si ocurre un error de lectura durante el proceso, el contenido del array es indeterminado y un puntero nulo es retornado.

FUNCIN PUTS
Esta funcin escribe la cadena apuntado por cadena en el stream apuntado por stdout, y aade un carcter de lnea nueva a la salida. El carcter nulo final no es escrito. int puts (const char *cadena);

TERCER GRUPO

Funcin Exponencial
La funcin exponencial es una funcin con base constante (e) elevada a una variable(x). Donde x es un numero real . En C++ la funcin debe ser declarada en la librera de <math.h> y su formato es: exp(numero) Donde: exp= es la funcin exponencial numero= es el exponente al que queremos elevar la base.

Funcin Logartmica
Una funcin logartmica es aquella que desea saber el exponente al que va ser elevado una base para conseguir un nmero especfico. La base debe ser positiva y diferente de 1. loga x = b ab = x. La funcin logartmica es la inversa de la funcin exponencial.

Ejercicio Funcin Logartmica


#include <stdio.h> #include <math.h> #include <conio.h> void main() { double num,res; printf("Ingrese el numero: "); scanf("%lf",&num); res=log10(num); printf("El logaritmo del numero %lf es: %lf",num,res); getch(); }

Ejercicio Funcin Exponencial


#include <stdio.h> #include <math.h> void main() { int opcion, resp; float num,resp1, resp2, resp3; printf("\t FUNCIONES EXPONENCIALES Y LOGARITMICAS NATURALES\n"); printf("\t ================================================\n\n"); printf("Escoja la funcion aritmetica que desea realizar:\n"); printf("1. Funcion exponencial (e)\n"); printf("2. Funcion logaritmica natural (ln)\n"); printf("3. Funcion logaritmica base 10 (lg)\n\n"); do { printf("Que opcion escogio? "); scanf("%d",&opcion); printf("\n"); switch (opcion) { case 1: printf("Ingrese el numero del exponente en la funcion exponencial\n"); scanf("%f",&num); resp1=exp(num); printf("El resultado de e elevado a %f es: %f\n",num,resp1); break;

case 2: do { printf("Ingrese el numero del que desea encontrar su logaritmo natural (mayor a 0)\n"); scanf("%f",&num); }while(num<=0); resp2=log(num); printf("El resultado del logartimo natural de %f es: %f\n",num,resp2); break; case 3: do { printf("Ingrese el numero del que desea encontrar su logaritmo base 10 (mayor a 0)\n"); scanf("%f",&num); }while(num<=0); resp3=log10(num); printf("El resultado del logartimo natural de %f es: %f\n",num,resp3); break; default: printf("No existe esta opcion\n"); break; } printf("Desea hacer algun otro calculo?. Digite (1) para hacerlo caso contrario otro NUMERO "); scanf("%d",&resp); }while (resp==1); }

SLEEP Y SYSTEM(COLOR)
3.1 FUNCIN SLEEP() Se encuentra en la librera windows.h, sirve para realizar una pausa en un instante determinado del programa, para lo cual utilizamos esta funcin colocando dentro de los parntesis el tiempo, el cual est dado en milisegundos. Sintxis: #include <windows.h> Sleep(500); 3.2 FUNCIN SYSTEM(COLOR) La funcin system(color) es un funcin perteneciente al lenguaje de programacin C, mediante el cual tenemos la posibilidad de variar el col or de la ventana del programa y su texto, es una opcin muy llamativa la cual es manejada con la librera stdlib.h para su funcionamiento. Se coloca de la forma system(color##)donde el primer nmero cambiar el color de la ventana y el segundo nmero el color de texto. Existen varios colores con sus respectivos cdigos: 0 = Black 1 = Blue 2 = Green 3 = Aqua 4 = Red 5 = Purple 6 = Yellow 7 = White 8 = Gray 9 = Light Blue A = Light Green B = Light Aqua C = Light Red D = Light Purple E = Light Yellow F = Bright White Sintxis: #include <stdlib.h> system("color 90");

EJEMPLO

Funcin sin()
Es una funcin de la librera math.h que sirve para hacer clculos trigonomtricos . Esta funcin calcula el seno de un ngulo x, el cual debe estar expresado radianes. Si el ngulo con el que se desea usar la funcin est expresado en grados, se deber transformarlo a radianes, multiplicndolo por (PI/180), donde PI es una constante igual a 3,14159. La sintaxis de la funcin es: sin(float x);

Funcin cos()
Es una funcin trigonomtrica de la librera math.h, la cual como su nombre lo indica sirve para calcular el coseno de un ngulo en radianes. En caso de tener el ngulo en grados, se debe transformarlo a radianes de la manera ya explicada para la funcin sin(). La sintaxis de la funcin es: cos(float x);

Ejemplo utilizando la funcin sin() /* Calculo de la funcin trigonomtrica seno de ngulos que van de 15 en 15 desde 15 hasta 360 grados*/ #include <iostream> #include <conio.h> #include <math.h> using namespace std; #define PI 3.1416 void main () { int i; for (i=15;i<=360;) { cout<< "El seno de "<<i <<" es "<<sin (i*PI/180) << "\n"; i += 15; } getch(); }

Ejemplo utilizando la funcin cos() /*Hallar el resultado del coseno un un angulo doble, utilizando la funcion cos() y comprobar el resultado con las identidades trigonometricas; el angulo simple debe ser ingresado por el usuario*/ #include <stdio.h> #include <conio.h> #include <math.h> #define PI 3.1416 void main() { int grados; float trig; printf("Ingrese el angulo simple en grados\n"); scanf("%d", &grados); printf("El coseno del angulo doble de %d\n",grados); printf("con la funcion cos(2*%d) es: %f\n\n",grados,cos(2*(grados*PI/180))); trig=(2*pow(cos(grados*PI/180),2))-1; printf("El coseno del angulo doble de %d con la\n",grados); printf("identidad cos(2*%d)=2*(cos(%d))^2 - 1 es: %f",grados,grados,trig); getch(); }

Funcin exit()
Esta funcin da lugar a la terminacin inmediata del programa, forzando la vuelta al sistema operativo. La forma general de la funcin exit() es: void exit (int cdigo_de_vuelta); El valor de cdigo_de_vuelta es el que se devuelve al proceso de llamada, que normalmente es el sistema operativo.

Ejemplo exit()

Funcin signal()
Permite especificar la accin que debe realizarse cuando un proceso recibe una seal y lo prepara para recibir cierto tipo de seales. Esto supone que ser preciso aadir una llamada a signal para cada tipo de seal que se desee que el proceso reciba sin que cause su finalizacin. Su definicin es: include <signal.h> La definicin de la funcin en ANSI C establece que sta precisa dos parmetros -el nmero de la seal y el tipo de accin que debe realizar- y devuelve un puntero a una funcin que no establece nada. Mediante una llamada con la funcin signal se establece un gestor de seales para la seal signum (nmero de la seal). Func permite elegir una de las tres acciones que se pueden realizar cuando se recibe la seal: - SIG_IGN: ignora la seal. -SIG_DFL: devuelve a la seal su comportamiento por defecto. include <signal.h> void func (int sig); Donde sig es el nmero de la seal cuya accin se desea programar. Despus de ser programada, la funcin deber contener el cdigo correspondiente para que la accin sea la deseada.

Ejemplo Signal()

Asctime
Es una funcin que convierte el tiempo a una cadena de caracteres, cuyo formato de salida comprende 26 caracteres definidos: da mes hora minutos segundos ao %.3s %.3s%3d %.2d:%.2d:%.2d %d\n Librera y Sintaxis: #include <time.h> char * asctime (const struct tm *timeptr); Ejemplo:

Es similar a la funcin asctime sin embargo tiene la particularidad de desplegar los datos de salida en diferentes formatos de acuerdo a al tipo de especificador Librera y Sintaxis: #include <time.h> size_t strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr); Especificador Sustitucin por Especificadores de formato:
%H %k %I Especificador %b / %h %B %m Sustitucin por Abreviacin del mes. Mes completo Nmero del mes con dos dgitos. %l %M %p %P %r %R %T %X Hora en 2 h con 2 dgitos. Hora en 24h simple. Hora en 12h con 2 dgitos. Hora en 12h simple. Minutos en 2 dgitos. AM o PM am o pm Reloj en 12h Reloj en 24h Reloj en 24h. Representacin del tiempo.

strftime

Ejemplo

FLUJO CIN
Toma caracteres de la entrada estndar (teclado).Este flujo utiliza el operador de insercin, y y apunta al objeto donde tiene que enviar la informacin. Por lo tanto la sintaxis de cout ser: cout<<variable1<<variable2<<...<<variablen; No olvidemos que las cadenas de texto son variables y se ponen entre " " (comillas dobles).

FLUJO COUT
Pone caracteres en la salida estndar (pantalla).Este flujo utiliza el operador de extraccin ,lee informacin y se coloca a la izquierda del operador >> y almacena en las variables indicadas a la derecha. cin>>variable1>>...>>variablen;

Realice la suma de los nmeros pares, la suma de los nmeros impares, y cuente cuantos de cada tipo fueron ingresados. #include<iostream> using namespace std; void main() { int N, acum1=0, acum2=0, cont, num, i=0,j=0; char decide; do { cout<<"Ingrese el limite:"; cin>>N; }while(N<=0); for(cont=1;cont<=N;cont++) { do { cout<<" Ingrese el numero: "; cin>>num; }while(num<=0); if((num%2)==0) { acum1+=num; i++; } else { acum2+=num; j++; }

} cout<<"La suma de los numeros pares es: "<<acum1<<"\n"; cout<<"La suma de los numeros impares es: "<<acum2<<"\n"; cout<<"Hay "<<i<<" numeros pares"<<"\n"; cout<<"Hay "<<j<< " numeros impares"<<"\n";
}

You might also like