Documente Academic
Documente Profesional
Documente Cultură
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.
3.
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:
continuacin
se
escribe
el
siguiente
cdigo
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,
//
en
C++:
// se devuelve un 0.
//que en este caso quiere decir que la salida se ha efectuado con xito.
}
Mediante simple inspeccin, el cdigo parece enorme, pero el compilador lo nico que leer para la creacin del
programa
es
lo
siguiente:
Ejemplo
#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;
}
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:
$./hola
Y a continuacin se debe mostrar algo como lo siguiente:
Hola Mundo
Comentarios[editar]
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.
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 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.
de
imprimir
texto
en
la
consola:
Ejemplo
// Programa que muestra diversos textos por consola
// Las libreras del sistema usadas son las siguientes
#include <iostream>
// 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 << "Bienvenido. Soy un programa. Estoy en una linea de codigo."
<<
std::endl;
// 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
frase."
<< std::endl;
// Uso de un cdigo largo, que cuesta leer para un programador, y que se ejecutar
sin problemas.
// *** No se recomienda hacer lneas de esta manera, esta forma de programar no es
apropiada ***
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 de
codigo y que"
<< 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:
std::cout << "programacin";
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.
using namespace std;
Sintaxis[editar]
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[editar]
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
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
for (i=0; i < 10; i++) cout << i;
Espacios y tabuladores[editar]
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:
for (int i=0; i < 10; i++) { cout << i * x; x++; }
y el compilador no pondra ningn reparo.
Tipos primitivos[editar]
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:
Nombre
char
Descripcin
Tamao*
1byte
Rango de valores*
2bytes
int
Entero
4bytes
Entero largo
8bytes
bool
1byte
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[editar]
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
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:
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
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:
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 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.
edad;
char sexo;
};
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:
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 comodireccionamiento directo por medio del carcter de punto ( . ). Por ejemplo,
la edad de hombre se debe indicar como:
hombre.edad
Variables y constantes[editar]
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
int a;
Constantes
const int a = 100;
Constantes
#define a 100
float b;
#define b 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
const
pi
3.1416;