P. 1
Programación estructurada

Programación estructurada

|Views: 428|Likes:
Publicado porgoritopc

More info:

Published by: goritopc on Jan 12, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

01/29/2013

pdf

text

original

Programación estructurada

De Wikipedia, la enciclopedia libre Saltar a navegación, búsqueda La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN). Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

Contenido
[ocultar]

1 Orígenes de la programación estructurada
○ ○ ○ ○

1.1 Estructura secuencial 1.2 Estructura selectiva o de selección 1.3 Estructura iterativa 1.4 Anidamiento

• • • • •

2 Ventajas de la programación estructurada 3 Inconvenientes de la programación estructurada 4 Bibliografia 5 Véase también 6 Enlaces externos

[editar] Orígenes de la programación estructurada
A finales de los años 1960 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior. El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: • • • Secuencia Instrucción condicional. Iteración (bucle de instrucciones) con condición al principio.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.

[editar] Estructura secuencial

Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior. Ejemplo:
INPUT x INPUT y auxiliar= x x= y y= auxiliar PRINT x PRINT y

• • • • •

Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia. 1º Guardamos una copia del valor de x en auxiliar. 2º Guardamos el valor de y en x, se pierde el valor anterior de x pero no importa porque tenemos una copia en auxiliar. 3º Guardamos en y el valor de auxiliar, que es el valor inicial de x. El resultado es el intercambio de los valores de x e y, en tres operaciones secuenciales.

[editar] Estructura selectiva o de selección
La estructura selectiva permite la realización de una instrucción u otra según un criterio, solo una de estas instrucciones se ejecutara. Ejemplo:
IF a > b THEN PRINT a ; " es mayor que " ; b ELSE PRINT a ; " no es mayor que " ; b END IF

Esta instrucción selectiva puede presentar dos mensajes, uno a es mayor que b, y el otro a no es mayor que b, solo uno de ellos será presentado, según el resultado de la comparación de a y b, si el resultado de a > b es cierto, se presenta el primer mensaje, si es falso el segundo, las palabras IF, THEN, ELSE, END IF; son propias de la instrucción (palabra reservadas) que tienen un significado en el lenguaje, sirven de separadores, y el usuario no debe utilizarlas salvo para este fin.
• • • •

IF señala el comienzo de la instrucción condicional, y se espera que después esté la condición de control de la instrucción. THEN señala el fin de la condición, y después estará la instrucción a realizar si la condición es cierta. ELSE separa la instrucción que se ejecutará si la condición es cierta de la que se ejecutará si es falsa. END IF indica que la instrucción condicional finaliza y el programa seguirá su curso.
THEN a ; " es mayor que " ; b < b THEN a ; " es menor que " ; b a ; " es igual que " ; b

Ampliemos un poco el ejemplo anterior:
IF a > b PRINT ELSEIF a PRINT ELSE PRINT

END IF

Este ejemplo nos permite considerar situaciones en las que tenemos más de dos alternativas. En este caso hemos considerado tres, pero hay situaciones en las que deben considerarse más casos y para ellos se puede repetir las veces que queramos la parte ELSEIF.

[editar] Estructura iterativa
Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condición, en un principio el número de iteraciones no tiene porque estar determinado. Ejemplo:
a= 0 b= 7 WHILE b > a DO PRINT a a= a + 1 WEND

Esta instrucción tiene tres palabras reservadas WHILE, DO y WEND.

WHILE: señala el comienzo del bucle y después de esta palabra se espera la condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no al final de la instrucción mientras. DO: señala el final de la condición, lo que esté después será el cuerpo del bucle. WEND: señala el final del cuerpo del bucle y de la instrucción WHILE.

• •

El bucle mientras, se repite mientras la condición sea cierta, esta condición se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condición es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condición sea cierta. En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7. La condición del bucle es b > a. Cuando a=0 y b=7. la condición es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7. ... ... Cuando a=6 y b=7. la condición es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad. Resultando que a=7 y b=7. Entonces la condición es falsa y la instrucción WHILE finaliza. La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6

[editar] Anidamiento
El cuerpo de cualquier estructura puede ser una instrucción simple u otra estructura, que a su vez puede anidar a otra. Ejemplo:
IF a > b THEN auxiliar= a a= b b= auxiliar

ELSE REM nada END IF PRINT a ; b

[editar] Ventajas de la programación estructurada
1. Los programas son más fáciles de entender, ya que pueden ser leídos de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica. 2. La estructura del programa es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí. 3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente. 4. Reducción de los costos de mantenimiento de los programas. 5. Programas más sencillos y más rápidos (ya que es más fácil su optimización). 6. Los bloques de código son auto explicativos, lo que facilita la documentación. 7. Los GOTO se reservan para construir las instrucciones básicas. Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración. 8. Un programa escrito de acuerdo a estos principios no solamente tendrá una mejor estructura sino también una excelente presentación. La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad.

[editar] Inconvenientes de la programación estructurada
El principal inconveniente de este método de programación es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo; esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad). En realidad, cuando se programa hoy en día (inicios del siglo XXI) se suelen utilizar, tanto las técnicas de programación estructurada como las de programación modular, de forma conjunta y por lo tanto es posible que cuando uno haga referencia a la programación estructurada esté considerando también las técnicas de modularización. Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica en la que se pueden definir funciones dentro de funciones o de procedimientos.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AA

INTRODUCCION

siendo la Programación Estructurada una de ellas. EN programación Estructurada los programadores deben profundizar mas que lo usual al procederá realizar el diseñooriginal del programa. y la potencia de las maquinas actuales es tal. Mediante la programación Estructurada todas las bifurcaciones de control de un programa se encuentran estandarizadas. Los programas computarizados pueden ser escritos con un alto grado de estructuración.La computadoraautomática debe su derecho a existir. posteriormente se libero el conjunto de las llamadas " Técnicas para mejoramiento de la productividad en programación" (en ingles Improved Programming Technologies. el objetivode u programador profesional al escribir programas de una manera estructurada. su utilidad. Esta organización incluye la composición de los programas. pero el resultado final es más fácil de leer y comprender. por su tamaño. Pero la necesidad de hacer programas para resolver problemas específicos quizás nunca desaparecerá. Deseamos que la computadoraefectúe lo que nunca podríamos hacer nosotros. precisamente a su capacidad de efectuar vastos cálculos que no pueden realizar los seres humanos. escapan al poderde nuestra imaginación limitada. En la década del sesenta salieron a la luz publica los principiosde lo que más tarde se llamo Programación Estructurada. con lo cual un numero mayor de usuarios se beneficia del. lo cual les permite ser mas fácilmente comprensibles en actividades tales como pruebas. paralelo a la reducción del costo del hardware obtenido gracias a los avances tecnológicos. de forma tal que es posible leer la codificacióndel mismo desde su inicio hasta su terminación en forma continua. Los avances en la tecnología siempre van parejos con progresos en los lenguajes de programación y con nuevas ayudas para simplificar el uso del computador. como es la situación habitual con codificaciones desarrolladas bajo otras técnicas. sin tener que saltar de un lugar a otro del programa siguiendo el rastro de la lógicaestablecida por el programador. . que inclusive los cálculos pequeños. es realizarlos utilizando solamente un numero de bifurcaciones de control estandarizados. Sin embargo debemos organizar el calculo de manera tal que nuestros limitados poderes sean suficientes para asegurar que se establecerá el efecto deseado. CONCEPTO DE PROGRAMACION ESTRUCTURADA EL creciente empleo de los computadores ha conducido a buscar un abaratamiento del desarrollo des software. mantenimiento y modificación de los mismos. abreviado IPTs). Los altos costos del mantenimientode las aplicaciones en producción normal también han urgido la necesidad de mejorar la productividad del personalde programación.

b. el cual establece que cualquier programa propio (un programa con una entrada y una salida exclusivamente) es equivalente a un programa que contiene solamente las estructuras lógicas mencionadas anteriormente. lo contrario de lo que ocurre con otros estilos de programación. c. Cuando varios programas propios se combinan utilizando las tres estructuras básicas de control mencionadas anteriormente.EL resultado de aplicar la sistemática y disciplinada manera de elaboración de programas establecida por la Programación Estructurada es una programación de alta precisión como nunca antes había sido lograda. DEFINICIONES Programación Estructurada es una técnica en la cual la estructura de un programa. Selección: bifurcación condicional de una o mas operaciones. asumiendo que no poseen lazos infinitos y no tienen instrucciones que jamas se ejecuten. desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa. excepto en . estos segmentos. es mucho más fácil comprender completamente el trabajo que realiza una función determinada. se denominan programas propios. de comienzo a fin. La facilidad de lectura. Secuencia: Sucesión simple de dos o mas operaciones. esto es. mantenidos y modificados por otros programadores con mucho mayor facilidad. Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir programas que manejen cualquier tarea de procesamiento de información. Un programa estructurado esta compuesto de segmentos. Esto es importante debido a que. la interpelación de sus partes realiza tan claramente como es posible mediante el uso de tres estructuras lógicas de control: a. es una consecuencia de utilizar solamente tres estructuras de control y de eliminar la instrucción de desvío de flujo de control. La programación Estructurada esta basada en el Teorema de la Estructura. Interacción: Repetición de una operación mientras se cumple una condición. el resultado es también un programa propio. Una característica importante en un programa estructurado es que puede ser leído en secuencia. Las pruebas de los programas. se acoplan mas rápidamente y el resultado final con programas que pueden ser leídos. Cada segmento tiene solamente una entrada y una salida. desarrollados utilizando este método. los cuales puedan estar constituidos por unas pocas instrucciones o por una pagina o más de codificación. si todas las instrucciones que influyen en su acción están físicamente contiguas y encerradas por un bloque.

