1 Toma de contacto

Me parece que la forma más rápida e interesante de empezar, y no perder potenciales seguidores de este curso, es mediante un ejemplo. Veamos nuestro primer programa C++. Esto nos ayudará a establecer unas bases que resultarán muy útiles para los siguientes ejemplos que irán apareciendo.

int main()
{
   int numero;

   numero = 2 + 2;
   return 0;
}

No te preocupes demasiado si aún no captas todos los matices de este pequeño programa. Aprovecharemos la ocasión para explicar algunas de las peculiaridades de C++, aunque de hecho, este programa es casi un ejemplo de programa C. Y aunque eso es otro tema, podemos decir ahora que C++ incluye a C. En general, un programa en C podrá compilarse usando un compilador de C++. Pero ya veremos este tema en otro lugar, y descubriremos en qué consisten las diferencias.

Iremos repasando, muy someramente, el programa, línea a línea:

- Primera línea: "int main()"

Se trata de una línea muy especial, y la encontrarás en todos los programas C y C++. Es el principio de la definición de una función. Todas las funciones C y C++ toman unos valores de entrada, llamados parámetros o argumentos, y devuelven un valor salida o retorno. La primera palabra: "int", nos dice el tipo del valor de retorno de la función, en este caso un número entero (integer). La función "main" siempre devuelve un entero. La segunda palabra es el nombre de la función, en general será el nombre que usaremos cuando queramos usar o llamar a la función.

Podemos considerar una función como una caja que procesa ciertos datos de entrada para dar como retorno ciertos datos de salida.

C++ se basa en gran parte en C, y C fue creado en la época de los lenguajes procedimentales y está orientado a la programación estructurada. Por lo tanto, C++ tiene también características válidas para la programación estructurada.

La programación estructurada parte de la idea de que los programas se ejecutan secuencialmente, línea a línea, sin saltos entre partes diferentes del programa, con un único punto de entrada y un punto de salida.

Pero si ese tipo de programación se basase sólo en esa premisa, no sería demasiado útil, ya que los programas serían poco manejables llegados a un cierto nivel de complejidad.

La solución es crear funciones o procedimientos, que se usan para realizar ciertas tareas concretas y/o repetitivas.

Por ejemplo, si frecuentemente necesitamos mostrar un texto en pantalla, es mucho más lógico agrupar las instrucciones necesarias para hacerlo en una función, y usar la función como si fuese una instrucción cada vez que queramos mostrar un texto en pantalla.

La diferencia entre una función y un procedimiento está en si devuelven valores cada vez que son invocados. Las funciones devuelven valores, y los procedimientos no.

Lenguajes como Pascal hacen distinciones entre funciones y procedimientos, pero C y C++ no existe esa diferencia. En éstos sólo existen funciones y para crear un procedimiento se usa una función que devuelva un valor vacío.

Llamar o invocar una función es ejecutarla, la secuencia del programa continúa en el interior de la función, que también se ejecuta secuencialmente, y cuando termina, se regresa a la instrucción siguiente al punto de llamada.

Las funciones a su vez, pueden invocar a otras funciones.

De este modo, considerando la llamada a una función como una única instrucción (o sentencia), el programa sigue siendo secuencial.

En este caso "main" es una función muy especial, ya que nosotros no la usaremos nunca explícitamente, es decir, nunca encontrarás en ningún programa una línea que invoque a la función "main". Esta función será la que tome el control automáticamente cuando el sistema operativo ejecute nuestro programa.

Otra pista por la que sabemos que "main" es una función son los paréntesis: todas las definiciones de funciones incluyen una lista de argumentos de entrada entre paréntesis, en nuestro ejemplo es una lista vacía, es decir, nuestra función no admite parámetros.

Picadora
Picadora

La picadora de nuestro dibujo admite ciertos parámetros de entrada, por ejemplo, carne. También proporciona valores de salida o retorno, si introducimos carne saldrá carne picada, si se trata de queso, la salida será queso picado, etc.

Aunque dedicaremos varios capítulos a las funciones, podemos contar ahora algo más sobre parámetros y valores de retorno.

