Lenguaje de programación C

74
Lenguaje de Programación I C Lenguaje de Programación |Pagina 1 de 74

description

Manual de usuario que contiene fundamentos de lenguaje C

Transcript of Lenguaje de programación C

Lenguaje de Programacin IC

ContentsBIBLIOGRAFIA:41.UNIDAD I: INTRODUCCIN Y DEFINICIONES51.1.Definicin del lenguaje51.2.Definicin de programa51.3.Definicin de comandos62.Definicin de instruccin61.UNIDAD II: ELEMENTOS DEL LENGUAJE62.Comandos del sistema73.Variables324.Variables numricas335.Variables alfanumricas346.Constantes357.Constantes numricas358.Operadores36Expresiones con operadores de igualdad409.Sentencias de entrada/salida (E/S)4310.UNIDAD III: SUBPROGRAMAS4411.Estructuras de control: IF THEN ELSE4412.Ciclos4413.FOR4414.WHILE4515.DO WHILE4516.UNIDAD IV: FUNCIONES4617.Definicin4618.Estructura de una funcin4719.Llamado de funciones4820.UNIDAD V: ARREGLOS4921.Conceptos4922.Arreglos unidimensionales5023.Declaracin y aplicacin5124.Arreglos multidimensionales5125.Declaracin y aplicacin53

BIBLIOGRAFIA:

LIBRO | PAGINA WEBAUTORESEDITORIAL

Aprendiendo C en 21 dasAitkenPrentice Hall Mxico

Cmo programar en C++P. J. DEITELH. M. DEITELDeitel

1. UNIDAD I: INTRODUCCIN Y DEFINICIONESEl lenguaje C fue creado por Dennis Ritchie en los laboratorios de la Bell Telephone, en 1972. El lenguaje no fue creado por el gusto de hacerlo, sino para un fin especfico: El diseo del Sistema Operativo UNIX (el cual se usa en muchas minicomputadoras). Desde el principio, el C tuvo como propsito ser til: permitir a los programadores atareados que las cosas se pudieran hacer.Como el C es un lenguaje muy poderoso y flexible, su uso se difundi rpidamente ms all de los laboratorios Bell. Los programadores de todo el mundo comenzaron a usarlo para escribir todo tipo de programas. Sin embargo, diferentes organizaciones comenzaron a utilizar sus propias versiones de C, y las pequeas diferencias entre las implementaciones comenzaron a dar problemas a los programadores. Para resolver este problema, el American National Standards Institute (ANSI) formo un comit en 1983 para establecer una definicin estndar del C, que lleg a ser conocida como en C estndar ANSI. Con unas cuantas excepciones, todos los compiladores de C modernos se adhieren a este estndar.1.1. Definicin del lenguajeEl lenguaje C se llama de esta forma debido a que su predecesor fue llamado B. El lenguaje B fue desarrollado por Ken Thompson tambin en los laboratorios Bell.Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones.Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio nivel pero con muchas caractersticas de bajo nivel.Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos.1.2. Definicin de programaConjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar.Al conjunto general de programas, se le denomina Software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital.1.3. Definicin de comandosEs una instruccin u orden que el usuario proporciona a un sistema informtico, desde la lnea de comandos (como una shell) o desde una llamada de programacin. Puede ser interno (contenido por el propio interprete) o externo (contenido en un archivo ejecutable).2. Definicin de instruccinSe denomina al conjunto de datos insertados en una secuencia estructurada o especifica que el procesador interpreta y ejecuta.Los tipos de instruccin permitidos estn definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en ingls ISA, instruccin set architecture), que tambin determina los registros de origen y destino de la CPU, y en ocasiones un dato intermedio (aquellos que son especificados explcitamente en la instruccin).Estas instrucciones del computado son las que determinan el funcionamiento de la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de instrucciones como medio para controlar la CPU.1. UNIDAD II: ELEMENTOS DEL LENGUAJE Comentarios Los comentarios son textos que no son procesados por el compilador. Sirven como informacin al programador. Para que un texto sea comentario debe estar entre los smbolos /* (marca el comienzo) y */ (marca el final de comentario).

Identificadores Se usan para referenciar las variables, las funciones, las etiquetas y otros objetos definidos por el usuario. La longitud del identificador puede variar entre uno o varios caracteres (se recomienda no ms de 31 y si el identificador est envuelto en el proceso de enlazado al menos los seis primeros deben ser significativos). El primer carcter debe ser una letra o un smbolo subrayado y los caracteres siguientes pueden ser letras, nmeros o smbolos de subrayado. Las minsculas y las maysculas se tratan como distintas. Un identificador no puede ser igual a una palabra clave de C y no debe tener el mismo nombre que una funcin ya escrita o que se encuentre en la biblioteca de C.

Constantes Las constantes son expresiones con un significado invariable. La representacin ms simple de un concepto de este lenguaje son las constantes. Al contrario que las variables, las constantes mantienen su valor a lo largo de todo el programa. Para indicar al compilador que se trata de una constante, usaremos la directiva #define: #define Observa que no se indica el punto y coma de final de sentencia ni tampoco el tipo de dato. La directiva #define no slo nos permite sustituir un nombre por un valor numrico, sino tambin por una cadena de caracteres. El valor de una constante no puede ser modificado de ninguna manera./* Uso de las constantes */ #include #define pi 3.1416 #define escribe printfmain() /* Calcula el perimetro */ { int r; escribe("Introduce el radio: "); scanf("%d",&r); escribe("El perimetro es: %f",2*pi*r); }

Variables Una variable es una posicin de memoria con nombre que se usa para mantener un valor que puede ser modificado en el programa. Todas las variables deben ser declaradas antes de poder usarlas. Operadores Los operadores son palabras o smbolos que hacen que un programa acte sobre las variables. En C existen diversos tipos de operadores. Aritmticos, relacionales, de asignacin, lgico. Sentencias Una sentencia es una expresin en C donde se esperan unas consecuencias, normalmente son las instrucciones, cada sentencia finaliza con un punto y coma.2. Comandos del sistemaOperandos AritmeticosOperandos RelacionalesOperandos Logicos

- Resta+ Suma* Multiplicacion/ Division real% Residuo= Asignacion< Menor que> Mayor que= Mayor igual que!= Desigualdad= = Igualdad&& Y|| OXor Bicondicional! Negacion++ Incremento-- Decremento

Declaracion de Variables

TipoDeclaracinLimite InferiorLimite Superior

EnteroEntero CortoEntero LargoEntero sin SignoEntero con SignoRealReal DobleReal LargoCaracterCaracter sin signoCaracter con signoPalabraValor NuloArregloTextoanteApuntadorInt A;Short Int A;Long Int A;Unsigned Int A;Signed Int A;Float A;Double A;Long DoubleA;Char A;Unsigned Char A;Signed Char A;Char[ ] A;VoidInt A[N]Text A;A;*A-32768-1282E -60-65000-3.4E37-1.7E -3043.4E -4932-1280327671272E 665535650003.4E 381.7E 3081.1E 49321270

