You are on page 1of 5

La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo

UNIX, que hasta el momento se haba programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de mquinas concretas, por lo que conseguir un lenguaje abstrado de cada mquina conseguira una portabilidad del sistema muchsimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseado tres aos antes. En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien disea finalmente C a partir del B de Thompson, aportando un diseo de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programacin estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los bsicos sean pocos), codificando en alto y bajo nivel simultneamente, reemplazando ventajosamente la programacin en ensamblador y permitiendo una utilizacin natural de las funciones primitivas del sistema. Adems, no est orientado a ningn rea en especial y sobre todo consigue un cdigo objeto altamente optimizado que repercute en que los programas son muy rpidos. Durante muchos aos no existen reglas estndar para el lenguaje, pero en 1983 se decide formar un comit con el objetivo de crear el estndar ANSI (Instituto Nacional Americano de Estndares). El proceso dura seis aos y a principios de los 90 el estndar es reconocido por la ISO (Organizacin Internacional de Estndares) y comienza a comercializarse con el nombre ANSI C. /* "Hola mundo" escrito en C */ #include <stdio.h> void main() { printf( "Hola mundo" ); } Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (tambin de Laboratorios Bell de AT&T). Disea este lenguaje con el objetivo de aadir a C nuevas caractersticas: clases y funciones virtuales (de SIMULA67), tipos genricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un autntico motor de objetos con herencia mltiple que permite combinar la programacin imperativa de C con la programacin orientada a objetos. Estas nuevas caractersticas mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicacin al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolucin de C++ es sin duda la incorporacin de la librera STL aos ms tarde, obra de Alexander Stepanov y Adrew Koening. Esta librera de clases con contenedores y algoritmos genricos proporciona a C++ una potencia nica entre los lenguajes de alto nivel. Debido al xito del lenguaje, en 1990 se renen las organizaciones ANSI e ISO para definir un estndar que formalice el lenguaje. El proceso culmina en 1998 con la aprobacin del ANSI C++. /* "Hola mundo" escrito en C++ */ #include <iostream> void main() { std::cout << "Hola mundo"; } La ltima variante que ha surgido de C es el moderno C#. En el ao 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseado por Anders Hejlsberg), que servir de lenguaje principal de la plataforma. C# es un hbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia mltiple) con la plena orientacin a objetos del segundo. La orientacin a objetos es tal que el propio programa est encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes ms utilizados. A pesar de su corta historia, ha recibido la aprobacin del estndar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO. -------------------------------------------------------------------------------------------------------------------------------------------------------------------En el ejemplo se muestra la estructura de un programa que posee: Prototipos de dos funciones (uno para la suma y otro para la resta de dos nmeros. (necesarios en c++) La funcin main(), al ejecutar nuestro programa esta funcin toma el control llamando si lo necesita a otras funciones. Nuestras funciones,una que devuelve la suma de dos nmeros y otra que devuelve la resta de sos nmeros. nota 1: No te molestes en intentar compilar el cdigo porque no har nada, este ejemplo es simplemente el esqueleto de un programa con 2 funciones. nota 2: El operador aritmtico "+" se estudia en el captulo 4 del curso de c++. Cdigo: //--------------------------------------------------------//ZONA: Prototipos //DESCRIPCIN: Aqui van los prototipos de nuestras funciones. //--------------------------------------------------------int suma(int num1,int num2); int resta(int num1,int num2); //--------------------------------------------------------//NOMBRE FUNCIN: main //DESCRIPCIN: La ejecucin de nuestro programa comienza aqu. //--------------------------------------------------------int main() { int a=10; int b=15; int resultadoSuma; int resultadoResta; //Llamada a las funciones suma y resta, almacenamos los //resultados en las variables resultadoSuma y resultadoResta. resultadoSuma=suma(a,b); resultadoResta=resta(a,b); return 0; }

