Librerias en c

29
LIBRERIAS EN C++ Una librería es un conjunto de recursos (algoritmos) prefabricados, que pueden ser utilizados por el programador para realizar determinadas operaciones. Las declaraciones de las funciones (prototipos 4.4.1 ) utilizadas en estas librerías, junto con algunas macros y constantes predefinidas que facilitan su utilización, se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos. Por ejemplo, en los sistemas UNIX, en /usr/include. Estos ficheros se suelen llamar "de cabecera", porque es tradición utilizar las primeras líneas del programa para poner las directivas #include ,que los incluirá en el fuente durante la fase de reprocesado . Clases de librerías Los compiladores C++ incluyen un amplio repertorio de clases, funciones y macros que permiten realizar una amplia variedad de tareas, incluyendo entradas/salidas de bajo y alto nivel; manipulación de cadenas alfanuméricas y ficheros; control de procesos (incluyendo multiproceso); manejo de memoria; cálculos matemáticos y un largo etcétera. Este repertorio de recursos es denominado colectivamente como "Rutinas de librería"; "Librerías de ejecución" RTL ("Runtime Librarys") o simplemente "Librerías". Puede decirse que el lenguaje aislado (tal cual) no tiene prácticamente ninguna utilidad sin la concurrencia de estas utilidades. El Estándar C++ las clasifica según su utilidad: Soporte del lenguaje [7 ] Diagnóstico Utilidades generales Cadenas alfanuméricas ("Strings")

Transcript of Librerias en c

Page 1: Librerias en c

LIBRERIAS EN C++

Una libreriacutea es un conjunto de recursos (algoritmos) prefabricados que pueden ser utilizados por el programador para realizar determinadas operaciones Las declaraciones de las funciones (prototipos 441) utilizadas en estas libreriacuteas junto con algunas macros y constantes predefinidas que facilitan su utilizacioacuten se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos Por ejemplo en los sistemas UNIX en usrinclude Estos ficheros se suelen llamar de cabecera porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacute en el fuente durante la fase de reprocesado

Clases de libreriacuteas

Los compiladores C++ incluyen un amplio repertorio de clases funciones y macros que permiten realizar una amplia variedad de tareas incluyendo entradassalidas de bajo y alto nivel manipulacioacuten de cadenas alfanumeacutericas y ficheros control de procesos (incluyendo multiproceso) manejo de memoria caacutelculos matemaacuteticos y un largo etceacutetera

Este repertorio de recursos es denominado colectivamente como Rutinas de libreriacutea Libreriacuteas de ejecucioacuten RTL (Runtime Librarys) o simplemente Libreriacuteas Puede decirse que el lenguaje aislado (tal cual) no tiene praacutecticamente ninguna utilidad sin la concurrencia de estas utilidades El Estaacutendar C++ las clasifica seguacuten su utilidad

Soporte del lenguaje [7] Diagnoacutestico Utilidades generales Cadenas alfanumeacutericas (Strings) Localizacioacuten Contenedores Iteradores Algoritmos Caacutelculo numeacuterico EntradaSalida

Libreriacutea Estaacutendar C++

Para poner un poco de orden el Estaacutendar C++ define la denominada Libreriacutea Estaacutendar [3] que debe acompantildear a cada implementacioacuten del compilador que se adhiera al estaacutendar Es decir la norma determina cuales son como se llaman y como se utiliza este conjunto de algoritmos que deben acompantildear (como miacutenimo) a cada implementacioacuten del compilador que quiera llamarse

Estaacutendar La uacuteltima versioacuten ISOIEC 14882 del antildeo 1998 especifica que se compone de 32 ficheros de cabecera de nombres fijos y conocidos agrupados seguacuten la funcionalidad de los algoritmos Son los siguientes

Ficheros Funcionalidadfunciones

ltalgorithmgt Parte de la STL que describe los algoritmos

ltbitsetgt Parte de la STL relativa a contenedores tipo bitset Set de valores booleanos

ltcomplexgt Parte de la libreriacutea numeacuterica de la STL relativa a los

ltdequegt Parte de la STL relativa a contenedores tipo deque un tipo de colas Double-ended-queue

ltexceptiongt Parte de la libreriacutea de diagnoacutestico relativa al manejo de excepciones

ltfstreamgt Flujos haciadesde ficheros

ltfunctionalgt Parte de la STL relativa a Objetos-funcioacuten

ltiomanipgt Manipuladores

ltiosgt Supreclases para manejo de flujos de ES

ltiosfwdgt Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estaacutendar Por ejemplo ostream

ltiostreamgt Parte del a STL que contiene los algoritmos estaacutendar de ES

ltistreamgt Algoritmos estaacutendar de flujos de entrada

ltiteratorgt Parte de la STL relacionada con iteradores un tipo de puntero que permite utilizar los algoritmos de la Libreriacutea con las estructuras de datos representadas por los contenedores

ltlimitsgt Descripcioacuten de propiedades dependientes de la implementacioacuten que afectan a los tipos fundamentales

ltlistgt Parte de la STL relativa a contenedores tipo list listas doblemente enlazadas

ltlocalegt Parte de la STL relativa a la internacionalizacioacuten

ltmapgt Parte de la STL relativa a contenedores tipo map ( 511e4)

ltmemorygt Utilidades relativas a la gestioacuten de memoria incluyendo asignadores y punteros inteligentes (auto_ptr)

ltnewgt Manejo de memoria dinaacutemica

ltnumericgt Parte de la libreriacutea numeacuterica de la STL relativa a operaciones numeacutericas

ltostreamgt Algoritmos estaacutendar para los flujos de salida

ltqueuegt Parte de la STL relativa a contenedores tipo queue colas de objetos ( 18)

ltsetgt Parte de la STL relativa a contenedores tipo set ( 511e2)

ltsstreamgt Flujos haciadesde cadenas alfanumeacutericas

ltstackgt Parte de la STL relativa a contenedores tipo stack ( 511c5) pilas de objetos ( 18)

ltstdexceptgt Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los algoritmos de la propia STL y otras expresiones Estas clases son utilizadas para reportar errores detectados durante runtime Los usuarios tambieacuten pueden utilizar excepciones para reportar errores en sus propios programas ( 161a)

ltstreambufgt Parte de la STL relativa al Almacenamiento de flujos de ES (Stream buffers) Define los tipos que controlan la capa de transporte ( 532f)

ltstringgt Parte de la STL relativa a contenedores tipo string ( ) una generalizacioacuten de las cadenas alfanumeacutericas para albergar cadenas de objetos

lttypeinfogt Mecanismo de identificacioacuten de tipos en tiempo de ejecucioacuten ( 4914)

ltutilitygt Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs)

ltvalarraygt Parte de la libreriacutea numeacuterica de la STL relativa a manejo de matrices numeacutericas ()

ltvectorgt Parte de la STL relativa a los contenedores tipo vector una generalizacioacuten de las matrices unidimensionales CC++ ( 511c1)

Es digno de mencioacuten que aunque generalmente las libreriacuteas no aportan ninguna caracteriacutestica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho) una pequentildea porcioacuten de la Libreriacutea Estaacutendar C++ siacute aporta caracteriacutesticas que se consideran pertenecientes a este de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas En concreto se refieren a los siguientes elementos

Operadores new new[] delete y delete[] Clase type_info que corresponde al mecanismo RTTI de identificacioacuten