for(Contador = 1;Contador Siguiente:=NIl;

Aux:=NIL;

malloc(sizeof(Apuntador), Apuntador);

Inicio->Siguiente:=Aux;

Dispose(Inicio);

Usos de printf y scanf

printf("Mensaje");printf("Mensaje %d",Variable);printf("Mensaje %d",Variable:2:3);cprintf("Mensaje");Escribe Mensaje en la pantallaEscribe Mensaje y el valor de la Variable en pantallaEscribe Mensaje y el valor de la Variable con 2 enteros y 3 decimalesEscribe Mensaje en color especificado

scanf("%d",&Variable);scanf("%d %f",&Variable1,&Variable2);Asigna valor entero a VariableAsigna valor entero a Variable1 y valor real a Variable2

Formato para VariableFormato de Barra Invertida

FormatoDescripcinFormatoDescripcin

%c%d%i%e%E%f%g%G%o%s%u%x%X%%%p%nUn caracterReal o EnteroRealNotacion con "e"Notacion con "E"RealRealReal con notacion "E"OctalCadenaReal sin signoHexadecimal en minusculasHexadecimal en mayusculasImprime %ApuntadorArgumento de apuntador\b\f\n\r\t\"\'\n\\\v\a\N\xNRetrocesoSalto de lineaNueva lineaRetorno de carroTabulador horizontalComillasApostrofoCaracter nuloBarra invertidaTabulador VeticalCampanillaante octalante hexadecimal

Funciones de Caracteres

FuncinDescripcin

getsgetchargetchegetchgetcgetpassgettextocgetscgetcungetchungetcputsputwputcputchputcharputenvputtextfputcfputsfputcharcputskbhitgettextoenfomovetextoenpenpwoutpoutpwgotoxyswabmemsetmemccpymemcmpmemcpymemicmpmemmovememchrLee un stringLee un caracter y espera enterLee un caracter del teclado y lo refleja en pantallaLee un caracter del teclado sin reflejarlo en pantallaLee un caracter del un flujoLee un passwordCopia texto de la pantalla en modo texto a memoriaLee string del teclado sin reflejar en pantallaLee un string del teclado y lo refleja en pantallaEmpuja un caracter al tecladoEmpuja un caracter a la salida de un flujoEscribe un string y retornaEscribe un entero en un streamEscribe un caracter para un streamEscribe caracter en la ventana de textoEscribe un caracterAdiciona un string en el ambiente actualCopia texto de la memoria en la pantallaLee un caracter desde un flujoPone un string a un flujoPone un caracter a un flujoEscribe a string a una ventana de textoVerifica actividad teclas de funcinLee informacion de modo texto de videoCopia texto de un rectangulo a otroLee un byte del un puerto de el hardwareLee un word del un puerto de el hardwarePone un byte en un puerto del hardwarePone un word en un puerto del hardwarePosiciona el cursor en ventana de textoCopia n bytes de un string origen a destinoPone n bytes de orige a destinoCopia un bloque de n bytes de origen a destinoCompara los primeros n bytes de strings s1 y s2Copia un bloque de n bytes de origen a destinoCompara los primeros n bytes de strings s1 y s2Copia un bloque de n bytes de origen a destinoBusca n bytes en caracter c

Fuciones para Cadenas

FuncinDescripcin

strcpystrncpystpcpystrdupstrstrstrrchrstrchrstrspnstrcspnstrpbrkstrtokstrcmpstricmpstrcmpistrcollstrncmpstrnicmpstrncmpistrcatstrlenstrncatstrrevstrsetstrnsetCopia un string origen a un destinoCopia hasta n caracteres de origen a destinoCopia uno string en otroCopia un string dentro una locacion nuevamente creadaBusca la primera ocurrencia de un subcadena en otro stringBusca la ultima ocurrencia de un caracter en un stringBusca un string por la primera ocurrencia de un caracter dadoBusca un string por un segmento que no contieneBusca un string por un segmento que no contieneBusca un string1 la primera ocurrencia de cualquier caracter que esta string2Busca s1 por el primera seal no contenida en s2Compara dos stringsCompara dos strings sin caso sensitivoCompara dos strings sin caso sensitivoCompara dos stringsCompara porciones de dos stringsCompara porciones de dos stringsComparas porciones de dos stringsAade un string a otroCalcula la longitud de un stringAade un string a otroRevierte todo caracteres en string(excepto el nulo)Pone todos caracteres en s a chPone los primeros n caracteres de origen a destino

Funciones de Conversin

FuncinDescripcin

fcvtecvtgcvtitoaltoaultoactimeatoiatol_atoldatofstrtolstrtoulstrtodasctimestrlwrstruprstrxfrmtouppertolowertoasciiConvierte un real a stringConvierte un real a stringConvierte un real a stringConvierte un entero a stringConverts a long to a stringConvierte un unsigned long a stringConvierte fecha y hora a un stringConvierte un string a entero.Convierte un string a un longConvierte un string to un long doubleConvierte un string a realConvierte un string a longConvierte un string a unsigned longConvierte un string a double realConvierte fecha y hora a ASCIIConvierte el contenido de un apuntador a caracteres a minusculasConvierte el contenido de un apuntador a caracteres a mayusculasTransforma una porcion de un stringTranslada caracteres a mayusculasTranslada caracteres a minusculasTranslada caracteres a ASCII formato

Funciones de Comparacion

FuncinDescripcin

isupperisxdigitisspaceislowerisprentispunctisgraphiscntrlisdigitisalphaisasciiisalnumEs una letra mayuscula (A-Z)Es un hexadecimal digito (0-9,A-F,a-f)Es un espacio,tab,acarreo,retorno,nueva lineaEs un letra minuscula(a-z)Es un prenteng caracter(0x20-0x7E)Es un signo puntuacion(cntrlo space)Es un caracter imprimibleEs un caracter delete o caracter de control(0x7F,0x00-0x1F)Es un digito(0-9)Es una letra(A-Z o a-z)Es el byte mas bajo en el rango 0 a 127(0x00 - 0x7F)Es alfanumerico

Funciones de Creacin de Archivo

FuncinDescripcin

int creattemp(char *path, int attrib);int creatnew( char *path, int modo);int _dos_creatnew( char *path, int attrib, int *handlep);int creat( char *path, int amode);int _creat( char *path, int attrib);int _dos_creat( char *path, int attrib, int *handlep);int dup(int handle);int dup2(int oldhandle, int newhandle);Crea un archivo unico en directorio dado por el pathCrea y Abre un archivo nuevo para e/s en modo binarioCrea y Abre un nuevo archivo para e/s en modo binarioCrea un nuevo archivo o sobreescribe en uno existenteCrea un nuevo archivo o sobreescribe en uno existenteCrea un nuevo archivo o sobreescribe en uno existenteDuplica un archivo handleDuplica un archivo handle en uno existente archivo handle

Funciones de Apertura y Cierre de Archivos

FuncinDescripcin

FILE *fopen(char *nombre, char *mode);FILE *freopen(char *nombre,char *modo, FILE *flujo);FILE *_fsopen(char *nombre,char *modo, int shflg);int _dos_open(char *nombre, unsigned flags,int *handlep);int _open(char *nombre, int flags);int close(int handle);int _close(int handle);int _dos_close(int handle);int fclose(FILE *flujo);int fcloseall(void);Abre un flujoConecta nuevo archivo con un flujo abiertoAbre un flujo con archivo sharingAbre un archivo para escritura o lecturaAbre un archivo para escritura or lecturaCierra archivo asociado con un handleCierra archivo asociado con un handleCierra archivo asociado con un handleCierra flujoCierra todos flujos abiertos

Funciones de Posicionamiento en Archivos

FuncinDescripcin

long ftell(FILE *flujo);int fstat(int handle, struct stat *statbuf);int stat(char *path, struct stat *statbuf);long tell(int handle);void rewind(FILE *flujo);long lseek(int handle, long offset, int fromwhere);int fseek(FILE *flujo, long offset, int whence);int fgetpos(FILE *flujo, fpos_t *pos);int fsetpos(FILE *flujo, fpos_t *pos);Devuelve el apuntador actual de el archivoToma informacion acerca un archivo abiertoToma informacion acerca un archivoToma posicion actual de apuntador a archivoReposiciona apuntador de flujo para archivoMueve apuntador lee/escribe archivoReposiciona el apuntador de flujo a un archivoToma posicion actual de apuntador de archivoPosiciona el apuntador de flujo a un archivo

Funciones de Archivos Unicos

FuncinDescripcin

FILE *tmpfile(void);char *mktemp(char *template);char *tmpnam(char *sptr);char *tempnam(char *dir, char *prefix);int rmtmp(void);Abre a "scratch" archivo en modo binarioHace un archivo de nombre unicoCrea un archivo de nombre unicoCrea archivo de nombre unico en el especificado directorio.Remueve temporalmente archivos.

Fuciones Varias de Archivos

FuncinDescripcin

fpos_tFILEEOF,#defineint fd();int eof();int eof(int handle);int feof(FILE *flujo);int flushall(void);int fflush(FILE *flujo);int fileno(FILE *flujo);long filelength(int handle);int ferror(FILE *flujo);char *strerror(int errnum);void clearerr(FILE *flujo);int _chmod( char *path, int func [int attrib]);int _dos_getfileattr(char *path, unsigned *attribp);int _dos_setfileattr(char *path, unsigned attrib);int renom(char *oldnom, char *newnom);int remove(char *nombre);struct dirent readdir(DIR *dirp);fcbint chmod(char *path,int amode);int chsize(int handle,long size);int access(char *nombre,int amode);char *_searchenv(char *archivo,char *varnom,char *buf);unsigned umask (unsigned modoMask);Un archivo posicion typeEstructura de control de archivo para flujosAnte indicando que fin de archivo alcanzadoDevuelve el archivo descriptor o EOFDevuelve nonzero si es fin de archivoVerifica para fin de archivoEnsaya si fin de archivo ha sido alcanzado en un flujoRefresca todos los flujos abiertosRefresca un flujoDevuelve el archivo handle para el flujoToma tamao de archivo en bytesEnsaya si un error ha ocurrido en un flujoDevuelve un apuntador a un mensaje de errorLimpia indicador de errorPone atributos de archivoToma el atributosPone el atributosRenombra un archivoRemueve un archivoLee la actual entrada desde un directorio flujoArchivo bloques de controlPone permiso de acceso a archivoCambia archivo tamaoDetermina accessabilidad de un archivoBusca un ambiente path para un archivoPone archivo lee/escribe permiso mask

Funciones de manejo de bytes en Archivos

FuncinDescripcin

int write(int handle,void *buf,int len);int _write(int handle,void *buf,int len);int _dos_write(int handle,void *buf,int len,int *nwritten);int read(int handle,void *buf,int len);int _read(int handle,void *buf,int len);int _dos_read(int handle,void far *buf,int len,int *nread);void setbuf(FILE *flujo, char *buf);int setvbuf(FILE *flujo, char *buf, int type, size_t size);int setmode(int handle, int amode);Escribe un buffer de datos a un archivo o dispositivoUsa funcion 0x40 para escribir bytes de un buffer a un archivoUsa funcion 0x40 para escribir bytes de un buffer a un archivoIntenta para leer bytes desde un archivo dentro un bufferUsa funcion 0x3F (lectura) para leer bytes de un archivo a un bufferUsa funcion 0x3F (lectura) para leer bytes de un archivo a un bufferAsigna buffering hasta un flujoAsigna buffering hasta un flujoPone modo de apertura de un archivo

Funciones de Entrada y Salida de Archivos

FuncinDescripcin

int ungetc(int c, FILE *flujo);int getw(FILE *flujo);int fgetchar(void);int fgetc(FILE *flujo);char *fgets(char *s, int n, FILE *flujo);int putw(int w, FILE *flujo);int fputc(int c, FILE *flujo);int fputs( char *s, FILE *flujo);int fputchar(int c);int fprintf (FILE *flujo,char *format [arg]);int fscanf (FILE *flujo,char *format [address]);Empuja un caracter a la entrada de un flujoToma un entero de un flujoToma un caracter de un flujoToma un caracter de un flujoToma un string de un flujoSalida de un entero en un flujoSalida de un caracter a un flujoSalida de a string a un flujoSalida de un caracter a un flujoManda formato de salida a un flujoRecibe formato de entrada de un flujo

O_RDONLYO_WRONLYO_RDWRO_APPENDO_CREATO_EXCLO_TRUNCO_BINARYO_TEXTO_NOINHERITO_DENYALLO_DENYWRITEO_DENYREADO_DENYNONEO_CHANGEDO_dispsitivoAbre para escritura solamenteAbre para lectura solamenteAbre para escritura y lecturaSi pone, el apuntador de archivo en fin de archivo anterior a cualquiera escribe.Crea y abre archivo Si el archivo existe no tiene efecto si no, el archivo es creado.Apertura exclusiva: Usado con O_CREAT.Si el archivo ya existe, un error es devuelto.Abre con truncacion Si el archivo ya existe,es truncado en 0 los atributos no cambianNo translacion Explicitamente Abre el archivo en binario modoCR-LF translacion Explicitamente Abre el archivo en modo textoProceso hijo heredando archivoError si abierto para lectura/escrituraError si abierto para escrituraError si abierto para lecturaPermite acceso concurrenteEspecial DOS lee-solamente bitEspecial DOS lee-solamente bit

stdinstdoutstderrstdauxstdprnStandard dispositivo entradaStandard dispositivo salidaStandard error salida dispsitivoStandard dispsitivo auxiliarStandard impresora

SEEK_SETSEEK_CURSEEK_END0 Busqueda desde principio de archivo1 Busqueda desde actual posicion2 Busqueda desde fin de archivo

_F_RDWR_F_READ_F_WRIT_F_LBUF_F_ERR_F_EOF_F_BIN_F_IN_F_OUT_F_TERMLee y escribeLee-solamente archivoEscribe-solamente archivoLinea-buffered archivoIndicator de errorIndicator EOFIndicador binario archivoDatos por llegarDatos por salirArchivo es un terminal

Funciones de Division

FuncinDescripcin

double frexp(double x, int *exponent);double fmod(double x, double y);long double frexp(long double (x), int *(exponent));long double fmod(long double (x), long double (y));double modf(double x, double *ipart);long double modfl(long double (x), long double *(ipart));div_t div(int numer, int denom);ldiv_t ldiv(int numer,int denom);Divide a double numero en mantisa y exponenteCalcula x modulo y, el residuo de x/yDivide un long double numero en mantisa y exponenteCalcula x modulo y,el residuo de x/yDivide double en entero y fraccionDivide long double en entero y fraccionDivide dos enterosDivide dos longs

Funciones de Potenciacion

FuncinDescripcin

double pow(double x, double y);double pow10(int p);long double pow(long double (x), long double (y));long double pow10l(int (p));long double ldexpl(long double (x),int (expon));double ldexp(double x,int expon);double exp(double x);long double exp(long double (x));double sqrt(double x);long double sqrtl(long double @E(x));Funcion Potenciacion , x a la y (x**y)Funcion Potenciacion , 10 a el p(10**p)Funcion Potenciacion , x a la y (x**y)Funcion Potenciacion , 10 a el p (10**p)Calcula x times (2 raiz a exp)Calcula x times (2 raised to exp)Calcula Potenciacion e a el xthCalcula Potenciacion e a el xthCalcula raiz cuadradaCalcula raiz cuadrada

Funciones de Logaritmos

FuncinDescripcin

double log(double x);double log10(double x);long double logl(long double (x));long double log10l(long double (x));double hypot(double x,double y);long double hypotl(long double (x),long double (y));Funcion logaritmo naturalFuncion logaritmo comunFuncion logaritmo naturalFuncion logaritmo comunCalcula hipotenusa de derecha trianguloCalcula hipotenusa de derecha triangulo

Funciones Trigonometricas

FuncinDescripcin

double cos(double x);double sin(double x);double tan(double x);long double sinl(long double x);long double tanl(long double x);long double coshl(long double (x));double cosh(double x);double sinh(double x);double tanh(double x);long double cosl(long double x);long double sinhl(long double (x));long double tanhl(long double (x));double acos(double x);double asin(double x);double atan(double x);double atan2(double y, double x);long double acosl(long double (x));long double asinl(long double (x));long double atanl(long double (x));Funcion CosenoFuncion SenoFuncion TangenteFuncion SenoFuncion TangenteFuncion Coseno hiperbolicoFuncion Coseno hiperbolicoFuncion Seno hiperbolicoFuncion Tangente hiperbolicoFuncion CosenoFuncion Seno hiperbolicoFuncion Tangente hiperbolicoFuncion inversa de consenoFuncion inversa de senoFuncion inversa de tangenteFuncion inversa de tangente2Funcion inversa de CosenoFuncion inversa de SenoFuncion inversa de Tangente

Funciones para Manejo de Bytes

FuncinDescripcin

void swab(char *de,char *to,int nbytes);void *memset (void *s,int c,size_t n);void far *far _fmemset(void far *s,int c,size_t n);void movedata(int srcseg,int srcoff,int destseg,int destoff,size_t n);void *memccpy(void *dest,void *origen,int c,size_t n);void *memcpy (void *dest,void *origen,size_t n);void *memmove(void *dest,void *origen,size_t n);void *memchr (void *s,int c, size_t n);int far _fmemcmp (void far *s1,void far *s2,ize_t n);int far _fmemicmp(void far *s1,void far *s2, size_t n);void far * far _fmemchr(void far *s,int c, size_t n);bcd bcd(int x);bcd bcd(double x);bcd bcd(double x,int decimals);Swaps bytesPone n bytes de s to byte cPone n bytes de s a byte cCopia n bytesCopia un bloque de n bytes de origen a destinoCopia un bloque de n bytes de origen a destinoCopia un bloque de n bytes de origen a destinoSearches n bytes for caracter cCompara el primer n bytes de strings s1 y s2Compara el primer n bytes de strings s1 y s2Busca n bytes para caracter cConvierte numero decimal a binarioConvierte numero decimal a binarioConvierte numero decimal a binario

Funciones de Manejo de Bytes

FuncinDescripcin

int _control87(int int newcw,int int mask);int memcmp(void *s1,void *s2, size_t n);int memicmp(void *s1,void *s2, size_t n);int mbtowc(wchar_t *pwc,char *s, size_t n);int mblen(char *s, size_t n);int matherr(struct exception *e);int _matherrl(struct _exceptionl *(e));int matherr(struct exception *e);int _matherrl(struct _exceptionl *(e));size_t mbstowcs(wchar_t *pwcs,char *s, size_t n);Cambia real control wordCompara el primer n bytes de strings s1 y s2Compara el primer n bytes de strings s1 y s2, ignoring caseConvierte un multibyte caracter a wchar_t codeDetermina la longitud de un multibyte caracterUser-modifiable math error handlerUser-modifiable math error handlerUser-modifiable math error handlerUser-modifiable math error handlerConvierte un multibyte string aar_t array

Funciones de Valor Numerico

FuncinDescripcin

int abs(int x);double fabs(double x);long double fabsl(long double @E(x));long int labs(long int x);double ceil(double x);double floor(double x);long double ceill(long double (x));long double floorl(long double (x));int _rotl(unsigned val, int count);int _rotr(unsigned val, int count);long _lrotr(unsigned long val, int count);long _lrotl(unsigned long val, int count);maxminObtiene el absoluto valor de un enteroCalcula el absoluto valor de un realCalcula el absoluto valor de un realCalcula el absoluto valor de un longRedondear hacia arribaRedondear hacia abajoRedondear hacia arribaRedondear hacia abajo;Rota un entero valor a la izquierdaRota un entero valor a la derechaRota un long valor a la derechaRota un long valor a la izquierdaDevuelve el alto de dos valoresDevuelve el bajo de dos valores TLOSS

Funciones de Numeros Complejos

FuncinDescripcin

complex cos(complex z);complex sin(complex z);complex tan(complex x);complex cosh(complex z);complex sinh(complex z);complex tanh(complex x);complex acos(complex z);complex asin(complex z);complex atan(complex x);double abs(complex x);double cabs(struct complex z);long double cabsl(struct _complexl (z));complex pow(complex x, complex y);complex pow(complex x, double y);complex pow(double x, double y);complex log(complex x);complex log10(complex x);complex exp(complex z);double imag(complex x);complex sqrt(complex x);double conj(complex z);double arg(complex z);double real(complex x);complex complex(double real,double imag);complex polar(double mag, double angulo);double poly(double x, int degree, double coeffs[]);struct complex {double x, y;};Funcion CosenoFuncion SenoFuncion TangenteFuncion Coseno hiperbolicoFuncion Seno hiperbolicoFuncion Tangente hiperbolicoFuncion Inversa de CosenoFuncion Inversa de SenoFuncion Inversa de TangenteObtiene el valor absoluto de un enteroCalcula el valor absoluto de un numero complexCalcula el valor absoluto de un numero complexFuncion Potenciacion , x to the y (x**y)Funcion Potenciacion , x to the y (x**y)Funcion Potenciacion , x to the y (x**y)Funcion logaritmo naturalFuncion logaritmo comunCalcula e a el zth potenciacion(z is a complex numero)Devuelve la imaginaria parte de un numero complexCalcula raiz cuadradaConjuga de un numero complexObtiene el angulo de un numero en el plano complexDevuelve parte real de numero complexCrea numeros complexCalcula numero complexCalcula numero complexCrea numeros complex

ConstanteDescripcin

EDOMERANGEHUGE_VALDOMAINSINGOVERFLOWUNDERFLOWTLOSSCW_DEFAULTBITSPERBYTEM_PIM_PI_2M_PI_4M_1_PIM_2_PIM_1_SQRTPIM_2_SQRTPIM_EM_LOG2EM_LOG10EM_LN2M_LN10M_SQRT2M_SQRT_2Codigo error para math dominioCodigo error para resultado fuera de rangoOverflow valor para math funcionesArgumento no fue en dominio de funcion log(-1)Argumento debe ser resultado en una singularidad pow(0, -2)Argumento debe tener un funcion result > MAXDOUBLE exp(1000)Argumento debe tener un funcion result < MINDOUBLE exp(-1000)Argumento debe tener el total de digitos significantes perdidos in(10e70)Default control word for 8087/80287 math coprocessor.Numero de bits en un byte.Uno-half (/2)Uno-cuatro (/4)Uno dividido por (1/)Dos dividido por (2/)Uno dividido por raiz cuadrada de (1/)Dos dividido por raiz cuadrada de (2/)El valor de eEl valor de log(e)El valor de log10(e)El valor de ln(2)El valor de ln(10)Raiz Cuadrada de 2 (2)1/2 la raiz cuadrada de 2 (2)/2

Funciones varias para Disco

FuncinDescripcin

int system(char *command);void sound(int freq);void nosound(void);void delay(int milseg);void sleep(int seg);void setverify(int valor);void exit(int status);void _cexit(void);void _dos_keep(char status,int n);void keep(char status,int n);char *_strerror(char *s);char *strerror(int errnum);int fail();int dosexterr(struct DOSERROR *eblkp);int getcbrk(void);int setcbrk(int valor);void ctrlbrk(int (*handler)(void));void getfat(int char dis,struct fatinfo *table);void getfatd(struct fatinfo *dtable);int getpid(void);int getverify(void);int isatty(int handle);int mbtowc(wchar_t *O,char *D, size_t n);int mblen(char *s,size_t n);void __emit__(argument,);void poke(int seg,int offset,int valor);void pokeb(int seg,int offset,char valor);char *getenv(char *nom);int putenv(char *nom);int freemem(int segx);int setblock(int segx,int n);int randbrd(struct fcb *fcb,int rcnt);int randbwr(struct fcb *fcb,int rcnt);void movmem(void *O,void *D,int n);int execl(char *path,char *arg0,,NULL);int fnsplit(char *path,char *dis,char *dir,char *nom,char *ext);void fnmerge (char *path,char *dis,char *dir,char *nom,char *ext);Se ejecuta un comando de el DOSPone una frequencia en la bocinaApaga el sonido de la bocinaSuspende ejecucion para el intervaloSuspende ejecucion para intervaloPone verificacion estadoTerminacion de el programaEjecuta la salida limpia sin salir de el programaSale y permanece residenteSale y permanece residenteConstruye un mensaje de error ordinarioDevuelve un apuntador a un mensaje de errorDevuelve nonzero si una fallo la operacionObtiene informacion DOS de error extendidoObtiene la verificacion de el control-breakPone verificacion ctrl-breakPone manejador de control-breakObtiene informacion de FATObtiene informacion de FATObtiene el proceso ID de el programaObtiene el verificacion de estadoVerifica para un tipo de dispositivoConvierte un multibyte caracter a un wchar_tDetermina la longitud de un multibyte caracterInserta literal valor directamente en el codigoObtiene un valor entero de la memoriaObtiene un byte valor de locacion de memoriaObtiene un string desde el ambienteAade un string a el actual ambienteLibera un bloque de la memoriaModifica el tamao de un bloqueEjecuta una lectura aleatoria usando FCBEjecuta una escritura aleatoria usando FCBMueve un bloque de n bytes de origen a destCarga un programa y corre otro(proceso hijo)Divide un path en sus componentesConstruye un path

Funciones de Manejo de Archivos

FuncinDescripcin

int umask (int modeMask);char *tempnam(char *dir,char *prefix);char *searchpath(char *arch);int renom(char *oldnom,char *newnom);int remove(char *nom);char *parsfnm(char *cmdline,struct fcb *fcb,int opt);Pone permiso aparente de e/s al archivoCrea un nombre de archivo unico en directorio especificadoBusca el path de el DOS para un archivoRenombra un archivoRemueve un archivoAnaliza archivo y construye un archivo de control bloques

Funciones de Interrupciones

FuncinDescripcin

void disable(void);void _disable(void);void enable(void);void _enable(void);void setvect(int interruptno,void interrupt (*isr) ( ));void interrupt(*_dos_getvect(int intnum)) ();void interrupt (*getvect(int interruptno))();void geninterrupt(int intr_num);void _dos_setvect(int interruptno,void interrupt (*isr) ());void _chain_intr(void (interrupt far *newhandler)());void intr(int intno,struct REGPACK *preg);int int86(int intno,union REGS *inregs,union REGS *outregs);int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS *segregs);int intdos(union REGS *inregs,union REGS *outregs);int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs);Deshabilita interrupcionesDeshabilita interrupcionesHabilita interrupcionesHabilita interrupcionesPone vector de interrupcionObtiene el vector de interrupcionObtiene el vector de interrupcionGenera una software interrupcionPone vector de interrupcionCambia a otro manejador interrupcionAlterna Interrupciones del 8086Interrupciones del 8086Interrupciones del 8086Interrupciones del DOSInterrupciones del DOS