No siempre se proporcionan parámetros a las funciones, o a veces no se porporcionan parámetros evidentes. Por ejemplo, una función que lea una tecla no necesita ningún parámetro de entrada, aunque muchos parámetros queden implícitos en la propia función.

Del mismo modo, también existen funciones que no dan una salida, al menos no una salida evidente. Por ejemplo, una función que espere un tiempo determinado. En este caso no hay salida, sólo transcurrirá un lapso de tiempo.

- Segunda línea: "{"

Aparentemente es una línea muy simple, las llaves encierran el cuerpo o definición de la función. Más adelante veremos que también tienen otros usos.

- Tercera línea: "int numero;"

Esta es nuestra primera sentencia, todas las sentencias terminan con un punto y coma. Esta concretamente es una declaración de variable. Una declaración nos dice, a nosotros y al compilador, que usaremos una variable, a la que llamaremos "numero" de tipo int integer (entero). Esta declaración obliga al compilador a reservar un espacio de memoria para almacenar la variable "numero", pero no le da ningún valor inicial. En general contendrá "basura", es decir, un valor indeterminado e impredecible, que dependerá del contenido de esa zona de memoria en el momento en que se reservó el espacio. En C++ es obligatorio declarar las variables que se usarán en el programa.

Nota importante: C y C++ distinguen entre mayúsculas y minúsculas, así que "int numero;" es distinto de "int NUMERO;", y también de "INT numero;" o de "int NuMeRo;.

- Cuarta línea: ""

Una línea vacía. Esta línea no sirve para nada, al menos desde el punto de vista del compilador, pero ayuda para separar visualmente la parte de declaración de variables de la parte de código que va a continuación. Se trata de una división arbitraria. Desde el punto de vista del compilador, tanto las declaraciones de variables como el código son sentencias válidas. La separación nos ayudará a distinguir visualmente dónde termina la declaración de variables. Una labor análoga la desempeña el tabulado de las líneas: ayuda a hacer los programas más fáciles de leer.

- Quinta línea: "numero = 2 + 2;"

Se trata de otra sentencia, ya que acaba con punto y coma. Esta es una sentencia de asignación. Le asigna a la variable "numero" el valor resultante de evaluar la expresión correspondiente a la operación "2 + 2".

- Sexta línea: "return 0;"

De nuevo una sentencia, "return" es una palabra reservada, propia de C++. Indica al programa que debe abandonar la ejecución de la función y continuar a partir del punto en que se la llamó. El 0 es el valor de retorno de nuestra función, recordemos que la función "main" debe retornar un valor integer, entero. Por convenio, cuando "main" retorna con 0 indica que todo ha ido bien. Un valor distinto suele indicar un error. Imagina que nuestro programa es llamado desde un fichero de comandos, un fichero "bat" o un "script". El valor de retorno de nuestro programa se puede usar para tomar decisiones dentro de ese fichero. Pero somos nosotros, los programadores, los que decidiremos el significado de los valores de retorno.

- Séptima línea: "}"

Esta es la llave que cierra el cuerpo o definición de la función.

Lo malo de este programa, a pesar de sumar correctamente "2+2", es que aparentemente no hace nada:

No acepta datos externos y no proporciona ninguna salida de ningún tipo. En realidad es absolutamente inútil, salvo para fines didácticos, que es para lo que fue creado. De modo que no te preocupes si decides probarlo con un compilador y no pasa nada, es normal. Paciencia, iremos poco a poco.

En los siguientes capítulos veremos tres conceptos básicos: variables, funciones y operadores. Después estaremos en disposición de empezar a trabajar con ejemplos más interactivos.

Comentarios de los usuarios (43)

Axel
2010-05-23 20:17:11

La verdad este curso es muy bueno.me causo risa la ultima parte.ni bien vi el primer ejemplo fui corriendo a probarlo.jeje.espero que siga asi de bueno y didactico

caremao
2010-05-30 23:16:17

Bueno, acabo de comenzar este curso, espero poder aprender bastante.

Para aquellos que como yo les gusta más el pinguino (linux) ésta página les ayudará bastante a programar con C/C++ en linux:

http://www.reloco.com.ar/linux/prog/entorno.html