de tipos en tiempo de ejecucioacuten representado por el operador typeid Rutinas de inicio y terminacioacuten Las excepciones estaacutendar lanzadas por los algoritmos anteriores

Sinopsis

Al tratar de la construccioacuten de un programa sentildealamos que en ocasiones no se desea construir un ejecutable al menos no en el sentido tradicional del teacutermino sino una libreriacutea y que estas libreriacuteas son trozos de coacutedigo que contienen alguna funcionalidad pre-construida que puede ser utilizada por un ejecutable Por supuesto las libreriacuteas contienen en su interior variables y funciones Si como suponemos son libreriacuteas C++ lo maacutes probable es que estas variables y funciones esteacuten encapsuladas en forma de clases Observe que la idea central de libreriacutea es precisamente la de ser un moacutedulo de software preconstruido -generalmente por terderos- para cuya utilizacioacuten no es necesario conocer los detalles iacutentimos de su funcionamiento sino su interfaz Es decir que respuestas nos puede dar y coacutemo hay que preguntar -a la libreriacutea- para obtenerlas

En general el teacutermino libreriacutea se utiliza para referirse a un conjunto de moacutedulos objeto obj o (resultados de compilacioacuten) agrupados en un solo fichero que suele tener las extensiones lib bpl [6] a dll etc Estos ficheros permiten tratar las colecciones de moacutedulos como una sola unidad y representan una forma muy conveniente para el manejo y desarrollo de aplicaciones grandes ademaacutes de ser un concepto muy feacutertil para la industria del software ya que permiten la existencia de las libreriacuteas de los propios compiladores y de un mercado de utilidades y componentes adicionales Son las denominadas libreriacuteas 3pp (de terceras partes) en referencia a que no son incluidas de forma estaacutendar con los compiladores ni creadas por el programador de la aplicacioacuten

En este sentido el software se parece a cualquier otro mercado de componentes Ademaacutes de las libreriacuteas maacutes o menos extensas que acompantildean a los compiladores pueden adquirirse otras que permiten antildeadir a nuestros programas las funcionalidades maacutes diversas sin necesidad de ser un experto en cada aacuterea de la programacioacuten y sin necesidad de que tengamos que estar reinventando la rueda constantemente Si quiere una opinioacuten autorizada -en ingleacutes- sobre la filosofiacutea de uso e importancia de las libreriacuteas en C++ puede consultar este documento del Sr Stroustrup Abstraction libraries and efficiency in C++

Tipos

En lo que respecta al lenguaje C++ existen dos tipos fundamentales de libreriacuteas estaacuteticas y dinaacutemicas que aunque comparten el mismo nombre geneacuterico libreriacutea utilizan mecanismos distintos para proporcionar su funcionalidad al ejecutable

En ambos casos es costumbre que junto a las libreriacuteas propiamente dichas (ficheros lib a dll etc) se incluya un fichero h denominado de cabecera

porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacuten en el fuente durante la fase de preproceso Este fichero contiene las declaraciones de las entidades contenidas en la libreriacutea asiacute como las macros y constantes predefinidas utilizadas en ella de forma que el programador solo tiene que incluir el correspondiente fichero h en su aplicacioacuten para poder utilizar los recursos de la libreriacutea en cuestioacuten (recuerde que en CC++ es imprescindible incluir la declaracioacuten de cualquier funcioacuten o clase antes de su utilizacioacuten Este sistema tiene la ventaja adicional de que proporciona al usuario la informacioacuten miacutenima para su uso Es decir la interfaz de las funciones o clases que utilizaraacute En el caso de funciones esto se concreta en el prototipo en el caso de clases en la especificacioacuten de sus meacutetodos y propiedades puacuteblicas

Libreriacuteas estaacuteticas

Denominadas tambieacuten libreriacuteas-objeto son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensioacuten lib a etc junto con uno o varios ficheros de cabecera (generalmente h)

Nota una posicioacuten extrema la constituyen aquellas libreriacuteas en las que toda la funcionalidad se ha incluido en el fichero de cabecera h en cuyo caso no existen los moacutedulos compilados lib a etc Es el caso de la Libreriacutea Estaacutendar de Plantillas STL que estaacute compuesta casi exclusivamente por ficheros de cabecera No obstante lo anterior representa un caso extremo que suele ser evitado ya que por lo general los autores incluyen en los ficheros de cabecera la informacioacuten miacutenima indispensable para utilizar la libreriacutea (la interfaz) incluyendo la operatoria en forma de ficheros compilados La razoacuten no suele ser otra que proteger la propiedad intelectual (el know how)

Durante la construccioacuten de la aplicacioacuten el preprocesador incluye en los fuentes los ficheros de cabecera Posteriormente durante la fase de enlazado el linker incluye en el ejecutable los moacutedulos correspondientes a las funciones y clases de libreriacutea que hayan sido utilizadas en el programa de forma que el conjunto entra a formar parte del ejecutable De ahiacute su nombre Libreriacuteas enlazadas estaacuteticamente

Dejando aparte consideraciones de comodidad y rapidez el resultado de utilizar una de tales libreriacuteas no se diferencia en nada al que puede obtenerse escribiendo en al fuente las funciones o clases correspondientes y compilaacutendolas como un moacutedulo maacutes de nuestra aplicacioacuten

Nota genralmente los compiladores disponen de herramientas especiacuteficas para la creacioacuten de libreriacuteas estaacuteticas Por ejemplo la del compilador Borland C++ es el ejecutable TLIBEXE las de GNU se denominan ar y ranlib Como

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 2: Librerias en c

Estaacutendar La uacuteltima versioacuten ISOIEC 14882 del antildeo 1998 especifica que se compone de 32 ficheros de cabecera de nombres fijos y conocidos agrupados seguacuten la funcionalidad de los algoritmos Son los siguientes

Ficheros Funcionalidadfunciones

ltalgorithmgt Parte de la STL que describe los algoritmos

ltbitsetgt Parte de la STL relativa a contenedores tipo bitset Set de valores booleanos

ltcomplexgt Parte de la libreriacutea numeacuterica de la STL relativa a los

ltdequegt Parte de la STL relativa a contenedores tipo deque un tipo de colas Double-ended-queue

ltexceptiongt Parte de la libreriacutea de diagnoacutestico relativa al manejo de excepciones

ltfstreamgt Flujos haciadesde ficheros

ltfunctionalgt Parte de la STL relativa a Objetos-funcioacuten

ltiomanipgt Manipuladores

ltiosgt Supreclases para manejo de flujos de ES

ltiosfwdgt Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estaacutendar Por ejemplo ostream

ltiostreamgt Parte del a STL que contiene los algoritmos estaacutendar de ES

ltistreamgt Algoritmos estaacutendar de flujos de entrada

ltiteratorgt Parte de la STL relacionada con iteradores un tipo de puntero que permite utilizar los algoritmos de la Libreriacutea con las estructuras de datos representadas por los contenedores

ltlimitsgt Descripcioacuten de propiedades dependientes de la implementacioacuten que afectan a los tipos fundamentales

ltlistgt Parte de la STL relativa a contenedores tipo list listas doblemente enlazadas

ltlocalegt Parte de la STL relativa a la internacionalizacioacuten

ltmapgt Parte de la STL relativa a contenedores tipo map ( 511e4)

ltmemorygt Utilidades relativas a la gestioacuten de memoria incluyendo asignadores y punteros inteligentes (auto_ptr)

ltnewgt Manejo de memoria dinaacutemica

ltnumericgt Parte de la libreriacutea numeacuterica de la STL relativa a operaciones numeacutericas

ltostreamgt Algoritmos estaacutendar para los flujos de salida

ltqueuegt Parte de la STL relativa a contenedores tipo queue colas de objetos ( 18)

ltsetgt Parte de la STL relativa a contenedores tipo set ( 511e2)

ltsstreamgt Flujos haciadesde cadenas alfanumeacutericas

ltstackgt Parte de la STL relativa a contenedores tipo stack ( 511c5) pilas de objetos ( 18)

ltstdexceptgt Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los algoritmos de la propia STL y otras expresiones Estas clases son utilizadas para reportar errores detectados durante runtime Los usuarios tambieacuten pueden utilizar excepciones para reportar errores en sus propios programas ( 161a)

ltstreambufgt Parte de la STL relativa al Almacenamiento de flujos de ES (Stream buffers) Define los tipos que controlan la capa de transporte ( 532f)

ltstringgt Parte de la STL relativa a contenedores tipo string ( ) una generalizacioacuten de las cadenas alfanumeacutericas para albergar cadenas de objetos

lttypeinfogt Mecanismo de identificacioacuten de tipos en tiempo de ejecucioacuten ( 4914)

ltutilitygt Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs)