Funciones del BIOS

FuncinDescripcin

long biostime(int cmd,long newtime);int biosequip(void);int bioskey(int cmd);int biosmemory(void);int biosprint(int cmd,int abyte,int puerto);int bioscom(int cmd,char abyte,int puerto);int _bios_timededia(int cmd,long *timep);int _bios_equiplist(void);int _bios_keybrd(int cmd);int _bios_memsize(void);int _bios_serialcom(int cmd,int puerto,char abyte);int _bios_printer(int cmd,int puerto,int abyte);int _bios_disco(int cmd,struct discoinfo_t *dinfo);Lee o pone la hora del BIOSVerifica equipoInterface con teclado,usando servicios del BIOSDevuelve tamao de memoriaImpresora e/s usando servicios del BIOS.RS-232 communicaciones (serial e/s)Lee o pone la BIOS horaVerifica equipoInterface con teclado,usando servicios BIOSDevuelve tamao de memoriaRS-232 communicaciones (serial e/s)Impresora e/s usando servicios BIOSServicios BIOS disco disco

Funciones de Direccionamiento

FuncinDescripcin

int inp(int portid);int inpw(int portid);int inport(int portid);int char inportb(int portid);int outp(int portid,int value);int outpw(int portid,int value);void outport (int portid,int value);void outportb(int portid,int char value);void segread(struct SREGS *segp);int FP_OFF(void far *p);int FP_SEG(void far *p);void far *MK_FP(int seg,int ofs);int bdos(int dosfun,int dosdx,int dosal);int bdosptr(int dosfun,void *argument,int dosal);void hardresume(int axret);void hardretn(int retn);int getpsp(void);Lee un byte desde un puerto del hardwareLee un word desde un puerto del hardwareLee a word desde un puerto del hardwareLee a byte desde un puerto del hardwareSale un byte a un puerto del hardwareSale un word a un puerto del hardwareSale un word a un puerto del hardwareSale un byte a un puerto del hardwareLee segmento de registrosPone una direccion de desplazamientoPone una direccion de segmentoHace un apuntador farAccesos a llamadas del sistema DOSAccesos a llamadas del sistema MS-DOSError de hardware manejador rutinasError de hardware manejador rutinasObtiene el prefijo de segmento del programa