Por cierto, en firefox 3.6.3 no funciona el sistema de comentarios, no muestra la imágen del captcha...

Julio
2010-09-27 20:21:49

Gracias por compartir el conocimiento, y gracias por compartirlo de esa manera. Estoy comenzando con C++ y quiero aprender muchisimo, haré todo este curso con mucha dedicación. Gracias.

Myxtum
2011-01-29 05:06:51

Hola, acabo de empezar el curso y debo felicitaros por tan magnífico trabajo.

La verdad no he entendido mucho hasta el momento pero espero que en los capítulos siguientes me valle familiarizando con el código.

QUIERO SER EL PRIMIRO EN CREAR UNA SCAINET JAJA.

Si es que no existe ya.

Miguel Ignacio Roman
2011-02-10 18:49:28

Exelente curso, muy util para los que estamos iniciando en el mundo de la programacion, gracias por dedicar tiempo y esfuerzo para que otros podamos beneficiarnos.

raul
2011-04-09 02:06:44

Son ustedes buenos maestros felicitaciones

DAVID
2011-04-11 03:10:30

bueno estoy pasando cursos de programacion el problema que tengo es compilar si alguien que tenga experiencia me ayude gracias

julio 71
2011-04-28 15:21:10

Hola a todos.

Acabo de comenzar con este curso y me parece que es bastante adecuado para los que como yo no tenemos ni idea.

Gracias a los creadores y espero aprender, aunque me parece un lenguaje bastante complejo .

Un saludo.

Rolando
2011-05-24 14:24:31

Hola, estoy comenzando de a poco a conocer el famoso C++ está buenisimo el curso y pienso seguirlo hasta donde de jaja vamos a ver que pasa. Un abrazo y gracias por compartir el conocimiento es algo muy noble y lo agradezco mucho.

Juank
2011-06-10 05:05:39

La verdad la verdad me aburri un poco y hasta casi me estatva durmiendo pero en realidad esta interesante q no podia dejar pasar por alto todo lo q me leí algunas cosas no entendi y otras si son un exelentes en lo q tratan aun q no lo piensen pero para mi son exelentes xD gracias por su curso de apoco voy entendiendo mejor cada dia gracias ojala me ayude a mejor mis notas en el cole :D

Juan Miguel
2011-08-17 00:36:05

La redacción es bastante amena. Felicidades!

osmin
2011-08-17 20:18:00

muy interesante encontrar esta info ya que estoy sufriendo con la clase de algoritmos pero encontré esta gran herramienta .. muy agradecido

Frank
2011-08-18 18:37:24

Hola, me parece un curso bastante adecuado para las personas que nos estamos iniciando en el mundo programación, desde mi punto de vista creo que para comprender mejor el ejemplo que se muestra sería bueno que nos ilustraran sobre lo que es un algoritmo y la forma en que este lenguaje lo recorre.

Salvador Pozo
2011-08-19 11:22:28

Hola Frank:

Para mi, lo más difícil a la hora de escribir esta página, ha sido elegir el orden y el lugar para explicar cada concepto, de modo que se explicara cada uno en función de lo expuesto previamente, evitando introducirlos de golpe o sin explicarlos.

Evidentemente, no siempre he tenido éxito. Unas veces porque eso implicaría dar demasiados rodeos, otras porque me ataba las manos de forma innecesaria (por ejemplo, cuando se usan los streams cin y cout, sin explicar qué son), y otras por torpeza mía.

En el caso de los algoritmos, eso se explica más adelante, cuando se entra en el tema de bucles, en el capítulo 5.

He intentado (supongo que también con un éxito limitado), no asustar demasiado a los lectores en los primeros capítulos, introduciendo demasiados conceptos nuevos o complejos. Pero intentaba mantener cierto equilibrio, de modo que lectores con cierto nivel tampoco se aburran.

glenda lopez
2011-08-30 21:32:42

Hola he leído las dos primeras entregas de este curso y me parece muy bueno y didáctico. agradezco el esfuerzo. Y espero que las próximas lecturas sean igual de buenas o mejores :) !!!!

Hector Rivera
2011-09-10 14:35:14