En términos de diagrama de flujola secuencia es . selección e iteración. sino también una excelente presentación. La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la codificación y reducir el tiempo de prueba y depuración de programas. esfuerzo y creatividad. Estos beneficios derivan en parte del hecho que. Un programa de define como propio si cumple con los dos requerimientos siguientes: a. es decir. pero no se la debe considerar como una panacea ya que el desarrollo de programas es. rápido y menos expuesto a mantenimiento. Las tres estructuras lógicas de control básicas. Un programa que es fácil para leer y el cual esta compuesto de segmentos bien definidos tiende a ser simple. principalmente. se definen de la siguiente forma: Secuencia: es simplemente la formalización de la idea de que las instrucciones de un programa son ejecutadas en el mismo orden en que ellas aparecen en el programa. TEOREMA DE LA ESTRUCTURA El teorema de la estructura establece que un programa propio puede ser escrito utilizando solamente las siguientes estructuras lógicas de control: secuencia.circunstancias muy especiales tales como la simulación de una estructura lógica de control en un lenguaje de programación que no la posea. esto no suele suceder con los métodos convencionales de programación. Existen caminos seguibles desde la entrada hasta la salida que conducen por cada parte del programa. Un programa escrito de esta forma tiende a ser mucho más fácil de comprender que programas escritos en otros estilos. La programación estructurada ofrece estos beneficios. en documentacióntiende siempre a estar al día. Esto ultimo es cierto parcialmente. aunque el programa tenga una extensión significativa. no existen lazos infinitos ni instrucciones que no se ejecutan. debido a que la programación estructurada concentra los errores en uno de los factores más generador de fallas en programación: la lógica. b. Tiene exactamente una entrada y una salida para control del programa. VENTAJAS POTENCIALES Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura. una tarea de dedicación.

ya que esta unión tiene una entrada y una salida exclusivamente. OTRAS ESTRUCTURAS LOGICAS DE CONTROL . Selección: Es la escogencia entre dos accionestomando la decisión en base al resultado de evaluar un predicado. Iteración: Esta estructura lógica es utilizada para que se repita la ejecución de un conjunto de instrucciones mientras se cumpla una condición o predicado. La estructura limitada por la línea punteada es sustituida por una función quedando de la siguiente forma: V F es decir. que representa un modulo en un diagrama. por ejemplo. que posean solamente una entrada y una salida. Ay B deben ser programas propios en el sentido en que estos fueron definidos. es decir. que a su vez controla dos módulos X y Y. lo importante es que sean programas propios. como se muestra a continuación. una función sustituye a una estructura lógica de control o viceversa. la combinación de A seguida por B es también un programa propio. siempre puede ser sustituido por cualquiera de las tres estructuras de control descritas anteriormente.representada por una función después de la otra. esto se muestra gráficamente en la figura siguiente: Donde la caja externa sugiere que la combinación de A seguida de puede ser tratada como una unidad para propósitos de control. Esta estructura de control es denominada usualmente IFTHENELSE. La representación en forma de diagrama de flujo de esta estructura lógica de control se muestra a continuación: F Donde P es predicado y A y B son las dos funciones. Se debe comprender claramente que un rectángulo. la línea punteada limita un rectángulo que contiene una estructura. Generalmente a esta estructura se le conoce como DOWHILE (hacer mientras) y su representación se muestra a continuación: V F donde P es predicado y A es el modulo controlado. A y B pueden ser instrucciones sencillas hasta módulos completos. veamos el diagrama siguiente: En él. independientemente de su tamaño o complejidad interna.

usualmente. La diferencia entre el DOWHILE y el DOUNTIL es que en el primero el predicado es probado antes de ejecutar la función. desde el punto de vista de eficiencias y facilidad de lectura de un programa. será ejecutada. realizan funciones establecidas por las diferentes estructuras lógicas de control. dependiendo del proceso que se este tratando de representar y de las características apropiadas en el lenguajecon el cual se esta trabajando. es algunas veces. tener alguna forma de expresar una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de un predicado. La estructura CASE:Algunas veces resulta de gran ayuda. esta forma de control es la que se llama DOUNTIL. ETIQUETAS E INSTRUCCIÓN GOTO: Ocasionalmente se habla de la programación estructurada como una técnica de programación que no utiliza GOTO(instrucción de desvío del flujo de control en forma incondicional). podemos representar este proceso mediante 100 estructuras IF. si es necesario ejecutar una de cien rutinas diferentes en función del valor de un código de 2 dígitos. sin embargo el sentido común nos induce a pensar que no hay razón para adherirnos rígidamente a las tres estructuras básicas de control y en lugar de 100 IF usaríamos la estructura CASE. o sea. pero existe una estructura que es muy parecida a ella y que aveces es usada. que la función siempre será ejecutada al menos una vez. el predicado es probado después de ejecutar la función. independientemente si el predicado es cierto o falso. si el predicado es falso la función no es ejecutada. cuya representación gráfica en forma de diagrama de flujo se muestra a continuación: V Donde A es el modulo controlado y P el predicado. La representación gráfica de esta estructura de control se muestra a continuación: En cada lenguaje será necesario establecer cuales son las instrucciones que. a la estructura de control que satisface el requerimiento anterior. en forma conveniente y eficiente. mientras que en el segundo. se le denomina la estructura CASE. si bien es cierto que un programa bien . Por ejemplo.Aunque todos los programas pueden ser escritos utilizando solamente las tres estructuras de control descritas anteriormente. a continuación se hará una descripción de esas formas lógicas de control diferentes a las ya definidas: El Dountil: La estructuras de iteración básica es el DOWHILE. de varias rutinas. Esta estructura utiliza el valor de una variable para determinar cual. conveniente utilizar algunas estructuras adicionales.

SEGMENTACION Para la comprensión de un programa se haga en forma fácil y rápida es necesario que. Naturalmente. Se hace relativamente fácil y rápida la comprensión de la tarea que realiza una instrucción si su función puede ser entendida en términos de unas pocas instrucciones mas. estos casos son excepcionales y usualmente no ocurren en la programación realizada diariamente. Es conveniente que aclaremos este aspecto en este momento. uno no tenga que hojear una gran cantidad de paginas para entender cuales el trabajo que realiza. antes de su uso. pero este uso puede hacerse en forma cuidadosamente controlada. malentendidos como enemigos de la programación estructurada. en este trabajo. a una pagina de codificación. tendremos que simularlas y seguramente ello implicara el uso de la instrucción GOTO.estructurado tiene. al revisarlo. la ausencia de instrucciones GOTO puede ser mal interpretada. físicamente contiguas y delimitadas. algunas veces. Una regla practica para lograr estos fines es establecer que cada segmento del programa no exceda. o sea. existen buenas y fundadas razones para no querer usarlos pero no se necesita que se realice un trabajoarduo para eliminarlo. Un programa bien estructurado gana una parte importante de su fácil comprensión del hecho que puede ser leído en forma secuencial sin desvíos en el flujo de control desde una parte del programa a otra. en general. Esta característica es consecuencia de usar exclusivamente las estructuras lógicas de control estándar (el GOTO no es una de ellas). o bien ninguna o muy pocas instrucciones GOTO. si escogemos para programar un lenguaje de computación que no posea las estructuras lógicas de control fundamentales. El problema con la instrucción GOTO es que generalmente aleja al programa realizado de los propósitos descritos y en casos extremos puede hacer que un programa sea esencialmente incomprensible. Existen situaciones poco comunes en las cuales el uso de GOTO puede tener ventajas comparado con otras maneras de expresar un proceso. entonces. no tiene . descritas anteriormente. Se deben analizar cuidadosamente las consecuencias de emplear el GOTO. cuando se utilicen las estructuras lógicas de control. No se requieren esfuerzos especiales para eliminar de un programa los GOTO. asumiendo que estamos empleando un lenguaje de programación adecuado. ellos no aparecerán. alrededor de 50 líneas (el significado que se asigna al termino segmento. en longitud. los cuales han sido. esta secuencialidad o lectura TOPDOWN es beneficiosa debido a que hay un limite definido para muchos detalles que la mente humana puede abarcar de una vez.

tal como se muestra continuación. podemos indicar que. Adicionalmente. esto reduce la oportunidad de que interactuen entre ellos de una manera indeseada e inentendible. las relaciones existentes entre las distintas funciones de manera que sea fácil comprender lo que debe hacer el programa y asegurar que efectivamente lo realice. sin que sea motivo de preocupación la . c. esta técnica debe cumplir con ciertas características fundamentales: a. La segmentación no es solamente particionar un programa en trozos cuya longitud sea de unas 50 líneas. Esta organización puede ser representada gráficamente por un diagrama de procesos.ninguna relación con su significado en relación a las funciones de sistemasoperativos o sistemas maneadores de Bases de Datos). facilita la lectura del programa al mostrar en una forma gráfica las relaciones existentes entre las distintas instrucciones. La identacion puede ser de gran beneficio. formando una estructura de árbol. lo que hace más sencillo comprender la relación existente entre un segmento y el resto del programa. Algunos autores recomiendan que los segmentos consistan en procedimientosy la única comunicación existente entre ellos sea a través de una lista de parámetros. claramente. cuando se es consistente en su utilización. mientras que los segmentos inferiores en esta organización contendrán funciones detalladas. Una segmentación bien diseñada deberá mostrar. La segmentación reflejara la división del programa en partes que se relacionen entre sí en forma jerárquica. el segmento en la cumbre de la estructura jerárquica contendrá las funciones de control de mas alto nivel. verificar y corregir. En una segmentación bien realizada la comunicación entre segmentos se lleva a cabo de una manera cuidadosamente controlada. no afecten al resto del programa que no ha sufrido cambios. durante la programación original o su mantenimiento. donde ambos programas realizan la misma función. Este hecho. DIRECTRICES PAR IDENTAR Debe comprenderse claramente que las líneas siguientes solo pretenden presentar unas directrices de identacion. cada centro de procesamiento deberá establecer sus propias convenciones. IDENTACION El uso de la identacion es importante debido a que. b. pero el de la derecha es más fácil de comprender. garantizara que los cambios que se efectúen a una parte del programa. sin pretender que estas sean las únicas reglas a seguir en este proceso.