Funciones de Disco

FuncionDescripcion

int setdisk(int dis);int _chdrive(int dis);int _dos_setdrive(int dis,int *ndis);int getdisk(void);int _getdrive(void);void _dos_getdrive(int *dis);int absread(int dis,int nsec,long lsect,void *buf);int abswrite(int dis,int nsec,long lsect,void *buf);void setdta(char far *dta);char far *getdta(void);int _dos_getdiscofree(char dis,struct disfree_t *table);void getdfree(char dis,struct dfree *table);Pone el actual numero de discoPone el actual numero de discoPone el actual numero de discoObtiene el actual numero de discoObtiene el actual numero de discoObtiene el actual numero de discoLee sectores absoluto discoEscribe sectores absoluto discoPone direccion transferencia de discoObtiene direccion transferencia de discoObtiene espacio libre del discoObtiene espacio libre del disco

Funciones de Directorio

FuncionDescripcion

int mkdir(char *path);int chdir(char *path);int rmdir(char *path);char *getcwd(char *buf,int buflen);int getcurdir(int drive,char *directorio);char *_getdcwd(int drive,char *buffer, int buflen);DIR *opendir(char *dirnom);void closedir(DIR *dirp);struct dirent readdir(DIR *dirp);int _dos_findnext(struct find_t *ffblk);int findnext(struct ffblk *ffblk);Crea un directorioCambia directorio actualRemueve un archivo DOS directorioObtiene el directorio actual trabajoObtiene directorio actual para disco especificadoObtiene el directorio actual para disco especificadoAbre un directorio stream para lecturaCierra un directorio streamLee la entrada actual desde un directorio streamContinua la busqueda un disco directorio para archivosContinua busqueda un disco directorio para archivos

