You are on page 1of 6

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I

Contenido
I Unidad Introduccin a C++ Breve historia de C y C++

Estructura de un programa en C++ o Inclusin de Librera. o La funcin main() o Instrucciones para Entrada y Salida estndar. o Tipos de datos que maneja C++ o Declaracin de variables y constantes. o Operaciones de asignacin aritmtica y lgica.

Breve historia de C y C++


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 Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 1

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I 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"; }

Propsito de C y C++
Qu clase de programas y aplicaciones se pueden crear usando C y C++? La respuesta es muy sencilla: TODOS. Tanto C como C++ son lenguajes de programacin de propsito general. Todo puede programarse con ellos, desde sistemas operativos y compiladores hasta aplicaciones de bases de datos y procesadores de texto, pasando por juegos, aplicaciones a medida, etc. Oirs y leers mucho sobre este tema. Sobre todo diciendo que estos lenguajes son complicados y que requieren pginas y pginas de cdigo para hacer cosas que con otros lenguajes se hacen con pocas lneas. Esto es una verdad a medias. Es cierto que un listado completo de un programa en C o C++ para gestin de bases de datos (por poner un ejemplo) puede requerir varios miles de lneas de cdigo, y que su equivalente en Visual Basic slo requiere unos pocos cientos. Pero detrs de cada lnea de estos compiladores de alto nivel hay cientos de lneas de cdigo en C, la mayor parte de estos compiladores estn respaldados por enormes bibliotecas escritas en C. Nada te impide a ti, como programador, usar bibliotecas, e incluso crear las tuyas propias. Una de las propiedades de C y C++ es la reutilizacin del cdigo en forma de bibliotecas de usuario. Despus de un tiempo trabajando, todos los programadores desarrollan sus propias bibliotecas para aquellas cosas que hacen frecuentemente. Y adems, raramente piensan en ello, se limitan a usarlas. Adems, los programas escritos en C o C++ tienen otras ventajas sobre el resto. Con la excepcin del ensamblador, generan los programas ms compactos y rpidos. El cdigo es transportable, es decir, un programa ANSI en C o C++ podr ejecutarse en cualquier mquina y bajo cualquier sistema operativo. Y si es necesario, proporcionan un acceso a bajo nivel de hardware slo igualado por el ensamblador.

Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 2

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I Otra ventaja importante es que C tiene ms de 30 aos de vida, y C++ casi 20 y no parece que su uso se debilite demasiado. No se trata de un lenguaje de moda, y probablemente a ambos les quede an mucha vida por delante. Slo hay que pensar que sistemas operativos como Linux, Unix o incluso Windows se escriben casi por completo en C. Por ltimo, existen varios compiladores de C y C++ gratuitos, o bajo la norma GNU, as como cientos de bibliotecas de todo propsito y miles de programadores en todo el mundo, muchos de ellos dispuestos a compartir su experiencia y conocimientos.

Fichero fuente y programa o cdigo fuente


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.

Intrpretes y compiladores
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 ejecucin 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 intrprete, que traduce el programa, instruccin a instruccin, al tiempo que lo ejecuta. En los lenguajes interpretados no existen programas ejecutables directamente por el ordenador. El intrprete traduce, en tiempo real, cada lnea del programa fuente, cada vez que se quiere ejecutar el programa. El los lenguajes compilados el proceso de traduccin slo se hace una vez. El programa compilador toma como entrada el cdigo fuente del programa, y da como salida un fichero que puede ser ejecutado por el ordenador directamente. Una vez compilado, el programa ejecutable es autnomo, y ya no es necesario disponer del programa original ni del compilador para ejecutarlo. Cada opcin tiene sus ventajas e inconvenientes, y algunas caractersticas que son consideradas una ventaja, pueden ser un inconveniente en ciertas circunstancias, y viceversa.

Los lenguajes interpretados son fcilmente modificables, ya que necesitamos tener el el cdigo fuente disponible en el ordenador. En los compilados, estos ficheros no son necesarios, una vez compilados. Los lenguajes interpretados necesitan un programa externo, llamado intrprete o a veces mquina virtual, o framework. Este programa acta como intermediario entre el fuente y el sistema operativo. En los compilados ese papel lo desempea el compilador, pero al contrario que con el intrprete, una vez ha hecho su trabajo, no es necesario que est presente para ejecutar el programa. Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 3

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I

Estas dos caractersticas, lgicamente, hacen que los programas compilados requieran menos espacio de memoria que los interpretados (si contamos el espacio usado por el intrprete), y en general, los compilados son ms rpidos, ya que slo se compilan una vez, y el tiempo dedicado a esa tarea no se suma al de ejecucin.

Entre los lenguajes interpretados estn: BASIC (Cdigo de instrucciones de propsito general para principiantes), Java, PHP. Muchos lenguajes de script, etc. Entre los lenguajes compilados estn: C, C++, Pascal.

Libreras o bibliotecas
Junto con los compiladores de C y C++, se incluyen ciertos ficheros llamados bibliotecas. Las bibliotecas contienen el cdigo objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar nmeros, realizar funciones matemticas, etc. Las bibliotecas estn clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemticas, de manejo de memoria, de manejo de textos, etc. Hay un conjunto de bibliotecas (o libreras) muy especiales, que se incluyen con todos los compiladores de C y de C++. Son las libreras (o bibliotecas) ANSI o estndar. Pero tambin las hay no estndar, y dentro de estas las hay pblicas y comerciales. En este curso slo usaremos bibliotecas (o libreras) ANSI.