el seguimiento de las fallas("debugging") se facilita debido a la lógica más visible. habilidad y cuidado. por ejemplo en la columna 4 o cualquier otra ubicada a su derecha. sin necesidad de estar saltando de un sitio a otro en la lógica. c. la información quedara mas claramente representada si los atributos declarados se alinean en forma vertical. En los lenguajes donde se permite el uso de etiquetas. 2. Reducción del esfuerzo en las pruebas. Las instrucciones son mucho mas fáciles de localizar y de cambiar si no se escribe mas de una instrucción por línea. por lo que es más fácil comprender lo que hace cada función. d. con este nuevo estilo podemos obtener las siguientes ventajas: 1. La estructura del programa es mas clara puesto que las instrucciones están mas ligadas o relacionadas entre sí. estas deben colocarse lo más externas posibles. En los lenguajes en que se hagan declaraciones sobre las variablesa utilizar. Se sugiere una identacion de tres espacios. b. y deben estar separadas por una línea (siempre que lo permita el lenguaje en uso). La vision de control de las estructuras lógicas o de los bloques se clarifica si las instrucciones controladas son idénticas por alguna cantidad constante. Se obtiene consistencia si todas las instrucciones se comienzan en una misma columna. El programa se puede tener listo para producción normal en un tiempo menor del tradicional. . por ejemplo comenzando en la columna 2. de tal forma que los errores se pueden detectar y corregir mas fácilmente.Los programas son más fáciles de entender. por otro lado. El uso de lineas en blanco ayuda a mostrar con mas claridad las relaciones existentes entre distintos ítems agrupados en las declaraciones e. la idea fundamental es ayudar a que el lector de un programa le sea fácil comprender las relaciones y las funciones existentes en él: a. VENTAJAS DE LA PROGRAMACION ESTRUCTURADA Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda esfuerzo. Sin embargo. Las siguientes son sugerencias para el desarrollo de una política de identacion en un centro de procesamiento.diferencia respecto a las sugerencias dadas aquí. lo cual es típico de otros estilos de programación. f. creatividad. de arriba hacia abajo. lo importante es que se establezcan unas normas y se cumplan de manera consistente. . Un programa estructurado puede ser leído en secuencia.

el cual representa el programa con sus entradas. sera rapidamente detectable para su correccion. La programación estructurada propone segregar los procesos en estructuras lo más simple posibles. La programación estructurada es una teoria de programación que consiste en construir programas de facil comprension. Los programas quedan mejor documentados internamente. 4. y de presentar algun problema. es mucho más sencillo entender la codificacion del programa. Reducción de los costos de mantenimiento. cuando se necesitan realizar correciones o modificaciones despues de haber concluido un programa o aplicacion. . se procede a unificar las aplicaciones realizadas por el pool de programadores. procesos y salidas. seleccion e interaccion. Combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de facil entendimiento. esta integracion debe ser sencilla y no presentar problemas al integrar la misma . Si se ha utilizado adecuadamente la programación estructurada. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación 7. La programación estructurada es especialmente util. que se habra hecho en diferentes secciones. Ellas estan disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias. La representacion grafica de la programación estructurada se realiza a traves de diagramas de flujo o flow chart.3. Aumento de la productividad del programador 6. las cuales se conocen como secuencia. Programas más sencillos y más rápidos 5. Una vez terminado todos los segmentos del programa. La programación estructurada se basa en una metodologi de desarrollo de programas llamda refinamiento sucesivos: Se plantea una operacion como un todo y se divide en segmentos más sencillos o de menor complejidad. Al haberse utilizado la programación estructurada.

o como elementos de un array. Un grafo acíclico con múltiples componentes conectados o un conjunto de árboles con raíz se llama bosque. con relaciones entre determinadas posiciones en el arreglo (ej. es llamado '''Caminar por el arbol'''. Un hijo tiene como máximo un padre. El nodo del cual uno nodo es hijo es llamado su nodo padre. por medio de las conexiones entre padres e hijos. ninguno es el primer hijo o el último hijo. que están por debajo de él (en ciencias de la computación. Un árbol en el que se distinguen los hijos por su orden se llama árbol ordenado. A menudo. En una estructura de datos en árbol.Árbol (programación) En ciencias de la computación. una caminata donde los hijos son operados antes de que el padre sea llamado se llama '''primera caminar profunda '''. en-orden y post-orden transversal . sus padres. una operacion puede ser realizada cuando un apuntador arriva a un nodo en particular. los árboles crecen hacia abajo. un nodo sin padre es llamado nodo raíz (o simplemente raíz). al contrario que en la naturaleza. un árbol es una estructura de datos comúnmente usada que emula la estructura de un árbol con un conjunto de nodos conectados. Una caminata donde las operaciones suceden a un nodo antes de suceder a sus hijos es llamada una '''primera caminata ancha'''. Un árbol con raíz es como un grafo con un vértice seleccionado como la raíz. Cada nodo tiene cero o más nodos hijos. Vea tambien Árbol Binario para una discucion de pre-orden. y hay una relacion uno a uno entre los arboles binarios y los arboles ordenados generales Hay muchas formas diferentes de representar un arbol. heap binario) Ir entre los elementos de un arbol. o juntos. y las estructuras de datos construidas en ellos se llaman '''estructuras de datos de árboles ordenados''' Un Árbol Binario es un tipo de arbol ordenado. un árbol es un grafo conectado acíclico. Los nodos sin hijos son llamados hojas. representaciones comunes muestran los nodos como varibles alocados en el moticulo como punterios a sus hijos. no hay distinción entre los diferentes hijos de un nodo. En teoría de grafos. En ese caso. no hacia arriba).. y la accion es '''caminata''' por el arbol. sólo dos vértices conectados con el lado heredan una relación de padre-hijo.

* Añadir una seccion completa a un arbol (llamado '''injertar'''). * Encontrar la raiz de cualquier nodo Usos comunes de los arboles son: * Manipular datos jerarquicos * Para hacer la informacion facilmente buscable (ver tambien: algoritmos de busqueda en Árboles ) * Manipular listas ordenadas de datos.aisee. == Ejemplos == * http://www.Operaciones comunes en arboles son: * Enumerar todos los elementos * Buscar un elemeto * Añadir un nuevo item en una cierta posicion del arbol * Borrar un elemento * Remover una seccion completa de un arbol (llamado '''podar''').com/graphs * SDXF == Terminos Relacionados == * Particion de espacion binario * heap * Árbol(Teoria de grafos) * Algoritmos de busqueda en árboles * estructura de un Árbol * Árbol exponencial Arbol (programacion) Arbol (programacion)Arbol (programacion) .

cálculos matemáticos y un largo etcétera. junto con algunas macros y constantes predefinidas que facilitan su utilización. El Estándar C++ las clasifica según su utilidad: • • • • • • • • • • Soporte del lenguaje [7] Diagnóstico Utilidades generales Cadenas alfanuméricas ("Strings") Localización Contenedores Iteradores Algoritmos Cálculo numérico Entrada/Salida §2.1) utilizadas en estas librerías. como se llaman y como se utiliza este conjunto de algoritmos que deben acompañar (como mínimo) a cada implementación del compilador que quiera llamarse .4.4. en los sistemas UNIX. "Librerías de ejecución" RTL ("Runtime Librarys") o simplemente "Librerías". Es decir: la norma determina cuales son. 4.10g) que los incluirá §2 Clases de librerías Los compiladores C++ incluyen un amplio repertorio de clases. control de procesos (incluyendo multiproceso). funciones y macros que permiten realizar una amplia variedad de tareas. son implementadas en forma de librerías externas. manipulación de cadenas alfanuméricas y ficheros. manejo de ficheros. Por ejemplo. Este repertorio de recursos es denominado colectivamente como "Rutinas de librería". el Estándar C++ define la denominada Librería Estándar [3] que debe acompañar a cada implementación del compilador que se adhiera al estándar.4a).5 Librería Estándar §1 Sinopsis C++ no llega al nivel de simplicidad de su antecesor C. como manejo de cadenas de caracteres (strings). Estos ficheros se suelen llamar "de cabecera". pero al igual que aquél. incluyendo entradas/salidas de bajo y alto nivel. porque es tradición utilizar las primeras líneas del programa para poner las directivas #include ( en el fuente durante la fase de preprocesado ( 1. Una librería es un conjunto de recursos (algoritmos) prefabricados.4). se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos. manejo de memoria. Puede decirse que el lenguaje aislado (tal cual) no tiene prácticamente ninguna utilidad sin la concurrencia de estas utilidades. que pueden ser utilizados por el programador para realizar determinadas operaciones ( 1.1 Librería Estándar C++ Para poner un poco de orden.9. de modo que estas y otras muchas. funciones matemáticas Etc. tampoco dispone de utilidades o funciones para entrada o salida implementadas en el propio lenguaje. Las declaraciones de las funciones (prototipos 4. en /usr/include.