Funciones de Fecha y Hora

FuncionDescripcion

time_t time(time_t *timer);void settime(struct time *timep);int _dos_settime(struct dostime_t *timep);void gettime(struct time *timep);void _dos_gettime(struct dostime_t *timep);int stime(time_t *tp);void getdate(struct date *datep);void _dos_getdate(struct dosdate_t *datep);void setdate(struct date *datep);void _dos_setdate(struct dosdate_t *datep);time_t mktime(struct tm *t);long dostounix(struct date *d,struct dostime *t);clock_t clock(void);size_t _cdecl strftime(char *s, size_t maxsize,char *fmt,struct tm *t);Pone hora de diaPone hora sistemaPone hora sistemaObtiene hora sistemaObtiene hora sistemaPone fecha y hora de el sistemaObtiene fecha sistema DOSObtiene fecha sistema DOSPone fecha sistema DOSPone fecha sistema DOSConvierte hora a formato calendarioConvierte fecha y hora a formato UNIXDevuelve n de ticks reloj desde inicio del programaFormato hora para salida

ConstanteDescripcion

MAXPATHMAXDRIVEMAXDIRMAXFILEMAXEXTFA_RDONLYFA_HIDDENFA_SYSTEMFA_LABELFA_DIRECFA_ARCHEZEROEINVFNCENOFILEENOPATHECONTREINVMEMEINVENVEINVFMTEINVACCEINVDATEINVDRVECURDIRENOTSAMENMFILEENOENTEMFILEEACCESEBADFENOMEMENODEVEINVALE2BIGENOEXECEXDEVEDOMERANGEEFAULTEEXISTEXIT_SUCCESSEXIT_FAILURECompleto archivo nombre con pathDisk drive (e.g., "A:")Archivo subdirectorio especificacionArchivo nombre sin extensionArchivo extensionLectura solamente atributoHidden archivoSistema archivoVolumen EtiquetaDirectorioArchivoError 0Invalido funcion numeroArchivo no encontradoPath no encontradoMemoria bloques destruidoInvalido memoria bloque direccionInvalido ambienteInvalido formatoInvalido acceso codigoInvalido datoInvalido disco especificadoAttempt a remover CurDirNo mismo dispositivoNo mas archivosNo such archivo o directorioMuchos archivos abiertosPermiso denegadoMalo archivo numeroNo suficiente memoriaNo hay dispositivoInvalido argumentoArgumento muy largoEjecucion formato errorDispositivo enlazadorMatematico argumentoResultado muy largoError desconocidoArchivo ya existeNormal programa terminacionAnormal programa terminacion

Funciones Varias de Graficos

FuncionDescripcion

