Você está na página 1de 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.3 Particularidades:

1.1 Sintaxis:

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.

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

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.

tolower

int

ctype.h o stdlib.h

int tolower(int c);

Convierte una
letra a minscula.

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

Tipo

Biblioteca

Sintaxis

Descripcin

Ejemplo

abs(x)

int, float

math.h

floor(d)

int, float

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 color 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:

strftime

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:

Especificador

Sustitucin por

%b / %h

Abreviacin del mes.

%B
%m

Mes completo
Nmero del mes con dos
dgitos.

%H

Hora en 2 h con 2 dgitos.

%k

Hora en 24h simple.

%I

Hora en 12h con 2 dgitos.

%l

Hora en 12h simple.

%M

Minutos en 2 dgitos.

%p

AM o PM

%P

am o pm

%r

Reloj en 12h

%R

Reloj en 24h

%T

Reloj en 24h.

%X

Representacin del tiempo.

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

Você também pode gostar