Si no he perdido la cuenta, esta es la cuarta revisión del curso desde que se empezó a escribir.
Ya en su versión anterior, el curso estaba bastante completo, al menos en lo que respecta a la teoría, quedando muy pocos detalles por incluir. Esta versión se centra, sobre todo, en añadir más ejemplos resueltos, problemas propuestos y ejercicios.
Espero que este curso anime a los nuevos y futuros programadores autodidactas a incorporarse a esta gran y potente herramienta que es el C++, ese era el objetivo original de la página "Con Clase" y todavía sigue siendolo.
No he pretendido ser original, (al menos no demasiado), para elaborar este curso se han consultado libros, tutoriales, revistas, listas de correo, news, páginas web... En fin, cualquier fuente de datos que ha caído en mis manos, con el fin de conseguir un buen nivel. Espero haber conseguido mi objetivo, y seguiré completando explicaciones sobre todo aquello que lo requiera. También deseo que haya resultado ser un texto ameno, me gustaría que nadie se aburra leyendo el curso.
Pretendo también (y me gustaría muchísimo), que el curso siga siendo interactivo. Con este fin, en esta versión del curso, se ha añadido la posibilidad de que los lectores añadan sus comentarios al final de cada capítulo. Estos aportes se usarán para completar el curso.
He intentado que los ejemplos que ilustran cada capítulo se puedan compilar con cualquier versión de compilador, sin embargo, he de decir que yo he usado el compilador MinGW, (Minimalist GNU for Windows), que es una versión para Windows del compilador GCC para Unix y Linux, y que está adaptado para crear programas en Windows. Es decir, los programas que se ajusten al estándar de C++ deberían funcionar con este compilador tanto en Windows como en Linux.
Por comodidad, recomiendo usar algún IDE (Entorno de Desarrollo Integrado), como Dev-C++ de Bloodshed o Code::Blocks para crear programas en modo consola.
De modo que aprovecho para aclarar que los programas de Windows tienen dos modos de cara al usuario:
Para aquellos de vosotros que programéis en otros entornos como Linux, Unix o Mac, he de decir que no os servirá el entorno Dev-C++, ya que está diseñado especialmente para Windows. Pero esto no es un problema serio, todos los sistemas operativos disponen de compiladores de C++ que soportan la norma ANSI, sólo menciono Dev-C++ y Windows porque es el entorno en el que yo me muevo actualmente.
Además intentaré no salirme del ANSI, es decir del C++ estándar, así que no es probable que surjan problemas con los compiladores.
De nuevo aprovecho para hacer una aclaración. Resumidamente, el ANSI define un conjunto de reglas. Cualquier compilador de C o de C++ debe cumplir esas reglas, si no, no puede considerarse un compilador de C o C++. Estas reglas definen las características de un compilador en cuanto a palabras reservadas del lenguaje, comportamiento de los elementos que lo componen, funciones externas que se incluyen, etc. Un programa escrito en ANSI C o en ANSI C++, podrá compilarse con cualquier compilador que cumpla la norma ANSI. Se puede considerar como una homologación o etiqueta de calidad de un compilador.
Todos los compiladores incluyen, además del ANSI, ciertas características no ANSI, por ejemplo bibliotecas para gráficos. Pero mientras no usemos ninguna de esas características, sabremos que nuestros programas son transportables, es decir, que podrán ejecutarse en cualquier ordenador y con cualquier sistema operativo.
Este curso es sobre C++, con respecto a las diferencias entre C y C++, habría mucho que hablar, pero no es este el lugar adecuado. Si sientes curiosidad, consulta la sección de preguntas frecuentes. Pero para comprender muchas de estas diferencias necesitarás cierto nivel de conocimientos de C++.
Los programas de ejemplo que aparecen en el texto están escritos con la fuente courier y en color azul con el fin de mantener las tabulaciones y distinguirlos del resto del texto. Cuando sean largos se incluirá también un fichero con el programa, que se podrá descargar directamente.
Cuando se exponga la sintaxis de cada sentencia se adoptarán ciertas reglas, que por lo que sé son de uso general en todas las publicaciones y ficheros de ayuda. Los valores entre corchetes "[ ]" son opcionales, con una excepción: cuando aparezcan en negrita "[ ]", en ese caso indicarán que se deben escribir los corchetes. El separador "|" delimita las distintas opciones que pueden elegirse. Los valores entre "<>" se refieren a nombres. Los textos sin delimitadores son de aparición obligatoria.
Probablemente este es un buen momento para explicar cómo se obtiene un fichero ejecutable a partir de un programa C++.
Para empezar necesitamos un poco de vocabulario técnico. Veremos algunos conceptos que se manejan frecuentemente en cualquier curso de programación y sobre todo en manuales de C y C++.
Los programas C y C++ se escriben con la ayuda de un editor de textos del mismo modo que cualquier texto corriente. Los ficheros que contiene programas en C o C++ en forma de texto se conocen como ficheros fuente, y el texto del programa que contiene se conoce como programa fuente. Nosotros siempre escribiremos programas fuente y los guardaremos en ficheros fuente.
Antes, mencionar que tanto C como C++ son lenguajes compilados, y no interpretados. Esta diferencia es muy importante, ya que afecta mucho a muchos aspectos relacionados con la ejecución del programa.
En un lenguaje interpretado, el programa está escrito en forma de texto, es el propio programa fuente. Este programa fuente es procesado por un programa externo, el intérprete, que traduce el programa, instrucción a instrucción, al tiempo que lo ejecuta.
En los lenguajes interpretados no existen programas ejecutables directamente por el ordenador. El intérprete traduce, en tiempo real, cada línea del programa fuente, cada vez que se quiere ejecutar el programa.
El los lenguajes compilados el proceso de traducción sólo se hace una vez. El programa compilador toma como entrada el código fuente del programa, y da como salida un fichero que puede ser ejecutado por el ordenador directamente.
Una vez compilado, el programa ejecutable es autónomo, y ya no es necesario disponer del programa original ni del compilador para ejecutarlo.
Cada opción tiene sus ventajas e inconvenientes, y algunas características que son consideradas una ventaja, pueden ser un inconveniente en ciertas circunstancias, y viceversa.
Entre los lenguajes interpretados están: BASIC (Código de instrucciones de propósito general para principiantes), Java, PHP. Muchos lenguajes de script, etc.
Entre los lenguajes compilados están: C, C++, Pascal.
Hola,estoy aprendiendo C y descarguè el compilador Geany.18 para experimentar con los programas.Resulta que no puedo ejecutarlos luego de compilar.Les pido informaciòn si pueden.
Gracias.
Me parece bastante explicativo y facil de entender (muchas gracias por tu esfuerso).
Este curso esta muy bien muchas gracias!!
aun no veo como hacer programas a nivel gráfico, competente con la era actual, me gustaria velo.... continuaré revisando el curso, estube revisando sobre ficheros y otras cositas, gracias por la info. hasta ahora muy explícito, me fué muy útil
Muchas gracias por tu esfuerzo.
Estoy empezando a programar en C, gracias por tu interés, hasta ahora me parece interesante y fácil de entender.
hola a todos
En mi universidad no me enseñaran C++, sin embargo, es un lenguaje muy útil y gracias a C++ con clase estoy aprendiendo desde cero. Me gustaria un poco de orientación sobre programación con ambiente gráfico, ya que es muy importante hoy en dia, y también sobre programación de videojuegos en C++. Gracias por todos sus esfurzos jeje
Hola,necesito que me ayuden en este ejercicio:
\"En un estacionamiento,se cobra de la siguiente manera:los primeros 10 minutos son gratis,los siguientes 30 minutos tiene un valor de $0.30 y la hora $0.60.Diseñe un programa que reciba tanto minutos como horas y muestre lo que debe cancelar el cliente.Tomando en cuenta que si es martes y sabado se hace un descuento del 10% sobre el monto total\"
La verdad estoy tomando mucha la iniciativa para aprender el uso del c++....
pero mis conocimientos al respecto soy muy pocos por tal motivo me gustaria saber por donde puedo comenzar...
gracias
Hola.... quiero a prender ha programar no se si ustedes pueden ayudar en este problema. A mucha gracia
hola me llamo daniel,y tengo muchas ganas de aprender este lenguaje c++.
si alguien me podria ayudar,o aconsejar se lo agradeceria un monton
me gustaria saver donde puedo aprender desde 0 el uso de de lenguajes de programacion en especial c++ grasiass
Hola. ¿Me preguntaba si hay una versión del contenido de esta web -que creo es muy buena y demasiada, en una versión en DOC (o PDF en su defecto) para su lectura offline?
Además por un tema de organización en su contenido y poder imprimirlo ya que me parece que en un documento así quedaría más ordenado y me resultaría más comodo.
hola yo soy un estudiante de prepa pero mis conocimientos de c y c++ son buenos pues los k quieran algunas soluciones o ayudas sobre esto escribanme a mi correo dejemeya@hotmail.com estare encantado de ayudarlos.
Quiero darle la enhorabuena por la magnífica tarea realizada. Es una tarea de divulgación increíble. Además de estar muy bien explicado todo, es bastante completo. Mi enhorabuena y muchísimas gracias por su labor. Hace falta mucha más personas como usted
© Septiembre de 2000 - Agosto de 2009, Salvador Pozo, salvador@conclase.net