Algoritmos estándar de flujos de entrada. 5. listas doblemente 1. <list> Parte de la STL relativa a contenedores tipo list ( enlazadas ( <locale> Parte de la STL relativa a la internacionalización ( 5. 4. Son los siguientes: Ficheros <algorithm> Parte de la STL que describe los algoritmos ( <bitset> Parte de la STL relativa a contenedores tipo bitset ( booleanos.1) que .2). Set de valores 5. <complex> Parte de la librería numérica de la STL relativa a los complejos ( <deque> ).1.1. 1. Supreclases para manejo de flujos de E/S.2.8) 5. Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. La última versión. Parte del a STL que contiene los algoritmos estándar de E/S.2). un tipo de colas: "Doubleended-queue" ( 5. <limits> Descripción de propiedades dependientes de la implementación ( afectan a los tipos fundamentales. Por ejemplo ostream. especifica que se compone de 32 ficheros de cabecera de nombres fijos y conocidos agrupados según la funcionalidad de los algoritmos.1e1).6) <iostream> <istream> <iterator> Parte de la STL relacionada con iteradores ( 5.1.3) Funcionalidad/funciones Parte de la STL relativa a contenedores tipo deque. ISO/IEC 14882 del año 1998."Estándar".1c4). un tipo de puntero que permite utilizar los algoritmos de la Librería con las estructuras de datos representadas por los contenedores.1.1. <exception> Parte de la librería de diagnóstico relativa al manejo de excepciones ( <fstream> <functional> Parte de la STL relativa a Objetos-función ( <iomanip> <ios> <iosfwd> Manipuladores.9. 1.18f) Flujos hacia/desde ficheros.1c3).

