Академический Документы
Профессиональный Документы
Культура Документы
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 Sintaxis
2.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 unsigned
3.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 Primitivos
4 Tipos enumerados (enum)
5 Tipos definidos por el usuario
6 Variables y constantes
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 de
desarrollo (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
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
1/15
5/11/2014
Este ltimo paso es el ms costoso, por que en programas grandes, averiguar si hay o no un fallo
prcticamente puede ser una tarea totmica.
Como ejemplo, si se desea escribir un archivo con el nombre hola.cpp y en l escribir un programa
con emacs, por ejemplo, que es un programa de edicin de textos, se puede, en GNU, ejecutar el
siguiente 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
Mediante simple inspeccin, el cdigo parece enorme, pero el compilador lo nico que leer para la
creacin del programa es lo siguiente:
Ejemplo
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
2/15
5/11/2014
#include <iostream>
int main(void){ std::cout << "Hola Mundo" << std::endl; return 0; }
Como se puede observar, este cdigo y el original no difieren en mucho salvo en los saltos de lnea y
que los comentarios, de los que se detallan posteriormente, estn omitidos y tan slo ha quedado "el
esqueleto" del cdigo legible para el compilador. Para el compilador, todo lo dems, sobra.
O este otro, que es, en parte, como el lenguaje C, en su versin C99, es:
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf( "Hola Mundo\n" );
return EXIT_SUCCESS;
// 'EXIT_SUCCESS' es una definicin que est dentro de 'stdlib.h'
// tambien funciona return 0
}
Nota: si se usa Windows, el cdigo es el mismo, pero debemos agregar un metodo mas para que el
programa se mantenga abierto y no se cierre la consola, cosa que en GNU, no es necesaria por que
la consola ya esta abierta (al mandar a ejecutar).
Para esto podemos usar cin.get() que nos permitira leer del teclado, por lo que el programa no
finalizara, hasta que el usuario pulse enter.
Ejemplo
#include <iostream>
int main(void)
{
std::cout << "Hola Mundo" << std::endl;
std::cin.get();
//con 'std::cin.get();' lo que se hace es esperar hasta que el usuario pulse enter
return 0;
}
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
3/15
5/11/2014
Los pasos siguientes son para una compilacin en GNU o sistema operativo Unix. En Windows
tampoco es aplicable.
Con ctrl-x ctrl-s se guarda el archivo. Ahora para generar el ejecutable del programa se compila con
g++ 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
Comentarios
Cuando se escriben programas es muy til agregar comentarios que ayuden a explicar lo que realiza
un programa. En C++ se pueden utilizar tres tipos de comentarios: al estilo C, al estilo C++ y usando
preprocesador.
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, logicamente
por 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 el
compilador puede tomar todo el texto como comentario, o cerrar antes de lo deseado.
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
4/15
5/11/2014
Usando el estilo de cdigo de C++ slo pueden ocupar una lnea como en el siguiente cdigo:
Una buena prctica de programacin es pensar que se programa a sabiendas de que otro
programador, tal vez el lector mismo en un futuro, tenga que "desencriptar" qu quiso hacer ah y por
qu.
Otra posible forma de comentar cdigo es usando el preprocesador. Esto se detallar ms adelante
en 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 para
programadores experimentados que trabajan en papel, y son fciles de distinguir en casi cualquier
IDE. Es recomendable indicar que se tratan de comentarios, o directamente no usarlos, salvo si son
grandes cantidades de comentarios. Se ver ms adelante que tambin puede tener otros usos.
Donde ALGO puede ser lo que sea que 'std::cout' sea capaz de mostrar por consola. Ms adelante
se trata ms sobre el en detalle y aclarando posibles dudas que ahora puedan surgir. Tambin se
utiliz 'std::endl', esto permite que el texto se escriba en una nueva lnea.
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
5/15
5/11/2014
// Ejemplo con una nica lnea de cdigo que se puede fraccionar mediante el uso de
std::cout << "Ahora "
<< "estoy fraccionado en el codigo, pero en la consola me muestro como una unica fr
<< std::endl;
// Uso de un cdigo largo, que cuesta leer para un programador, y que se ejecutar
// *** No se recomienda hacer lneas de esta manera, esta forma de programar no es
std::cout << "Un gran texto puede ocupar muchas lineas."
<< std::endl
<< "Pero eso no frena al programador a que todo se pueda poner en una unica linea d
<< std::endl
<< "el programa, al ejecutarse, lo situe como el programador quiso"
<< std::endl;
return 0; // Y se termina con xito.
}
Se reta a compilar este cdigo y a observar sus resultados. En este momento el lector est capacitado
para escribir programas que impriman por pantalla el mensaje que se quiera.
Atencin: Se hace hincapi en la posibilidad de que las palabras acentuadas no se puedan mostrar en
la consola. Depende completamente del compilador el que se pueda ver lo siguiente:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
6/15
5/11/2014
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 de
compilador. Este tema se trata en detalle ms adelante.
Sintaxis
Sintaxis es la forma correcta en que se deben escribir las instrucciones para el computador en un
lenguaje de programacin especfico. C++ hereda la sintaxis de C estndar, es decir, la mayora de
programas 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 final
de 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 string
cout << IP << endl; // Devuelve 127.0.0.1
char Saludo[5] = "Hola"; // Variable Saludo tipo char
cout << Saludo[0] << endl; // Igual a H
cout << Saludo[1] << endl; // Igual a o
cout << Saludo[2] << endl; // Igual a l
cout << Saludo[3] << endl; // Igual a a
El punto y coma se usa tambin para separar contadores, condicionales e incrementadores dentro de
un sentencia for
ejemplo
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
7/15
5/11/2014
Espacios y tabuladores
Usar caracteres extras de espaciado o tabuladores ( caracteres tab ) es un mecanismo que nos
permite ordenar de manera ms clara el cdigo del programa que estemos escribiendo, sin embargo,
el uso de estos es opcional ya que el compilador ignora la presencia de los mismos. Por ejemplo, el
segundo de los ejemplos anteriores se podra escribir como:
Tipos primitivos
En un lenguaje de programacin es indispensable poder almacenar informacin, para esto en C++
estn disponibles los siguientes tipos que permiten almacenar informacin numrica de tipo entero o
real:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
8/15
5/11/2014
Nombre
Descripcin
Tamao*
Rango de valores*
con signo: -128 to 127
char
short
int
Entero corto
(short)
int
Entero
1byte
2bytes
4bytes
long
(long)
int
Entero largo
4bytes
bool
true o false
float
4bytes
double
8bytes
long
double
8bytes
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 normalmente
utilizados por ejemplo si tenemos en una maquina de 32 bits como un Pentium de Intel, normalmente
de 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
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
9/15
5/11/2014
El Modificador short
Similar al anterior, pero indica que se deben utilizar menos bits. Por ejemplo, en un computador de 32
bits, un short int ocupa 16 bits.
El Modificador unsigned
El modificador unsigned es utilizado nicamente con los enteros, su utilizacin permite utilizar en los
enteros nicamente la parte positiva,
El Modificador register
Este modificador sobre una variable le indica al compilador que la variable debe almacenarse en un
registro en el compilador, que para el caso de los IA32, es un registro real de la propia CPU, y por
tanto el tiempo de acceso es ms rpido respecto a la memoria RAM. Hoy en da apenas se utiliza
este modificador, ya que los compiladores son capaces de determinar de manera ptima la asignacin
de registros a variables del programa.
El Modificador volatile
Al contrario que el modificador registrer, volatile obliga al compilador a forzar el cdigo resultante de
manera que la variable modificada con este modificador, sea almacenada siempre en la memoria. El
efecto que tiene es que cuando la variable se modifica con otro valor, dicha variable se almacena
directamente en memoria y no queda localizado el valor slo en el registro de la CPU como pasaba
en el caso de register o en condiciones normales. Un uso muy comn en el que se suele emplear este
modificador, es para acceder a variables que estn siendo utilizadas por drivers o por perifricos, ya
que 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, pero
como sta est en cache, la CPU coge el valor que existe en la cach, que puede ser bien distinta al
real 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, puede
significar 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. Por
ejemplo:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
10/15
5/11/2014
void mifuncion(){
static int i=0;
cout<<"En la entrada i vale "<<i<<endl;
for(int j=0;j<10;j++)
i++;
cout<<"En la salida i vale "<<i<<endl;
}
1. Si declaramos una variable static fuera del cuerpo de una funcin, lo que le estamos indicando
al compilador, es que dicha variable es privada para el modulo donde se implementa el cdigo
del contexto de la variable, es decir, que otro fichero objeto binario, no podr tener acceso a
dicha variable utilizando el modificador extern. Ejemplo:
#import "prueba.h"
//variable privada para prueba.cpp
static int i=0;
void mifuncion(){
cout<<"En la entrada i vale "<<i<<endl;
for(int j=0;j<10;j++)
i++;
cout<<"En la salida i vale "<<i<<endl;
}
Tenga en cuenta que para este ltimo caso, usted podr acceder a la variable y desde cualquier
funcin que defina dentro de prueba.cpp, pero no tendr acceso desde cualquier fichero objeto o
fuente que no sea prueba.cpp
Nmero de Bits
char
short
16
int
32
long int 64
float
32
double 64
Rango de los Tipos Primitivos
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
11/15
5/11/2014
El rango que puede almacenar los tipos primitivos en C++ es muy importante, para poder saber cual
es 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 o
sin signo. si es sin signo el rango de valores que puede almacenar es el siguiente:
Bits
[0, 2
1]
[2
Bits1
,2
1]
Para ilustrar lo anterior supongamos que tenemos un entero de 16 bits sin signo, entonces el rango de
valores que puede almacenar es el siguiente:
16
[0, 2
1] = [0, 65535]
Para obtener el rango de un entero de 32 bits con signo se puede realizar el siguiente calculo:
31
[2
31
,2
1] = [2147483648, 2147483647]
El caso de los nmeros flotantes es distinto y depende en gran manera del compilador y el procesador
que este utilizando. Sin embargo hoy en da la mayora de los compiladores y los procesadores utilizan
en estndar de la IEEE para representacin en coma flotante. Para saber mas al respecto ver IEEE
floating-point standard.
En el ejemplo anterior se define por medio de enum el tipo enumerado dias, en el mismo ejemplo se
debe 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 a
que valor hace referencia cada una de las mismas. Por ejemplo, la instruccin: cout << domingo;
desplegar 0 en la pantalla. El siguiente ejemplo muestra como usar las constantes enumeradas en un
ciclo for.
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
12/15
5/11/2014
En el siguiente ejemplo se define por medio de enum el tipo enumerado colores, en el mismo se debe
de observar la elinacin del comportamiento por defecto ya que a la primera constante (gris) se le
asigna en forma especfica el valor de 7, de tal manera que la siguiente constante (grisoscuro) tendr
un valor igual a 8 y la constante amarillo ser igual a 14.
Ejemplo 2
Luego, podremos declarar variables, constantes y funciones del tipo entero. Por ejemplo,
entero edad = 33;
Un uso ms til y comn es el empleo de typedef para definir datos estructurados. Por ejemplo,
supongamos que deseamos definir un tipo estructurado llamado persona y que contenga nombre,
edad y sexo. Entonces podemos definir persona como:
Una vez que un tipo ya se ha definido, el mismo puede emplearse para declarar variables y constantes
de este. Por ejemplo, con la instruccin:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
13/15
5/11/2014
persona hombre;
se est declarando la variable hombre del tipo persona. Luego, para acceder a cada elemento de la
variable hombre usaremos un mecanismo conocido como direccionamiento directo por medio del
carcter 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 durante
el proceso de una tarea especfica. Contrario a una variable, una constante es un determinado objeto
cuyo valor no puede ser alterado durante el proceso de una tarea especfica. En C, C++ para
declarar variables no existe una palabra especial, es decir, las variables se declarn escribiendo el tipo
seguido de uno o ms identificadores o nombres de variables. Por otro lado, para declarar constantes
existe la palabra reservada const, as como la directiva #define. A continuacin se muestran
ejemplos de declaracin de variables y constantes.
Variables
Constantes
Constantes
int a;
#define
100
float b;
const float b =
100;
#define
100
Notas:
A diferencia de las constantes declaradas con la palabra const los smbolos definidos
con #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 Tipos
primitivos, 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 ms
legible el cdigo del programa, es decir, si se tiene (por ejemplo) la constante numerica 3.1416 y esta
representa 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.
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
14/15
5/11/2014
o bien,
const pi = 3.1416;
En este otro caso podremos usar la palabra pi en cualquier parte del programa y el compilador se en
de cambiar dicho smbolo por una referencia a la constante pi guardada en la memoria.
Iteraciones y decisiones
Introduccion
Arriba
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; pueden
aplicarse trminos adicionales. Vase Trminos de uso para ms detalles.
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Lo_m%C3%A1s_b%C3%A1sico
15/15