Deseo aprender a programar, pero como obtengo el compilador y como es el proceso de bajarlo a mi PC.

Steven
2011-09-12 22:05:48

Hola Héctor,

Aconsejo usar Code::Blocks con MinGW. Lo más sencillo es ir a su página web: http://www.codeblocks.org/ e ir a la zona de descarga de binarios (ejecutables) para tu sistema operativo. Si usas MS-Windows, el enlace es: http://www.codeblocks.org/downloads/binaries#windows Elige la fila con el ejecutable "codeblocks-10.05mingw-setup.exe" y pincha en un servidor: BerliOS or Sourceforge.net No te preocupes por esta decisión; descargarás el mismo fichero.

Después de descargar el fichero, ejecútalo - es un instalador - y sigue las instrucciones indicadas.

Code::Blocks es un Entorno Integrado de Desarrollo (IDE, en inglés) y MinGW es el compilador.

Esto lo explicamos en la introducción al curso de C++: http://c.conclase.net/curso/?cap=000#inicio

Espero que esto te oriente.

Steven

Juan Luis Suriel
2011-10-09 02:47:07

Realmente Estoy Muy Animado Con Este Curso Y Estoy Muy Interesado En Aprende Todos Esto, Yo Desde Pequeño Siempre Soñe Con Ser Un Programador Y La Verdad Es Que Yo Soy Enfermo Con La Commputadora. Estoy Haciendo C++ Y Me A Gustado Mucho Y Espero Que Me Siga Gustando De Verdad Que Estoy Muy Animado

alexander
2011-10-27 16:15:43

yo quiciera saber como de bo enpezar en el lenguaje de programacion de c++ pues estoy confundido si debo tener un progema de compilacion antes o un programa que me lea las funciones, o que debo de hacer primero nose , pordonde empezar ,

ayudenme enrrealidad estoy muy entuciaasmado con el curso de c++ y no quiciera perder ese entuciasmo por falta de entender,

gracias por la atencion

Steven R. Davidson
2011-10-28 09:07:24

Hola Alexander,

Para empezar con el curso de C++, no necesitas tener compilador todavía, puesto que nos centramos en algunos conceptos y conocimientos del lenguaje que se necesitan previamente a escribir programas. Al finalizar el capítulo 6, ofrecemos ejemplos de programas completos que sí puedes probar a compilar.

Si quieres conseguir uno ahora mismo, puedes descargar un compilador de C++, que hoy día suele venir con un IDE: Entorno Integrado de Desarrollo. En el curso, aconsejamos el IDE, Code::Blocks, que puedes descargarlo junto con el compilador, MinGW. El enlace es: http://www.codeblocks.org/downloads/26#windows y el fichero ocupa unos 74 MB.

Espero que esto te oriente.

Steven

Gabriel
2011-11-18 03:56:18

Un cordial saludo a cada integrante de esta pagina, y un enorme agradecimiento a Salvador Pozo.

En el transcurso de la lectura propuesta en este capitulo, he tenido ciertas dudas:

¿De que depende, que un lenguaje de programación (en este caso C++) permita escribir programas ejecutables en una o varias plataformas?. Han nombrado el uso de funciones y procedimientos, de una manera más explicita ¿a que llaman función y procedimiento?. Y en el ejercicio anterior se ha retornado a cero (return 0;), ¿por que retornar, si el ejercicio ha culminado exitosamente? desde mi opinión no debería retornar un valor, pues ya obtuvimos la suma 2+2 que es lo que queríamos..

Nos vemos en otro capitulo :)

Steven R. Davidson
2011-11-18 15:58:24

Hola Gabriel,

Vayamos a por las dudas:

- La verdad es que el lenguaje en sí no suele estar ligado a la plataforma. El compilador, que hace de traductor de C++ (o de cualquier otro lenguaje) a las instrucciones del procesador, en código binario o a veces en ensamblador, sí necesita conocer el procesador, porque cada uno implementa sus propias instrucciones y posiblemente de una manera diferente; es decir, con diferentes diseños.

Si en lugar de un lenguaje compilado, éste es interpretado, entonces el intérprete, que también es un programa, puede o no traducir el lenguaje a instrucciones del procesador, ya que podría usar funciones del sistema operativo. Sea cual sea el diseño interno del intérprete, el caso es que el lenguaje interpretado tampoco debería depender de la plataforma.