5. incluyendo asignadores ( punteros inteligentes (auto_ptr).2f).1c5). <streambuf> Parte de la STL relativa al Almacenamiento de flujos de E/S ("Stream buffers").1.8).1.1e4). Define los tipos que controlan la capa de transporte ( <string> Parte de la STL relativa a contenedores tipo string ( ).14). una generalización de las cadenas alfanuméricas para albergar cadenas de objetos.2) 5. 1. pilas de objetos Flujos hacia/desde cadenas alfanuméricas. 5. 1.<map> Parte de la STL relativa a contenedores tipo map ( <memory> Utilidades relativas a la gestión de memoria.1e2).1. <new> Manejo de memoria dinámica ( <numeric> Parte de la librería numérica de la STL relativa a operaciones numéricas ( <ostream> <queue> Parte de la STL relativa a contenedores tipo queue ( objetos ( <set> Parte de la STL relativa a contenedores tipo set ( <sstream> <stack> Parte de la STL relativa a contenedores tipo stack ( ( 1.9.6. una generalización de <valarray> <vector> . Parte de la librería numérica de la STL relativa a manejo de matrices numéricas () Parte de la STL relativa a los contenedores tipo vector.3.5) y 5. colas de Algoritmos estándar para los flujos de salida. 5. 5. ). Estas clases son utilizadas para reportar errores detectados durante runtime. <typeinfo> Mecanismo de identificación de tipos en tiempo de ejecución ( <utility> 4. <stdexcept> 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. Los usuarios también pueden utilizar excepciones para reportar errores en sus propios programas ( 1.3.1.1d1).1.1a).8). Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs).

En concreto se refieren a los siguientes elementos: • • Operadores new.20). • • Rutinas de inicio y terminación ( 1.5). la denominamos Librería clásica ( 5. La del segundo es 1.5).1a) Las excepciones estándar lanzadas por los algoritmos anteriores ( §2. A esta librería. cuyo diseño e importancia cambian drásticamente la filosofía del lenguaje.9.14). delete y delete[] ( 4. por su grado de adherencia al Estándar [6] y por el grado de soporte que proporciona para la plataforma concreta a que se destina. Conjunto de librerías cuyo contenido está definido por el Estándar C++ (abreviadamente LE) Libería clásica. §3 Componentes Al referirnos a las librerías C++ utilizamos la terminología siguiente: • • • • RTL Conjunto de librerías que acompañan a un compilador ("Runtime Library"). El primero incluye una completa librería denominada VCL (Visual Component Library conocida como MFC (Microsoft Foundation Classes 4. 1. los compiladores Borland C++ y MS Visual C++ son quizás los más conocidos y utilizados. Nota: en lo que concierne a la programación para MS Windows (las referencias a la plataforma Wintel surgen de forma constante e inevitable). sean o no estándar. Linux dispone de su propio compilador: GNU Cpp.2). que comenzó siendo un compilador C y ha evolucionado a un producto que es en realidad un superconjunto de compiladores. No . La calidad de un compilador C++ viene determinada en gran medida por la calidad y cantidad de su RTL. Parte de la LE genuina de C++ (que no es heredada de C) y que responde a la forma "++" de hacer las cosas. C++ incluye prácticamente la totalidad de funciones de la primitiva librería estándar C.7. STL ("Standard Templete Library").las matrices unidimensionales C/C++ ( 5. Parte de la Librería Estándar correspondiente al C clásico. new[].9.8b). Librería Estándar. Clase type_info que corresponde al mecanismo RTTI de identificación de tipos en tiempo de ejecución representado por el operador typeid ( 4. una pequeña porción de la Librería Estándar C++ sí aporta características que se consideran pertenecientes a este.6.2 Librería C Además de otras nuevas. mantenida por compatibilidad.1. de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas.1c1) Es digno de mención que aunque generalmente las librerías no aportan ninguna característica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho).11.

de forma que es común referirse a ellos como GCC ("GNU Compiler Collection"). ○ Utilidades. • • • Una utilidad locale para manejo de localismos [4] ( 5.h>. Incluyen manejo de excepciones ( 1. una clase valarray optimizada para matrices numéricas y una clase complex para manejo y representación estandarizada de números complejos (en realidad una plantilla con especializaciones para los tipos float. caracteres de control (no imprimibles). • Unas utilidades de entrada/salida de flujos. Parte de la STL que contiene algoritmos especialmente concebidos para computación numérica. como letras.5).2).3). • • Soporte para utilización de juegos de caracteres y signos de diversos idiomas. denominadas genéricamente iostreams ( 5. también otros lenguajes como Ada o Fortran. de forma que incluso en este ambiente "Propietario" pueden realizarse desarrollos utilizando herramientas "Open source" (ver recuadro en 1. Por ejemplo.1.solo puede compilar código C y C++. Mayúsculas/minúsculas etc. Utilidades de diagnóstico y manejo de errores. las utilidades ofrecidas por la Librería Estándar pueden agruparse en: • • Clasificación: Clasifican caracteres ASCII.0a1).4. Utilidades para manejo de memoria ( 5. Por defecto se refieren al teclado y a la pantalla (no pueden utilizarse directamente en aplicaciones de interfaz gráfica). Entradas/Salidas de Consola: Estas son las denominadas entrada/salida estándar. abreviadamente STL ○ Librería numérica.4. Parte de la STL dedicada a elementos auxiliares tales como adaptadores y la clase auto_ptr. Se definen en la cabecera <ctype. A grandes rasgos la librería Estándar C++ comprende los siguientes módulos: • La denominada Librería Estándar de Plantillas ( ("Standard Templete Library"). 5. . Un esquema para describir de modo uniforme el entorno de ejecución mediante la utilización de una clase estándar denominada numeric_limits y especialización para cada uno de los tipos de datos fundamentales. Una clase string para manejo estandarizado de cadenas de caracteres.6) y la macro assert ( 1. En realidad es una instanciación (especialización) de la plantilla basic_string para cadenas de caracteres.5).1). double y long double). • §4 Funcionalidad Si atendemos a su funcionalidad. La buena noticia es que existen versiones de este compilador para plataformas Windows.

Incluyen rutinas para conversión y manipulación de variables de medida del tiempo (fecha y hora). El compilador genera el código correspondiente para las versiones inline cuando se utiliza #pragma intrinsic o si se solicita optimización al compilador (optimización de tiempo de ejecución). la diferencia estriba en la forma en que se realizan los pasos b y c): a: Incluir en el código fuente las invocaciones a las funciones que estamos utilizando. Directorio: Rutinas para manejo de directorios y sus direcciones (path names). resulta evidente que su utilización exige incluirlas en nuestro programa. de moneda. Manejo de cadenas y bloques de memoria: copiar. Ejemplo: printf("Esto es una llamada a la función \"printf\" de librería\n"). Control de proceso. Para ello se necesitan tres pasos (en realidad las exigencias son las mismas que con cualquier otra función.9. Miscelánea. como en los casos de printf(). También realizan la conversión inversa: de formatos numéricos a representaciones alfabéticas y de mayúsculas a minúsculas y viceversa. Diagnóstico: Son rutinas destinadas a comprobaciones. Por ejemplo representación de números.1 En cuanto a las primeras (condiciones formales) y habida cuenta que las utilidades aparecen en forma de funciones. b: Incluir en el código fuente los prototipos de dichas funciones. long). En linea (Inline): Rutinas para versiones inline de funciones. §5. clasificación de tipo alfabético. etc. Puesto que los prototipos ya están incluidos en los ficheros estándar de cabecera. Fecha y hora. como las que posibilitan saltos (goto) no locales y las que manejan diferencias de tipo cultural o de lenguaje.h ponemos en nuestro código: . Esto se realiza poniendo en nuestro fuente (normalmente al principio) una directiva de preprocesado #include ( 4. convertir y buscar. • • • • • • • • • • • §5 Utilización La utilización de la Librería Estándar C++ requiere de dos tipos de condiciones que podríamos describir como formales y conceptuales. Rutinas utilizadas cuando se usan listas variables de argumentos. Entrada/Salida. Manipulación. Son rutinas que proporcionan manejo de flujos y operaciones de Entrada/Salida a bajo nivel (de Sistema Operativo). Argumentos variables. si el manual indica que la función printf está definida en el fichero de cabecera stdio. comparar. a descubrir y corregir posibles errores. int. Rutinas que permiten invocar y terminar nuevos procesos desde otra rutina. Matemáticas: Para realizar cálculos matemáticos. etc. formatos de fecha y hora. Por ejemplo. Se agrupan aquí rutinas varias.10g) que señala el fichero de cabecera que se debe añadir. hay que indicar al compilador que los incluya [2]. De Memoria: Proporcionan asignación de memoria dinámica. vscanf().• Conversión: Convierten caracteres y cadenas de caracteres desde formato alfabético a numérico de diversos tipos (float.

Pero debemos advertir que existe una gran diferencia entre las rutinas de la que hemos denominado librería clásica y los recursos de la nueva Librería Estándar de Plantillas STL. con un cierto número de argumentos. la primera.2a En general los algoritmos contenidos en la librería clásica realizan tareas muy sencillas bajo la forma de funciones que. sobre todo si pensamos que nuestro programa tendrá una larga vida y/o pensamos portarlo a otras plataformas. la función max(). §5.h). por lo que las operaciones correspondientes son realizadas de forma automática. con la sola condición de que los ficheros y librerías correspondientes sean accesibles al enlazador. §5.4) de las que existen dos tipos:estáticas (. denominada "Alphabetical Routines and Types Listing".#include <stdio.HLP. realizan la tarea encomendada.DLL). damos por sentado que la utilización de algoritmos de la Librería exige conocerlos. la segunda. No olvidar que la entidades de la Librería Estándar C++ (que no están en ficheros de cabecera . En este último caso se dice que las definiciones de las funciones están en librerías ( 1. En el peor de los casos suelen bastar un par de pruebas hasta que conseguimos ajustar los argumentos de forma que se consiga el resultado esperado.OBJ y . Nota: a título de ejemplo. Nota: como ejemplo escogido al azar. en cuyo caso aconsejaría evitarlas dentro de lo posible. Su utilización exige poco más que repasar esta colección de funciones (209 en la última versión del Estándar) hasta encontrar la que mejor se ajusta a nuestras necesidades. Toda la información que necesita el compilador está contenida en los ficheros de cabecera. aconsejaría echar un vistazo a la sección de "compatibilidad" que acompaña a la descripción de cada función en la documentación de la mayoría de compiladores. de forma que es posible que elijamos una función que resuelve nuestro problema pero no es portable. .BPI) y dinámicas (. Como última recomendación al respecto. y que estas no estén claramente separadas del resto. el fichero BCB5RTL. que contiene la "C Runtime Library reference" (nombre con que aparece la Librería Clásica en la documentación de Borland). Para esto lo mejor es recurrir a la clasificación temática ofrecida en la documentación que acompaña a los compiladores antes que a la lista alfabética de las mismas.1.h> c: Incluir en el fuente las definiciones de las funciones utilizadas.2 Respecto a las que hemos denominado "condiciones conceptuales". contiene la relación alfabética [5]. contiene dos secciones. Suele ocurrir que el compilador ofrezca muchas más funciones que las estrictamente Estándar C++. Como alternativa se puede indicar al compilador que tales definiciones están en ficheros compilados previamente.LIB. que aparece en primer lugar en la clasificación temática de la documentación Borland C (Runtime Library reference: "Categorical Routines and Types Listing"). denominada "Categorical Routines and Types Listing". se han definido en un espacio de nombres denominado std. A continuación estudiamos atentamente su prototipo y la explicación de funcionamiento que acompaña el manual (eventualmente incluso con un ejemplo) y ya estamos listos para utilizarla. A veces devolviendo un objeto (que puede ser una estructura).11c2). contiene la clasificación temática. es una función ofrecida por este compilador . por lo que es preciso referirse a él específicamente cuando se quieran utilizar estos recursos ( 4.

y que los conceptos involucrados son más abstractos y requieren un conocimiento más extenso de sus fundamentos para utilizarlos. El resultado es que el proceso de utilizar la STL es algo más complicado que la simple búsqueda de una función que resuelva nuestras necesidades.6b). con lo que el #define del preprocesador quedará sin efecto. las contrapartidas obtenidas justifican sin duda el esfuerzo. Para evitar que esto ocurra y por consiguiente que la llamada a islanum nunca llegue a producirse. un salto a la dirección adecuada. El programador puede concentrarse más en el problema que en los detalles de su implementación en el fuente.1).4. Para tomar una decisión es necesario comprobar y valorar dos aspectos: • El tamaño del ejecutable que resulta en uno y otro caso. una línea de preprocesado adecuada. el preprocesador transforma la llamada del programador en otra serie de sentencias equivalentes que utilizan los mismos argumentos. está definida como una macro de preprocesado en <ctype. Esto significa que además de estar implementada como una función en la correspondiente librería (que se utiliza con los argumentos señalados en el manual). En compensación. y colocará en cada punto de nuestro código donde aparezca una invocación a isalnum. . §6 Funciones y macros Hay que señalar que algunas funciones pueden venir implementadas de dos formas: como macro y como función. se incremente la productividad y se gana en claridad conceptual. y de hecho son muchos los que se han publicado con el objeto exclusivo de describir la STL y/o sus técnicas de uso. Desde luego. Pero esta versatilidad y potencia tributan un precio: su alto grado de parametrización supone algo más que utilizar herramientas aisladas. con el resultado de que todas las invocaciones a isalnum de nuestro código serán respetadas por el preprocesador. no existe nada parecido a una llamada a una función isalnum (técnicamente el proceso es una sustitución inline de la función de librería. El resultado es que en el código resultante. la descripción detallada de todos sus elementos exige un libro completo. Es necesario saber ensamblar entre sí los recursos disponibles. La elección de una u otra es cuestión de optimización. contenida en <ctype. una nueva forma de pensar que. ya que estas herramientas conforman un mundo enteramente nuevo y singular. potente y altamente optimizado para resolver una gran variedad de situaciones de programación. Con independencia de las explicaciones más detalladas que incluimos en el siguiente capítulo ( 5.h>. Por ejemplo. y debajo de la línea #include <ctype. 4. Posiblemente mayor si se utiliza la función muchas veces y se adopta la macro. la función isalnum.2b Para todo el que no se haya asomado antes a la programación genérica. si se tiene experiencia en programación tradicional. que no trabajan aisladamente y que son básicamente de tres tipos: contenedores. adelantemos aquí que la STL ofrece un conjunto de recursos flexible. Esto se hace incluyendo al principio del código.h>. que luego pasa al compilador y al enlazador.h>. §5. la utilización de la nueva Librería de Plantillas (STL) exige la asimilación de un nuevo paradigma. en este caso: #undef isalnum. exige incluso un "cambio de chip". iteradores y algoritmos. el resultado es el mismo en ambas modalidades: como macro (por defecto) o como función de librería.para el entorno Windows-32 pero no es portable a UNIX ni tampoco pertenece a los estándares C o C++. de forma que salvo indicación contraria al compilador. que la curva de aprendizaje es ciertamente más ardua que en el caso de la librería clásica. En estos casos. basta con indefinir la correspondiente directiva. Más tarde el enlazador cargará el código de isalnum (que extrae de la librería) con el resto de nuestro programa.

