Sei sulla pagina 1di 8

UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE

FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION




~ 1 de 8 ~ Ing Edwin Estremadoyro Escobar
FUNCIONES PREDEFINIDAS

Algunos compiladores de C. contienen funciones predefinidas para ser empleadas
directamente por los usuarios. Tales funciones se hallan en libreras especiales y
frecuentemente pueden ser utilizadas escribiendo previamente una directiva de inclusin
#include. Entre estas funciones las ms usadas tenemos:

1. Funciones matemticas #include<math.h> (1)

Funcin Valor que retorna
-----------------------------------------------------------------------------------------------------------
1. int abs(int x); Valor absoluto de x
2. double cos(double x); Coseno de x , x en radianes
3 double exp(double x); e elevado a x
4. double fmod(double x,double y); x mdulo de y con Nros. reales
5. double log (double x); Logaritmo natural de x
6 double log10(double x); Logaritmo decimal de x
7 double pow(double x,double y); x elevado a la y
8 double pow10(int p);; 10 elevado a la p
9 double sin(double x); seno de x
10 double tan(double x); Tangente de x
11 double modf(double num, int *i) Descompone Num en parte entera y fraccionaria,
devuelve la parte fraccionaria y sita la parte entera en la variable apuntada por i
------------------------------------------------------------------------------------------------------------
(1) Las funciones matemticas tienen funciones en modo real o complejo.
Ejemplo de la funcin coseno.
real : double cos(double x);
complejo : complex cos(complex x);

Ejemplo 1 funcin potencia
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
double x = 2.0, y = 3.0;
printf("%5.2f elevado al %5.2f es: %6.2f\n", x, y, pow(x, y));
system("pause");
}





UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 2 de 8 ~ Ing Edwin Estremadoyro Escobar
2. Funciones de manejo de pantalla #include <conio.h>
-------------------------------------------------------------------------------------------------------------
1. int getch(void).- lee un carcter de teclado sin visualizarlo.
2. int getche(void).- Lee un carcter de teclado visualizando.
3. void gotoxy(int x,int y).- posesiona el cursor en la columna x y fila y de la pantalla.
Esta funcin se incluye en una librera
4. void clrscr(void).- borra la pantalla activa, en Visual C++ system(cls);
5. int wherex(void).- Devuelve la columna donde se encuentra el cursor.
6. int wherey(void).-Devuelve la fila donde se encuentra el cursor.
Esta funcin se incluye en una librera
7. cprintf(const *char formato[,argumentos],,,]).- igual que la funcin printf pero aqu se
puede usar colores.
8. void textcolor(int colorfondo, color de texto).- Cambia el color de fondo y de texto al
especificado en color ( esta funcin se incluye en una librera).
9. int kbhit(void).- Devuelve un valor distinto de cero si se ha pulsado una tecla, si no
devuelve un valor cero.
--------------------------------------------------------------------------------------------------------------
El tipo void se utiliza para declarar funciones que no retornan un valor o para declarar un
puntero no especificado. Si void aparece entre parntesis a continuacin del nombre de una
funcin no es interpretada como un tipo. En este caso indica que la funcin no acepta
argumentos. El color de texto se obtiene de acuerdo al siguiente diagrama

Figura 1

CREACIN DE LA FUNCIONES

void clrscr(void ) para limpiar la pantalla
void gotoxy(int col, int fila): posicionar el cursor en la columna X y la fila Y
void textcolor( int colorfondo, int colorletra), permite especificar el color del fondo y de la
letra a imprimir esos colores se determinan de acuerdo al grafico que representa la figura 1
Ejemplo letra roja oscura en fondo verde brillante seria textcolor(64+128,4)

int WhereX (). Permite obtener la la columna donde se encuentra el cursor
int WhereY (). Permite obtener la la fila donde se encuentra el cursor

7 0 1 2 2 4 5 6
AZUL
BRILLO
ROJO
VERDE
AZUL
BRILLO
ROJO
VERDE
TEXTO
FONDO
UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 3 de 8 ~ Ing Edwin Estremadoyro Escobar
PASO 1: ESCRIBA LAS FUNCIONES
#include <conio.h>
#include <windows.h>
#include <stdio.h>