- En general, un procedimiento es una subrutina que no retorna ningún valor y puede o no aceptar algún parámetro. Por lo que simplemente agrupa una serie de sentencias a realizar. Por ejemplo, un procedimiento lee datos de un fichero conocido, aplica algún criterio, y escribe los resultados a otro fichero conocido. Aquí, el procedimiento no requiere ningún dato o posiblemente acepta los nombres de los ficheros de lectura y de escritura, por parte del programador ni tampoco retorna ningún dato al programa - o al punto donde fue invocado.

Una función suele recibir parámetros y retorna uno. Esto es más parecido a lo que hace una función en matemáticas; por ejemplo,

f(x) = x^2 + 1

La función "f" recibe un parámetro, "x", hace un cálculo, y retorna el resultado. En C/C++, haríamos algo parecido; por ejemplo,

double f( double x )
{
  return x*x + 1;
}

(Nota: Veremos el tema de funciones, tipos de datos, declaraciones, operadores, y diversas sentencias en subsiguientes capítulos).

En C/C++, no hay distinción entre procedimientos ni funciones, pero en otros lenguajes sí, como por ejemplo, Pascal.

- En cuanto al retorno de 'main()', esta función por norma debe retornar un entero y por convenio el valor a retornar es 0 (cero) precisamente para indicar que el programa ha terminado con éxito. Si elegimos otro entero, entonces indicaría que terminó pero no exitosamente. Esto ya depende del entorno cómo interpretar dicho entero diferente a 0 (cero): como un error estrepitoso, un error con problemas menores, exitoso pero con algún matiz a considerar, etc..

Espero haber aclarado las dudas.

Steven

Mirtha
2011-12-08 13:28:58

Me Gusta esta pagina me ayudo a salir del problema en el que estaba metida jajaja Gracias

Marcos
2012-03-06 06:01:10

Descargue el code block y lo instalé.

Luego lo ejecuté y inicie un nuevo proyecto eligiendo

console aplicacion.

Elegi C++, el nombre del proyecto y la carpeta donde será guardada...

Luego aparece un código preestablecido...

#include <iostream> 

using namespace std;

int main() 
{
    cout << "Hello world!" << endl; 
    return 0; 
}

El problema es que al apretar build aparce lo siguiente

"miPrimerPrograma - Debug" uses an invalid compiler. Probably the toolchain path within the compiler options is not setup correctly?! Skipping...
Nothing to be done.

Y luego cuando hago run no pasa nada.

Ya sé, como dice el curso, que primero hay que ver unos conceptos y luego se empezará la parte de programación.

Pero para los ansiosos estaría bueno un tutorial o un apéndice... donde se muestre como crear nuestro primer programa y ejecutarlo. Del tipo "Hola Mundo" eso nos motivaría más a seguir, y nos daría una idea general.

Luego los conceptos, muchos no se asimilan desde un comienzo, se requiera práctico, reelectura o conocimiento previo.

Hice otros cursos (Python, JavaScript, PHP) y todos empiezan así.

Espero que resuelvan mi duda inicial y lo otro lo tomen como una sugerencia nada más

Salvador Pozo
2012-03-12 17:25:31

Para Marcos:

Sospecho que no has descargado la versión completa de Code::Blocks.

En http://www.codeblocks.org/downloads/26 hay dos versiones:

codeblocks-10.05-setup.exe (23 Megas)

codeblocks-10.05mingw-setup.exe (74 Megas)

La primera sólo tiene el IDE, la segunda incluye el compilador mingw. A no ser que ya tengas instalado un compilador previamente, necesitarás la versión completa. Si ya tienes un compilador, tendrás que configurar el IDE para que sepa dónde buscar el compilador.

En cuanto a la sugerencia, mi experiencia es que si al intentar compilar el primer programa empiezan los problemas, muchos abandonan la tarea. Apunto tu sugerencia, pero pretendía ser más "original" que la mayoría. :)

Hasta pronto.

Marcos
2012-03-14 00:23:42

