FUNCIONES PROPIAS
FUNCIONES DE LA LIBRERÍA STDLIB.H
Función abs( ): Devuelve el valor absoluto de un parámetro.
Función de ejemplo:
Función labs( ): Devuelve el valor absoluto del parámetro. Esta es la versión long int de la
función abs( ).
Función atof( ): Analiza la cadena C str , interpretando su contenido como un número de punto
flotante y devuelve su valor como a double. La función primero descarta tantos espacios en
blanco (como en espacio) según sea necesario hasta que se encuentre el primer carácter que no
sea un espacio en blanco. Luego, a partir de este carácter, toma tantos caracteres como sea
posible que sean válidos siguiendo una sintaxis parecida a la de los literales de coma flotante
(ver más abajo), y los interpreta como un valor numérico. El resto de la cadena después del
último carácter válido se ignora y no tiene ningún efecto sobre el comportamiento de esta
función.
Función atoi( ): Analiza la cadena C str interpretando su contenido como un número entero, que
se devuelve como un valor de tipo int.
La función primero descarta tantos espacios en blanco (como en espacio) según sea necesario
hasta que se encuentre el primer carácter que no sea un espacio en blanco. Luego, a partir de
este carácter, toma un signo más o menos inicial opcional seguido de tantos dígitos en base 10
como sea posible y los interpreta como un valor numérico. La cadena puede contener caracteres
adicionales después de los que forman el número entero, que se ignoran y no tienen ningún
efecto en el comportamiento de esta función. Si la primera secuencia de caracteres que no son
espacios en blanco en str no es un número integral válido, o si tal secuencia no existe
porque str está vacía o contiene solo caracteres de espacio en blanco, no se realiza ninguna
conversión y se devuelve cero.
Función de ejemplo:
Función atol( ): Analiza la cadena C str interpretando su contenido como un número entero, que
se devuelve como un valor de tipo long int. Es muy parecida a la función atoi( ).
Función exit( ): Termina el proceso normalmente, realizando la limpieza regular para terminar
los programas. Tenga en cuenta que los objetos con almacenamiento automático no se
destruyen llamando Exit(C ++).
Función rand( ): Devuelve un número entero pseudoaleatorio en el rango entre 0 y RAND_MAX.
Función de ejemplo:
Función system( ): Invoca al procesador de comandos para ejecutar un comando del sistema .
FUNCIONES DE LA LIBRERÍA MATH.H
Función ceil( ): Redondea x hacia arriba, devolviendo el valor integral más pequeño que no sea
menor que x . Ejm: ceil (2.3) = 3.0 ; ceil (-2.3) = -2.0
Función fabs( ): Devuelve el valor absoluto de x : | x |. Ejm: fabs(-3.4656)= 3.465600
Función fmod( ): Devuelve el resto de la división en coma flotante de numer / denom
(redondeado hacia cero). Ejm: fmod (5.3,2)= 1.300000
Función pow( ): Devuelve la base elevada al exponente de potencia. Ejm: pow(2,3)=8
Función sqrt( ): Devuelve la raíz cuadrada de x. Ejm: sqrt(16)=4
FUNCIONES DE LA LIBRERÍA STDIO.H
Función getchar( ): Devuelve el siguiente carácter de la entrada estándar ( stdin ).
Función de ejemplo:
Función putchar( ): Escribe un carácter en la salida estándar ( stdout ).
Función de ejemplo:
Función gets( ): Lee caracteres de la entrada estándar ( stdin ) y los almacena como una cadena
C en str hasta que se alcanza un carácter de nueva línea o el final del archivo.
Función de ejemplo:
Función puts( ): Escribe la cadena C señalada por str en la salida estándar ( stdout ) y agrega un
carácter de nueva línea ( '\ n' ).
Función de ejemplo:
FUNCIONES DE LA LIBRERÍA STRING.H
Función strcat( ): sirve para concatenar cadenas. Agrega una copia de la cadena de origen a
la cadena de destino . El primer carácter de origen sobrescribe el carácter nulo de terminación
en el destino y se incluye un carácter nulo al final de la nueva cadena formada por la
concatenación de ambos en el destino. El destino y la fuente no se superpondrán.
Función strcmp( ): Compara dos cadenas. Compara la cadena C str1 con la cadena C str2 .
Esta función comienza a comparar el primer carácter de cada cadena. Si son iguales entre sí,
continúa con los siguientes pares hasta que los caracteres difieran o hasta que se alcance un
carácter nulo de terminación.
Función de ejemplo:
Función strcpy( ): Copia una cadena. Copia la cadena C señalada por la fuente en la matriz
señalada por el destino, incluido el carácter nulo de terminación (y deteniéndose en ese punto).
Función de ejemplo:
Función strcspn( ): Obtiene el intervalo hasta el carácter de la cadena. Busca str1 en busca de la
primera aparición de cualquiera de los caracteres que forman parte de str2 y devuelve el
número de caracteres de str1 leídos antes de esta primera aparición.
La búsqueda incluye los caracteres nulos finales. Por lo tanto, la función devolverá la longitud
de str1 si ninguno de los caracteres de str2 se encuentra en str1.
Función strerror( ): Obtiene puntero a la cadena del mensaje de error.
Ejm: ‘char * strerror (int errnum);’ Interpreta el valor de errnum, generando una cadena con un
mensaje que describe la condición de error como si una función de la biblioteca la estableciera
en errno.
Función strlen( ): Devuelve la longitud de la cadena C str. La longitud de una cadena C está
determinada por el carácter nulo de terminación: una cadena C es tan larga como el número de
caracteres entre el principio de la cadena y el carácter nulo de terminación (sin incluir el
carácter nulo de terminación en sí).
FUNCIONES DE LA LIBRERÍA CTYPE.H
Función tolower( ): Convierte el caracter en su equivalente en minúsculas si el caracter es una
letra mayúscula y tiene un equivalente en minúsculas. Si no es posible tal conversión, el valor
devuelto es el caracter sin cambios.
Función de ejemplo:
Función toupper( ): Convierte el caracter en su equivalente en mayúsculas si el caracter es una
letra minúscula y tiene un equivalente en mayúsculas. Si no es posible tal conversión, el valor
devuelto es el caracter sin cambios.
Función de ejemplo:
Función isalnum( ): Comprueba si el carácter es un dígito decimal o una letra mayúscula o
minúscula.
Función de ejemplo:
Función isalpha( ): Comprueba si el carácter es una letra alfabética.
Función de ejemplo:
Función isascii( ): La función isascii devuelve un valor diferente a 0 en caso de que el valor sea
presuntamente ASCII o 0 en caso contrario.
Función isdigit( ): Comprueba si el carácter es un dígito decimal. Los dígitos decimales son
cualquiera de los siguientes: 0 1 2 3 4 5 6 7 8 9
Función de ejemplo:
Función islower( ): Comprueba si el carácter es una letra minúscula.
Función de ejemplo:
Función isupper( ): Comprueba si el carácter es una letra mayúscula.
Función de ejemplo:
Función ispunct( ): Comprueba si el carácter es un carácter de puntuación. La configuración
regional estándar "C" considera los caracteres de puntuación como todos los caracteres gráficos
(como en isgraph ) que no son alfanuméricos (como en isalnum ).
Función isspace( ): Comprueba si el carácter es un espacio en blanco.
Función isxdigit( ): Comprueba si el carácter es un dígito hexadecimal. Los dígitos hexadecimales
son cualquiera de los siguientes: 0 1 2 3 4 5 6 7 8 9 abcdef ABCDEF
PARTE II
En una empresa, se descuenta, como sanción, a los trabajadores que no cumplen con las tareas
asignadas en su plan operativo, de acuerdo a la evaluación, y de acuerdo al tipo de trabajador
calificado.
El código de este caso y los códigos mostrados anteriormente son parte de un solo programa, a
continuación, brindaremos el código del programa completo.
CODIGO:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
using namespace std;
//funciones:
void aplicandoAbs(){
int a,b;
a=abs(14);
b=abs(-21);
cout<<"Calculamos el valor absoluto de un numero"<<endl;
cout<<"El valor absoluto de 14 es :"<<a<<endl;
cout<<"El valor absoluto de -21 es :"<<b<<endl;
}
void aplicandoAtoi(){
int a;
char numero[256];
cout<<"Calculamos el triple de un numero"<<endl;
cout<<"Ingrese un numero :";
cin>>numero;
a = atoi (numero);
cout<<"El triple de "<<a<<" es "<<3*a<<endl;
}
void aplicandoRand(){
int a;
cout<<"Simulamos el tiro de un dado"<<endl;
a = rand() % 6 + 1;
cout<<"El tiro es "<<a<<endl;
}
void aplicandoGetchar(){
int c;
c=getchar();
cout<<endl;
cout<<endl<<"Escribe una frase para replicarla debajo : ";
while(c!=EOF){
putchar(c);
c=getchar();
}
}
void aplicandoPutchar(){
cout<<"Imprimiremos el abecedario: "<<endl;
char c;
for (c = 'A' ; c <= 'Z' ; c++){
putchar (c);
}
cout<<endl;
}
void aplicandoGets(){
char palabra[256];
cout<<"Ingrese dos palabras: "<<endl;
cin>>palabra;
gets (palabra);
cout<<"La segunda palabra es: ";
puts(palabra);
}
void aplicandoPuts(){
char string [] = "Este es un ejemplo de como se usa puts.";
puts (string);
}
void aplicandoStrcmp(){
char clave[] = "continental";
char texto[80];
cout<<"La contrasena cotrrecta es 'continental', pruebe con otras palabras para
comprobarlo."<<endl;
do {
cout<<"Ingrese contrasena: ";
fflush (stdout);
scanf ("%79s",texto);
} while (strcmp (clave,texto) != 0);
cout<<"Contrasena correcta!"<<endl;
}
void aplicandoStrcpy(){
char original[]="Este es un ejemplo de strcpy.";
char copia[100];
char correcto[100];
strcpy (copia,original);
strcpy (correcto,"copiado con exito!");
cout<<"Cadena original: "<<original<<endl;
cout<<"Cadena copia: "<<copia<<endl;
cout<<correcto<<endl;
}
void aplicandoTolower(){
int a=0;
char texto[]="TEXTO DE EJEMPLO";
char c;
cout<<"TEXTO DE EJEMPLO "<<endl;
cout<<"Convertimos a minusculas: "<<endl;
while (texto[a])
{
c=texto[a];
putchar (tolower(c));
a++;
}
cout<<endl;
}
void aplicandoToupper(){
int a=0;
char texto[]="texto de ejemplo";
char c;
cout<<"texto de ejemplo "<<endl;
cout<<"Convertimos a mayusculas: "<<endl;
while (texto[a])
{
c=texto[a];
putchar (toupper(c));
a++;
}
cout<<endl;
}
void aplicandoIsalnum(){
int a;
char texto[]="ho123ta...";
a=0;
cout<<"ho123ta... "<<endl;
while (isalnum(texto[a])) a++;
cout<<"Los primeros "<<a<<" son alfanumericos."<<endl;
}
void aplicandoIsalpha(){
int a=0;
char texto[]="hola*123";
cout<<"Determinamos si un caracter es alfabetico"<<endl;
cout<<"hola*123"<<endl;
while (texto[a]){
if (isalpha(texto[a])){
cout<<"el caracter "<<texto[a]<<" es alfabetico"<<endl;
} else {
cout<<"el caracter "<<texto[a]<<" no es alfabetico"<<endl;
}
a++;
}
}
void aplicandoIsdigit(){
char texto[]="145bc";
int num;
cout<<"Determinamos el numero anterior con isdigit"<<endl;
cout<<"texto: 145bc"<<endl;
if (isdigit(texto[0])){
num = atoi (texto);
cout<<"El numero anterior es: "<<num-1<<endl;
}
}
void aplicandoIslower(){
int a=0;
int min=0;
char texto[]="Hola Como estas";
char c;
cout<<"Determinamos el numero de letras minusculas en 'Hola Como estas' "<<endl;
while (texto[a]){
c=texto[a];
if (islower(c)) min++;
a++;
}
cout<<"El numero de letras minusculas es: "<<min<<endl;
}
void aplicandoIsupper(){
int a=0;
int may=0;
char texto[]="Hola Como estas";
char c;
cout<<"Determinamos el numero de letras mayusculas en 'Hola Como estas' "<<endl;
while (texto[a]){
c=texto[a];
if (isupper(c)) may++;
a++;
}
cout<<"El numero de letras mayusculas es: "<<may<<endl;
}
void parte2(int op2, char tipo[100]){
char nombre[256];
char apellido[256];
int sueldo, puntaje;
float descuento, neto, tasa;
cout<<"Datos del trabajador"<<endl;
cout<<"-----------------------------------------"<<endl;
cout<<"Nombre: ";
cin>>nombre;
cout<<"Apellido: ";
cin>>apellido;
cout<<"Sueldo: ";
cin>>sueldo;
cout<<"Tipo: "<<tipo<<endl;
cout<<"Puntaje: ";
cin>>puntaje;
cout<<"Reporte"<<endl;
cout<<"-----------------------------------------"<<endl;
if (op2==1){
if (puntaje<10){
tasa=45;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=10) && (puntaje<=30)){
tasa=25;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=31) && (puntaje<=70)){
tasa=20;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=71) && (puntaje<=100)){
cout<<"'Es Observado'"<<endl;
}
} else if (op2==2){
if (puntaje<10){
tasa=25;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=10) && (puntaje<=30)){
tasa=15;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=31) && (puntaje<=70)){
tasa=10;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=71) && (puntaje<=100)){
cout<<"'Es Renovado'"<<endl;
}
} else if (op2==3){
if (puntaje<10){
tasa=5;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=10) && (puntaje<=30)){
tasa=3;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=31) && (puntaje<=70)){
tasa=2;
descuento=(tasa*sueldo)*0.01;
neto=sueldo-descuento;
cout<<"Descuento ("<<tasa<<"%): "<<descuento<<endl;
cout<<"Neto: "<<neto<<endl;
} else if ((puntaje>=71) && (puntaje<=100)){
cout<<"'Es Promovido'"<<endl;
}
}
system("pause");
}
//programa principal
int main(){
// Configuración
setlocale(LC_CTYPE,"Spanish");
int op,op1,op2;
char tipo[256];
do{
system("cls");
cout << "FUNCIONES PROPIAS " << endl;
cout << "1.- Funciones STDLIB" << endl;
cout << "2.- Funciones STDIO" << endl;
cout << "3.- Funciones STRING" << endl;
cout << "4.- Funciones CTYPE" << endl;
cout << "5.- Parte II" << endl;
cout << "6.- Salir" << endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op;
if( op < 1 || op > 6 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op < 1 || op > 6 );
switch(op){
case 1:
do{
system("cls");
cout << "FUNCIONES STDLIB " << endl;
cout << "1.- Aplicando ABS" << endl;
cout << "2.- Aplicando ATOI" << endl;
cout << "3.- Aplicando RAND" << endl;
cout << "4.- Volver" << endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op1;
if( op1 < 1 || op1 > 4 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op1 < 1 || op1 > 4 );
switch(op1){
case 1:
aplicandoAbs();
break;
case 2:
aplicandoAtoi();
break;
case 3:
aplicandoRand();
break;
case 4:
return main();
break;
}
system("pause");
} while( op1 != 4) ;
break;
case 2:
do{
system("cls");
cout << "FUNCIONES STDIO " << endl;
cout << "1.- Aplicando GETCHAR" << endl;
cout << "2.- Aplicando PUTCHAR" << endl;
cout << "3.- Aplicando GETS" << endl;
cout << "4.- Aplicando PUTS" << endl;
cout << "5.- Volver" << endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op1;
if( op1 < 1 || op1 > 5 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op1 < 1 || op1 > 5 );
switch(op1){
case 1:
aplicandoGetchar();
break;
case 2:
aplicandoPutchar();
break;
case 3:
aplicandoGets();
break;
case 4:
aplicandoPuts();
break;
case 5:
return main();
break;
system("pause");
} while( op != 5) ;
break;
case 3:
do{
system("cls");
cout << "FUNCIONES STRING " << endl;
cout << "1.- Aplicando STRCMP" << endl;
cout << "2.- Aplicando STTRCPY" << endl;
cout << "3.- Volver" << endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op1;
if( op1 < 1 || op1 > 3 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op1 < 1 || op1 > 3 );
switch(op1){
case 1:
aplicandoStrcmp();
break;
case 2:
aplicandoStrcpy();
break;
case 3:
return main();
break;
system("pause");
} while( op != 3) ;
break;
case 4:
do{
system("cls");
cout << "FUNCIONES CTYPE " << endl;
cout << "1.- Aplicando TOLOWER" << endl;
cout << "2.- Aplicando TOUPPER" << endl;
cout << "3.- Aplicando ISALNUM" << endl;
cout << "4.- Aplicando ISALPHA" << endl;
cout << "5.- Aplicando ISDIGIT" << endl;
cout << "6.- Aplicando ISLOWER" << endl;
cout << "7.- Aplicando ISUPPER" << endl;
cout << "8.- Volver" << endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op1;
if( op1 < 1 || op1 > 8 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op1 < 1 || op1 > 8 );
switch(op1){
case 1:
aplicandoTolower();
break;
case 2:
aplicandoToupper();
break;
case 3:
aplicandoIsalnum();
break;
case 4:
aplicandoIsalpha();
break;
case 5:
aplicandoIsdigit();
break;
case 6:
aplicandoIslower();
break;
case 7:
aplicandoIsupper();
break;
case 8:
return main();
break;
system("pause");
} while( op != 8) ;
break;
case 5:
system("cls");
cout<<"Seleccione tipo de trabajador"<<endl;
cout<<"1. Profesional"<<endl;
cout<<"2. Tecnico"<<endl;
cout<<"3. Obrero"<<endl;
cout<<"4. Volver"<<endl;
do{
cout << endl;
cout << "Opcion? ";
cin >> op2;
if( op2 < 1 || op2 > 4 ){
cout << endl;
cout << "Opción incorrecta!!" << endl;
}
} while( op2 < 1 || op2 > 4 );
switch (op2){
case 1:
strcpy (tipo,"Profesional");
parte2(op2, tipo);
break;
case 2:
strcpy (tipo,"Tecnico");
parte2(op2, tipo);
break;
case 3:
strcpy (tipo,"Obrero");
parte2(op2, tipo);
break;
case 4:
return main();
break;
}
break;
case 6:
cout << "Gracias por usar la aplicación!!" << endl;
break;
}
system("pause");
} while( op != 6) ;
system("pause");
return 0;
}