Curso Basico C++. en Busca Del Conocimiento
Curso Basico C++. en Busca Del Conocimiento
Al leer este libro te embarcars en el magnfico lenguaje de programacin C++, el cul se deriva del ms grande de todos, el lenguaje C para sistemas Unix y la informtica tal cual hoy la conocemos, sin estos lenguajes todo fuera diferente y a lo mejor en vez de leer este libro estuvieras programando haciendo hoyitos en un papel.
Este libro est pensado para iniciarse en C++ y tener unas buenas bases del mismo, dando pequeas dosis de conocimiento de diferentes temas para facilitar el aprendizaje.
El objetivo principal de este libro es disponer de un documento pequeo con explicaciones simples pero entendibles con cdigos de ejemplo para poder empezar a aprender el lenguaje C++.
Introduccin a la programacin
La programacin es el proceso de desarrollar software que realicen una tarea en especfica para solucionar o facilitar alguna actividad.
El cdigo fuente es el cdigo que escribe el programador, para que este ms tarde se traduzca a un lenguaje que pueda entender la mquina llamado cdigo binario o cdigo mquina.
Para desarrollar software no slo se necesita tener conocimientos sobre los diferentes comandos de algn lenguaje de programacin, sino tambin tener la lgica suficiente para pensar un poco como ordenador y saber en qu forma se deben de utilizar los comandos para lograr nuestro objetivo, el funcionamiento de un programa o software.
Introduccin a C++
C++ es un lenguaje de programacin creado en 1980 por Bjarne Stroustrup, con el objetivo de extender al lenguaje C. Actualmente existe un estndar denominado ISO C++. Es un lenguaje compilado, esto quiere decir que el cdigo que escribe el programador se traduce directamente a cdigo mquina para poder ejecutarlo. Este lenguaje se encuentra disponible para gran cantidad de sistemas actuales como Windows, Linux, etc.
Existen diferentes compiladores, entre ellos GCC, el cual es desarrollado y mantenido por la comunidad de seguidores de software libre.
C++ junto a C son utilizados para desarrollar sistemas computacionales, software y videojuegos grandes. Cabe mencionar que Linux est desarrollado en lenguaje C.
Peculiaridades de C++
Su pronunciacin correcta es c plus plus Es sensible a maysculas o minsculas (case sensitive), por lo que no es lo mismo Cout que cout. Al igual que en gran cantidad de lenguajes, al terminar con las instrucciones el programa se cierra. Cada instruccin termina con un punto y coma.
Editor: En este programa escribiremos el cdigo de nuestros programas. La mayora integran algunas caractersticas para hacernos ms fcil la vida, como el resalto de sintaxis.
Podemos conseguir tambin algn IDE o Entorno de Desarrollo Integrado el cual incluye todo lo necesario en un solo paquete. Se puede usar cualquiera, C++ sigue siendo el mismo.
Recordemos que al terminar con todas las instrucciones el programa se cierra, por lo que se mostrar el mensaje Hola Mundo y despus el programa finalizar, para evitar esto podemos usar system(pause), en Windows en la librera windows.h
Luego de tener el cdigo, lo guardamos con extensin .cpp tenemos que compilar y ejecutar el cdigo para ver que funcione, as que buscamos la opcin build o construir. Si nuestro cdigo tiene errores de sintaxis nos mostrar un poco de informacin de los mismos y el programa no correr (no se ejecutar).
Ahora explicaremos lnea por lnea. #include <iostream> Incluye la librera bsica de C++ para entrada y salida de datos. using namespace std; Esto es algo complicado de entender por el momento, pero es necesario para no tener que escribir std:: antes de cada comando. int main(void) { } Funcin principal de nuestro programa, todo el cdigo del programa debe de estar aqu, dentro de las llaves. cout << Hola Mundo << endl; Muestra el mensaje Hola Mundo y salta al siguiente rengln. return 0; Indica que el programa ha terminado con cero errores.
Si es que deseamos pasar a la siguiente lnea agregamos el comando endl. Algo as:
Esto nos da la idea de que en un mismo comando cout podemos imprimir tantos mensajes como queramos en un solo comando, agregando nicamente <<.
Una variable en matemticas, es un valor representado por alguna letra o smbolo que como su nombre lo indica, puede variar, algo parecido sucede en la programacin.
En un programa, una variable es un pequeo espacio en memoria que almacena datos que pueden variar o modificarse, a estos espacios en memoria se les asigna un tipo de dato y un nombre.
Los tipos de datos bsicos son los siguientes: int float char string bool Almacena nmeros enteros. Almacena nmeros reales. Almacena un carcter (una letra). Almacena una cadena de texto. Almacena un dato verdadero o falso.
Antes de usar un espacio para guardar datos, es necesario crearlo, a esto se le conoce como declaracin de variables, y su estructura es la siguiente:
tipo nombre_variable;
Ejemplo:
int numero;
numero = 5 + 10;
9
Algo importante de mencionar es que el nombre de estas variables debe de empezar obligatoriamente con una letra, haciendo a un lado los acentos y la letra .
Operadores aritmticos Estos operadores, son esenciales para realizar operaciones bsicas, y los operadores son: +, -, *, /. Ejemplo:
Si deseamos sumarle o restarle un dato a el valor actual de nuestra variable, simplemente agregamos el signo + o -, seguido del signo igual y el valor a agregar. Ejemplo:
Incremento o decremento Para incrementar o decrementar 1 en el valor de una variable, podemos usar los operadores ++ y - -. Ambos se pueden agregar antes o despus de la variable, la diferencia principal, es que al usar el modo variable++ primero se usa la variable y luego se
10
incrementa, mientras que del modo ++variable primero incrementa y luego se usa. Ejemplo: a = 5; b = a++; b = 5, a = 6 Leer valor de teclado Si es que deseamos leer algn valor de teclado e ingresarlo en nuestra variable simplemente usamos el comando cin. Se usa de la siguiente manera: a = 5; b = ++a; b = 6, a = 6;
Mostrar valor de variable Para mostrar el valor que contiene la variable simplemente se usa cout. De la siguiente manera:
Como podemos observar, en este caso no lleva comillas en el cout, de lo contrario, en vez de mostrar el contenido de la variable, mostraramos el mensaje variable.
11
Ejemplo prctico. Suma de dos nmeros El programa pide dos nmeros, posteriormente muestra el resultado de la suma de los mismos.
Como podemos observar, no es necesario crear una variable en la que se guarde el resultado de la suma de los dos nmeros, sino que simplemente en el mismo cout agregamos la operacin.
Las constantes Una constante es un valor que no puede variar, se declara de igual forma que una variable, slo agregando la palabra const al inicio. Ejemplo:
12
Ambos no necesitan una explicacin tan extensa, slo basta dar un ejemplo de los mismos.
// Esto es un comentario
13
Sentencias if
Una sentencia if, se usa para marcar condiciones en los programas, si se cumple cierta condicin se realizan ciertas taras. Su estructura es la siguiente:
if (condiciones) { // Instrucciones }
Operadores comparativos Los operadores comparativos, como su nombre lo indica, nos ayudan a comparar datos. Estos comparadores son los siguientes: == > < >= <= != Igual que Mayor que Menor que Mayor o igual que Menor o igual que Diferente que
14
Ejemplo prctico. Mayor o menor de edad El programa pide la edad, y determina si la persona es mayor o menor de edad.
15
if else if Si cierta condicin no se cumple y queremos que se cumpla otra podemos agregar un else if. Funciona igual que el primer if, pero este slo se ejecuta si la condicin anterior no se cumpli.
Ejemplo prctico. Determina peso Si peso es menor a 50, es ligero, si es 50, es medio, si es mayor a 50 es pesado.
Operadores lgicos Si deseamos realizar alguna accin slo si varias condiciones se cumplen, o si no se cumple una instruccin pero otra s, podemos usar los siguientes operadores. && || Y O
16
Ejemplo prctico. Aprobado, reprobado Si calificacin es mayor a 5 y menor o igual a 10, alumno pasa, si es menor o igual a 5, reprueba, si nada de esto se cumple manda mensaje de error.
Bucles o ciclos
Los bucles tienen la funcionalidad de repetir una tarea mientras ciertas condiciones se cumplan. En C++ existen dos elementales, For y While.
17
For Este ciclo se usa principalmente cuando se intenta repetir instrucciones un nmero determinado de veces, su estructura es la siguiente:
inicial;
condiciones;
forma
de
// Instrucciones a repetir }
Ejemplo prctico. Saluda 10 veces El programa muestra el mensaje Hola Mundo 10 veces.
En este caso podemos observar que la variable i, incrementa de forma i++, pero como no necesitamos hacer otra cosa ms que incrementarla, se recomienda ms ++i por ser ms veloz.
18
While El ciclo while es algo menos complejo, simplemente se encarga de repetir una accin mientras ciertas condiciones se cumplan. Su estructura es la siguiente:
Ejemplo prctico. Pide nmero 6 El programa sigue pidiendo un nmero mientas no sea el nmero 6.
19
Do-while Existe una alternativa a el ciclo while, denominada do-while, la cual funciona de la misma manera que el while, slo su estructura es diferente.
20
Como podemos observar, se declara el tipo, esto simplemente porque las funciones pueden o no regresar algn dato que podremos obtener en la funcin principal. Se utilizan los mismos tipos que en una variable, adems de poder usar tambin el tipo void el cual indica que la funcin no regresar ningn valor, sino que simplemente realizar las instrucciones ya marcadas.
Los parmetros, son datos que se pueden compartir con la funcin, para poder ser usados en algunas tareas.
Ejemplo prctico. rea de un crculo El programa pide el radio de un crculo y muestra el rea total del mismo.
21
Se recomienda declarar las funciones arriba del main, dejando as el main hasta abajo, de lo contrario, se tendrn que declarar de nuevo las funciones.
Como podemos observar, la funcin se puede usar como cualquier variable. En este caso, imprimiendo su contenido desde cout.
Parmetros por referencia Un parmetro por referencia es aquel que puede modificar el valor de la variable que se ingresa como parmetro. Se recomienda ms hacer una funcin que retorne el valor que necesitamos, pero si no lo deseamos hacer, simplemente el parmetro se agrega de la siguiente manera.
La nica diferencia que podemos notar, es la integracin del smbolo & antes del nombre de la variable.
22
Vector o array unidimensional Si deseamos crear un vector o array unidimensional, simplemente agregamos corchetes en seguida del nombre de la variable: tipo variable[num_de_datos];
Al llamar a un dato, es necesario saber que el primero se nombra como cero, por lo que si tenemos, por ejemplo, un array de 10 espacios, los espacios seran: 0,1,2,3,4,5,6,7,8,9.
Matriz o array de dos dimensiones Si deseamos crear un array con dos dimensiones de datos, es decir, en forma de tablas, simplemente agregamos otros corchetes.
tipo variable[numx][numy];
23
Manipulacin de arrays Un espacio del array, se usa de igual manera que una variable, simplemente especificando el espacio del array al que deseamos acceder.
Ejemplo prctico. Suma de 10 nmeros El programa pide 10 nmeros, los suma, y muestra el resultado.
24
Estructuras
Una estructura es un tipo de dato que podemos crear con variables y funciones dentro del mismo. Usado frecuentemente para agrupar datos correspondientes a caractersticas de una cosa. Su estructura es la siguiente:
Como podemos observar, al final de su declaracin es necesario agregar un ; el cual indica que la estructura se ha finalizado.
Posteriormente se declara como cualquier otra variable, tipo creado, espacio, nombre. Ejemplo:
humano Juan;
Y para acceder a cada uno de sus datos simplemente escribimos el objeto creado seguido de un punto y el nombre del dato. Posteriormente se usa como cualquier otra variable.
25
Su uso es muy simple, no hace falta mucha prctica para dominar este tema, aun as, es necesario repasar un poco.
Ejemplo prctico. Humano y caractersticas El programa crea una estructura llamada humano, se declara un objeto de nombre Juan a base de esta estructura, posteriormente pide edad, peso y estatura.
26
La programacin orientada objetos es aquella en la que como su nombre lo dice todo es un objeto, algo parecido a lo que es una clase, un tipo con muchos datos, a este tipo de datos se le conoce como clases, las cuales tienen algunas funciones ms que las estructuras.
La declaracin de una clase es muy parecida a la de una estructura, las diferencias principales estn en sus ms opciones y funciones frente a una estructura. Su forma de declarar es la siguiente:
27
Private y public Una diferencia principal frente a una estructura es que en una clase es posible proteger algunos datos dentro del comando private, y dejar pblicos otros con el comando public. De la siguiente manera:
Los datos privados pueden ser usados y modificados slo desde funciones propias de la clase.
Si es necesario obtener algn valor privado en cualquier parte del programa, podemos simplemente crear una funcin dentro de la clase para que retorne este valor.
Constructor Otra diferencia frente a las estructuras, es que en una clase no se pueden inicializar los datos ms que dentro de una funcin, es decir, no se puede asignar valores a las variables si no se hace desde una funcin propia de la clase.
28
Para estos casos podemos usar lo que se le conoce como un constructor, lo cual es una funcin sin tipo, y la cual se ejecuta al declarar la clase. Este constructor se debe de declarar de forma pblica, y su estructura es la siguiente:
29
Ejemplo prctico. Perros y caractersticas Crear una clase llamada perro, declarar un tipo perro con el nombre max, dar edad al perro, ladrar.
Si deseamos crear una clase y declarar directamente un solo tipo de esta lo podemos hacer en seguida de la llave de cierre de la clase y antes del ;.
30
Herencia La herencia en programacin es aquella parte en la que se crea una clase que como su nombre lo dice hereda caractersticas de otra llamada clase base.
Class clase_hija : public clase_base { // Datos clase_base (no se ven en el codigo) // Datos clase_hija };
Headers (libreras.h)
Una librera de cabecera o header en C++ es un archivo de C++ con extensin .h los cuales integran principalmente funciones ya escritas totalmente funcionales para ser llamadas desde nuestros programas. En C++ estndar existen muchas de estas, entre ellas la iostream, la cual integra todo lo necesario para poder manipular datos (lectura por teclado e impresin por pantalla).
31
Nosotros podemos crear estos headers fcilmente, simplemente escribimos el cdigo de nuestras funciones y lo guardamos con algn nombre que integre terminacin .h
Posteriormente podemos incluirla en nuestros programas, simplemente copiando nuestra librera al directorio de nuestro espacio de trabajo, es decir, la carpeta en la que se encuentra el programa que deseamos que use esta librera.
Ya por ltimo, simplemente incluimos la librera como cualquier otra, simplemente con la diferencia, de que se incluir como librera local, lo cual se hace de la siguiente manera:
#include mi_libreria.h
Como se puede observar la nica diferencia se encuentra en que el nombre de la librera se agrega entre comillas.
32
Goto Goto, es una funcin muy conocida pero tambin muy criticada. Su funcin es nombrar la parte de un programa y poder regresar a ella cuando lo necesitemos, si bien parece til pierde totalmente la estructura del programa por lo que no se recomienda usar, en todo caso, se recomienda ms usar funciones.
Conio.h, gotoxy, getch Es una librera que se encuentra principalmente en compiladores Borland para C++, estos incluyen algunas funciones como gotoxy y getch que pueden resultar algo tiles pero pueden daar la velocidad el programa adems de su portabilidad a otros compiladores o plataformas. Conio.h no es una librera estndar de C++. En todo caso, existen buenas alternativas o las podemos crear manualmente.
33
System() Las funciones de este comando slo estn disponibles en algunos sistemas por lo que al pasar el cdigo a otro sistema puede fallar provocando as errores en el programa. Adems de que esta funcin puede llegar a ralentizar el programa.
34