Hola Salvador Pozo... mucha gracias por tu respuesta...

estuve adelantando el curso... y me está ayudando a aprender c++.

Ya resolví el tema del compilador...

no estoy usando un IDI... directamente estoy compilando en Ubuntu... por ahora me sirve para lo más básico...

gracias por tu esfuerzo... hasta pronto...

Paul Charpentier
2012-03-22 02:37:42

Exelente el curso!!!

Rafael
2012-06-09 08:19:15

Excelente...voy en el numeral 1 toma de contacto...muy interesante y un trabajo que estimula a la autodidactacion

carlos
2012-06-13 23:28:22

necesito ayuda al momento de poner los ejemplos en code block me sale un ejecutable que me dice press any key to continue que puedo hacer otra duda tengo dev c++ 4.9.9.2 como le puedo hacer para ejecuta los ejemplos en el

Raika
2012-07-12 18:15:47

jajajajaja enseguidita quise provar el ejemplo de arriba y no me andubo y casi desinstalo el programa xD

Imagino que esa es la falta de paciencia que no debo tener al programar C++ jeje

Uso el Microsoft Visual C++ 2010 Expres, me pueden decir si es bueno o recomiendan uno mejor?

Frank romero
2013-02-05 16:49:06

Hola. Estoy empezando el curso y lo poco que he leído me sirve para darme una idea de lo bien que está estructurado. Finalmente tengo el curso que necesitaba para realmente comenzar a aprender. Antes de esta página había intentado otros cursos online, pero ninguno me motivó como este. Obvio todos queremos comezar programando, me parece que como inician el programa es adecuado y nos permite armarnos de paciencia. Sigan adelante!

javier
2013-02-18 02:26:38

Hola que tal, llegue a esta pagina por recomendación de un amigo y he leído los primeros capítulos y la verdad me están excelentemente bien explicados.

El problema es que en la universidad me están enseñando a programar C; así sólito sin los ++, y mi pregunta es que si aprendo a programar en c++ también tendré que aprender a programar en C o es lo mismo.

Saludos y gracias de antemano

Steven R. Davidson
2013-02-18 02:39:23

Hola Javier,

El lenguaje C++ siempre ha tenido como cometido ser compatible con C. Por lo tanto, muchos temas de C++ coinciden con los de C. La gran mayoría de los temas que aprendas en C++ te ayudarán para aprender C. Sí existen diferencias entre C y C++.

Si te limitas a los primeros temas, creo que no tendrás muchos problemas en aprender solamente C, si es lo que te interesa hacer ahora mismo. Principalmente, C no tiene el concepto de la referencia ni por tanto el paso por referencia; no implementa la sobrecarga de funciones ni de operadores; ni nada acerca de clases ni la Programación Orientada a Objetos. Hay otras diferencias puntuales, así que ándate con ojo si sólo quieres la información pertinente a C.

Espero que esto te oriente.

Steven

Carolina
2013-05-06 16:55:54

He comenzado desde anoche a leer el curso de c++ y a diferencia de mucho material que he buscado, esta pagina esta narrada de la forma mas sencilla que he conseguido, es interesante por que no me ha aburrido la informacion sino mas bien me ha motivado a seguir leyendo, voy tomando nota de los ptos que considero importante para tenerlo disponibles luego para consultar. En serio los felicito!.

Salvador Pozo
2013-05-07 19:22:39

Hola, Carolina:

Primero, gracias por tu mensaje. Me alegra saber que te gusta la página.

En cuanto a las preguntas que te surjan, puedes plantearlas en la lista de correo o en el foro (son la misma cosa). Puedes acceder desde:

http://listas.conclase.net/?gid=2

Estaremos encantados de resolver cualquier pregunta, siempre que seamos capaces. :)

Hasta pronto.

pedro
2013-05-09 02:03:36

Estoy muy contento de haber encontrado este curso, y muy agradecido a quien ( quienes) lo llevan adelante. Siempre me atrajo la programación, aunque es la primera vez que me decido a seguir un curso, ya que está muy bueno. Espero que siga mucho tiempo. Muchas, pero muchas gracias a Salvador Pozo y compañia.

