Programación en C++_Lo más básico - Wikilibros

Embed Size (px)

DESCRIPTION

C++

Citation preview

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 1/15

    Programacin en C++ Lo ms bsico

    De Wikilibros, la coleccin de libros de texto de contenido libre.

    Programacin en C++/Lo ms bsico

    Introduccion Iteraciones y decisiones

    Contenido

    1 Proceso de desarrollo de un programa

    1.1 Comentarios

    1.2 Utilizacin de la consola o terminal

    2 Sintaxis2.1 El punto y coma

    2.2 Espacios y tabuladores

    3 Tipos primitivos

    3.1 El modificador long

    3.2 El Modificador short

    3.3 El Modificador unsigned3.4 El Modificador register

    3.5 El Modificador volatile

    3.6 El Modificador static

    3.7 Espacio que ocupan la variables (en mquinas x86)

    3.7.1 Rango de los Tipos Primitivos4 Tipos enumerados (enum)

    5 Tipos definidos por el usuario

    6 Variables y constantes

    Proceso de desarrollo de un programa

    Si se desea escribir un programa en C++ se debe ejecutar como mnimo los siguientes pasos:

    1. Escribir con un editor de texto plano un programa sintcticamente vlido o usar un entorno dedesarrollo (IDE) apropiado para tal fin

    2. Compilar el programa y asegurarse de que no han habido errores de compilacin

    3. Ejecutar el programa y comprobar que no hay errores de ejecucin

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 2/15

    Este ltimo paso es el ms costoso, por que en programas grandes, averiguar si hay o no un falloprcticamente puede ser una tarea totmica.

    Como ejemplo, si se desea escribir un archivo con el nombre hola.cpp y en l escribir un programacon emacs, por ejemplo, que es un programa de edicin de textos, se puede, en GNU, ejecutar elsiguiente comando:

    $emacs hola.cpp &

    Para otros sistemas operativos u otros entornos de desarrollo, no necesariamente se sigue este paso.

    A continuacin se escribe el siguiente cdigo en C++:Ejemplo

    // Aqu generalmente se suele indicar qu se quiere con el programa a hacer // Programa que muestra 'Hola mundo' por pantalla y finaliza // Aqu se sitan todas las librerias que se vayan a usar con #include,// que se ver posteriormente // Las librerias del sistema son las siguientes#include // Funcin main // Recibe: void // Devuelve: int // Funcin principal, encargada de mostrar "Hola Mundo",por pantalla int main(void) { // Este tipo de lneas de cdigo que comienzan por '//' son comentarios // El compilador los omite, y sirven para ayudar a otros programadores o // a uno mismo en caso de volver a revisar el cdigo // Es una prctica sana poner comentarios donde se necesiten, std::cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 3/15

    #include int main(void){ std::cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 4/15

    Los pasos siguientes son para una compilacin en GNU o sistema operativo Unix. En Windowstampoco es aplicable.

    Con ctrl-x ctrl-s se guarda el archivo. Ahora para generar el ejecutable del programa se compila cong++ de la siguiente forma:

    $ g++ hola.cpp -o hola

    Para poder ver los resultados del programa en accin, se ejecuta el programa de la siguiente forma:

    $./hola

    Y a continuacin se debe mostrar algo como lo siguiente:

    Hola Mundo

    Comentarios

    Cuando se escriben programas es muy til agregar comentarios que ayuden a explicar lo que realizaun programa. En C++ se pueden utilizar tres tipos de comentarios: al estilo C, al estilo C++ y usandopreprocesador.

    Los comentarios al estilo C se caracterizan por lo siguiente: comenzar el "bloque" de comentarios con/* y terminar dicho "bloque" de comentarios con */

    Ej:

    /* Este es un comentario al estilo C.Todo lo escrito dentro de las etiquetas de apertura y cierre es un comentario.A estos comentarios se le llaman multilinea, logicamentepor el hecho de permitir varias lineas de comentarios. */

    Si se usan este tipo de etiquetas de comentarios, hay que tener cuidado con el cierre (*/), por que elcompilador puede tomar todo el texto como comentario, o cerrar antes de lo deseado.

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 5/15

    Usando el estilo de cdigo de C++ slo pueden ocupar una lnea como en el siguiente cdigo:

    // Este es un comentario al estilo C++

    Una buena prctica de programacin es pensar que se programa a sabiendas de que otroprogramador, tal vez el lector mismo en un futuro, tenga que "desencriptar" qu quiso hacer ah y porqu.

    Otra posible forma de comentar cdigo es usando el preprocesador. Esto se detallar ms adelanteen profundidad, por ahora la parte til del preprocesador que interesa es la siguiente:

    #if 0 Comentarios sobre el programa /parte del programa. Pueden ocupar mltiples lneas. Ms complicado de visualizar que los comentarios C/C++ #endif

    Este tipo de comentarios se usan rara vez. Generalmente son difciles de localizar, incluso paraprogramadores experimentados que trabajan en papel, y son fciles de distinguir en casi cualquierIDE. Es recomendable indicar que se tratan de comentarios, o directamente no usarlos, salvo si songrandes cantidades de comentarios. Se ver ms adelante que tambin puede tener otros usos.

    Utilizacin de la consola o terminal

    En los ejemplos anteriores se utilizaron 'std::cout'. 'std::cout' es un "objeto" que permite escribir en laconsola (la terminal en GNU/Unix/MacOSX), solo se puede utilizar gracias a que se ha incluidodefiniciones de su uso con la lnea de cdigo '#include '.

    std::cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 6/15

    Un ejemplo ms completo sobre la escritura en consola es el siguiente. Ha de tenerse en cuenta quese han eliminado algunos comentarios superfluos del primer programa debido a que ahora se esttratando con ms detalle acerca del uso de imprimir texto en la consola:Ejemplo

    // Programa que muestra diversos textos por consola // Las libreras del sistema usadas son las siguientes #include // Funcin: main // Recibe: void // Devuelve: int // Es la funcin principal encargada de mostrar por consola diferentes textos int main(void) { // Ejemplo con una nica lnea, se muestra el uso de std::cout y std::endl std::cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 7/15

    Con algunos compiladores, ver 'programacin', pero con otros puede ver incluso 'programaci n'.

    Advertencia: cout puede ser utilizado sin tener std:: de forma previa porque se puede introducir

    una directiva, denominada 'using', que acomoda todos los cout. De otro modo habra un error decompilador. Este tema se trata en detalle ms adelante.

    using namespace std;

    Sintaxis

    Sintaxis es la forma correcta en que se deben escribir las instrucciones para el computador en unlenguaje de programacin especfico. C++ hereda la sintaxis de C estndar, es decir, la mayora deprogramas escritos para el C estndar pueden ser compilados en C++.

    El punto y coma

    El punto y coma es uno de los simblos ms usados en C, C++; y se usa con el fin de indicar el finalde una lnea de instruccin. El punto y coma es de uso obligatorio.

    ejemplo

    clrscr(); //Limpiar pantalla, funciona solo con la librera conio de Borland C++x = a + b; string IP = "127.0.0.1"; // Variable IP tipo stringcout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 8/15

    for (i=0; i < 10; i++) cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 9/15

    Nombre Descripcin Tamao* Rango de valores*

    char Carcter o entero pequeo 1byte

    con signo: -128 to 127

    sin signo: 0 a 255

    short int

    (short)Entero corto 2bytes

    con signo: -32768 a 32767

    sin signo: 0 a 65535

    int Entero 4bytes

    con signo: -2147483648 a

    2147483647

    sin signo: 0 a 4294967295

    long int

    (long)Entero largo 4bytes

    con signo: -2147483648 a

    2147483647

    sin signo: 0 a 4294967295

    boolValor booleano. Puede tomar dos valores:

    verdadero o falso1byte true o false

    float Nmero de punto flotante 4bytes 3.4e +/- 38 (7 digitos)

    double De punto flotante de doble precisin 8bytes 1.7e +/- 308 (15 digitos)

    longdouble

    Long de punto flotante de doble precisin 8bytes 1.7e +/- 308 (15 digitos)

    Los valores dependen de la arquitectura utilizada. Los mostrados son los que generalmente se

    encuentran en una mquina tpica de arquitectura 32 bits.

    El modificador long

    El modificador long le indica al compilador que el tipo debe utilizar ms bits que los normalmenteutilizados por ejemplo si tenemos en una maquina de 32 bits como un Pentium de Intel, normalmentede un int ocupara 32 bits, pero si al declararlo un entero le antecedemos long el entero ocupa 64 bits,el siguiente cdigo muestra como utilizar este modificador:

    int corto; // Entero de 32 bits long int largo; // Entero de 64 bits

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 10/15

    El Modificador short

    Similar al anterior, pero indica que se deben utilizar menos bits. Por ejemplo, en un computador de 32bits, un short int ocupa 16 bits.

    El Modificador unsigned

    El modificador unsigned es utilizado nicamente con los enteros, su utilizacin permite utilizar en losenteros nicamente la parte positiva,

    int a; // Almacena valores entre -32768 y 32767unsigned int a; // Almacena valores entre 0 y 65535

    El Modificador register

    Este modificador sobre una variable le indica al compilador que la variable debe almacenarse en unregistro en el compilador, que para el caso de los IA32, es un registro real de la propia CPU, y portanto el tiempo de acceso es ms rpido respecto a la memoria RAM. Hoy en da apenas se utilizaeste modificador, ya que los compiladores son capaces de determinar de manera ptima la asignacinde registros a variables del programa.

    El Modificador volatile

    Al contrario que el modificador registrer, volatile obliga al compilador a forzar el cdigo resultante demanera que la variable modificada con este modificador, sea almacenada siempre en la memoria. Elefecto que tiene es que cuando la variable se modifica con otro valor, dicha variable se almacenadirectamente en memoria y no queda localizado el valor slo en el registro de la CPU como pasabaen el caso de register o en condiciones normales. Un uso muy comn en el que se suele emplear estemodificador, es para acceder a variables que estn siendo utilizadas por drivers o por perifricos, yaque si no declarsemos esta propiedad, podra darse el caso que la CPU usase el valor de la variable,por lo que la cach guarda el valor, y poco despus la CPU usase de nuevo dicha variable, perocomo sta est en cache, la CPU coge el valor que existe en la cach, que puede ser bien distinta alreal puesto que un posible perifrico puede haber modificado su valor.

    El Modificador static

    Dependiendo del entorno donde se declare la variable que la modifiquemos como static, puedesignificar dos cosas muy distintas:

    1. Si declaramos una variable static dentro del cuerpo de una funcin, lo que estamos indicndole

    al compilador es que dicha variable sea inicializada solo una vez (la primera vez que se llama a

    la funcin), y el resto de veces que se llame a la funcin, la variable contendr el ltimo valor

    asignado. Esta variable slo podr ser visible desde la funcin que declara dicha variable. Porejemplo:

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 11/15

    void mifuncion(){ static int i=0; cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 12/15

    El rango que puede almacenar los tipos primitivos en C++ es muy importante, para poder saber cuales el rango de valores que puede almacenar un tipo es necesario conocer el nmero de bits del tipo.El caso para enteros y para flotantes es distinto. Para enteros se debe saber si el tipo es con signo osin signo. si es sin signo el rango de valores que puede almacenar es el siguiente:

    Si el tipo es con signo el rango es el siguiente

    Para ilustrar lo anterior supongamos que tenemos un entero de 16 bits sin signo, entonces el rango devalores que puede almacenar es el siguiente:

    Para obtener el rango de un entero de 32 bits con signo se puede realizar el siguiente calculo:

    El caso de los nmeros flotantes es distinto y depende en gran manera del compilador y el procesadorque este utilizando. Sin embargo hoy en da la mayora de los compiladores y los procesadores utilizanen estndar de la IEEE para representacin en coma flotante. Para saber mas al respecto ver IEEEfloating-point standard.

    Tipos enumerados (enum)

    Los tipos enumerados son un mecanismo usado en C y C++ con el objetivo de agrupar de algunamanera constantes simblicas. Para definir tipos enumerados se usa la palabra reservada enum.

    Ejemplo 1

    enum dias { domingo, lunes, martes, miercoles, jueves, viernes, sabado };

    En el ejemplo anterior se define por medio de enum el tipo enumerado dias, en el mismo ejemplo sedebe observar que dentro de la construccin se definen las constantes simblicas: domingo, lunes, ...sabado; y que a las mismas el compilador les asignar respectivamente y por defecto los valores: 0, 1,2, 3, 4, 5, 6. Es decir, las constantes mencionadas pueden usarse dentro del programa y este sabr aque valor hace referencia cada una de las mismas. Por ejemplo, la instruccin: cout

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 13/15

    for (int d = domingo; d

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 14/15

    persona hombre;

    se est declarando la variable hombre del tipo persona. Luego, para acceder a cada elemento de lavariable hombre usaremos un mecanismo conocido como direccionamiento directo por medio delcarcter de punto ( . ). Por ejemplo, la edad de hombre se debe indicar como:

    hombre.edad

    Variables y constantes

    Una variable, como su nombre lo indica, es un determinado objeto cuyo valor puede cambiar duranteel proceso de una tarea especfica. Contrario a una variable, una constante es un determinado objetocuyo valor no puede ser alterado durante el proceso de una tarea especfica. En C, C++ paradeclarar variables no existe una palabra especial, es decir, las variables se declarn escribiendo el tiposeguido de uno o ms identificadores o nombres de variables. Por otro lado, para declarar constantesexiste la palabra reservada const, as como la directiva #define. A continuacin se muestranejemplos de declaracin de variables y constantes.

    Variables Constantes Constantes

    int a; const int a = 100;#define a

    100

    float b;const float b =100;

    #define b100

    Notas:

    A diferencia de las constantes declaradas con la palabra const los smbolos definidoscon #define no ocupan espacio en la memoria del cdigo ejecutable resultante.

    El tipo de la variable o constante puede ser cualquiera de los listados en Tiposprimitivos, o bien de un tipo definido por el usuario.

    Las constantes son usadas a menudo con un doble propsito, el primero es con el fin de hacer mslegible el cdigo del programa, es decir, si se tiene (por ejemplo) la constante numerica 3.1416 y estarepresenta al nmero pi, entonces podemos hacer declaraciones tales como:

    #define pi 3.1416

    En este caso podremos usar la palabra pi en cualquier parte del

    programa y el compilador se encargar de cambiar dicho simbolo por 3.1416.

  • 5/11/2014 Programacin en C++/Lo ms bsico - Wikilibros

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico 15/15

    o bien,

    const pi = 3.1416;

    En este otro caso podremos usar la palabra pi en cualquier parte del programa y el compilador se encargar

    de cambiar dicho smbolo por una referencia a la constante pi guardada en la memoria.

    Introduccion Arriba

    Iteraciones y decisiones

    Obtenido de http://es.wikibooks.org/w/index.php?title=Programacin_en_C%2B%2B/Lo_ms_bsico&oldid=235558

    Esta pgina fue modificada por ltima vez el 20 oct 2014 a las 10:01.El texto est disponible bajo la Licencia Creative Commons Atribucin-CompartirIgual 3.0; puedenaplicarse trminos adicionales. Vase Trminos de uso para ms detalles.