Sin embargo C++ ha sido dotado de ciertas extensiones que se han incluido en forma de librerías (denominadas "de soporte" parte del lenguaje. es muy completa. Nos referimos a todos estos módulos como "compilador" en un sentido genérico. en el caso del C++ los acontecimientos se han sucedido a veces de forma contraria. utilizando el reloj del sistema.• La velocidad de ejecución. De forma que en cierto sentido dichas librerías sí forman . etc. o colocando marcadores en sitios estratégicos del programa que. con mayúsculas iniciales.5.1). En el Comité de Estandarización participan representantes de la industria (del software) junto con miembros de laboratorios de investigación y desarrollo. [2] Estrictamente hablando estas operaciones son realizadas por el preprocesador.2). [1] El cronometraje se puede realizar sencillamente a mano. que incluso ha originado comentarios negativos por parte de algunos miembros del Comité. Sin embargo.0). En informática y en muchos aspectos de la vida. [7] Este primer grupo constituye un caso especial: En principio una librería es algo que ayuda a realizar determinadas operaciones con más facilidad que la ofrecida por los métodos implementados en el lenguaje. para simbolizar que es una librería única y perfectamente especificada. Además de gratuita. o que permite hacer algo que no puede hacerse con las herramientas definidas en él. [3] En lo sucesivo la designaremos así. Teóricos de los lenguajes. Posiblemente mayor si se utiliza la función muchas veces (en bucles muy largos) y se utiliza la macro [1]. Inicio. Etc. Es frecuente que las estandarizaciones y normativas se limiten a consagrar "oficialmente" hábitos y costumbres largamente consagrados ya por la práctica. Construcciones teóricas que ni siguiera eran soportadas por la mayoría de compiladores disponibles comercialmente. [5] Aconsejo descargar la documentación C++ del "Site" de Borland aunque se trabaje con otro compilador. Ver ejemplo ( 9. 1. en algunos casos (como el copilador C++Builder de Borland). [4] "Locales" son conjuntos de datos que indican preferencias culturales. el analizador sintáctico. pues desde un punto de vista práctico. Por ejemplo: formas de representar la hora. de compiladores. pero que en rigor no forma parte del lenguaje en sí mismo. solo hay que realizar una llamada al "compilador" y este se encarga de la totalidad del proceso ( 1. ha motivado que incluso algún tiempo después de publicado el Estándar. El resultado es que en algunos casos el Estándar a introducido y aprobado herramientas que no estaban suficientemente probadas o generalizadas en la práctica. [6] Posiblemente esta afirmación puede resultarle sorprendente a más de uno. bien estructurada y con abundantes ejemplos. el "punto" decimal. el compilador o el enlazador según los casos. las leyes y normas suelen ir muy por detrás de mundo y la vida cotidianos. las fechas. La utilidad locale de la Librería Estándar es la forma que tiene C++ de dar soporte a la internacionalización de los programas. muchos compiladores no hubiesen implementado aún todas sus características. que han tenido tanto o más peso que aquellos. con un cronómetro. muestren los tiempos consumidos. Esto. estudiosos de las teorías de computación.4.

tales como Reed-Solomon.org (Scientific Computing in Object-Oriented Languages). Además son gratuitas. ya que algunas de sus componentes son analizadas y evaluadas por los miembros del comité como candidatas a ser incluidas en futuras revisiones del estándar C++. Es más que posible que eso que busca ya esté inventado. herencia. Memory. binary Goppa.com Esta página está dedicada a programas escritos en C/C++ y MATLAB que implementan rutinas de codificación y decodificación de control de errores (ECC Error-Correction-Codes) muy populares. las ventajas del encapsulamiento. Diffie-Hellman. pero sin los inconvenientes que hasta ahora imponían los lenguajes destinados tradicionalmente a estos menesteres (como Fortran) en lo que se refiere a la velocidad. Blitz++ www. Básicamente se trata de aprovechar. Esta librería está auspiciada por la oonumerics.oonumerics. Data structures. the binary Golay. Containers. Algorithms. Comprenden un extenso catálogo que incluye los siguientes tópicos: String and text processing. y otros. Function Objects and higher-order programming. BeeCrypt Librería criptográfica www. e incluyen código fuente y abundante documentación. y SHA-1. principalmente cálculo matricial & vectorial/tensorial. Generic Programming. Incluye generadores aleatorios. En realidad las Boost son un conjunto heterogéneo de utilidades que tienen su origen en una iniciativa de algunos miembros del comité de estandarización del C++. y mensaje de autentificación de códigos.org/blitz/ Blitz++ es una librería "Open source" destinada a utilizar los beneficios del C++ y de la POO en la computación científica. Concurrent Programming. C++ portable components www. es aconsejable que empiece a buscar por ahí (o por aquí).boost. función hash (función unilateral inconvertible). Preprocessor Metaprogramming. es público y bastante estricto. BCH. Input/Output. El proceso de selección para que una librería sea admitida. Si piensa abordar algún desarrollo medianamente importante y cree que no son suficientes las herramientas que proporciona el lenguaje. Inter-language support.appinf. aunque posteriormente han recibido aportaciones de múltiples autores. Corrección de errores ECC http://eccpage. sobrecarga de operadores y programación genérica (plantillas). Puede ser utilizada en proyectos de código abierto o comerciales. incluyendo Blowfish.Librerías C/C++ En esta página se incluye una selección de librerías de apoyo a la programación en C/C++. polimorfismo. Template Metaprogramming.org/ Lo primero que habría que destacar de estas librerías es su alta calidad técnica. Parsing. Math and numerics. Correctness and testing. En realidad esta colección es una especie de antesala oficiosa del Estándar. antes de reinventar la rueda.com BeeCrypt es una librería criptográfica de código abierto que proporciona una encriptación rápida y potente. Iterators. Miscellaneous. ElGamal. pueden ser utilizadas libremente en cualquier proyecto. entre otras.com/ . decodificador Viterbi.virtualunlimited. bloques de cifras. Está optimizado para C e implementación en muchos algoritmos. lo que garantiza que el mero hecho aparecer en la colección es un marchamo de la calidad y nivel técnico a que antes aludíamos. Boost www.

Está exento de cualquier exigencia de registro. y de versiones para MS Visual C++. GCC para Mac y Linux. de forma que pueden manejarse cómodamente datos de cualquier tipo sin necesidad de utilizar databases externas. y experiencia con las RDBs. La tecnología subyacente ha sido explotada desde 1984 bajo distintos nombres.0. Está disponible en tres versiones: SuperServer. Finalmente. que ofrece soporte para una database SQL.Librerías C++ que se integran perfectamente con la Librería Estándar. Dispone de versiones VCL desarrolladas en Pascal (clases derivadas de TImage) que pueden ser utilizadas con el compilador Borland C/C++.sourceforge. La primera es la más usual. Ofrece soporte nativo para Linux. y un potente lenguaje que permite almacenar procedimientos y disparadores ("triggers"). incluyendo proceso del habla y comunicaciones. que ofrece la mayoría de las características del Estándar ANSI SQL junto con un elevado rendimiento. o derechos. Está disponible en dos modelos de licencia: Open Source y comercial. su código fue distribuido como abierto ("Open Source") por Borland. El último Interbase 6.org/ Firebird es una base de datos relacional RDBMS ("Relational Data Base Management System") multiplataforma. además de un marco de trabajo para crear aplicaciones servidor implementadas como demonios Unix o servicios Windows (según el caso). Windows. Es apropiada para aplicaciones que requieran la capacidad de una RDBMS sin las complicaciones de instalación y mantenimiento de un servidor (una situación análoga a la ofrecida por SQLite ). incluyendo componentes nativos para C/C++ [2].dlsoft. cubriendo aspectos no contempladas por esta. Están disponibles para casi cualquier plataforma que disponga de un compilador C++ Estándar. Firebird arrastra una larga historia. una librería de utilidades con clases para procesar ficheros de configuración y comandos del shell (command line arguments). Sun ONE Studio. Solaris. la versión Embedded consiste en una librería dinámica (.DLL) de 1.net/ IT++ es una librería C++ de funciones y clases para proceso de señales. Entre otros. excelente concurrencia. En el diseño ha primado la consideración de hacerla "ligera". Compaq C++ y HP ANSI C++. licencia. Classic y Embedded. utilizando un hilo ("thread") para manejar cada conexión. este fabricante ofrece una extensa selección de librerías que pueden ser útiles. especialmente dispositivos móviles y "embebidos". que contiene la funcionalidad de un servidor. Soporta distintos métodos de conexión.5 MB. una gran variedad de plataformas Unix. proporcionan los siguientes servicios: una librería NET que ofrece soporte para protocolos y servidores HTTP. DLsoft www. En realidad. Firebird www. Los desarrollos que lo utilicen pueden ser distribuidos libremente incluso si se trata de productos comerciales. de más de 20 años. una librería XML que proporciona un analizador/escritor XML. incluyendo MS Visual C++. cuando en Agosto del 2000. y MacOS. de forma que es adecuada para el desarrollo de aplicaciones C++ en todo tipo de sistemas.firebirdsql. SMTP y otros. e interfaz para las especificaciones DOM (Document Object Model). SuperServer utiliza un solo módulo para atender todas las conexiones. Crea un nuevo proceso para cada conexión que debe atender.com/ Si necesita añadir soporte para códigos de barras en sus programas C++. IT++ http://itpp. FTP. Este módulo comparte su memoria entre los clientes de la database. que tiene su origen en el Departamento de Teoría de la Información de la Universidad Tecnológica de Chalmers en Suecia y que se distribuye bajo la . Finalmente. La versión Classic del servidor es apropiada para máquinas dotadas de SMP ("Symmetric Multyprocessing"). una librería DBlite.

OS/2 y VxWorks. Sun Solaris.com Se trata de una herramienta que simplifica el proceso de escribir drivers para diversos Sistemas Operativos. LAPACK y FFTW.co. funcionalidad y velocidad. La sintaxis es tan sencilla como la de JavaScript. tanto para entornos Windows como DOS. Puede utilizarse para personalizar aplicaciones C++ mediante scripts que son interpretados por clases C++ que se proporcionan con el lenguaje. y se distribuye bajo la licencia GNU "Open source".marshallsoft. permitiendo utilizar los compiladores C++ más frecuentes (MS Visual C++. La empresa ofrece los siguientes paquetes: • • • Librerías Windows para e-mail: Librerías Windows FTP: Librerías de interfaz Winsock: SEE4C SMTP/POP3 Email Engine Library for C/C++ WIL4C Winsock Interface Library for C/C++ FCE4C FTP Client Engine Library for C/C++ . En particular con las versiones del compilador g++ 3. Los scripts pueden ser alojados en ficheros de datos. etc. LiDIA puede utilizarse en los entornos ix86/Linux GNU. incluir en una aplicación la funcionalidad de una "macro". MarshallSoft.com Librerías de comunicaciones incluyendo protocolos IP para Internet y para comunicación serie. Borland.de LiDIA es una librería para computación numérica de la Universidad de Tecnología de Darmstadt. Su distribución incluye el código fuente y es libre para usos no comerciales.jungo. construir test de funcionamiento mediante scripts. Para aumentar su seguridad. NT/NT Embedded. Lenguaje embebible de script www. En particular BLAS.tu-darmstadt. hace uso de distintas librerías "open-source".x y posteriores.co. junto con gran número de funciones para su manejo.simkin. a través de Cygwin. que la hacen similar al popular Matlab. o MS Visual C++ . Solaris.licencia GNU GPL. Entre los SO soportados están: Windows 9x. Linux. entre ellas: Creación y manipulación de databases. Puede funcionar bajo los sistemas GNU/Linux. Librerías de comunicaciones www. GCC y otros).uk Simkin es un lenguaje de script que puede trabajar con C++.uk Simking es un lenguaje de script interpretado que trabaja con C++ (existe una versión para Java). Estas clases proporcionan una interfaz directa para escripts alojados en documentos XML o en árboles. Literal Arts. Se trata de un producto de código abierto (open source).simkin. Jungo. sistemas de simulación. Lateral ARTS Simkin www. 2000. también con Java y XML. Windows CE. según la descripción original: "LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms. incluyendo XML o en bases de datos. LiDIA www. Mac OS X y Microsoft Windows (en este último. WinDriver www. La versión para Visual C++ es una librería de 200 KB. MinGW/MSYS. CBLAS.NET). También está siendo desarrollada como parte de NEWCOM (European Network of Excellence in Wireless Communications). Simkin puede ser utilizado en multitud de formas.informatik. Además de las máquinas Sparc y Alpha. Ha sido desarrollada por investigadores y estudiosos de distintas universidades. Está formada alrededor de un conjunto de clases genéricas de vectores y matrices.

C++. HP/UX.com MySQL++ MySQL++ es una interfaz (API) de la popular base de datos relacional MySQL para C++. FreeBSD. Se distribuye con una completa documentación y con el código fuente. Mac OS X y Windows).imatix. Internet socket access. actualización y acceso a información. que deban soportar diversas bases de datos relacionales.mysql. Otras características incluyen: soporte para asociaciones directas y bidireccionales 1-n y n-n. Se trata de una librería multiplataforma que puede funcionar en los principales sistemas actualmente en uso (FreeBSD. SCO OpenServer.mysql. Digital OpenVMS y distintos sistemas UNIX (IBM AIX. incluyendo versiones para Borland C++ y Microsoft Visual C++ Palisand. Diseñada para desarrolladores de aplicaciones cliente/servidor que necesiten escribir aplicaciones no muy voluminosas. Solaris. Soporta varios lenguajes de programación: C. MySQL. String manipulation and searching. SMTP (e-mail) access. ya que permite manejar conexiones IP. CGI). File access. SFL ha sido portada a MS-DOS. Python y TCL. Linux. PHP. Configuration files. Digital UNIX). sin renunciar por ello a ninguna ventaja de la programación orientada a objetos. Program tracing. generación automática de esquemas y soporte de migración de esquemas. times. Internet programming (MIME. Dates. Perl. Inverted bitmap indices. and encoding.melikyan. soporte de esquemas de diseño sujeto-objeto.com PTypes (C++ Portable Types Library) es una alternativa a la Librería Estándar de Plantillas (STL) de C++. Datatype conversion and formatting.com MySQL es un sistema de administración de una base de datos con soporte para múltiples usuarios que utiliza el lenguaje SQL estandarizado para el almacenamiento.palisand. Database Access Library se encarga de todas las transformaciones entre el paradigma orientado a objetos y el modelo relacional. Dispone así mismo de diferentes GUIs. que contiene aproximadamente 450 funciones relativas a las siguientes áreas: Compression. asociaciones 1-n restringidas.com Se trata de una librería C++ orientadas a objetos que soporta Borland C++ Builder e incorpora drivers de MS Access y SQL Server. Symbol tables. selección polimórfica explícita. and calendars. Eiffel. encryption. SunOS.com SFL ("Standard Function Library") es una librería de funciones C/C++ escrita en C estándar.• • • Marcador para Windows: MDD4C MarshallSoft DUN Dialer for C/C++ Comunicaciones serie para Windows: WSC4C Windows Standard Serial Comm Library for C/C++ Comunicaciones serie para DOS: PCL4C Personal Communications Library for C/C++ www. Su propósito es hacerla funcionar mediante contenedores STL. Error message files. Es un proyecto de código abierto mantenido por Hovik Melikyan que entre otras características incluye flujos de E/S. SunOS. Sus creadores (iMatrix) . DalC++ Database Access Library www. Server (batch) programming. funcionamiento en modo multihebra y trabajo en red. NetBSD. Java. PTypes www. User and process groups. OS/2. Windows. Linux. SFL www. Directory and environment access. Database www.

Informix.com>". Existen también interfaces ("wrappers") para distintos lenguajes. pensado para ser incluido ("embedded") en cualquier aplicación C/C++ que lo necesite [1]. últimos ficheros/direcciones utilizadas. ya que multitud de aplicaciones comerciales y freeware la utilizan. dispone de su propio TCL ("Tool Command Languaje") que permite controlar las bases de datos mediante comandos de consola o ficheros script.sqlite. Template Numerical Toolkit TNT math.sqlapi. Firefox y Thunderbird y Sunbird. SQLite ofrece la potencia de un motor de base de datos relacional de cero-configuración. SQLBase y ODBC. seguramente SQLite es la opción más acertada. Virtual Unlimited. Common Lisp. pero su código se reduce a una librería de menos de 250 KBytes en su configuración completa. y las apliaciones desarrolladas con esta librería se ejecutan limpia y eficazmente. de la División de Matemáticas y Ciencias de la Computación (MCSD) del Instituto USA de Estandarización y Tecnología (NIST). de forma que puede ser utilizada y distribuida. SQLite www.com Str Library es una librería de clases para desarrollos C++ adecuada al tratamiento de cadenas ("Strings"). JavaScript. que puede ser reducida a unos 150 Kbytes si se omiten las funcionalidades no esenciales. PHP. Su autor original. DB2. Especialmente adecuada para aplicaciones multihebra. se caracteríza por su eficiencia y velocidad. Python. Por ejemplo.virtualunlimited. y los sistemas operativos Mac OS X de Apple o Solaris de Sun. SQLServer. incluso en aplicaciones comerciales mediante una licencia muy permisiva (solo se exige que en la documentación del producto se incluya la siguiente frase: "This product uses parts of the iMatix SFL. modificar. Richard Hipp. ya dispone en su equipo de alguna aplicación que utilice esta librería sin que usted se haya percatado de ello.com Es una librería de interfaz para acceder a las bases de datos de los motores SQL más comunes: Oracle.la facilitan bajo la licencia Open Source. casi con seguridad. con lo que cualquiera es libre de copiar. Perl. InterBase. publicar. necesita manejar algunos datos. Además de una interfaz C/C++ perfectamente documentada. vender o distribuir el código original en forma de fuente o como binario compilado. ha colocado su código en el dominio público. compilar. Soporta databases de hasta 2 TeraBytes (241 Bytes). Es una colección de interfaces e implementaciones de objetos numéricos y estructuras básicas.org Seguramente no es exagerado decir que prácticamente cualquier aplicación. Incluye una interfaz de usuario que permite acceder a las características específicas de cada base de datos. aunque solo sean de configuración inicial. como matrices multidimensionales y dispersas. Si desea beneficiarse de la potencia de la sintaxis SQL para sus datos sin la aparatosidad de los motores SQL tradicionales. y para cualquier propósito. etc. Copyright © 1991-2000 iMatix Corporation <http://www. incluyendo las que no son específicamente algún tipo de database (un catálogo de música o de fotos por ejemplo).com .gov Conjunto de herramientas para computación numérica de Roldan Pozo. usar. Tampoco sería exagerado decir que. Java.utilitycode. el software de muchos teléfonos celulares. etc. SQLAPI++ Library www. Sybase. Aplicaciones y librerías para seguridad www. Str Library www.nist. Utiliza APIs propios. incluyendo ADA.imatix. usadas frecuentemente en aplicaciones numéricas y cáculos científicos en C++. comercial o no comercial.

IBpp www. SHA-1 y ElGamal. aunque entre los lenguajes soportados se incluyen otros como Java y Eiffel. incluyendo Blowfish. Por ejemplo. Ruby. así como a las tareas de mantenimiento y administración del servidor. una librería suministrada bajo la licencia GNU de código abierto. Puede ser utilizado y distribuido libremente para uso comercial y privado.Productos para criptografía y seguridad. .swig. In place of ** a legal notice. una librería de clases (libre de dependencias de cualquier tipo) que proporciona acceso a Firebird desde cualquier aplicación C++. Existen dos versiones: Una escrita en C y ensamblador.xceedsoft.com Xceed Software ofrece diversas herramientas para programación: SWIG es una herramienta de desarrollo que permite conectar programas escritos en C/C++ con otros lenguajes de alto nivel. a través de distintas clases muy fáciles de utilizar. MzScheme y PHP. ** May you find forgiveness for yourself and forgive others. Principalmente se utiliza para crear entornos de programación interpretados de alto nivel y herramientas para construir interfaces de usuario. Xceed Software. principalmente lenguajes de "script". Python. En el fichero de cabecera sqlite3. Tcl/Tk. Guile. ya sea visual o en modo consola. MD5. here is a blessing: ** ** May you do good and not evil.ibpp.org/ www. SQLite es el único de tales RDBMS que ha sido específicamente diseñado desde su origen para ofrecer esta particularidad. tales como Perl. su código es de dominio público. entre otros BeeCrypt. ** ********************************************************************** *** [2] Existen librerías auxiliares que puede facilitar esta labor. never taking more than you give. BeeCrypt ha sido diseñada como una herramienta de uso general que puede ser utilizada en multitud de circunstancias. Incluye implementaciones en C y ensamblador de varios algoritmos de cifrado y encriptación. otra en Java.org/. En realidad IBpp es una interfaz que. Sin embargo.h puede leerse la siguiente nota de copyright: ** The author disclaims copyright to this source code. ** May you share freely. [1] Últimamente algunos fabricantes de RDBMS ("Relational DataBase Management System") han ofrecido versiones ligeras ("downsized") de sus gestores de bases de datos de gran escala para adaptarlos a aplicaciones embebidas. Aplicaciones y librerías varias • • • • • • Swig Zip Compression Library FTP Library Zip Self-Extractor Module Winsock Library Backup Library Absolute Packager www. Inicio. proporciona todo lo necesario para acceder a las bases de datos Firebird. Además.

Inicio .

using namespace std. traducción por Pello Xabier Altadill Izura . using namespace std. int contador. Extraido de: http://es. Pero. #include <iostream> ... #include <iostream> . Puede ser asi: .Librerias estandar Tutorial creado por Peter Class.. O mas simple: ..tldp..22 ... // variable global ... 19 20 21 22 23 | siguiente > ""La sintaxis de inclusion de librerias puede variar segun la version y la plataforma del compilador c++.org/Manuales-LuCAS/doc-tutorial-c++/html/ 28 Febrero 2006 < anterior | 1 .. ¿que narices es eso del namespace? Con eso de namespace lo que hacemos es declarar un zona concreta para variables. etc. objetos. ..

la global ::contador = 0. } // vamos a probar int main () { // asi utilizariamos la variable del espacio freedomia freedomia::contador = 0. // QUE PASA SI no lo especificamos? efectivamente tendremos // seremos unos ambiguos // y si somos unos vagos y no queremos especificar el espacio de .// definimos el espacio de nombres freedomia namespace freedomia { int contador. } // definimos el espacio de nombres libertonia namespace libertonia { int acumulador. int contador. // y asi la otra.

Aqui se hecha un rapido vistazo a todas ellas. #include <iostream> Libreria basica de entrada/salida. // pero OJO esto seguiria siendo ambiguo contador = 0. // using como declaracion. . } A lo que ibamos: al igual que en c. acumulador = 0. Imprescindible. // Pero que pasa si lo que realmente queremos es quitar esa ambiguedad // y afirmar que en adelanta vamos a utilizar la variable de determinado namespace? // ESTO se haria asi using libertonia::contador.nombres // en cada uso de la variable?? // metemos la directiva using using namespace libertonia. en c++ tenemos una libreria base para desarrollar aplicaciones. esto seria correcto contador = 0. // ahora si.

○ iostream : entrada y salida ○ iomanip : manipuladores de entrada/salido con argumentos ○ fstream : flujos de archivos ○ . hora. incluso las que sirven para buscar dividir un string en tokens. strncpy. #include <time> Libreria para escribir fechas. strcat. minuto. que contiene funciones como los conversores de ascci-integer atoi.. #include <stdlib> Otra libreria basica. con distintas opciones.#include <string> Libreria para el manejo de string con las funciones mas usuales como strcpy. Podemos sacar la fecha del momento y separar los valores de dia. etc. algoritmos de ordenacion de arreglos como qsort. Veamos el listado que contiene las librerias del ambito estandar.. strncat. strlen.

Estan versioneadas para la libreria estandar de c++ las siguientes: cstdlib. cfloat y cctype. cstddef. cassert. csignal.sstream : flujos de cadenas (tipo c++) ○ strstream : flujos de cadenas (tipo c) ○ vector : contenedor para crear vectores ○ list : contenedor para crear listas ○ deque : contenedor para una cola de extremo doble ○ map : contenedor para grupo de pares (id. ctime. cstdarg. cstdio. climits. cstring. cmath. clocale. Operadores de bits: Otra opcion mas de c++ .valor) ○ string : cadenas ○ Librerias de c. cerrno. csetjmp.

meter espacios tabulaciones. No debe ser una preocupacion. librerias muy potentes disponibles para desarrollar programas mas complejos: creacion de interfaces de ventanas. etc. saltos de linea. De todas formas. ya que existen programas para formatear el codigo fuente. El estilo A la hora de escribir codigo se pueden tomar muchas costumbres y vicios que no facilitan la generacion de un estilo claro.. "" . etc. comunicaciones. dentro de un mismo proyecto seria mejor mantener un mismo estilo.& AND | OR ^ exclusive OR ~ complement Figura: programar es como cocinar Existen mas librerias standar y lo que es mejor.

h de Borland para los compiladores Visual C++ 6.Librerias Screenshot Conio Es una emulación de la libreria Conio.h de Borland para los compiladores Visual C++ 6. Tamaño del archivo: 49 Kb Numero de descargas: 496 Principio del formulario code/librerias 123 Descargar librería Final del formulario Screenshot WinBGI Es una emulación de la libreria Graphics.0 y Dev C++.0 y Dev C+ +. Tamaño del archivo: 702 Kb Numero de descargas: 566 Principio del formulario code/librerias 124 Descargar librería Final del formulario Screenshot Bases Libreria para la conversión de bases: • Binario a Decimal • Binario a Octal • Binario a Hexadecimal • Octal a Decimal • Octal a Binario • Octal a Hexadecimal • Decimal a Binario • Decimal a Hexadecimal • Decimal a Octal • Hexadecimal a Binario • Hexadecimal a Octal • Hexadecimal a Decimal Libreria disponible para los compiladores Visual C++ 6. Tamaño del archivo: 213 Kb .0 y Dev C++.

0.Numero de descargas: 328 Principio del formulario code/librerias 125 Descargar librería Final del formulario Screenshot FMOD 3.11 + SDL_Image 1. [Pagina de Inicio] Tamaño del archivo: 1958 Kb Numero de descargas: 219 Principio del formulario code/librerias 126 Descargar librería Final del formulario Screenshot OpenGL 2.75 Libreria para el manejo de audio para el compilador Visual C++ 6.0 + GLAUX Libreria para el manejo de graficos en 3D para el compilador Visual C++ 6.4.0.0.76 + GLEW 1.2.0 + GLUT 3.2.5 Libreria para el manejo de graficos en 2D para el compilador Visual C++ 6. [Pagina de Inicio] Tamaño del archivo: 859 Kb Numero de descargas: 202 Principio del formulario . [Pagina de Inicio] Tamaño del archivo: 2534 Kb Numero de descargas: 354 Principio del formulario code/librerias 127 Descargar librería Final del formulario Screenshot SDL 1.

code/librerias 128 Descargar librería Final del formulario Screenshot MySQL Libreria que permite el acceso a base de datos MySQL para los compiladores Visual C++ 6.NET 2005 y Dev C++. [Pagina de Inicio] Tamaño del archivo: 830 Kb Numero de descargas: 157 Principio del formulario . [Pagina de Inicio] Tamaño del archivo: 475 Kb Numero de descargas: 187 Principio del formulario code/librerias 139 Descargar librería Final del formulario Screenshot Image Menu Libreria que permite poner diferente estilos al menu. por ejemplo Office 2003.NET 2005 y Dev C++. [Pagina de Inicio] Tamaño del archivo: 4382 Kb Numero de descargas: 196 Principio del formulario code/librerias 137 Descargar librería Final del formulario Screenshot Image Button Libreria que permite poner imagenes o iconos en los botones. Visual C+ + . Visual C++ .0 y Dev C++. Libreria disponible para los compiladores Visual C++ 6.0. Libreria disponible para los compiladores Visual C++ 6. office 2007.0.

Libreria disponible para los compiladores Visual C++ .NET 2005 y Visual C++ 6.0.code/librerias 140 Descargar librería Final del formulario Screenshot Hyperlink Libreria que permite utilizar el control hyperlink y de esta manera poder poner enlaces web o direcciones de correo en una caja de dialogo. [Pagina de Inicio] Tamaño del archivo: 60 Kb Numero de descargas: 100 Principio del formulario code/librerias 141 Descargar librería Final del formulario .

0 Es un excelente entorno de desarrollo para el compilador Mingw que permite crear programas en C/C++ en modo consola o aplicaciones Windows. Principio del formulario compiladores/ 130 Final del formulario Screenshot Pellesc Es un compilador basado en LCC que contiene su entorno de desarrollo y editor de recursos.0 Es un compilador para realizar programas en C/C++ en MS-DOS. Principio del formulario compiladores/ 131 Final del formulario Screenshot Code Blocks 1.9. Principio del formulario . que permite realizar programas en lenguaje C en consola y en Windows.Compiladores Screenshot Turbo C++ 3.9. [Pagina de Inicio] Tamaño del archivo: 2902 Kb Numero de descargas: 175 Principio del formulario compiladores/ 129 Descargar compilador Final del formulario Screenshot Dev C++ 4.2 Es un entorno de desarrollo para el compilador Mingw que permite realizar programas en C/C++ en consola y en Windows.

NET 2008 Express Es un compilador que permite realizar aplicaciones en C/C++ en consola y en windows.compiladores/ 161 Final del formulario Screenshot Visual C++ . Principio del formulario compiladores/ 171 Final del formulario . tambien contiene editor de recursos y permite realizar interfaces graficas complejas utilizando Windows Forms.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->