
No se encontraron comentarios.
LO MAS BASICO
Si deseamos escribir un programa en C++ se debe ejecutar como mínimo los siguientes pasos:
Si deseamos escribir con el nombre hola.cpp un programa con emacs podemos ejecutar el siguiente comando:
$emacs hola.cpp &
A continuación podemos escribir el siguiente programa en C++:
#includeusing namespace std; int main() { cout<<"Hola Mundo"<<endl; return 0; }
Este en Turbo C++:
#includevoid main() { cout<<"Hola Mundo"; return 0; }//este texto solo lo puede leer el programador
O este otro:
#includeint main() { //este texto solo lo puede leer el programador printf("Hola Mundo\n"); return 0; }
Nota: Si Usas Windows:
#includeusing namespace std; int main() { cout<<"Hola Mundo"<<endl; cin.get(); return 0; }
Con ctrl-x ctrl-s se guarda el archivo. Ahora para compilar el programa podemos compilarlo con g++ de la siguiente forma:
$ g++ hola.cpp -o hola
Para poder ver la ejecución del programa ejecutamos el programa así:
$./hola
Y a continuación se debe mostrar algo como lo siguiente:
Hola Mundo
Cuando se escriben programas es muy útil agregar comentarios que ayuden a explicar lo que realiza un programa. En C++ se pueden utilizar dos tipos de comentarios al estilo C y al estilo C++.
Al estilo C como se muestra a continuación:
/* Este es un comentario al estilo C */
Los comentarios al estilo C pueden continuar por varias líneas de un mismo archivo como se muestra en el siguiente código:
/* Este es un comentario al estilo C
que puede ocupar varias líneas
como se muestra a continuación.
*/
Al estilo C++ sólo pueden ocupar una línea como en el siguiente código:
// Este es un comentario al estilo C++ === Utilización de cout === En un ejemplo anterior se utilizo cout, cout es un objeto que permite escribir en la consola, solo se utiliza con la directiva iostream su sintaxis es la siguiente: <source lang=cpp> cout << ALGO;
Donde ALGO debe ser algo que cout sea capaz de imprimir. Más adelante se trata más sobre el. También se utilizó endl, esto permite que el texto se escriba en una nueva línea.
#includeusing namespace std;
Sintaxis es la forma correcta en que se deben escribir las instrucciones para el computador en un lenguaje de programación especifico. C++ hereda la sintaxis de C estándar, es decir, la mayoría de programas escritos para el C estándar pueden ser compilados en C++.
El punto y coma es uno de los simbólos más usados en C, C++; y se usa con el fin de indicar el final de una línea de instrucción. El punto y coma es de uso obligatorio.
ejemplo
clrscr(); //Limpiar pantalla, funciona solo con la librería conio de Borland C++ x = a + b;
El punto y coma se usa también para separar contadores, condicionales e incrementadores dentro de un sentencia for
ejemplo
for (i=0; i < 10; i++) cout << i;
Un bloque es un grupo de instrucciones contenidas entre los símbolos de llave izquierda '{' y llave derecha '}', su uso es obligatorio en la definición de funciones, y opcionalmente pueden aparecer en cualquier otra parte del programa.
ejemplos
// aquí, las llaves son opcionales ya que dentro // del ciclo for hay solamente una instrucción. for (i=0; i < 10; i++) { cout << i; } }
Usar caracteres extras de espaciado o tabuladores ( caracteres tab ) es un mecanismo que nos permite ordenar de manera más clara el código 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 podría escribir como:
for (i=0; i < 10; i++) { cout << i * x; x++; }
y el compilador no pondría ningún reparo.
En un lenguaje de programación es indispensable poder almacenar información, para esto en C++ están disponibles los siguientes tipos que permiten almacenar información numérica de tipo entero o real:
El modificador long le indica al compilador que el tipo debe utilizar más 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 código muestra como utilizar este modificador:
int corto; // Entero de 32 bits long int largo; // Entero de 64 bits
Similar al anterior, pero indica que se deben utilizar menos bits. Por ejemplo, en una máquina de 32 bits, un short int ocupa 16 bits.
El modificador unsigned es utilizado únicamente con los enteros, su utilización permite utilizar en los enteros únicamente la parte positiva,
char a; // Almacena valores entre -128 y 127
unsigned char a; // Almacena valores entre 0 y 255
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 más rápido respecto a la memoria RAM. Hoy en día a penas se utiliza este modificador, ya que los compiladores son capaces de determinar de manera óptima la asignación de registros a variables del programa.
Al contrario que el modificador registrer, volatile obliga al compilador a forzar el código 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 sólo en el registro de la CPU como pasaba en el caso de register o en condiciones normales. Un uso muy común en el que se suele emplear este modificador, es para acceder a variables que están siendo utilizadas por drivers o por periféricos, ya que si no declarásemos esta propiedad, podría darse el caso que la CPU usase el valor de la variable, por lo que la caché guarda el valor, y poco después la CPU usase de nuevo dicha variable, pero como ésta está en cache, la CPU coge el valor que existe en la caché, puede ser bien distinta si mientras un posible periférico ha modificado dicho valor.
Dependiendo del entorno donde se declare la variable que la modifiquemos como static, puede significar dos cosas muy distintas
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; }
#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 función que defina dentro de prueba.cpp, pero no tendrá acceso desde cualquier fichero objeto o fuente que no sea prueba.cpp
El espacio en bits que ocupan en la computadora una variable de este tipo se puede ver en la siguiente tabla:
| Tipo | Número de Bits |
| char | 8 |
| short | 16 |
| int | 32 |
| long int | 64 |
| float | 32 |
| double | 64 |
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 número 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:
[0,2Bits − 1]
Si el tipo es con signo el rango es el siguiente
[ − 2Bits,2Bits − 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:
[0,216 − 1] = [0,65535]
Para obtener el rango de un entero de 32 bits con signo se puede realizar el siguiente calculo:
[ − 231,231 − 1]
El caso de los números flotantes es distinto y depende en gran manera del compilador y el procesador que este utilizando. Sin embargo hoy en día la mayoría de los compiladores y los procesadores utilizan en estándar de la IEEE para representación en coma flotante.
Los tipos enumerados son un mecanismo usado en C y C++ con el objetivo de agrupar de alguna manera constantes simbólicas. 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 se debe observar que dentro de la construcción se definen las constantes simbólicas: 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 instrucción: cout << domingo; desplegará 0 en la pantalla. El siguiente ejemplo muestra como usar las constantes enumeradas en un ciclo for.
for (int d = domingo; d <= sabado; d++) cout << d;
En el siguiente ejemplo se define por medio de enum el tipo enumerado colores, en el mismo se debe de observar la elinación del comportamiento por defecto ya que a la primera constante (gris) se le asigna en forma específica 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
enum colores { gris = 7, grisoscuro, amarillo = 14 };
En muchas ocasiones descubriremos que los tipos primitivos no bastan para llevar a cabo ciertas tareas, debido a esto el lenguaje C, C++ da el soporte necesario para que el programador defina sus propios tipos. Para definir tipos se usa la palabra reservada typedef. Por ejemplo, si deseamos definir un tipo de dato llamado entero podemos usar la sintaxis:
typedef int entero;
Luego, podremos declarar variables, constantes y funciones del tipo entero. Por ejemplo,
entero edad = 33;
Un uso más útil y común 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:
typedef struct persona { char nombre[32]; int 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 instrucción:
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 caracter de punto ( . ). Por ejemplo, la edad de hombre se debe indicar como:
hombre.edad
Una variable, como su nombre lo indica, es un determinado objeto cuyo valor puede cambiar durante el proceso de una tarea específica. Contrario a una variable, una constante es un determinado objeto cuyo valor no puede ser alterado durante el proceso de una tarea específica. En C, C++ para declarar variables no existe una palabra especial, es decir, las variables se declarán escribiendo el tipo seguido de uno o más identificadores o nombres de variables. Por otro lado, para declarar constantes existe la palabra reservada const, así como la directiva #define. A continuación se muestran ejemplos de declaración de variables y constantes.
| Variables | Constantes | Constantes |
|---|---|---|
| int a; | const int a = 100; | #define a 100 |
| float b; | const float b = 100; | #define b 100 |
Notas:
A diferencia de las constantes declaradas con la palabra const los símbolos definidos con #define no ocupan espacio en la memoria del código 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 propósito, el primero es con el fin de hacer más legible el código del programa, es decir, si se tiene (por ejemplo) la constante numerica 3.1416 y esta representa al número 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.
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 símbolo
por una referencia a la constante pi guardada en la memoria.
© 2011 Todos los derechos reservados.