Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
// Aqu se sitan todas las bibliotecas que se vayan a usar con #include, que se ver posteriormente // Las bibliotecas del sistema son las siguientes #include <iostream>
// Funcin main // Recibe: void // Devuelve: int // Es la funcin principal, y la encargada de mostrar "Hola Mundo", sin comillas, 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, //aunque estas lneas tan slo sirven para ayudar al lector a visualizar el potencial de los comentarios.
return 0; // Y como en este programa no se hace ms, se termina devolviendo un 0, //que en este caso quiere decir que la salida se ha efectuado con xito. } </font>
Mediante simple inspeccin, el cdigo parece enorme, pero el compilador lo nico que leer para la creacin del programa es lo siguiente: Ejemplo <font size="11.67"> #include <iostream> int main(void){ std::cout << "Hola Mundo" << std::endl; return 0; } </font> 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 <font size="11.67"> #include <stdio.h> #include <stdlib.h> int main(void) { //este texto solo lo puede leer el programador printf( "Hola Mundo\n" ); return EXIT_SUCCESS; // 'EXIT_SUCCESS' es una definicin que est dentro de 'stdlib.h' } </font> Nota: si se usa Windows, el cdigo es muy similar: Ejemplo <font size="11.67"> #include <iostream> int main(void) { std::cout << "Hola Mundo" << std::endl; std::cin.get(); // Esto se pone, a diferencia de en los otros cdigos, por que en windows la ventana se cerrar sbitamente. //con 'std::cin.get();' lo que se hace es esperar hasta que el usuario pulse enter. return 0; }
Programacin en C++/Lo ms bsico </font> Los pasos siguientes son para una compilacin en Linux o sistema operativo Unix, exceptuando el sistema operativo MacOSX. 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 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 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 */ Un comentario dentro del cdigo al estilo C puede ser como se muestra a continuacin: <font size="11.67"> /* Este es un comentario al estilo C */ </font> Los comentarios al estilo C pueden continuar por varias lneas de un mismo archivo como se muestra en el siguiente cdigo: <font size="11.67"> /* Este es un comentario al estilo C que puede ocupar varias lneas como se muestra a continuacin. */ </font> El siguiente bloque de comentarios en algunos compiladores puede provocar fallos, por lo que no se recomienda su uso: <font size="11.67"> /* Ahora el programador, por accidente, incluy un */ antes de tiempo, por lo que el programa tendr fallos. */ </font>
<--
Usando el estilo de cdigo de C++ slo pueden ocupar una lnea como en el siguiente cdigo: <font size="11.67"> // Este es un comentario al estilo C++
Programacin en C++/Lo ms bsico </font> Este es el tipo de comentarios ms utilizados en programas en los que se usa nicamente C++, por que generalmente los programadores resumen partes del cdigo que puedan provocar confusin o sean de difcil lectura para otros programadores. 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: <font size="11.67"> #if 0 Comentarios sobre el programa /parte del programa. Pueden ocupar mltiples lneas. Ms complicado de visualizar que los comentarios C/C++ #endif </font> 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.
#include <iostream>
// Funcin: main
// Recibe: void
textos
int main(void)
std::endl
std::cout << "Bienvenido. Soy un programa. Estoy en una linea de codigo." << std::endl;
std::cout << "Ahora " << "estoy fraccionado en el codigo, pero en la consola me muestro como una unica frase." << std::endl;
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;
</font>
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: <font size="11.67"> std::cout << "programacin"; </font> 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. <font size="11.67"> using namespace std; </font>
Sintaxis
Sintaxis es la forma correcta en que se deben escribir las instrucciones para el computador en un lenguaje de programacin especifico. 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; 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;
Separador de bloque
Un bloque es un grupo de instrucciones contenidas entre los smbolos de llave izquierda '{' y llave derecha '}', su uso es obligatorio en la definicin 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 instruccin. for (i=0; i < 10; i++) { cout << i; }
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: for (int i=0; i < 10; i++) { cout << i * x; x++; } y el compilador no pondra ningn reparo.
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: 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:
Programacin en C++/Lo ms bsico int corto; // Entero de 32 bits long int largo; // Entero de 64 bits El Modificador short Similar al anterior, pero indica que se deben utilizar menos bits. Por ejemplo, en una mquina 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, int a; // Almacena valores entre -128 y 127 unsigned int a; // Almacena valores entre 0 y 255 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 a penas 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: 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,
Programacin en C++/Lo ms bsico 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
Rango de los Tipos Primitivos 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:
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.
Programacin en C++/Lo ms bsico 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
10
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 int a; float b; Constantes const int a = 100; Constantes #define a 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. 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
11
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/