void clrscr()/*Creando funcion para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord,
&count);
SetConsoleCursorPosition(hStdOut, coord);
}

void gotoxy(int x, int y) {
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void textcolor( int colorfondo, int colorletra)
{
HANDLE hStdInput = INVALID_HANDLE_VALUE,
hStdOutput = INVALID_HANDLE_VALUE;
hStdInput = GetStdHandle(STD_INPUT_HANDLE);
hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOutput,colorfondo | colorletra);
}
int WhereX ()
{
CONSOLE_SCREEN_BUFFER_INFO sbi;
GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &sbi);
return sbi.dwCursorPosition.X;
}
int WhereY ()
{
CONSOLE_SCREEN_BUFFER_INFO sbi;
GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &sbi);
return sbi.dwCursorPosition.Y;
}

// PROBANDO ESAS FUNCIONES

int main()
{ int cx , cy;
clrscr(); // probando la funcion limpiar
gotoxy(10,5); //posicionar el cursor en la columna 40 y fila 5
textcolor(192,14);// probano el color de texto
printf ("LETRA DE COLOR AMARILLO FONDO ROJO\n");
cx=WhereX();
cy=WhereY();
printf("\n Columna del cursor: %d\n",cx );
printf("\n Fila del cursor: %d \n\n", cy);
system("pause");;
}

UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 4 de 8 ~ Ing Edwin Estremadoyro Escobar
Ejecute para probar las funciones




PASO 2: PONER EN UNA LIBRERA TODAS ESTA FUNCIONES

Grabar las 5 funciones por ejemplo en una carpeta y grabarlo con el nombre de milib.h puede
utilizar el Block de Notas


UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 5 de 8 ~ Ing Edwin Estremadoyro Escobar

PASO 3: EL PROGRAMA SE CONVIERTE EN

#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include "d:\milib.h" // incluye esta librera creada
int main()
{ int cx , cy;
clrscr(); // probando la funcion limpiar
gotoxy(10,5); //posicionar el cursor en la columna 40 y fila 5
textcolor(192,14);// probano el color de texto
printf ("LETRA DE COLOR AMARILLO FONDO ROJO\n");
cx=WhereX();
cy=WhereY();
printf("\n Columna del cursor: %d\n",cx );
printf("\n Fila del cursor: %d \n\n", cy);
system("pause");;
}

Siendo los resultados de salida los mismos.
Ejemplo 2: Usando la funcin milib.h imprimir mensaje de texto en los 16 colores
En fondo negro, azul oscuro y azul claro y amarillo como se muestra

#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include "d:\milib.h" // incluye esta librera creada

int main()
{
for (int i=0;i<=15;i++)
{
textcolor(0,i);
printf ("\nLETRA DE COLOR %d ",i);
}
for (int i=0;i<=15;i++)
{
textcolor(16,i); gotoxy(20,i);
printf (" %d Fondo Azul osc",i);
}
for (int i=0;i<=15;i++)
{
textcolor(128+16,i); gotoxy(40,i);
printf (" %d Fondo Azul claro",i);
}
for (int i=0;i<=15;i++)
{
textcolor(128+64+32,i); gotoxy(60,i);
printf (" %d Fondo amarillo ",i);
}
system("pause");
}
UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 6 de 8 ~ Ing Edwin Estremadoyro Escobar


Ejemplo 3: uso de Kbhit()

#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include "d:\milib.h" // incluye esta librera creada

int main()
{
int cont=0;
while( !_kbhit() )
{
if (cont<15)cont++ ;
else cont=0;
textcolor(cont,12);
gotoxy(30,2);
printf("INGENIERIA INDUSTRIAL") ;
Sleep(50);
}
}








UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 7 de 8 ~ Ing Edwin Estremadoyro Escobar
Ejemplo 4: Espiral decreciente usando gotoxy

#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include "d:\milib.h" // incluye esta librera creada

int main()
{
int x1=1,x2=78,y1=1,y2=26,pasox=4, pasoy=2;
textcolor(0,14);
int fila, col,i ,nvueltas=5;
for (i=1;i<=nvueltas;i++)
{
for (col=x1;col<x2;col++) { gotoxy(col,y1); printf("*");Sleep(10);} // derecha
y2=y2-pasoy;
for (fila=y1;fila<y2;fila++) { gotoxy(x2,fila); printf("*");Sleep(10);} //abajo
x1=x1+pasox;
for (col=x2;col>x1;col--) { gotoxy(col,y2); printf("*");Sleep(10);} //izquierda
y1=y1+pasoy;
for (fila=y2;fila>y1;fila--) { gotoxy(x1,fila); printf("*");Sleep(10);} //arriba
x2=x2-pasox;
}
getch();
}







UNIVERSIDAD NACIONAL DE SAN AGUSTIN LABORATORIO DE
FIPS E.P. DE ING. INDUSTRIAL LENGUAJE DE PROGRAMACION


~ 8 de 8 ~ Ing Edwin Estremadoyro Escobar
Ejemplo 5: Dibujar un cuadro usando gotoxy

#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include "d:\milib.h" // incluye esta librera creada

int main(void)
{
int cx=10,cy=2,ancho=20,alto=10,fila,col;
textcolor(0,9);
for(fila=0;fila<alto;fila++)
for (col=0;col<ancho;col++)
{
gotoxy(cx+col,cy+fila);
printf ("%c",219);
}
getch();
}

Potrebbero piacerti anche