Achurro
2013-05-24 05:18:28

Sencilla y llanamente, muchas gracias por su dedicación.

Otro agradecido más.. y no seré el último, compruebo.

Un saludo

Germán Sabogal
2013-10-23 04:37:04

Bueno tengo una duda (no sé si lo correcto sea ponerlo acá pero bueno)

No sé cual es la diferencia entre cout, printf y cprintf.

Adicionalmente o sé si hayan diferencias de rendimiento, algoritmicamente, etc.

y si es así ¿cuáles serían?.

Gracias

Steven R. Davidson
2013-10-23 06:13:01

Hola Germán,

El objeto estándar, 'cout', está predefinido y representa la salida estándar, que típicamente es la consola (la pantalla), que forma parte de C++. La función estándar 'printf()' proviene de las bibliotecas de C que básicamente realiza la misma tarea que 'cout': representa la salida estándar que es la consola. La función 'cprintf()' no es estándar y aparece en la biblioteca de "conio" de los compiladores de Borland para MS-DOS. Esta función es parecida a 'printf()', pero internamente usa las funciones de la BIOS para enviar caracteres directamente a la tarjeta de vídeo: la consola. Puedes echar un vistazo a la referencia de "conio" en nuestra página; el enlace es: http://c.conclase.net/borland/index.php?borlandlib=conio#inicio

En general, 'cout' ofrece una escritura más legible del código fuente que será menos propenso a cometer errores, comparado con la función 'printf()' que se basa en una cadena de formato para interpretar los parámetros correctamente. Por ejemplo,

int num = 10;
char szCad[] = "hola";

cout << num << endl;
cout << szCad << " mundo" << endl;

Aquí el operador << actúa como inserción en 'cout'; parece que indica hacia dónde se dirigen los datos, como un canal o flujo (stream, en inglés). Usando 'printf()', escribiríamos lo siguiente:

printf( "%d\n", num );
printf( "%s mundo\n", szCad );

Es más fácil cometer errores con 'printf()' si no usas los especificadores - los caracteres especiales con % como prefijo - debidos, porque de lo contrario, se interpretarán los parámetros de otra manera; esto puede producir errores graves.

En un programa de C++, recomendaría el uso de 'cout'. Sin embargo, si nos preocupa el tamaño del fichero ejecutable generado, entonces usaría las bibliotecas de C.

No podríamos hablar de los algoritmos internos de cada función, porque cada implementación es diferente, con tal de que el comportamiento sea el establecido por el estándar.

Espero haber aclarado la duda.

Steven

osnayder
2013-10-25 05:23:22

me gusta mucho este curso...

ya estoy entendiendo mucho mas ..

y espero seguir avanzando mucho.

David Salazar
2013-12-26 19:52:11

Hola amigos c: tengo 15 años y me interesa mucho el tema, pues soy nuevo en esto y mi unica pregunta es q programas o algo asi puedo usar para programar u.u soy nuevo en esto asi q no entiendo casi..

Saludes y gracias por el curso :)

Steven R. Davidson
2013-12-26 21:55:00

Hola David,

En la introducción del curso hablamos de los requisitos. Necesitas un compilador, un enlazador (linker, en inglés), las bibliotecas estándares de C++, y un editor de texto simple (cuidado con los procesadores de texto). Como requieres varios programas, te aconsejamos que consigas un compilador y un IDE (Entorno Integrado de Desarrollo) que agrupa todos los programas bajo un mismo entorno. En nuestra página, recomendamos el IDE llamado Code::Blocks ( http://www.codeblocks.org/ ); elige "codeblocks-12.11mingw-setup.exe" (unos 96 MB), porque contiene el IDE y el compilador, MinGW. Otra opción es Visual C++ de Microsoft; puedes descargar a instalar Visual Studio Express yendo a: http://www.visualstudio.com/es-es/downloads/download-visual-studio-vs#DownloadFamilies_2 Realmente, sólo te interesa Visual C++.

Espero que esto te oriente.

Steven

Alfredo Salas
2014-07-08 19:33:15

Me estoy iniciando en programación y encuentro la información dada como muy útil, explicita y muy didáctica. Excelente trabajo educativo