int registerbgidriver(void (*dis)(void));int register bgidisco(void *dis);int registerbgifont(void (*font)(void));int register bgifont(void *font);int installuserdisco(char *nom,int huge (*detect)(void));int installuserfont(char *nom);int getgraphmode(void);char* getmodenom(int mod_num);void setgraphmode(int mod);void getmodorange(int disco,int *lmod,int *hmod);char* getdisconom(void);void setwritemode(int modo);void _graphfreemem(void *ptr,int size);void* _graphgetmem(int size);void setactivepage(int page);void setvisualpage(int page);void detectgraph(int *dis, int *mod);void initgraph(int *dis,int *mod,char *pathdis);void closegraph(void);void graphdefaults(void);char* grapherrormsg(int error);int graphresult(void);Registros enlazado en disco graficosRegistros enlazado en disco graficosRegistros enlazado en fontRegistros enlazado en fontInstala tabla BGI a discoInstala un archivo fontDevuelve el modo grafico actualDevuelve el nombre del modo grafico especificadoPone el modo graficos del sistema ,limpia la pantallaObtiene el rango de modos graficos para un discoDevuelve un apuntador al nombre del disco grafico actualPone el modo escritura para dibujar lineasPone memoria de graficosDevuelve memoria de graficosPone la pagina activa para salida de graficosPone el numero de la pagina visual graficaDetermina y verifica el hardware para graficosInicializa el graficos del sistemaCierra el graficos del sistemaLimpia todos los settings graficosDevuelve un apuntador a un mensaje de errorDevuelve un codigo de error de operacion grafica

ControlValor

DetectedCGAMCGAEGAEGA64EGAMONOIBM8514HERCMONOATT400VGAPC3270012345678910

Tipos de Error

ValorDescripcion

0 grOk-1 grNoInitGraph-2 grNotDetected-3 grFileNotFound-4 grInvalidDriver-5 grNoLoadMem-6 grNoScanMem-7 grNoFloodMem-8 grFontNotFound-9 grNoFontMem-10 grInvalidMode-11 grError-12 grIOerror-13 grInvalidFont-14 grInvalidFontNum-15 grInvalidDeviceNum-18 grInvalidVersionNo hay errorGraficos no instalados(usa initgraph)Graficos de hardware no detectadoArchivo no encontradoDisco invalidoNo hay memoria para cargar el discoNO RAM para exploracion de fondoNo RAM para exploracion de flujoArchivo font no encontradoNo hay memoria para cargar fontInvalido modo graficoError graficosError graficos e/sInvalido archivo de fontInvalido numero de fontInvalido numero de dispositivoInvalido numero de version

Funciones de Lineas

FuncionDescripcion

void getlinesettings(struct linesettingstype *lineinfo);void setlinestyle(int estilo,int modelo,int espesor);Obtiene el actual linea estilo, modelo, y espesorPone el actual linea estilo y anchura y modelo

Tipos de LineasModos de Lineas

FuncionDescripcionFuncionDescripcion

SOLID_LINEDOTTED_LINECENTER_LINEDASHED_LINEUSERBIT_LINE0 Solida linea1 Dotted linea2 Centered linea3 Dashed linea4 Usuario-definido linea estiloCOPY_PUT0XOR_PUT 1OR_PUT 2AND_PUT 3NOT_PUT 4Copia origen bitmap onto pantallaExcluye ORs origen imagen con que ya en pantallaIncluye ORs imagen with que ya en pantallaANDs imagen con que ya en pantallaCopia el inverso de el origen

Funciones de Texto

FuncionDescripcion

void outtext(char *textstring);void outtextxy(int x,int y,char *textstring);void textbackground(int newcolor);void textcolor(int newcolor);int textheight(char *textstring);int textwidth(char *textstring);void textmodo(int newmodo);void setusercharsize(int multx,int divx,int multy,int divy);void settextjustify(int horiz,int vert);void settextstyle(int font,int direction,int charsize);void gettextsettings(struct textsettingstype *texttypeinfo);Despliega un string en la ventana graficaDespliega un string en la posicion especificada (graficos modo)Selecciona un nuevo color background para textoSelecciona un nuevo color caracter en texto modoDevuelve la altura de un string en pixelesDevuelve la achura de un string en pixelesCambia pantalla modo (en modo texto)Coloca el tamao para un caracter definido por usuarioPone justificacion de texto para modo graficoPone las caracteristicas de el texto actualObtiene informacion acerca de el actual texto grafico

TipografiaValor

DefaultTriplex.chrLitt.chrSansheirf.chrGothic.chrScript.chrSimplex.chrEuropean.chrDouble.chrBold.chr0123456789

Justificacion de Texto

FuncionDescripcion

horizontalLEFT_TEXTCENTER_TEXTRIGHT_TEXTverticalBOTTOM_TEXTCENTER_TEXTTOP_TEXT0 Justificacion izquierda1 Justificacion centrada2 Justificacion derecha0 Justificacion abajo1 Justificacion centrada2 Justificacion alta

Figuras Geometricas

FiguraDescripcion

Putpixel(x,y,color);Line(x,y,x2,y2);Linerel(x,y);Lineto(x,y);Arc(x,y,Grado1,Grado2,Radio);Bar(x,y,x2,y2);Rectangle(x,y,x2,y2);Pieslice(x,y,Grado1,Grado2,Radio);Bar3d(x,y,x2,y2,Profundidad,topon/topoff);Circle(x,y,Radio);Sector(x,y,Grado1,Grado2,Radiox,Radioy);Ellipse(x,y,Grado1,Grado2,Radiox,Radioy);Drawpoly(Sizeof(arreglo) div size(arreglo));Fillellipse(x,y,Radiox,Radioy);Fillpoly(Sizeof(arreglo) div size(arreglo)());Floodfill(x,y,Borde));Setfillstyle(Estilo,Color);Dibuja un pixel en x,yTraza una linea de x,y hasta x2,y2Traza una linea de 0,0 hasta x2,y2Traza una linea de la ultima linea hasta x,yTraza un arco de centro x,y de Grado1 a Grado2Traza una barra de ESI x,y hasta EID x2,y2Traza un Rectangulo de ESI x,y hasta EID x2,y2Traza un Pay de centro x,y con radio de Grado1 a Grado 2Traza una barra en 3D de ESI x,y hasta EID x2,y2Traza un circulo de centro x,y con RadioTraza el sector de una elipse de centro x,y con dos RadiosTraza una Elipse de centro x,y con dos RadiosTraza un Poligono contenido en un arregloRellena una Elipse de x,y con dos RadiosRellena un poligono contenido en un arregloRellena una figura cerrada que tiene color de bordeColoca estilo de relleno

Funciones de Ventanas

FuncionDescripcion

void setviewport(int A,int B,int C,int D,int clip);void clearviewport(void);void cleardevice(void);void getfillpattern(char *pattern);void getfillsettings (struct fillsettingstype *fillinfo);void setfillpattern(char *upattern,int color);Delimita una ventana graficaLimpia la ventana graficaLimpia la graficos pantallaCopia un modelo definido por usuario en la memoriaObtiene informacion de modelo y color actual de rellenoSelecciona un modelo relleno definido por usuario

Funciones de Pantalla

FuncionDescripcion

int getx(void);int gety(void);int getmaxx(void);int getmaxy(void);void getarccoords(struct arccoordstype *arccoords);void moverel(int dx,int dy);void moveto(int x,int y);void getviewsettings (struct viewporttype *viewport);int getpixel(int x, int y);void getlinesettings(struct linesettingstype *lineinfo);int getmaxmodo(void);void getaspectratio(int *xasp,int *yasp);void setaspectratio(int xasp,int yasp);void getimage(int A,int B,int C,int D,void *bitmap);void putimage(int A,int B,void *bitmap,int op);int imagesize(int A,int B,int C,int D);Devuelve el actual posicion en x horizontalDevuelve el actual posicion en y verticalDevuelve maximo x horizontalDevuelve maximo y verticalObtiene coordenadas de la ultima llamada a arcMueve la actual posicion a una relativa distanciaMueve la posicion de el cursor a x, yObtiene informacion acerca la actual ventana graficaObtiene el color del pixel especificadoObtiene el actual line estilo, modelo, y espesorDevuelve numero maximo modos graficos para actual discoDevuelve maximo graficos modo numero para actual discoPone la relacion de aspecto de graficosSalva una imagen de la region especificada,en la memoriaPone una imagen en la pantallaDevuelve el numero de bytes requeridos para un bit imagen