ltvalarraygt Parte de la libreriacutea numeacuterica de la STL relativa a manejo de matrices numeacutericas ()

ltvectorgt Parte de la STL relativa a los contenedores tipo vector una generalizacioacuten de las matrices unidimensionales CC++ ( 511c1)

Es digno de mencioacuten que aunque generalmente las libreriacuteas no aportan ninguna caracteriacutestica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho) una pequentildea porcioacuten de la Libreriacutea Estaacutendar C++ siacute aporta caracteriacutesticas que se consideran pertenecientes a este de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas En concreto se refieren a los siguientes elementos

Operadores new new[] delete y delete[] Clase type_info que corresponde al mecanismo RTTI de identificacioacuten

de tipos en tiempo de ejecucioacuten representado por el operador typeid Rutinas de inicio y terminacioacuten Las excepciones estaacutendar lanzadas por los algoritmos anteriores

Sinopsis

Al tratar de la construccioacuten de un programa sentildealamos que en ocasiones no se desea construir un ejecutable al menos no en el sentido tradicional del teacutermino sino una libreriacutea y que estas libreriacuteas son trozos de coacutedigo que contienen alguna funcionalidad pre-construida que puede ser utilizada por un ejecutable Por supuesto las libreriacuteas contienen en su interior variables y funciones Si como suponemos son libreriacuteas C++ lo maacutes probable es que estas variables y funciones esteacuten encapsuladas en forma de clases Observe que la idea central de libreriacutea es precisamente la de ser un moacutedulo de software preconstruido -generalmente por terderos- para cuya utilizacioacuten no es necesario conocer los detalles iacutentimos de su funcionamiento sino su interfaz Es decir que respuestas nos puede dar y coacutemo hay que preguntar -a la libreriacutea- para obtenerlas

En general el teacutermino libreriacutea se utiliza para referirse a un conjunto de moacutedulos objeto obj o (resultados de compilacioacuten) agrupados en un solo fichero que suele tener las extensiones lib bpl [6] a dll etc Estos ficheros permiten tratar las colecciones de moacutedulos como una sola unidad y representan una forma muy conveniente para el manejo y desarrollo de aplicaciones grandes ademaacutes de ser un concepto muy feacutertil para la industria del software ya que permiten la existencia de las libreriacuteas de los propios compiladores y de un mercado de utilidades y componentes adicionales Son las denominadas libreriacuteas 3pp (de terceras partes) en referencia a que no son incluidas de forma estaacutendar con los compiladores ni creadas por el programador de la aplicacioacuten

En este sentido el software se parece a cualquier otro mercado de componentes Ademaacutes de las libreriacuteas maacutes o menos extensas que acompantildean a los compiladores pueden adquirirse otras que permiten antildeadir a nuestros programas las funcionalidades maacutes diversas sin necesidad de ser un experto en cada aacuterea de la programacioacuten y sin necesidad de que tengamos que estar reinventando la rueda constantemente Si quiere una opinioacuten autorizada -en ingleacutes- sobre la filosofiacutea de uso e importancia de las libreriacuteas en C++ puede consultar este documento del Sr Stroustrup Abstraction libraries and efficiency in C++

Tipos

En lo que respecta al lenguaje C++ existen dos tipos fundamentales de libreriacuteas estaacuteticas y dinaacutemicas que aunque comparten el mismo nombre geneacuterico libreriacutea utilizan mecanismos distintos para proporcionar su funcionalidad al ejecutable

En ambos casos es costumbre que junto a las libreriacuteas propiamente dichas (ficheros lib a dll etc) se incluya un fichero h denominado de cabecera

porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacuten en el fuente durante la fase de preproceso Este fichero contiene las declaraciones de las entidades contenidas en la libreriacutea asiacute como las macros y constantes predefinidas utilizadas en ella de forma que el programador solo tiene que incluir el correspondiente fichero h en su aplicacioacuten para poder utilizar los recursos de la libreriacutea en cuestioacuten (recuerde que en CC++ es imprescindible incluir la declaracioacuten de cualquier funcioacuten o clase antes de su utilizacioacuten Este sistema tiene la ventaja adicional de que proporciona al usuario la informacioacuten miacutenima para su uso Es decir la interfaz de las funciones o clases que utilizaraacute En el caso de funciones esto se concreta en el prototipo en el caso de clases en la especificacioacuten de sus meacutetodos y propiedades puacuteblicas

Libreriacuteas estaacuteticas

Denominadas tambieacuten libreriacuteas-objeto son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensioacuten lib a etc junto con uno o varios ficheros de cabecera (generalmente h)

Nota una posicioacuten extrema la constituyen aquellas libreriacuteas en las que toda la funcionalidad se ha incluido en el fichero de cabecera h en cuyo caso no existen los moacutedulos compilados lib a etc Es el caso de la Libreriacutea Estaacutendar de Plantillas STL que estaacute compuesta casi exclusivamente por ficheros de cabecera No obstante lo anterior representa un caso extremo que suele ser evitado ya que por lo general los autores incluyen en los ficheros de cabecera la informacioacuten miacutenima indispensable para utilizar la libreriacutea (la interfaz) incluyendo la operatoria en forma de ficheros compilados La razoacuten no suele ser otra que proteger la propiedad intelectual (el know how)

Durante la construccioacuten de la aplicacioacuten el preprocesador incluye en los fuentes los ficheros de cabecera Posteriormente durante la fase de enlazado el linker incluye en el ejecutable los moacutedulos correspondientes a las funciones y clases de libreriacutea que hayan sido utilizadas en el programa de forma que el conjunto entra a formar parte del ejecutable De ahiacute su nombre Libreriacuteas enlazadas estaacuteticamente

Dejando aparte consideraciones de comodidad y rapidez el resultado de utilizar una de tales libreriacuteas no se diferencia en nada al que puede obtenerse escribiendo en al fuente las funciones o clases correspondientes y compilaacutendolas como un moacutedulo maacutes de nuestra aplicacioacuten

Nota genralmente los compiladores disponen de herramientas especiacuteficas para la creacioacuten de libreriacuteas estaacuteticas Por ejemplo la del compilador Borland C++ es el ejecutable TLIBEXE las de GNU se denominan ar y ranlib Como

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 3: Librerias en c

ltsstreamgt Flujos haciadesde cadenas alfanumeacutericas

ltstackgt Parte de la STL relativa a contenedores tipo stack ( 511c5) pilas de objetos ( 18)

ltstdexceptgt Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los algoritmos de la propia STL y otras expresiones Estas clases son utilizadas para reportar errores detectados durante runtime Los usuarios tambieacuten pueden utilizar excepciones para reportar errores en sus propios programas ( 161a)

ltstreambufgt Parte de la STL relativa al Almacenamiento de flujos de ES (Stream buffers) Define los tipos que controlan la capa de transporte ( 532f)

ltstringgt Parte de la STL relativa a contenedores tipo string ( ) una generalizacioacuten de las cadenas alfanumeacutericas para albergar cadenas de objetos

lttypeinfogt Mecanismo de identificacioacuten de tipos en tiempo de ejecucioacuten ( 4914)

ltutilitygt Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs)