La funcin MAIN
La funcin main es impresindible en cualquier programa C/C++ representa el punto de inicio de su ejecucin. Por lo general, su declaracin adopta la forma: int main(); Formas de declarar la funcin MAIN:

void main() // MAL: algunos compiladores se quejarn { } int main() // CORRECTO: la forma adecuada de hacerlo { } main() // CORRECTO: no es la mejor, pero los compiladores que sigan el estndar la darn por buena { }

Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 4

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I

Intrucciones de entrada y salida


Cuando nos referimos a entrada/salida estndar (E/S estndar) queremos decir que los datos o bien se estn leyendo del teclado. En el lenguaje c++ tenemos varias alternativas para ingresar y/o mostrar datos, dependiendo de la librera que vamos a utilizar para desarrollar el programa, entre estas estn: iostream.h y sodio.h. < IOSTREAM.H> Las operaciones de entrada y salida no forman parte del conjunto de sentencias de C++, sino que pertenecen al conjunto de funciones y clases de la biblioteca estndar de C++. Ellas se incluyen en los archivos de cabecera iostream.h por lo que siempre que queramos utilizarlas deberemos introducir la lnea de cdigo #include <iostream.h> Esta biblioteca es una implementacin orientada a objetos y est basada en el concepto de flujos. A nivel abstracto un flujo es un medio de describir la secuencia de datos de una fuente a un destino o sumidero. As, por ejemplo, cuando se introducen caracteres desde el teclado, se puede pensar en caracteres que fluyen o se trasladan desde el teclado a las estructuras de datos del programa. Los objetos de flujo que vienen predefinidos sern: 1. cin, que toma caracteres de la entrada estndar (teclado); 2. cout, pone caracteres en la salida estndar (pantalla); 3. cerr y clog ponen mensajes de error en la salida estndar. Estos objetos se utilizan mediante los operadores << y >>. El operador << se denomina operador de insercin; y apunta al objeto donde tiene que enviar la informacin. Por lo tanto la sintaxis de cout ser: cout<<variable1<<variable2<<...<<variablen; No olvidemos que las cadenas de texto son variables y se ponen entre " " (comillas dobles). Por su parte >> se denomina operador de extraccin, lee informacin del flujo cin (a la izquierda del operador) y las almacena en las variables indicadas a la derecha). La sintaxis sera la siguiente: cin>>variable1>>...>>variablen;

Tipos de datos
Conceptualmente, desde el punto de vista de un programador, una variable es una entidad cuyo valor puede cambiar a lo largo de la ejecucin de un programa. En el nivel ms bajo, una variable se almacena en la memoria del ordenador. Esa memoria puede ser un conjunto de semiconductores dentro de un circuito integrado, ciertos campos magnticos sobre una superficie de un disco, ciertas polarizaciones en una memoria de ferrita,

Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 5

Universidad Central de Nicaragua Ingeniera en sistemas Programacin I o cualquier cosa que an no se haya inventado. Afortunadamente, no deberemos preocuparnos por esos detalles. En un nivel ms lgico, una variable ocupa un espacio de memoria reservado en el ordenador para contener sus valores durante la ejecucin de un programa. Cada variable debe pertenecer a un tipo determinado, y ese tipo determina, por una parte, el tamao del espacio de memoria ocupado por la variable, y por otra, el modo en que se manipular esa memoria por el ordenador. No olvides, si es que ya lo sabas, que la informacin en el interior de la memoria del ordenador se almacena siempre de forma binaria, al menos a bajo nivel. El modo en que se interpreta la informacin almacenada en la memoria de un ordenador es, en cierto modo, arbitraria; es decir, el mismo valor puede codificar una letra, un nmero, una instruccin de programa, etc. No hay nada diferente en una posicin de memoria que contenga una instruccin de programa o una letra de un texto; si observamos una posicin de memoria cualquiera, no habr modo de saber qu significa el valor que contiene. Es mediante el tipo como le decimos al compilador el modo en que debe interpretarse y manipularse cierta informacin binaria almacenada en la memoria de un ordenador. De momento slo veremos los tipos fundamentales, que son: void, char, int, float y double, en C++ se incluye tambin el tipo bool. Tambin existen ciertos modificadores, que permiten ajustar ligeramente ciertas propiedades de cada tipo; los modificadores pueden ser: short, long, signed y unsigned, y pueden combinarse algunos de ellos. Tambin veremos en este captulo los tipos enumerados, enum.

Declaracin de Variables
Para crear un identificador hay que tener en cuenta algunas reglas, ya que no es posible usar cualquier cosa como identificador.

Slo se pueden usar letras (maysculas o minsculas), nmeros y ciertos caracteres no alfanumricos, como el '_', pero nunca un punto, coma, guin, comillas o smbolos matemticos o interrogaciones. El primer carcter no puede ser un nmero. C++ distingue entre maysculas y minsculas, de modo que los identificadores numero y Numero son diferentes.

Finalmente, la declaracin termina con un punto y coma. Las palabras en negrita son palabras reservadas de C++. Eso significa que son palabras que no se pueden usar para otras cosas, concretamente, no se pueden usar como identificadores en un programa C++. Es decir, estn reservadas para usarse del modo en que se describe en la sintaxis, y no se pueden usar de otro modo. Sern vlidos estos ejemplos:
signed char cuenta, cuenta2, total; unsigned char letras; char caracter, inicial, respuesta; signed char _letra;

Ing. Valente Cuadra www.ucn-ing-cuadra.blogspot.com Pgina 6

You might also like