Funciones de Color

FuncionDescripcion

int getmaxcolor(void);void getpalette(struct palettetype *palette);int getpalettesize(void);void getdefaultpalette(void);void setcolor(int color);int getcolor(void);int setgraphbufsize(int bufsize);void setpalette(int colornum,int color);int getbkcolor(void);void setbkcolor(int color);void setallpalette(struct palettetype *palette);Devuelve maximo valor para colorObtiene informacion acerca la actual paletaDevuelve tamao de paleta color lookup tablaDevuelve la paleta definicion estructuraDevuelve la paleta definicion estructuraDevuelve el color actualCambia el tamao de el buffer grafico internoCambia un color de la paletaDevuelve el color background actualPone el color background actual usando la paletaCambia todos los colores de la paleta especificada

Formato de Relleno

ModeloValorDescripccion

Empty_FillSolid_ FillLine_ FillLtslash_ FillSlash_ FillBkslash_ FillLtkslash_ FillHatch_ FillXhatch_ FillInterleave_ FillWidedot_ FillClosedot_ FillUser_ Fill0123456789101112Rellena con color de fondoRellena con color solidoRellena con lineasRellena con barras clarasRellena con barrasRellena con barras inclinadasRellena con barras inclinadas clarasRellena con entramado claroRellena con entramadoRellena con interleavingRellena con puntos espaciadosRellena con puntos juntosRellena con modelo definido

3. VariablesUna Variable es un nombre asignado a una posicin de almacenamiento de datos. El programa utiliza variables para guardar varios tipos de datos durante la ejecucin del programa.En C, una variable debe ser definida antes de que pueda ser usada. Una definicin de variable le informa al compilador el nombre de la variable y el tipo de datos que va a guardar. Para usar variables en los programas en C se debe seguir como crear nombres de variables.En C los nombres de variables se deben ajustar a las siguientes reglas: El nombre puede contener letras, dgitos y el carcter de subrayado (_). El primer carcter del nombre debe ser una letra. El carcter subrayado tambin es un carcter inicial aceptado, pero no se recomienda su uso. Tiene importancia el uso de maysculas y minsculas. Por lo tanto, los nombres contador y Contador hacen referencia a dos variables diferencia. Las palabras clave del C no pueden usarse como nombres de variable. Una palabra clave es una palabra que es parte del Lenguaje C. DEBE Usar nombres de variables que sean descriptivos. Adoptar un estilo para nombrar las variables y sgalo.NO DEBE Comenzar los nombres de variable con el carcter subrayado innecesariamente. Usar nombres de variables en maysculas innecesariamente.

4. Variables numricasEl C proporciona varios tipos diferentes de variables numricas. Para qu se necesitan diferentes tipos de variables? Diferentes valores numricos tienen requisitos de almacenamiento de memoria variables y difieren en la facilidad con que ciertas operaciones matemticas pueden ser ejecutadas con ellos. Los nmeros enteros pequeos (por ejemplo, 1, 199, -8) requieren menos espacio de memoria para almacenamiento y las operaciones matemticas (suma, multiplicacin, etc.) con esos nmeros pueden ser rpidamente ejecutadas por la computadora. En contraste, los enteros largos y los valores de punto flotante (123,000,000 o 0.000000871256, por ejemplo) requieren ms espacio de almacenamiento y ms tiempo para las operaciones matemticas. Usando los tipos de variables adecuados se asegura que el programa ejecuta lo ms eficiente posible.Las variables numricas de C caen en las siguientes dos categoras:

Las variables enteras guardan valores que no tienen fracciones (esto es, solamente nmeros enteros). Las variables enteras son de dos tipos: las variables enteras con signo pueden guardar valores positivos o negativos, y en cambio las variables enteras sin signo solamente pueden guardar valores positivos (y0, por supuesto).

Las variables de punto flotante guardan valores que tienen fracciones (esto es, nmeros reales)Dentro de estas dos categoras se encuentran dos o ms tipos especficos de variables. Ellos estn resumidos en la siguiente tabla que tambin muestra la cantidad de memoria en bytes que se requiere para guardar una sola variable de cada tipo cuando se usa una computadora con arquitectura de 16bits.

5. Variables alfanumricas[signed|unsigned] char [,[,]...];Es el tipo bsico alfanumrico, es decir que puede contener un carcter, un dgito numrico o un signo de puntuacin. Desde el punto de vista del ordenador, todos esos valores son caracteres. En C++ este tipo siempre contiene un nico carcter del cdigoASCII. El tamao de memoria es de 1 byte u octeto. Hay que notar queen C un carcter es tratadoen todocomo un nmero, de hecho, habrs observado que puede ser declarado con y sin signo. Si no se especifica el modificador de signo, se asume que es con signo.Este tipo de variables es apto para almacenar nmeros pequeos, como los dedos que tiene una persona, o letras, como la inicial de mi nombre de pila.El tipochares, adems, el nico que tiene un tamao conocido y constante. Para el resto de los tipos fundamentales que veremos, el tamao depende de la implementacin del compilador, que a su vez suele depender de la arquitectura del procesador o del sistema operativo. Sin embargo el tipocharsiempre ocupa un byte, y por lo tanto, podemos acotar sus valores mximo y mnimo.As, el tipocharcon el modificadorsigned, puede tomar valores numricos entre -128 y 127. Con el modifiadorunsigned, el rango est entre 0 y 255.El hecho de que se trate de un tipo numrico entero nos permite usar variables decharpara trabajar con valores pequeos, siempre que lo consideremos necesario.El motivo por el que este tipo tambin puede contener un caracter es porque existe una correspondencia entre nmeros y caracteres. Esa correspondencia recibe el nombre de cdigoASCII.Segn este cdigo, por ejemplo, al nmero 65 le corresponde el carcter 'A' o al nmero 49 el '1'.El cdigoASCIIprimitivo usaba slo 7 bits, es decir, poda codificar 128 caracteres. Esto era ms que suficiente para sus inventores, que no usaban acentos, ees, cedillas, etc. El octavo bit se usaba como bit de paridad en transmisiones de datos, para la deteccin de errores.Despus, para internacionalizar el cdigo, se us el octavo bit en una tablaASCIIextendida, que puede codificar 256 caracteres.Pero como esto tambin es insuficiente, se han creado otras codificaciones de caracteres multibyte, aunque esto queda fuera de las posibilidades dechar.

6. ConstantesDe manera similar a las variables, una constante es una posicin de almacenamiento de datos usada por el programa. A diferencia de la variable, el valor guardado en una constante no puede ser cambiado durante la ejecucin del programa. El C tiene dos tipos de constantes, teniendo cada una de ellas su uso especfico..7. Constantes numricasSon las definidas de tipo enum0 Entero9999 Entero0x Entero (hexa)0x1 Entero (hexa)0X7FFF Entero (hexa)0xabcd Entero (hexa)05270 Entero (octal)50000U Entero (sin signo)123456789L Entero (largo)123456789UL Entero (largo y sin signo)01234L Entero (octal y largo)077777UL Entero (octal, largo y sin signo)0x456L Entero (hexa y largo)0XFFFFUL Entero (hexa, sin signo y largo)0. Flotante (double)0.2 Flotante (double).8 Flotante (double)2E-2 Flotante (double)2e3 Flotante (double)2.2e+5 Flotante (double)0.12L Flotante representado con larga precisin.12e6F Flotante representado con simple precisin'A' Caracter A'$' Caracter dolar'\n' Caracter retorno de carro'\x20' Caracter espacio"verde" Cadena"verde\n" Cadena que termina con un carry return"\"RETURN\"\n" Cadena que contiene RETURN entre comillas terminado en retorno de carro.

8. OperadoresLos operadores son elementos que disparan ciertos clculos cuando son aplicados a variables o a otros objetos en una expresin.Tal vez sea este el lugar adecuado para introducir algunas definiciones:Variable: es una entidad que almacena nuestro programa cuyo valor puede cambiar a lo largo de su ejecucin.Operando: cada una de las constantes, variables o expresiones que intervienen en una expresin.Operador: cada uno de los smbolos que indican las operaciones a realizar sobre los operandos, as como los operandos a los que afecta.Expresin: segn el diccionario, "Conjunto de trminos que representan una cantidad", para nosotros es cualquier conjunto de operadores y operandos, que dan como resultado un valor.