//--------------------------------------------------------//NOMBRE FUNCIN: suma //DESCRIPCIN: Retorna la suma de dos nmeros. //--------------------------------------------------------int suma(int num1,int num2) { return(num1+num2); } //--------------------------------------------------------//NOMBRE FUNCIN: resta //DESCRIPCIN: Retorna la resta de dos nmeros. //--------------------------------------------------------int resta(int num1,int num2) { return(num1-num2); } Programa que lee un nmero que corresponde al radio de un crculo, calcula y muestra su rea. Cdigo: #include <iostream> #include <stdlib.h> using namespace std; int main() { const float PI = 3.141592; float area,radio; cout << "Introduzca el radio del crculo: "; cin >> radio; area = PI * radio * radio; cout << "El rea del crculola es: " << area << endl; system("PAUSE"); return 0; } Ejemplo de declaracin de un puntero a int y de la ultilizacin de los operadores de referencia(&) y desreferencia(*). Cdigo: #include <iostream.h> int main() { // DECLARACION DE UN PUNTERO A ENTERO int* puntero_a_entero=NULL; int a=0; puntero_a_entero = &a; // El puntero se inicializa con la direccion de memoria de a; a=8; cout << " &a =" << &a << endl; cout << " a = " << a; cout << " puntero_a_entero = " << puntero_a_entero << endl << endl; cout << " *puntero_a_entero = " << *puntero_a_entero; return 0; } Ejemplos de C++ -------------------------------------------------------------------------------Manejo de cadenas en C++. La clase string Asignacin de cadenas // Ejemplo de asignacion de cadenas #include <string.h> #include <iostream.h> using namespace std; void main() { string cadena("prueba de cadena"); cout << "Cadena: " << cadena << endl; cadena.assign("otra serie de caracteres"); cout << "Cadena: " << cadena << endl; cadena.assign("cadena auxiliar",6); cout << "Cadena: " << cadena << endl; } Lo compilamos con g++ Comparacin de cadenas Insercin en cadenas // includes y dems... void main() { string cadena("Tratamiento");

string cad2("de"); string cad3("cadenas"); cout << "Cadena: " << cadena << endl; cadena.insert(0,cad3); //... } Bsquedas en cadenas Sustitucin en cadenas // includes y dems... void main() { string cadena("prisa"); cout << "Cadena: " << cadena << endl; cadena.replace(1,3,"laz"); // plaza cout << "Cadena: " << cadena << endl; cadena.replace(3,1,"to"); //platoa cout << "Cadena: " << cadena << endl; cadena.replace(1,1,"ato"); // patoatoa cout << "Cadena: " << cadena << endl; } Otro ejemplo: // includes y dems... void main() { string cadena("OTORRINOLARINGOLOGO"); cout << "Cadena: " << cadena << endl; cadena.erase(8,7); cout << "Cadena: " << cadena << endl; } Operaciones Matemticas en C++ #include <iostream.h> #include <limits.h> using namespace std; int main { cout << "Minimo valor de int" << numeric_limits<int>::min() << endl; cout << "Maximo valor de int" << numeric_limits<int>::max() << endl; cout << "Numero de bits necesarios para representar un int" << numeric_limits<int>::digit << endl; } STL (Standard Template Library) en C++ Compilamos con g++ Tipo Cola #include <iostream.h> #include <deque.h> using namespace std; void mostrarContenido(deque <int> c) { if (!c.empty()) { int tam=c.size(); for (int i=0;i<tam;i++) cout<< c[i] << ","; } else cout << "Cola vacia."<< endl; } int main() { deque<int< cola; mostrarContenido(cola); cola.push_back(1); mostrarContenido(cola); cola.push_front(2); mostrarContenido(cola); cola.push_back(3); mostrarContenido(cola); cola.pop_front(); mostrarContenido(cola); cola.pop_back(); mostrarContenido(cola); cola.pop_front(); mostrarContenido(cola); return 0; } Tipo Lista #include <iostream.h> #include <list.h> using namespace std; void mostrarContenido(list<int> l)

{ if (!l.empty()) { int tam=l.size(); for (int i=0;i<tam;i++) { int dato=*l.begin(); l.pop_front (); cout << dato << ","; l.push_back(dato); } } else cout << "Lista vacia"; cout << endl; } int main() { list<int> lista; lista.push_front(1); lista.push_back(2); mostrarContenido(lista); } Tipo Vector #include <iostream.h> #include <vector.h> using namespace std; void mostrarContenido(vector<int> v) { if (!v.empty()) { int tam = v.size(); for (int i=0; i<tam ; i++) cout << v[i] << ","; } else cout << "Vector vacio"; cout << endl; } int main() { vector<int> v; mostrarContenido(v); v.push_back(1); mostrarContenido(v); v.push_back(2); mostrarContenido(v); v.insert(v.begin()+1,1,4); mostrarContenido(v); v.pop_back(); mostrarContenido(v); v.pop_back(); return 0; } Tipo conjunto No admite valores repetidos, si queremos dichos valores deberemos trabajar con multiset. #include <iostream.h> #include <set.h> using namespace std; int main() { set<int> s; cout<< "Tamao: " << s.size() << endl; s.insert(123); cout << "Insertando 123" << endl; s.insert(789); cout << "Insertando 789" << endl; s.insert(456); cout << "Insertando 456" << endl; cout << "Tamao : " << s.size() << endl; s.insert(789); cout << "Insertando 789 de nuevo"; cout << "Tamao : " << s.size() << endl; if (s.find(789)!=s.end()) cout << "La clave 789 esta en el set" << endl; else

cout << "La clave 789 no est en el set" << endl; return 0;

You might also like