ltvalarraygt Parte de la libreriacutea numeacuterica de la STL relativa a manejo de matrices numeacutericas ()

ltvectorgt Parte de la STL relativa a los contenedores tipo vector una generalizacioacuten de las matrices unidimensionales CC++ ( 511c1)

Es digno de mencioacuten que aunque generalmente las libreriacuteas no aportan ninguna caracteriacutestica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho) una pequentildea porcioacuten de la Libreriacutea Estaacutendar C++ siacute aporta caracteriacutesticas que se consideran pertenecientes a este de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas En concreto se refieren a los siguientes elementos

Operadores new new[] delete y delete[] Clase type_info que corresponde al mecanismo RTTI de identificacioacuten

de tipos en tiempo de ejecucioacuten representado por el operador typeid Rutinas de inicio y terminacioacuten Las excepciones estaacutendar lanzadas por los algoritmos anteriores

Sinopsis

Al tratar de la construccioacuten de un programa sentildealamos que en ocasiones no se desea construir un ejecutable al menos no en el sentido tradicional del teacutermino sino una libreriacutea y que estas libreriacuteas son trozos de coacutedigo que contienen alguna funcionalidad pre-construida que puede ser utilizada por un ejecutable Por supuesto las libreriacuteas contienen en su interior variables y funciones Si como suponemos son libreriacuteas C++ lo maacutes probable es que estas variables y funciones esteacuten encapsuladas en forma de clases Observe que la idea central de libreriacutea es precisamente la de ser un moacutedulo de software preconstruido -generalmente por terderos- para cuya utilizacioacuten no es necesario conocer los detalles iacutentimos de su funcionamiento sino su interfaz Es decir que respuestas nos puede dar y coacutemo hay que preguntar -a la libreriacutea- para obtenerlas

En general el teacutermino libreriacutea se utiliza para referirse a un conjunto de moacutedulos objeto obj o (resultados de compilacioacuten) agrupados en un solo fichero que suele tener las extensiones lib bpl [6] a dll etc Estos ficheros permiten tratar las colecciones de moacutedulos como una sola unidad y representan una forma muy conveniente para el manejo y desarrollo de aplicaciones grandes ademaacutes de ser un concepto muy feacutertil para la industria del software ya que permiten la existencia de las libreriacuteas de los propios compiladores y de un mercado de utilidades y componentes adicionales Son las denominadas libreriacuteas 3pp (de terceras partes) en referencia a que no son incluidas de forma estaacutendar con los compiladores ni creadas por el programador de la aplicacioacuten

En este sentido el software se parece a cualquier otro mercado de componentes Ademaacutes de las libreriacuteas maacutes o menos extensas que acompantildean a los compiladores pueden adquirirse otras que permiten antildeadir a nuestros programas las funcionalidades maacutes diversas sin necesidad de ser un experto en cada aacuterea de la programacioacuten y sin necesidad de que tengamos que estar reinventando la rueda constantemente Si quiere una opinioacuten autorizada -en ingleacutes- sobre la filosofiacutea de uso e importancia de las libreriacuteas en C++ puede consultar este documento del Sr Stroustrup Abstraction libraries and efficiency in C++

Tipos

En lo que respecta al lenguaje C++ existen dos tipos fundamentales de libreriacuteas estaacuteticas y dinaacutemicas que aunque comparten el mismo nombre geneacuterico libreriacutea utilizan mecanismos distintos para proporcionar su funcionalidad al ejecutable

En ambos casos es costumbre que junto a las libreriacuteas propiamente dichas (ficheros lib a dll etc) se incluya un fichero h denominado de cabecera

porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacuten en el fuente durante la fase de preproceso Este fichero contiene las declaraciones de las entidades contenidas en la libreriacutea asiacute como las macros y constantes predefinidas utilizadas en ella de forma que el programador solo tiene que incluir el correspondiente fichero h en su aplicacioacuten para poder utilizar los recursos de la libreriacutea en cuestioacuten (recuerde que en CC++ es imprescindible incluir la declaracioacuten de cualquier funcioacuten o clase antes de su utilizacioacuten Este sistema tiene la ventaja adicional de que proporciona al usuario la informacioacuten miacutenima para su uso Es decir la interfaz de las funciones o clases que utilizaraacute En el caso de funciones esto se concreta en el prototipo en el caso de clases en la especificacioacuten de sus meacutetodos y propiedades puacuteblicas

Libreriacuteas estaacuteticas

Denominadas tambieacuten libreriacuteas-objeto son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensioacuten lib a etc junto con uno o varios ficheros de cabecera (generalmente h)

Nota una posicioacuten extrema la constituyen aquellas libreriacuteas en las que toda la funcionalidad se ha incluido en el fichero de cabecera h en cuyo caso no existen los moacutedulos compilados lib a etc Es el caso de la Libreriacutea Estaacutendar de Plantillas STL que estaacute compuesta casi exclusivamente por ficheros de cabecera No obstante lo anterior representa un caso extremo que suele ser evitado ya que por lo general los autores incluyen en los ficheros de cabecera la informacioacuten miacutenima indispensable para utilizar la libreriacutea (la interfaz) incluyendo la operatoria en forma de ficheros compilados La razoacuten no suele ser otra que proteger la propiedad intelectual (el know how)

Durante la construccioacuten de la aplicacioacuten el preprocesador incluye en los fuentes los ficheros de cabecera Posteriormente durante la fase de enlazado el linker incluye en el ejecutable los moacutedulos correspondientes a las funciones y clases de libreriacutea que hayan sido utilizadas en el programa de forma que el conjunto entra a formar parte del ejecutable De ahiacute su nombre Libreriacuteas enlazadas estaacuteticamente

Dejando aparte consideraciones de comodidad y rapidez el resultado de utilizar una de tales libreriacuteas no se diferencia en nada al que puede obtenerse escribiendo en al fuente las funciones o clases correspondientes y compilaacutendolas como un moacutedulo maacutes de nuestra aplicacioacuten

Nota genralmente los compiladores disponen de herramientas especiacuteficas para la creacioacuten de libreriacuteas estaacuteticas Por ejemplo la del compilador Borland C++ es el ejecutable TLIBEXE las de GNU se denominan ar y ranlib Como

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 4: Librerias en c

Al tratar de la construccioacuten de un programa sentildealamos que en ocasiones no se desea construir un ejecutable al menos no en el sentido tradicional del teacutermino sino una libreriacutea y que estas libreriacuteas son trozos de coacutedigo que contienen alguna funcionalidad pre-construida que puede ser utilizada por un ejecutable Por supuesto las libreriacuteas contienen en su interior variables y funciones Si como suponemos son libreriacuteas C++ lo maacutes probable es que estas variables y funciones esteacuten encapsuladas en forma de clases Observe que la idea central de libreriacutea es precisamente la de ser un moacutedulo de software preconstruido -generalmente por terderos- para cuya utilizacioacuten no es necesario conocer los detalles iacutentimos de su funcionamiento sino su interfaz Es decir que respuestas nos puede dar y coacutemo hay que preguntar -a la libreriacutea- para obtenerlas

En general el teacutermino libreriacutea se utiliza para referirse a un conjunto de moacutedulos objeto obj o (resultados de compilacioacuten) agrupados en un solo fichero que suele tener las extensiones lib bpl [6] a dll etc Estos ficheros permiten tratar las colecciones de moacutedulos como una sola unidad y representan una forma muy conveniente para el manejo y desarrollo de aplicaciones grandes ademaacutes de ser un concepto muy feacutertil para la industria del software ya que permiten la existencia de las libreriacuteas de los propios compiladores y de un mercado de utilidades y componentes adicionales Son las denominadas libreriacuteas 3pp (de terceras partes) en referencia a que no son incluidas de forma estaacutendar con los compiladores ni creadas por el programador de la aplicacioacuten

En este sentido el software se parece a cualquier otro mercado de componentes Ademaacutes de las libreriacuteas maacutes o menos extensas que acompantildean a los compiladores pueden adquirirse otras que permiten antildeadir a nuestros programas las funcionalidades maacutes diversas sin necesidad de ser un experto en cada aacuterea de la programacioacuten y sin necesidad de que tengamos que estar reinventando la rueda constantemente Si quiere una opinioacuten autorizada -en ingleacutes- sobre la filosofiacutea de uso e importancia de las libreriacuteas en C++ puede consultar este documento del Sr Stroustrup Abstraction libraries and efficiency in C++

Tipos

En lo que respecta al lenguaje C++ existen dos tipos fundamentales de libreriacuteas estaacuteticas y dinaacutemicas que aunque comparten el mismo nombre geneacuterico libreriacutea utilizan mecanismos distintos para proporcionar su funcionalidad al ejecutable

En ambos casos es costumbre que junto a las libreriacuteas propiamente dichas (ficheros lib a dll etc) se incluya un fichero h denominado de cabecera

porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacuten en el fuente durante la fase de preproceso Este fichero contiene las declaraciones de las entidades contenidas en la libreriacutea asiacute como las macros y constantes predefinidas utilizadas en ella de forma que el programador solo tiene que incluir el correspondiente fichero h en su aplicacioacuten para poder utilizar los recursos de la libreriacutea en cuestioacuten (recuerde que en CC++ es imprescindible incluir la declaracioacuten de cualquier funcioacuten o clase antes de su utilizacioacuten Este sistema tiene la ventaja adicional de que proporciona al usuario la informacioacuten miacutenima para su uso Es decir la interfaz de las funciones o clases que utilizaraacute En el caso de funciones esto se concreta en el prototipo en el caso de clases en la especificacioacuten de sus meacutetodos y propiedades puacuteblicas

Libreriacuteas estaacuteticas

Denominadas tambieacuten libreriacuteas-objeto son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensioacuten lib a etc junto con uno o varios ficheros de cabecera (generalmente h)

Nota una posicioacuten extrema la constituyen aquellas libreriacuteas en las que toda la funcionalidad se ha incluido en el fichero de cabecera h en cuyo caso no existen los moacutedulos compilados lib a etc Es el caso de la Libreriacutea Estaacutendar de Plantillas STL que estaacute compuesta casi exclusivamente por ficheros de cabecera No obstante lo anterior representa un caso extremo que suele ser evitado ya que por lo general los autores incluyen en los ficheros de cabecera la informacioacuten miacutenima indispensable para utilizar la libreriacutea (la interfaz) incluyendo la operatoria en forma de ficheros compilados La razoacuten no suele ser otra que proteger la propiedad intelectual (el know how)

Durante la construccioacuten de la aplicacioacuten el preprocesador incluye en los fuentes los ficheros de cabecera Posteriormente durante la fase de enlazado el linker incluye en el ejecutable los moacutedulos correspondientes a las funciones y clases de libreriacutea que hayan sido utilizadas en el programa de forma que el conjunto entra a formar parte del ejecutable De ahiacute su nombre Libreriacuteas enlazadas estaacuteticamente

Dejando aparte consideraciones de comodidad y rapidez el resultado de utilizar una de tales libreriacuteas no se diferencia en nada al que puede obtenerse escribiendo en al fuente las funciones o clases correspondientes y compilaacutendolas como un moacutedulo maacutes de nuestra aplicacioacuten

Nota genralmente los compiladores disponen de herramientas especiacuteficas para la creacioacuten de libreriacuteas estaacuteticas Por ejemplo la del compilador Borland C++ es el ejecutable TLIBEXE las de GNU se denominan ar y ranlib Como

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 5: Librerias en c

porque es tradicioacuten utilizar las primeras liacuteneas del programa para poner las directivas include que los incluiraacuten en el fuente durante la fase de preproceso Este fichero contiene las declaraciones de las entidades contenidas en la libreriacutea asiacute como las macros y constantes predefinidas utilizadas en ella de forma que el programador solo tiene que incluir el correspondiente fichero h en su aplicacioacuten para poder utilizar los recursos de la libreriacutea en cuestioacuten (recuerde que en CC++ es imprescindible incluir la declaracioacuten de cualquier funcioacuten o clase antes de su utilizacioacuten Este sistema tiene la ventaja adicional de que proporciona al usuario la informacioacuten miacutenima para su uso Es decir la interfaz de las funciones o clases que utilizaraacute En el caso de funciones esto se concreta en el prototipo en el caso de clases en la especificacioacuten de sus meacutetodos y propiedades puacuteblicas

Libreriacuteas estaacuteticas

Denominadas tambieacuten libreriacuteas-objeto son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensioacuten lib a etc junto con uno o varios ficheros de cabecera (generalmente h)

Nota una posicioacuten extrema la constituyen aquellas libreriacuteas en las que toda la funcionalidad se ha incluido en el fichero de cabecera h en cuyo caso no existen los moacutedulos compilados lib a etc Es el caso de la Libreriacutea Estaacutendar de Plantillas STL que estaacute compuesta casi exclusivamente por ficheros de cabecera No obstante lo anterior representa un caso extremo que suele ser evitado ya que por lo general los autores incluyen en los ficheros de cabecera la informacioacuten miacutenima indispensable para utilizar la libreriacutea (la interfaz) incluyendo la operatoria en forma de ficheros compilados La razoacuten no suele ser otra que proteger la propiedad intelectual (el know how)

Durante la construccioacuten de la aplicacioacuten el preprocesador incluye en los fuentes los ficheros de cabecera Posteriormente durante la fase de enlazado el linker incluye en el ejecutable los moacutedulos correspondientes a las funciones y clases de libreriacutea que hayan sido utilizadas en el programa de forma que el conjunto entra a formar parte del ejecutable De ahiacute su nombre Libreriacuteas enlazadas estaacuteticamente

Dejando aparte consideraciones de comodidad y rapidez el resultado de utilizar una de tales libreriacuteas no se diferencia en nada al que puede obtenerse escribiendo en al fuente las funciones o clases correspondientes y compilaacutendolas como un moacutedulo maacutes de nuestra aplicacioacuten

Nota genralmente los compiladores disponen de herramientas especiacuteficas para la creacioacuten de libreriacuteas estaacuteticas Por ejemplo la del compilador Borland C++ es el ejecutable TLIBEXE las de GNU se denominan ar y ranlib Como

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 6: Librerias en c

tendremos ocasioacuten de ver en los ejemplos tambieacuten pueden crearse mediante opciones especiacuteficas en la orden de compilacioacuten

sect211 Diccionario

Junto con los moacutedulos obj que las componen las libreriacuteas estaacuteticas incluyen una especie de iacutendice o diccionario con informacioacuten sobre su contenido Este iacutendice contiene los nombres de los recursos puacuteblicos de los distintos moacutedulos (que pueden ser accedidos desde el exterior) y su direccioacuten Estos nombres deben ser distintos para evitar ambiguumledades durante el enlazado y sirven para incrementar la velocidad de enlazado cuando el Linker debe incluir alguno en un ejecutable

Nota cuando se crea una libreriacutea estaacutetica a partir de uno o varios ficheros relocalizables (objetos) el proceso de incluir esta tabla o diccionario de siacutembolos puede ejecutarse en un solo paso o en dos aunque siempre en el momento de crear la libreriacutea Por ejemplo tlib de Boland crea la libreriacutea y la tabla en un solo proceso En cambio ar de GNU puede crear la libreriacutea y posteriormente antildeadir la tabla (esto uacuteltimo puede tambieacuten hacerse con ranlib) Cuando se antildeade un nuevo moacutedulo a una libreriacutea existente la misma herramienta que antildeade el contenido se encarga de actualizar el iacutendice

sect22 Libreriacuteas dinaacutemicas

Otra forma de antildeadir funcionalidad a un ejecutable son las denominadas libreriacuteas de enlazado dinaacutemico (repasar en el significado de enlazado dinaacutemico) generalmente conocidas como DLLs acroacutenimo de su nombre en ingleacutes (Dynamic Linked Library) Estas libreriacuteas se utilizan mucho en la programacioacuten para el SO Windows Este Sistema contiene un gran nuacutemero de tales libreriacuteas de terminacioacuten DLL aunque en realidad pueden tener cualquier otra terminacioacuten EXE FON BPI DRV etc Cualquiera que sea su terminacioacuten de forma geneacuterica nos referiremos a ellas como DLLs nombre por el que son maacutes conocidas

Nota la programacioacuten tradicional de aplicaciones Windows utilizando la API del Sistema es en realidad una sucesioacuten de invocacioacuten a funciones contenidas en libreriacuteas de este tipo En realidad este Sistema Operativo estaacute constituido por un conjunto de DLLs la mayoriacutea de los ficheros de disco asociados con el Sistema son de este tipo y se ha llegado a afirmar que escribir una DLL es

escribir una extensioacuten del propio Windows ( PW2E Petzold p878)

Diferencias libreriacutea Estaacutetica versus Dinaacutemica

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 7: Librerias en c

Las diferencias maacutes relevantes de las libreriacuteas dinaacutemicas respecto a las estaacuteticas son fundamentalmente dos

Las libreriacuteas estaacuteticas quedan incluidas en el ejecutable mientras las dinaacutemicas son ficheros externos con lo que el tamantildeo de la aplicacioacuten (nuestro ejecutable) es mayor en el primer caso que en el segundo Esto puede ser de capital importancia en aplicaciones muy grandes ya que el ejecutable debe ser cargado en memoria de una sola vez

Las libreriacuteas dinaacutemicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable de modo que su funcionalidad puede ser compartida por varios ejecutables Esto significa que solo se necesita una copia de cada fichero de libreriacutea (DLL) en el Sistema Esta caracteriacutestica constituye la razoacuten principal de su utilizacioacuten y es tambieacuten origen de algunos inconvenientes principalmente en sistemas como Windows en los que existen centenares de ellas

Como consecuencia de las diferencias citadas se derivan otras Por ejemplo

Si se realizan modificaciones en los moacutedulos de una libreriacutea estaacutetica es necesario recompilar todos los ejecutables que la utilizan mientras que esto no es necesario en el caso de una libreriacutea dinaacutemica siempre que su interfaz se mantenga

Como consecuencia de lo anterior generalmente es maacutes difiacutecil la depuracioacuten y mantenimiento de aplicaciones que utilizan libreriacuteas dinaacutemicas que las estaacuteticas ya que en el primer caso es necesario controlar queacute versiones de los ejecutables (EXE) son compatibles con queacute versiones de las DLLs y de estas entre siacute de forma que el usuario no utilice un versiones incompatibles de los ficheros que componen la aplicacioacuten

Durante la ejecucioacuten de un ejecutable las libreriacuteas estaacuteticas que hubiesen intervenido en su construccioacuten no necesitan estar presentes en cambio las dinaacutemicas deben estar en el mismo directorio o en el camino de buacutesqueda Path

Las libreriacuteas estaacuteticas solo se utilizan en la fase de construccioacuten del ejecutable Las dinaacutemicas se utilizan durante la ejecucioacuten

Los ejecutables que utilizan libreriacutea estaacutetica solo incorporan los moacutedulos de aquellas que necesitan para resolver sus siacutembolos externos Por contra las libreriacuteas dinaacutemicas deben ser cargadas en su totalidad aunque no solo se utilice una parte de su funcionalidad (no son divisibles)

Las libreriacuteas estaacuteticas que entran a formar parte indivisible del ejecutable son cargadas con el proceso de carga de este Las libreriacuteas dinaacutemicas no necesariamente tienen que cargarse con la carga inicial

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 8: Librerias en c

(aunque pueden serlo) De hecho una libreriacutea dinaacutemica puede ser cargada bajo demanda en el momento en que se necesita su funcionalidad e incluso puede ser descargada cuando no resulta necesaria

El mecanismo de enlazado estaacutetico depende del compilador El de enlazado dinaacutemico depende del SO de forma que manteniendo ciertas precauciones las DLLs construidas con un lenguaje y un compilador pueden ser utilizadas por cualquier aplicacioacuten

Utilizar Libreriacuteas

Desde la oacuteptica del programador C++ el manejo de libreriacuteas comprende dos aspectos totalmente diferenciados su utilizacioacuten y quizaacutes la construccioacuten de alguna de ellas si nuestras aplicaciones son medianamente grandes

En cuanto al primer punto es seguro que cualquier aplicacioacuten por pequentildea que sea utilice algunas de la Libreriacutea Estaacutendar Por ejemplo cada vez que en su coacutedigo aparece una sentencia del tipo

cout ltlt Hola mundo ltlt endl

Estaacute utilizando una libreriacutea estaacutetica y cada vez que en la programacioacuten de una aplicacioacuten Windows utiliza un mensaje del tipo

MessageBox(NULL Hola mundo Mi primer programa MB_OK)

Estaacute usando una libreriacutea dinaacutemica En cuanto a su construccioacuten si se dedica a esto de programar en C++ antes o despueacutes pondraacute manos a la obra Por cierto existen empresas de software cuya principal actividad es precisamente fabricar y vender libreriacuteas (ya hemos indicado que el mercado de las 3pp es todo un mundillo dentro de la informaacutetica)

Cualquiera que sea el caso tanto la utilizacioacuten como la construccioacuten son diferentes seguacuten se trate de libreriacuteas estaacuteticas o dinaacutemicas En las paacuteginas que siguen se describen en detalle ambas situaciones Empezaremos por una descripcioacuten general de su funcionamiento para continuar con la descripcioacuten de los pasos necesarios para construirlas A continuacioacuten exponemos los detalles de su utilizacioacuten incluyendo un ejemplo de construccioacuten de un ejecutable que utiliza los recursos de una libreriacutea

HEADERS O ENCABEZADOS

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 9: Librerias en c

Son librerias que contienen las funciones que vamos a usar en el programa Por lo general se colocan al principio del programa

formato

include ltnombre_funchgt

Librerias mas comunes en C++

stdioh conioh iostreamh stringh ctypeh etc

Funciones maacutes utilizadas en C++

printf scanf malloc free cin cout

Secuencias de escape que actuan como caracteres

secuencia Accion realizada por la Comp

a Alarma

b retroceso

f avance de pagina

n nueva linea

r retorno al carro

t tabulacion horizontal

v tabulacion vertical

backslash

comilla simple

comilla doble

Operadores en C++ utilizados comunmente

Operador Funcioacuten

( ) llamada a funcioacuten

[ ] subiacutendice de un arreglo

punto acceso a miembro de una estructura

-gt Flecha Apunta a miembro

Inversor Loacutegico

- Resta

-- Decrementar en uno

++ Incrementar en uno

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 10: Librerias en c

amp Obtener la direccioacuten de memoria

Obtiene la indireccioacuten (contenido de)

division

modulo (resto de la division)

+ suma

lt menor que

gt mayor que

lt= menor igual

gt= mayor igual

== igualdad de comparacion

= desigualdad

ampamp operador logico AND

|| operador logico OR

condicional evalua dos expresiones

= asignacion

separador de variables constantes y expresiones dentro de funciones estructuras de control etc

sizeof determina el tamantildeo de una variable o una estructura

Un pequentildeo programa interesante de analizar es el siguiente

void fn()

int z

int x=5

int y=5

z = ++x el valor de z es 6

z = y++ el valor de z es 5

Operadores de Asignacioacuten

Operador Significado

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 11: Librerias en c

=multiplicado por

= dividido por

= modulo de

+= antildeadir a

-= sustraer desde

Miscelaneos

El operador terciario es por lo general confundido con una estructura de control Este trabaja de la siguiente manera

a b c

Si a es verdadero el resultado del operador es el valor de b sino el resultado es el valor de c a tambien puede ser una condicioacuten o alguna otra estructura que genere verdadero o falso

Constantes

Como siempre se ha definido en cualquier otro lenguaje las constantes son datos que siempre van a conservar el mismo valor durante todo el programa

Para la declaracioacuten de las constantes comunes utilizaremos

const int radioTierra = 3959 en millas

const float radioTierraEnKm = 1609 radioTierra

Debemos hacer incapie en lo que son las constante en toda su extensioacuten en el siguiente ejemplo a lo mejor no queda tan claro el uso de constantes

int main()

const char pCC = Esto es una cadena constante

char const cPc = Esto es un puntero constante

pCC=a ilegal porque es una cadena

constante

cPc=a legal

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 12: Librerias en c

pCC=otra cadena legal

cPc=otra cadena ilegal

return 0

La regla es const se aplicara directamente a la cosa que se encuentre inmediatamente a su derecha

Existen otro tipo de constantes que son las definidas que se utilizan para suplir un extenso codigo

define ltnemonicogt ltfunciongt

por ejemplo

define peso 1645

define imprima(a) printf(ia)

define color(xy) textcolor(x) textbackground(y)

Sentencias de Control

break break

for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

break

continue continue for (n=1 nlt=100 ++n)

scanf(f ampx)

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 13: Librerias en c

if (xlt0)

printf(ERROR- Valor negativo)

continue

do-while

do

sentencia

while (expresioacuten)

do

printf(dn digito++)

while(digito lt=9 )

for for(exp1exp2exp3)

sentencia

for (digito=0 digitolt=9 ++digito)

printf(dn digito)

for (x=0 y=0 x lt y x+=10 y-=10)

goto goto etiqueta

etiqueta sentencia

if (x lt 0)

goto indicador

indicador printf(ERROR)

if if (expresion)

sentencia

if (x lt 0)

printf(fx)

if-else

if (expresion)

sentencia 1

else

sentencia 2

if (estado == S)

tasa=020paga

else

tasa=014paga

return return expresion return (n1 + n2)

switch switch (expresion)

case expresion 1

switch (eleccion = getchar())

case R

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 14: Librerias en c

sentencia 1

sentencia 2

sentencia m

break

case expresion 2

sentencia 1

sentencia 2

sentencia n

break

default

sentencia 1

sentencia 2

sentencia k

printf(ROJO)

break

case B

printf(BLANCO)

break

case A

printf(AZUL)

break

default

printf(ERROR)

while while (expresion)

sentencia

while (digitolt=9)

printf(dn digito++)

ESTRUCTURAS

2 Definida La cual representa la definicioacuten de un tipo de dato creado por el usuario aunque la estructura anterior tambieacuten representa un tipo de dato definido la diferencia radica en que la definida puede ser pasada por

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 15: Librerias en c

paraacutemetro o encabezar los requerimientos de una funcioacuten mientras que la otra no

sintaxis

typedef struct nombre1

variable 1

variable n

NOMBRE1

NOMBRE1 es el utilizado para hacer posteriores declaraciones

CUERPO DEL PROGRAMA

El programa esta compuesto de la siguiente manera

funcion 1

funcion 2

funcioacuten n

main o funcion principal

Donde existe una prelacioacuten es decir la funcion n-1 accesa todas las funciones menos la funcioacuten n asi la unica funcioacuten que puede disponer de todas las demaacutes es la funcioacuten principal o main

Toda funcioacuten excepto el main debe retornar un valor en caso de que no se retorna nada puede declararse de tipo void (cualquier tipo)

sintaxis

lttipo_retornogt ltnombre_funcioacutengt (param 1 param 2 param n)

la funcioacuten main debe declararse de la siguiente forma

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 16: Librerias en c

main( )

Esta funcioacuten seraacute la primera en ejecutarse

NOTAS

- No se pueden declarar funciones dentro de otras funciones

- Las palabras reservadas deben ir en minusculas

DESCRIPCIOacuteN DE CADA LIBRERIacuteA

Bibliotecas maacutes importantes en C++

iostreamh

Declara en el C++ baacutesico los datos de (IO)

Funciones

Cin Declara los datos de entrada para alas variables

Cout Muestra los datos que uno desea que se vean en la pantalla

stdioh

Define los tipos y macros necesitados para el paquete definido de IO normal en Kernighan y Ritchie extendido bajo el Sistema de UNIX V

Define el estaacutendar de IO predefinido vierte stdin stdout stdprn y stderr y declara IO de datos

Funciones

gets

Sintaxis

include ltstdiohgt

char gets(char s)

Description

Recibe un cadena del ldquostdinrdquo (cadena estaacutendar de entrada)

Gets colecciona una cadena de caracteres terminados por una nueva liacutenea desde la cadena estaacutendar de entrada ldquostdinrdquo y lo pone en s La nueva liacutenea es reemplazada por un caraacutecter nulo (0) en s

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 17: Librerias en c

Gets permite las cadenas de la entrada para contener ciertos caracteres del ldquowhitespace o espacio en blancordquo (los espacios etiquetas) Gets vuelve cuando encuentra una nueva liacutenea a toda la nueva liacutenea la copia en s

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdinrdquo

El Valor de retorno

Si el programa esta bien Gets devuelve s al argumento de la cadena

Si hay error Gets devuelve NULO

putchar

Sintaxis

include ltstdiohgt

int putchar(int c)

Descripcioacuten

putchar(c) es un macro definido para putc(c stdout)

Note Para Win32s o Win32 las aplicaciones de GUI deben remitirse los ldquostdoutrdquo

El Valor de retorno

Si el programa esta bien putchar devuelve el caraacutecter c

Si hay error putchar devuelve EOF

mathh

Mathh realiza caacutelculos matemaacuteticos y conversiones

Cos cosl

Sintaxis

include ltmathhgt

double cos(double x)

long double cosl(long double x)

Descripcioacuten

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 18: Librerias en c

Calcula el coseno de un valor

Cos computa el coseno del valor de la entrada El aacutengulo se especifica en los radianes

Cosl es la versioacuten doble larga toma un argumento doble largo y devuelve un resultado doble largo

Esta funcioacuten puede usarse con ldquobcdrdquo y tipos del complejo

El Valor de retorno

Si el programa esta bien Cos de un argumento real devuelve un valor en el rango -1 a 1

Si hay error estas funciones pueden modificarse a traveacutes de _matherr (o _matherrl)

pow powl

Sintaxis

include ltmathhgt

double pow(double x double y)

long double powl(long double x long double y)

Descripcioacuten

Calcula x a la potencia y (xy)

Powl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo

Esta funcioacuten puede usarse con los bcd y tipos complejos

El Valor de retorno

Si el programa esta bien el pow y powl devuelven el valor calculado de x elevado a y

A veces los resultados dados son grandes o son incalculables Cuando el resultado es correcto pero grandes o incalculables las funciones devuelven HUGE_VAL (pow) or _LHUGE_VAL (powl)

Los resultados de magnitud excesivamente grande pueden causar el errno inconstante global para ser puesto a

ERANGE Resultado fuera de rango

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 19: Librerias en c

Si el argumento x pasoacute al pow o usted llama el pow(00)

EDOM Error de Dominio

Error que maneja para estas funciones puede modificarse a traveacutes de las funciones _matherr y _matherrl

sqrt sqrtl

Sintaxis

include ltmathhgt

double sqrt(double x)

long double sqrtl(long double x)

Descripcioacuten

Calcula la raiacutez cuadrada positiva

Sqrt calcula la raiacutez cuadrada positiva del argumento x

Sqrtl es la versioacuten larga doble toma argumentos dobles y regresa un resultado doble largo Error que maneja para estas funciones puede ser modificadas a traveacutes de las funciones _matherr y _matherrl

Esta funcioacuten puede usarse con los bcd y tipos del complejo

El Valor de retorno

Si el programa esta bien sqrt y sqrtl devuelven el valor calculado la raiacutez cuadrada de x Si x es real y positivo el resultado es positivo Si x es real y negativo el retorno seraacute inconstante global se pone a EDOM (Error de Dominio)

stringh

Declara varios cadenas-manipulacioacuten y memorias de rutinas de manipulacioacuten

Strcpy

Sintaxis

include ltstringhgt

char strcpy(char dest const char src)

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 20: Librerias en c

Descripcioacuten

Copia de una cadena a otra

Copia las cadenas del src al dest se detiene despueacutes que el caraacutecter nulo haya terminando de moverse

El Valor de retorno

el strcpy devuelve el dest

Strcmp

Sintaxis

include ltstringhgt

int strcmp(const char s1 const char s2)

Descripcioacuten

Compara de una cadena a otra

Strcmp realiza una comparacioacuten sin firmar de s1 al s2 empieza con el primer caraacutecter de cada cordoacuten y continuacutea con los caracteres subsecuentes hasta que los caracteres correspondientes difieren o hasta el fin que alcance la cadena

El Valor de retorno

Si el s1 es el strcmp devuelve un valor que es

menos del s2 lt0

igual que el s2 == 0

mayor que el s2gt 0

conioh

Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de IO

Clrscr

Sintaxis

include ltconiohgt

void clrscr(void)

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 21: Librerias en c

Descripcioacuten

Aclara el modo de texto de la ventana

clrscr aclara el texto de la actual y lugares del cursor en la esquina izquierda superior o en la posicioacuten (11)

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Clreol

Sintaxis

include ltconiohgt

void clreol(void)

Descripcioacuten

Aclara el final de la liacutenea en la ventana de texto

clreol aclara todos los caracteres donde el cursor se posicione hasta el fin de la liacutenea dentro de la ventana de texto actual sin mover el cursor

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Gotoxy

Sintaxis

include ltconiohgt

void gotoxy(int x

int y)

Descripcioacuten

Posiciona el cursor en la ventana del texto

Gotoxy mueve el cursor a la posicioacuten dada en la ventana del texto actual Si las coordenadas no son valiacuteas entonces la funcioacuten gotoxy se ignora Un ejemplo

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas
Page 22: Librerias en c

de esto es si gotoxy(4030) cuando (3525) es la correcta posicioacuten del fondo de la ventana Ninguacuten argumento de gotoxy puede ser el cero

La nota no use esta funcioacuten para Win32s o Win32 o aplicaciones de GUI

El Valor de retorno

Ninguno

Switch

Sintaxis

switch ( ltswitch variablegt )

case ltconstant expressiongt ltstatementgt [break]

default ltstatementgt

Descripcioacuten

Use la declaracioacuten switch para pasar el mando a un caso que empareja el ltel interruptor inconstantegt A que el punto las declaraciones que siguen el caso emparejando evaluacutea

Si ninguacuten caso satisface la condicioacuten que el caso predefinido evaluacutea Evitar evaluar cualquier otro caso y abandonar el mando del interruptor termine cada caso break

iomaniph

Declara la IO de las cadenas en C++ y contiene los macros por crear a los manipuladores del parametro

Incluye

IOSTREAMH

  • LIBRERIAS EN C++
  • Clases de libreriacuteas
  • Libreriacutea Estaacutendar C++
  • Tipos
  • Libreriacuteas estaacuteticas
  • sect211 Diccionario
  • sect22 Libreriacuteas dinaacutemicas
  • Diferencias libreriacutea Estaacutetica versus Dinaacutemica
  • Utilizar Libreriacuteas