Me han estado llegando comentarios y correos con dudas, correcciones y todo tipo de insultos (no, eso último no) y decidà responder todos ellos con este post en el que aclararé lo que es C y lo que es C++ y sus diferencias.
C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos.
Asà que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++.
A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en verdad me enseñaron únicamente C, asà que muchos profesores en realidad no saben lo que es programar en C++. Veamos un hola mundo en los dos programas:
En C
1 2 3 4 5 6 7 | #include<stdio.h> int main() { printf ("Hola Mundo"); return 0; } |
En C++
1 2 3 4 5 6 7 8 9 | #include<iostream> using namespace std; int main() { cout << "Hola mundo"; return 0; } |
Para el tipo de programas que se estarán mostrando en este blog la diferencia más importante es la entrada y salida de datos. Asà que veamos un ejemplo de entrada y salida de datos de cada programa:
En C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<stdio.h> int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla printf("Introduce el radio del circulo: "); //ENTRADA: recibir dato desde teclado scanf("%d", &radio); // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla printf("El area es %.2f y el perimetro %.2f", area, perimetro); getch(); return 0; } |
En C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include<iostream> using namespace std; int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla cout << "Introduce el radio del circulo: "; //ENTRADA: recibir dato desde teclado cin >> radio; // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla cout << "El area es " << area << " y el perimetro " << perimetro; cin.get();cin.get(); return 0; } |
Lo que noté al hacer estos dos programitas es que pedir un dato en C++ es mucho mucho más simple que en C. Sin embargo, el asunto de los << y >> puede llegar a ‘asustar’ a los recién iniciados en la programación.
Pedir un dato en C
scanf("modificador", &nombre de la variable);
Pedir un dato en C++
cin >> nombre de la variable;
Mostrar un dato en C
printf("Dato: modificador", nombre de la variable);
Mostrar un dato en C++
cout << "Dato: " << nombre de la variable;
Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.
LibrerÃas en C++
Por simple convención las librerÃas en C terminan en ‘.h’ (punto hache). Todas las librerÃas de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio.
Libreria en C Â Â Â LibrerÃa en C++
math.h          cmath
string.h         cstring
time.h          ctime
etcetera.
El ‘namespace’
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, … C++ es una ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras reservadas están en un ‘namespace’ (espacio de nombres). En especÃfico cout y cin están el namespace std (standard).
Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que quisieramos usar cout, tendrÃamos que escribir std::cout.
Espero que a partir de ahora pueden identificar si un programa está en C o en C++. También espero estar publicando mis programas en ambos lenguajes a partir de ahora.
muchas gracias ahora se diferenciar entre c y c++
una duda que me quedo es: cuando hacen la operacion del radio al final en c++ cuando muestra el resultado se utilisa “cin.get();” para mostrar el resultado en la consola, pero porque usas dos veces el “cin.get();cin.get();”? no seria lo mismo con una sola vez?
gracias.
Yo uso cin.get();cin.get(); dos veces para pausar le ejecución del programa. Si quisiera utilizar getch() tendrÃa que agregar la librerÃa . Se usa dos veces porque el primer cin.get() lee la ‘basura’ que queda en la memoria, el segundo tiene que esperar hasta que se presione cualquier tecla.
amm ya entiendo, gracias.
Hola soy nuevo y novato en este lenguaje C y C++ pero segun las explicaciones leidas comenzare de nuevo a pasarme de c a c++ yo lleve basic en la universidad y realmente no fui muy bueno en programar pero hoy necesito aprender lenguaje en C ya que me servirá para enseñarle a mi sobrino que lleva bachillerato y no le gusta mucho, ademas hacerle entender que todo bien aprendido sirve en cualquier momento en la vida.
ps si quieres practica desde el principio yo estoy aprendiendo de esta web y de wikibooks y voy bien.
http://codigoc.org/662-curso-de-c
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B
te dejo mi correo y compartimos codigos ^^
taku@hotmail.es
hola gracias por la info