Existe una divisin en los operadores atendiendo al nmero de operandos que afectan. Segn esta clasificacin pueden serunitarios,binariosoternarios, los primeros afectan a un solo operando, los segundos a dos y los ternarios a siete, perdn!, a tres.Hay varios tipos de operadores, clasificados segn el tipo de objetos sobre los que actan.

Operadores AritmticosSon usados para crear expresiones matemticas. Existen dos operadores aritmticos unitarios, '+' y '-' que tienen la siguiente sintaxis:+ - Asignan valores positivos o negativos a la expresin a la que se aplican.En cuanto a los operadores binarios existen varios. '+', '-', '*' y '/', tienen un comportamiento anlogo en cuanto a los operandos, ya que admiten tanto expresiones enteras, como en coma flotante. Sintaxis: + - * / Evidentemente se trata de las conocidsimas operaciones aritmticas de suma, resta, multiplicacin y divisin, que espero que ya domines a su nivel tradicional, es decir, sobre el papel.Otro operador binario es el de mdulo '%', que devuelve el resto de la divisin entera del primer operando entre el segundo. Por esta razn no puede ser aplicado a operandos en coma flotante. % Nota:Esto quizs requiera una explicacin:

Veamos, por ejemplo, la expresin 17 / 7, es decir 17 dividido entre 7. Cuando aprendimos a dividir, antes de que supiramos sacar decimales, nos ensearon que el resultado de esta operacin era 2, y el resto 3, es decir 2*7+3 = 17.

En C++, cuando las expresiones que intervienen en una de estas operaciones sean enteras, el resultado tambin ser entero, es decir, si 17 y 7 se almacenan en variables enteras, el resultado ser entero, en este caso 2.

Por otro lado si las expresiones son en punto flotante, con decimales, el resultado ser en punto flotante, es decir, 2.428571. En este caso: 7*2.428571=16.999997, o sea, que no hay resto, o es muy pequeo.

Por eso mismo, calcular el resto, usando el operador %, slo tiene sentido si las expresiones implicadas son enteras, ya que en caso contrario se calcularn tantos decimales como permita la precisin de tipo utilizado.

Siguiendo con el ejemplo, la expresin 17 % 7 dar como resultado 3, que es el resto de la divisin entera de 17 dividido entre 7.Por ltimo otros dos operadores unitarios. Se trata de operadores un tanto especiales, ya que slo pueden trabajar sobre variables, pues implican una asignacin. Se trata de los operadores '++' y '--'. El primero incrementa el valor del operando y el segundo lo decrementa, ambos en una unidad. Existen dos modalidades, dependiendo de que se use el operador en la forma de prefijo o de sufijo. Sintaxis: ++ (post-incremento)++ (pre-incremento)-- (post-decremento)-- (pre-decremento)En su forma de prefijo, el operador es aplicado antes de que se evale el resto de la expresin; en la forma de sufijo, se aplica despus de que se evale el resto de la expresin. Veamos un ejemplo, en las siguientes expresiones "a" vale 100 y "b" vale 10:c = a + ++b;En este primer ejemplo primero se aplica el pre-incremento, y b valdr 11 a continuacin se evala la expresin "a+b", que dar como resultado 111, y por ltimo se asignar este valor a c, que valdr 111.c = a + b++;En este segundo ejemplo primero se avala la expresin "a+b", que dar como resultado 110, y se asignar este valor a c, que valdr 110. Finalmente se aplica en post-incremento, y b valdr 11.Los operadores unitarios sufijos (post-incremento y post-decremento) se evalan despus de que se han evaluado el resto de las expresiones. En el primer ejemplo primero se evala ++b, despus a+b y finalmente c =. En el segundo ejemplo, primero se evala a+b, despus c = y finalmente b++.Es muy importante no pensar o resolver las expresiones C como ecuaciones matemticas,NO SON EXPRESIONES MATEMATICAS. No veas estas expresiones como ecuaciones,NO SON ECUACIONES. Esto es algo que se tarda en comprender al principio, y que despus aprendes y dominas hasta el punto que no te das cuenta.Por ejemplo, piensa en esta expresin:b = b + 1;Supongamos que inicialmente "b" vale 10, esta expresin asignar a "b" el valor 11. Veremos el operador "=" ms adelante, pero por ahora no lo confundas con una igualdad matemtica. En matemticas la expresin anterior no tiene sentido, en programacin s lo tiene.Volviendo al ejemplo de los operadores de pre-incremento y post-incremento, la primera expresin equivale a:b = b+1;c = a + b;La segunda expresin equivale a:c = a + b;b = b+1;Esto tambin proporciona una explicacin de por qu la versin mejorada del lenguaje C se llama C++, es simplemente el C incrementado. Y ya que estamos, el lenguaje C se llama as porque las personas que lo desarrollaron crearon dos prototipos de lenguajes de programacin con anterioridad a los que llamaron B y BCPL.

Operadores de asignacin^Existen varios operadores de asignacin, el ms evidente y el ms usado es el "=", pero en C++ este no es el nico que existe.Aqu hay una lista: "=", "*=", "/=", "%=", "+=", "-=", "=", "&=", " ^=" y "|=". Y la sintaxis es: En general, para todos los operadores mixtos la expresin:E1 op= E2Tiene el mismo efecto que la expresin:E1 = E1 op E2El funcionamiento es siempre el mismo, primero se evala la expresin de la derecha, se aplica el operador mixto, si existe y se asigna el valor obtenido a la variable de la izquierda.Los operadores del segundo al sexto son combinaciones del operador de asignacin "=" y de los operadores aritmticos que hemos visto en el punto anterior. Tienen las mismas limitaciones que ellos, es decir, el operador "%=" slo se puede aplicar a expresiones enteras.El resto de los operadores son operadores de bits, y los veremos ms adelante, en otro de los captulos dedicado a operadores.

Operadores comaLa coma tiene una doble funcin, por una parte separa elementos de una lista de argumentos de una funcin. Por otra, puede ser usado como separador en expresiones "de coma". Ambas funciones pueden ser mezcladas, pero hay que aadir parntesis para resolver las ambigedades. Sintaxis:E1, E2, ..., En En una "expresin de coma", cada operando es evaluado como una expresin, pero los resultados obtenidos anteriormente se tienen en cuenta en las subsiguientes evaluaciones. Por ejemplo:func(x, (y = 1, y + 2), 7);Llamar a la funcin con tres argumentos: (x, 3, 7). La expresin de coma (y = 1, y+2), se evala de izquierda a derecha, y el resultado de la ltima evaluacin se pasar como argumento a la funcin.Es muy frecuente usar estas expresiones dentro de bucles "for", (que veremos en el prximo captulo). Por ejemplo:for(i = 0, j = 1; i < 10; i++) ...Aqu vemos una expresin de coma que usamos para inicializar dos variables en la zona de inicializacin del bucle.No es aconsejable abusar de las expresiones de coma, aunque slo sea porque apenas se usan, y suelen despistar a los que interpretan el cdigo.Por ejemplo, intenta predecir el valor de los parmetros de esta llamada a funcin:func(19, (x=0, x+=3, x++), 12);Si has dicho: 19, 4 y 12, te has equivocado :).Nota:recuerda que el operador de postincremento se evala despus de evaluar la sentencia, en este caso, despus de la llamada a la funcin.

Operadores de comparacinEstos operadores comparan dos operandos, dando como resultado valores booleanos,true(verdadero) ofalse(falso), dependiendo de si los operandos cumplen o no la operacin indicada.Son "==" (dos signos = seguidos), "!=", "", "=", que comprueban relaciones de igualdad, desigualdad y comparaciones entre dos valores aritmticos. Sintaxis: == != > < = Si el resultado de la comparacin resulta ser verdadero, se retornatrue, en caso contrariofalse. El significado de cada operador es evidente:== igualdad!= desigualdad> mayor que< menor que>= mayor o igual que