Manual de C++
Manual de C++
Manual de C++
El programa que vamos a realizar simplemente le dará a una variable el valor del
resultado de sumar 5 + 5, cabe resaltar que en pantalla no se muestra nada por lo que la
ejecución del programa será prácticamente instantánea
Nuestro primer código, consta de 7 líneas, las cuales te explicaré una por una a
continuación:
Línea 1:
Nuestra primer línea contiene el llamado a la función main, la función main(), es la más
importante de todas la funciones (es la madre del programa jejeje), pues es esta la que
nuestro compilador buscará para iniciar la ejecución de nuestro código, si esta función
falta, nuestro programa no podrá arrancar, pues no sabrá desde donde hacerlo. La
función main, como cualquier otra debe tener un tipo, es decir debe tener indicado cual
es el valor que esta va a retornar al final, los tipos de las funciones pueden ser, enteros
(int), decimales simples(float), decimales dobles(double), booleanos(bool), vacíos
(void) entre algunos más. La función main, puede ser cualquiera de estos, pero por
acuerdo, se coloca siempre como entera (int) y siempre retornara 0 (luego hablaré de
esto). En ocasiones (dependiendo del compilador), se puede poner como void (vacía) y
por lo tanto no se puede usar un return, aunque no es recomendable, simplemente por
claridad y evitar errores con compiladores más tradicionales.
Línea 2:
La línea 2 contiene una llave abriendo "{", en C++, se usan las llaves tanto para indicar
el comienzo como el final de cada función, sea cual sea, es decir sea la función main o
cualquiera que tu hayas inventado, debe comenzar con una llave abriendo y terminar
con una cerrando (tiene sentido ¿no?). Es por esto, que esta llave se encuentra ahí,
indicando el inicio de nuestra función main.
Línea 3:
Esta línea, contiene la declaración de una variable llamada numero, presta especial
atención a esta línea, pues es muy sensible a errores al momento de codificar, esta línea
contiene primero el tipo de nuestra variable, en este caso es entera (int) pero podría ser
alguna de las que mencione anteriormente o cualquier otra, lógicamente valida. Esta
línea es sensible, porque tanto en C como en C++ los nombres de las variables son
sensibles a las mayúsculas y a las minúsculas, es decir, para C o C++ la variable numero
y la variable Numero, son dos variables totalmente distintas o la variable Numero y la
variable NuMeRo, debes tener cuidado en no mezclar mayúsculas y minúsculas, así que
acostúmbrate a escribir normalmente en minúsculas. Otro detalle de esta tercera línea es
el punto y coma ";" en C y C++ el punto y coma indican el final de una sentencia (no
una sentencia de muerte o algo así, ¡no te distraigas!), una sentencia es una línea de
código, en la cual se realiza algún tipo de operación, asignación, comparación o
declaración (fíjate! todas terminan en "cion") por ejemplo la línea 3, 5 y 6, son líneas de
sentencia. Así que cada que realices cualquier operación en una línea, esta debe termina
con punto y coma, de lo contrario tendrás errores en tu código. Ten en cuenta que la
línea 1, no es una sentencia, pues aunque allí se está aparentemente declarando a la
función main, no es así, pues el int que hay antes del main() nos indica el tipo de valor
que debe retornar nuestra función, mas no exactamente el tipo que es nuestra función,
por esto no se usa el punto y coma en al línea 1 (ojo! no estoy diciendo que cuando se
declare una función no se use punto y coma, no te enredes con esto, en la línea 1
simplemente se está implementando la función main, mas adelante lo comprenderás,
confía en mi).
Línea 4:
Línea 5:
Esta línea contiene una operación, por lo tanto es una línea de sentencia (mira que
termina con punto y coma), en esta línea, estamos dándole o mejor dicho, asignándole
un valor a la variable numero, que ahora tendrá el valor de la operación matemática 5 +
5 es decir, la variable numero valdrá 10. Ahora que hablo de asignación, quiero
explicarte algo que en ocasiones suele confundir y es que en C++ hay dos operadores
similares pero no idénticos que son el igual "=" y el doble igual "==", en C++ el igual
solo "=" se usa para asignación, es decir para darle a una variable el valor de otra o el
valor de una operación especifica como por ejemplo 5 + 5, mientras que el operador de
doble igual "==" se usa para comparación, es decir para comparar si el valor de una
variable es igual a otro, por ejemplo: escribir numero = 5 + 5; es válido, pero escribir
numero == 5 + 5; nos genera un error de sintaxis, las acciones que realiza cada
operación son distintas, la primera, le asigna el valor que tenga el resultado de 5 + 5
(osea 10 jeje) a la variable "numero" mientras que la segunda verifica si el valor de la
variable "numero" es igual o no a 10. Si no entiendes bien esto último, no te preocupes,
mas adelante lo veremos con más detalle. Recuerda que recién estamos comenzando, así
que no te preocupes si no entiendes mucho, te aseguro que al finalizar este curso sabrás
bien todo esto.
Línea 6:
La línea 6 es otra línea de sentencia, y esta nos indica por medio del return lo que la
función debe retornar, en este caso, nos está diciendo que la función main(), deberá
retornar cero cada vez que termine, en realidad la función main podría retornar
cualquier cosa o incluso nada (void), podría retornar cualquier tipo de variable o incluso
la variable numero misma, pero se ha establecido por acuerdo que siempre debería
retornar 0, pues dado el caso en que retorne otro valor estando la sentencia return 0;
dentro de ella, esto implicaría que hay algún error en la ejecución del programa. Aquí
está la importancia de poner al main retornando un valor de tipo int.
Línea 7:
Finalmente nuestra línea 7 contiene la llave cerrando, esto nos indica que es el fin de la
función main y por tanto el fin de la ejecución de nuestro programa (donde termina el
main, termina todo), cada que nuestro compilador llega a la llave de cierre de la función
main, dará por concluido el proceso de nuestra aplicación, por lo tanto, cualquier línea
que esté por debajo de esta llave de cierre no será ejecutada, a menos que se indique lo
contrario dentro de la función main.
Cabe mencionar que C++ es un lenguaje orientado a objetos y posee una cantidad
enorme de librerías o bibliotecas que podemos usar, estas librerías nos proporcionan una
serie de tipos de datos adicionales que son de enorme utilidad. Sin embargo, estos tipos
ya no son tipos de datos primitivos sino que son tipos complejos y por ende van a
poseer una serie de campos y funcionalidades adicionales que no poseen los tipos
primitivos, pero no te preocupes por esto, en la sección de librerías o bibliotecas de C++
hablo un poco de cómo se usan y los tipos de dato que proporcionan. Luego, en la
sección de objetos y clases, hablaré con más detalle al respecto.
Muy bien, esto ha sido todo en esta sección, ya debes saber que en C++ existen tipos
primitivos y tipos de datos complejos que podemos usar por medio de librerías o
bibliotecas que incluimos en nuestros proyectos.
Las variables son posiciones en memoria donde estarán guardados los diferentes valores
que le damos o que toman duranet ejecución los datos que usamos y normalmente
estarán disponibles a lo largo de la ejecución de nuestro programa. Para asignar valores
a una variable en una gran variedad de lenguajes que incluye a C++ se usa el operador
"=" seguido del valor que le daremos a la variable (no todos usan el "=" para esto).
Veamos un ejemplo completo con todos los posibles usos que le damos a una variable.
En el código anterior hemos visto las multiples formas en que se puede declarar una
variable, cómo asignarle un valor, incluso vimos que es posible asignarle el valor de una
variable a otra, o realizar operaciones entre los valores de variables y asignar el
resultado a una variable nueva, vimos que es posible usar el valor de una misma
variable y cambiar su propio valor (res = res*2).
En C++ se pueden definir constantes de dos forma, ambas válidas para nosotros. La
primera es por medio del comando #define nombre_constante valor y la segunda es
usando la palabra clave const, veamos ahora cada una de estas formas en detalle.
Notemos que ha sido bastante fácil, sin embargo no todo es bueno. Realmente al usar la
instrucción #define en C++ no estámos creando una constante realmente, estamos
creando una expresión y por tal motivo hay algunas cosas que se complican, veamos:
Veamos ahora cual es realmente la forma más adecuada de declarar constantes en C++,
esto se hace por medio de la instrucción const, veamos:
Notemos que de igual forma ha sido bastante fácil y mejor aún ha sido mucho más
intuitivo y sencillo para nosotros. Se puede ver que la declaración es muy similar a la de
una variable cualquiera y que ya no tenemos complicaciones al intentar añadir la
instrucción endl para agregar el salto de línea. Veamos que realmente la variable no
puede cambiar:
En general, la definición de variable y constante nos da una muy buena idea de cuándo
usar una u otra. Básicamente, si un valor puede cambiar en cualquier momento (aunque
la probabilidad de que eso suceda sea baja) entonces deberá ser una variable, en lugar de
una constante.
Un ejemplo para soportar lo anterior sería el nombre del usuario. Podríamos pensar que
un nombre no va a cambiar, y es probable que no lo haga. Sin embargo nada nos
asegura que así sea, pues aunque es improbable es posible. Adicionalmente, nuestro
programa puede cambiar de usuario y por ende su nombre podría variar mientras el
programa se ejecuta. Por lo tanto NO debería ser una constante.
Por otro lado, hay valores que no van a cambiar a lo largo del tiempo. Por ejemplo, la
velocidad de la luz se ha acordado siempre como la misma, así que debería ser una
constante para evitar que sea cambiada de cualquier modo durante la ejecución del
programa. Valores como el número PI, el código de estado de una página no existente
(404), son valores que son convenciones existentes y que NO deberían cambiar, por lo
cual se los declara como constantes.
A que diga
if (velocidad == VELOCIDAD_LUZ)
Pues en el segundo caso, queda muy claro que estamos comparando la variable
velocidad con la de la luz que es una constante. Por supuesto, anteriormente tendríamos
que haber declarado la constante VELOCIDAD_LUZ con su respectivo valor (tal como
se explicó anteriormente).
Vamos a comenzar primero con aprender a mostrar texto por pantalla en C++. Este
orden se debe a que cuando queremos pedirle algún dato al usuario primero debemos
hacerle saber lo que queremos que ingrese y para hacérselo saber debemos mostrarle un
mensaje con las indicaciones, por tal motivo es importante primero saber mostrar texto
en pantalla en C++ y luego a leer texto por teclado en C++.
El ejemplo que acabas de ver es bastante sencillo, excepto por un detalle. Si ejecutar
este código en tu pantalla aparecerá un mensaje diciendo "Hola Mundo Desde
ProgramarYa.". Tal como habrás notado el operador "<<" se usa para concatenar (unir)
dos cadenas de texto por eso el resultado es el obtenido. Luego se usa "\n" lo cual crea
un salto de línea. No es obligatorio pero es recomendable.
En este ejemplo de salida por pantalla hemos visto que también es posible usar la
instrucción cout para mostrar en pantalla el valor de las variables así sean numéricas o
cadenas de texto. También vimos que podemos concatenar los valores de esas variables
entre sí y también concatenarlas con otros valores directamente (espacios, puntos,
símbolos, etc.).
Ahora, veamos los mismos ejemplos, pero usando la función printf de C++, la cual
también es útil para imprimir valores por pantalla
Como puedes ver, al ejecutar el código, el resultado sería el mismo del ejemplo de cout:
"Hola Mundo Desde ProgramarYa", con su respectivo salto de línea al final. Sin
embargo, el código es bastante diferente, pues printf no nos permite concatenar valores
directamente en un solo llamado, así que debemos hacer llamadas sucesivas para
imprimir cada parte del mensaje. Por supuesto, podrías simplemente hacer un solo
llamado a printf con el mensaje completo y sería mucho más sencillo.
Adicionalmente, los llamados a printf requieren que los valores estén al interior de los
paréntesis (), pues printf es más una función que una instrucción propia de C++.
Es cuestión de gustos, pero siempre me ha parecido que cout simplifica bastante las
cosas. Veamos ahora el segundo ejemplo usando printf, porque la cosa se complica:
Ejemplo 2 de impresión de texto por pantalla en C++, usando printf
En este ejemplo usando printf, puedes ver que inicialmente todo es igual, pero al
momento de imprimir, todo cambia. Cuando nec esitas pasar valores a printf, lo haces
con un "%" seguido de una letra. En el caso de un string se usa s (%s) y en el caso de un
número, se usa d (%d). Y luego, se pasa como una serie de argumentos, cada uno de los
valores a usar en ese mismo orden.
Ahora bien, la cosa es aún más compleja en el caso de string, porque printf no soporta el
uso de string, así que debemos pasar es un apuntador a una seria de char. Por suerte, eso
se consigue llamando a la función "c_str()" propia de string.
Ya tenemos claro cómo mostrar texto por pantalla en C++ ahora haremos uso de este
concepto y veremos cómo leer texto por teclado en C++. Veamos:
Veamos unos ejemplos simples para leer datos en C++. Recuerda como dije más arriba
que lo ideal para leer datos es indicarle al usuario qué es lo que esperamos que ingrese
por lo que en estos ejemplos usaremos también lo recién aprendido (mostrar texto por
pantalla).
Acá tienes un caso similar al anterior, pero en esta ocasión se están solicitando números
y luego realizando operaciones matemáticas con ellos.
Vamos ahora a hablar un poco del uso de scanf para leer valores y algunas dificultades
que esto presenta.
El operador scanf al igual que printf fueron ideados para el lenguaje C (no para C++),
por lo cual su uso es más primitivo y, en cierto modo, complejo. Leer datos con scanf
implica comprender un poco el concepto de punteros y particularmente en el caso de
string (que es una librería de C++) se complica aún más, pues debemos convertir ese
string en un array definido de caracteres (char).
Vamos a ver un único ejemplo sobre el uso de scanf y string en C++ para quedar claros
acerca de estas dificultades
Como puedes ver, necesitamos seguir usando la sintaxis tipo "%s" para leer una serie de
caracteres, pero en esta ocasión debimos además especificar el tamaño del mismo (100).
Adicionalmente, en los siguientes argumentos de scanf, pasamos entonces el nombre de
la variable a la cual asignar el valor ingresado por el usuario
El código funciona y te permitirá entonces leer valores por medio de scanf y asignarlos
a una variable. Esto funciona muy bien con números, pero con string o básicamente en
este caso un array de caracteres, debemos lidiar con tamaños constantes (como el 100
que tenemos allí).
Existen diferentes tipos de condicionales, cada uno tiene una utilidad y funcionalidad
diferente, que consideran diferentes situaciones que se pueden llegar a presentar durante
la ejecución de un algoritmo. Depende entonces del conocimiento que tengamos acerca
de cada uno de los condicionales saber determinar correctamente cuando es necesario
implementar uno u otro. Tenemos a nuestra disposición los siguientes tipos de
condicionales en C++:
Condicional If en C++
Condicional if-else en C++
Condicional Switch en C++
Como mencioné anteriormente, cada uno de estos condicionales tiene ciertas
características que lo hacen útil para algunos casos específicos, a lo largo de los
contenidos de esta sección veremos cada uno de estos al detalle, aprendiendo durante el
proceso los componentes de un condicional, sintaxis de los condicionales y esas
características particulares que permiten decidir cual usar en qué momento, veremos
también el concepto de condicionales anidados, y algunas otras cositas
Nota: Al final de cada contenido de esta sección, incluiré varios videos en los que
mostraré algunos ejemplos de aplicación de los conceptos que se expliquen en cada
componente, recuerda también dejar tus comentarios al finalizar cada contenido para
seguir enriqueciendo cada uno de estos con los aportes particulares de todos.
Básicamente, un condicional if, es una estructura que nos posibilita definir las acciones
a ejecutar si se cumple cierta condición y de ese modo modificar la ejecución de tareas
en un programa según se necesite.
Espero haber sido claro, sino, no te preocupes, pues veremos ya mismo algunos
ejemplos para entender todo mejor.
Sintaxis del Condicional If en C++:
La sintaxis de un condicional if, es bastante simple e incluso creo que intuitiva. Vamos
entonces a ver rápidamente como es la estructura para ir luego a unos ejemplos y quedar
bien claros. Veamos:
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar
claros. Posteriormente veremos un ejemplo con valores reales.
Línea 1:
En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para
que se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que
nos da la pauta para que el algoritmo determine si ejecutará o no el bloque de
instrucciones al interior de las llaves.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición
dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se
ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la
declaración del condicional, de modo que si deseamos que se ejecuten varias líneas
dentro de nuestro condicional, debemos usar las llaves
Línea 3 a 7:
En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en
caso de cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias
incluso, como veremos más adelante dentro de estas podría haber uno o más
condicionales en su interior, así que podrías tener lo que se conoce como condicionales
anidados (ya veremos eso más adelante).
Línea 8:
En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya
sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada
la ejecución de este para continuar ejecutando el resto del programa.
Línea 9 a 11
Estas líneas contienen la estructura restante del algoritmo, quise ponerlas allí, para que
quede claro que sin importar si la condición se cumple o no, el algoritmo siempre va a
ejecutar estas líneas, es decir las líneas que se encuentran después de la llave de cierre
de un condicional, siempre se ejecutarán sin importar si la condición se cumpla o no.
No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que
con un par de ejemplos que veremos a continuación, te va a quedar todo claro
Solución Ejemplo 1:
Se les conoce también como estructuras selectivas de casos dobles (porque definen
ambas posibilidades en la ejecución --si se cumple y si no se cumple --).
En resumen, un condicional if-else es una estructura que nos posibilita definir las
acciones que se deben llevar a cabo si se cumple cierta condición y también determinar
las acciones que se deben ejecutar en caso de que no se cumpla; generando así una
separación o bifurcación en la ejecución del programa, ejecutando ciertas acciones u
otras a partir de la evaluación de una condición dada.
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar
claros. Posteriormente veremos un ejemplo con valores reales.
Línea 1:
En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para
que se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que
nos da la pauta para que el algoritmo determine que bloque de instrucciones ejecutar.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición
dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se
ejecutará dentro de nuestro condicional la primera línea inmediatamente posterior a la
declaración del condicional, de modo que si deseamos que se ejecuten varias líneas
dentro de nuestro condicional, debemos usar las llaves
Línea 3 a 7:
En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en
caso de cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias
incluso, como veremos más adelante dentro de estas podría haber uno o más
condicionales en su interior, así que podrías tener todo un condicional dentro de un
condicional dentro de otro condiconal... y así sucesivamente jejeje.
Línea 8:
En esta última línea hacemos uso de la llave cerrando "}", una vez más como
seguramente ya sabrás esta nos indica que allí termina el bloque del condicional y se
dará por terminada la ejecución de este para continuar ejecutando el resto del programa,
cabe notar que esta línea dará paso a la ejecución del bloque de instrucciones del else,
en caso de que la condición dada no se haya cumplido.
Línea 9 a 16
Estas líneas contienen la estructura else, que es la que indica que existe un bloque de
instrucciones que se debe ejecutar en caso de que la condición dada no se cumpla. Este
bloque al igual que el del condicional if, se abre y se cierra con llaves, recuerda que
estas pueden ser opcionales, sin embargo siempre recomiendo usarlas como una buena
práctica de programación.
No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que
con un par de ejemplos que veremos a continuación, te va a quedar todo claro
PRACTICAS DE LABORATORIO #1
Solución Ejemplo 1:
PRACTICAS DE LABORATORIO #2
Hacer un programa en C++ para una tienda de zapatos que tiene una promoción de
descuento para vender al mayor, esta dependerá del número de zapatos que se compren.
Si son más de diez, se les dará un 10% de descuento sobre el total de la compra; si el
número de zapatos es mayor de veinte pero menor de treinta, se le otorga un 20% de
descuento; y si son más treinta zapatos se otorgará un 40% de descuento. El precio de
cada zapato es de $80.
Espero que haya sido un tanto claro con esto, si no es así, recuerda que puedes preguntar
en la sección de comentarios y con gusto te voy a responder o incluso modificar esta
sección para responder tu cuestión, de igual forma, vamos a ver ya mismo unos
ejemplos para entender mucho mejor de lo que he estado hablando.
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar
claros. Posteriormente veremos un ejemplo con valores reales.
Línea 1:
Aquí, tenemos la declaración del condicional switch, estamos diciendo que lo que viene
a continuación es esto, entre los paréntesis, el switch recibe la variable que vamos a usar
para comparar en cada uno de los casos.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como hemos visto en secciones
anteriores, indica que allí comienzan los bloques de instrucciones que se ejecutarán para
cada caso.
Línea 3:
En esta línea tenemos una parte vital del condicional switch, aquí tenemos definido un
caso posible que puede cumplir nuestra variable, la sintaxis es simple, usamos la
instrucción "case" para indicar que allí comienza un caso, luego indicamos el valor que
puede tomar la variable, puede ser un numero, una cadena de caracteres o lo que
necesitemos, de esto se siguen dos puntos ":" y después de estos ponemos la o las
instrucciones a ejecutar para este caso, como ejemplo, podríamos tener algo como esto :
case "Hola": cout << "Usted ha escrito Hola";.
Línea 4:
Esta línea contiene la instrucción break, es una instrucción simple, pero fundamental al
interior del condicional Switch, esta instrucción indica que hasta allí va el bloque de
instrucciones del caso inmediatamente anterior a este, de este modo evitamos que el
algoritmo ejecute los demás casos, a modo de ejercicio, podrías intentar ejecutar el
código del ejemplo que veremos más adelante y quitar las instrucciones break, con esto
podrás comprobar que si el usuario ingresa por ejemplo un 1, se ejecutarán todos los
casos, es por esto que el break es fundamental.
Línea 5 a 8
Líneas 9, 10 y 12
Estas líneas como deberías saber ya, contienen diferentes comentarios aclarativos sobre
el código, en caso de que no comprendas adecuadamente estas líneas, te recomiendo
visitar la sección de comentarios.
Línea 11
Esta línea cambia un poco con respecto a las anteriores, sin embargo conserva la misma
esencia, en vez de poner el comando "case", usamos el comando "default", y luego los 2
puntos ":", notemos que no se pone ningún valor a evaluar, pues esta es la acción que se
ejecuta en caso de que no lleguemos a entrar en ninguno de los casos.
Línea 13:
En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya
sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada
la ejecución de este para continuar ejecutando el resto del programa.
No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que
con un par de ejemplos que veremos a continuación, te va a quedar todo claro
Solución Ejemplo 1:
Primero, determinemos los casos a ejecutar, tenemos tres casos posibles (suponiendo
que nuestro menú está compuesto por 3 opciones) el caso 1 para la opción 1, el dos para
la 2 y así sucesivamente. Nuestro caso por defecto (default) sería el caso de error, que
sucede cuando no se ingresa alguna de las 3 opciones. Veamos entonces como hacer
esto:
cout << "Ingrese la Opción a ejecutar: "; int opcion = 0; cin >>
opcion; switch(opcion) { case 1: cout << "Usted ha seleccionado la
opción 1"; break; case 2: cout << "Usted ha seleccionado la opción 2";
break; case 3: cout << "Usted ha seleccionado la opción 3"; break;
default: cout << "Usted ha ingresado una opción incorrecta"; }
# include "iostream" using namespace std; int main() { cout << "Ingrese
la Opción a ejecutar: "; int opcion = 0; cin >> opcion; switch(opcion)
{ case 1: cout << "Usted ha seleccionado la opción 1"; break; case 2:
cout << "Usted ha seleccionado la opción 2"; break; case 3: cout <<
"Usted ha seleccionado la opción 3"; break; default: cout << "Usted ha
ingresado una opción incorrecta"; } // system("PAUSE"); //Solo ponla
si no te da error return 0; }
Vamos a retomar el ejemplo anterior, pero en esta ocasión vamos a usar caracteres
(char) de C++, para determinar las opciones ingresadas por el usuario.
Solución Ejemplo 2, usando char:
cout << "Ingrese la Opción a ejecutar: "; char opcion; cin >> opcion;
switch(opcion) { case 'a': cout << "Usted ha seleccionado la opción a";
break; case 'b': cout << "Usted ha seleccionado la opción b"; break;
case 'c': cout << "Usted ha seleccionado la opción c"; break; default:
cout << "Usted ha ingresado una opción incorrecta"; }
Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de
entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como
imaginarás existen muchísimas librerías disponibles y todas con una función especifica.
Nota: Existe una discusión sobre el nombre de estos archivos. Muchos personas
consideran que el nombre adecuado es archivos de biblioteca, y estan en lo correcto. Sin
embargo, la mayoría llamamos a estos archivos librerías, y también me incluyo entre
estos. El error proviene del nombre en inglés, que es library. Este término se traduce
como biblioteca, y no como librería. De este modo a lo largo de esta sección las llamaré
de cualquiera de las dos formas, para estár mas claros.
Hay un conjunto de bibliotecas (o librerías) muy especiales, que se incluyen con todos
los compiladores de C y de C++. Son las librerías (o bibliotecas) ANSI o estándar.
También hay librerías que no son parte del estándar pero en esta sección sólo usaremos
algunas bibliotecas (o librerías) ANSI.
Nota 2: Sé que esto pinta aburrido, pero es muy útil y las librerías nos facilitan
enormemente el trabajo a la hora de programar. Recuerda que antes de hablar librerías y
demás es necesario dominar algunos conceptos de fundamentación en general y otros
temas importantes (ciclos, condicionales y demás) Ahora veamos algunas librerías y
como es su sintaxis.
En conclusión: Las librearías son archivos (no siempre externos) que nos permiten
llevar a cabo diferentes tareas sin necesidad de preocuparnos por cómo se hacen sino
simplemente entender cómo usarlas. Las librearías en C++ permiten hacer nuestros
programas más modulares y reutilizables, facilitando además crear programas con
funcionalidades bastante complejas en unas pocas líneas de código.
iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la más
usada e importante (aunque no indispensable).
math: Contiene los prototipos de las funciones y otras definiciones para el uso y
manipulación de funciones matemáticas.
Librería stdio: Contiene los prototipos de las funciones, macros, y tipos para
manipular datos de entrada y salida.
Librería stdlib: Contiene los prototipos de las funciones, macros, y tipos para
utilidades de uso general.
forward_list Esta librería es útil para implementar con gran facilidad listas
enlazadas simples.
Nota: Para más información sobre las librerías estandar de C++ y STL puedes ingresar
aquí
Con esto debió quedar claro, como declarar librerías C++ al interior de un código
fuente. Lo único adicional, es la línea que dice using namespace std; esta línea nos
ayuda a declarar un espacio de nombre que evita tener que usarlo cada que accedemos a
alguna función especifica de una librería. Teniendo este namespace declarado podemos
llamar por ejemplo el comando cout >>, que pertenece a la librería iostream, sin
embargo sin este namespace sería std::cout >>, imagina tener que hacer esto cada vez
que uses algún comando o función de las librerías, sería bastante tedioso.
Por esta razón cuando declaramos el uso del espacio de nombre std por medio de "using
namespace std;", podemos evitar estar escribiendo std::cout o std::cin, etc en nuestro
código.
El espacio de nombre std como tal no es una librería sino simplemente un namespace,
por esta razón no reemplaza la declaración de las librerías del código, simplemente
facilita la escritura de éste al momento de usar las entidades de las librerías estándar. Sin
embargo si vamos a hacer uso de una o varias librerías estándar de C++ es
recomendable que declaremos el namespace std, para no tener que estar constantemente
escribiendo cosas similares a las que puse hace unas líneas como std::cin o similares,
dado que únicamente se puede acceder a la entidades de las librerías estándar por medio
del espacio nombre std.
Muy bien, ahora veamos algunos ejemplos simples del uso de librerías o bibliotecas en
C++
El resultado final de la ejecución de este código debería mostrar por pantalla "Mi lista
contiene lo siguiente: 10 11 18 18 18 19 19 20 30 40 50" que es el resultado final de la
inserción.
Muy bien. He añadido este par de ejemplo a petición de algunos visitantes del sitio y
creo que sí eran muy necesarios, espero que con esto hayas clarificado dudas y
afianzado el concepto.
¡¡¡Bueno!!! Es todo lo que necesitas saber sobre librerías, al menos en la lista que te he
puesto, están las que vamos a usar para ejemplos y ejercicios y algunas otras de mas. Si
deseas información sobre alguna otra o que amplíe la información sobre alguna que ya
esta aquí, házmelo saber por medio de la sección de comentarios
Funciones:
Métodos:
Los métodos y las funciones son funcionalmente idénticos, pero su diferencia radica en
el contexto en el que existen. Un método también puede recibir valores, efectuar
operaciones con estos y retornar valores, sin embargo en método está asociado a un
objeto, básicamente un método es una función que pertenece a un objeto o clase,
mientras que una función existe por sí sola, sin necesidad de un objeto para ser usada.
Procedimientos:
Durante este artículo hablaremos sobre procedimientos y funciones, los métodos son
parte de un tema diferente.
Recordemos que una función siempre retorna algo, por lo tanto es obligatorio declararle
un tipo (el primer componente de la sintaxis anterior), luego debemos darle un nombre a
dicha función, para poder identificarla y llamarla durante la ejecución, después al
interior de paréntesis, podemos poner los argumentos o parámetros. Luego de la
definición de la "firma" de la función, se define su funcionamiento entre llaves; todo lo
que esté dentro de las llaves es parte del cuerpo de la función y éste se ejecuta hasta
llegar a la instrucción return.
Ejemplos de funciones
Veamos algunos ejemplos prácticos de funciones en C++.
Ejemplo 1:
int funcionEntera()//Función sin parámetros { int suma = 5+5; return suma;
//Acá termina la ejecución de la función return 5+5;//Este return nunca se ejecutará
//Intenta intercambiar la línea 3 con la 5 int x = 10; //Esta línea nunca se ejecutará }
Como puedes ver es un ejemplo sencillo, si ejecutas esto, la función te retornará el valor
de suma que es 10 (5+5). Las líneas posteriores no se ejecutarán nunca, aunque no
generan error alguno, no tienen utilidad. Puedes notar que para este caso es lo mismo
haber escrito return suma que escribir return 5+5. Ambas líneas funcionan
equivalentemente.
Ejemplo 2:
char funcionChar(int n)//Función con un parámetro { if(n == 0)//Usamos el
parámetro en la función { return 'a'; //Si n es cero retorna a //Notar que de aquí para
abajo no se ejecuta nada más } return 'x';//Este return sólo se ejecuta cuando n NO es
cero }
Ejemplo 3:
bool funcionBool(int n, string mensaje)//Función con dos parámetros { if(n
== 0)//Usamos el parámetro en la función { cout << mensaje;//Mostramos el mensaje
return 1; //Si n es cero retorna 1 return true;//Equivalente } return 0;//Este
return sólo se ejecuta cuando n NO es cero return false;//Equivalente }
Aquí ya tenemos una función que recibe dos parámetros, uno de ellos es usado en el
condicional y el otro para mostrar su valor por pantalla con cout, esta vez retornamos
valores booleanos 0 y 1, pudo ser true o false también.
Ejemplo de procedimientos
void procedimiento(int n, string nombre) { if(n == 0) { cout << "hola"
<< nombre; return; } cout << "adios" << nombre; }
De este ejemplo podemos ver que ya no se usa un tipo sino que se pone void, indicando
que no retorna valores, también podemos ver que un procedimiento también puede
recibir parámetros o argumentos.
Atención: Los procedimientos también pueden usar la sentencia return, pero no con un
valor. En los procedimientos el return sólo se utiliza para finalizar allí la ejecución de la
función.
nombreFuncion([valor,[valor]...]);
Como puedes notar es bastante sencillo invocar o llamar funciones en C++ (de hecho en
cualquier lenguaje actual), sólo necesitas el nombre de la función y enviarle el valor de
los parámetros. Hay que hacer algunas salvedades respecto a esto.
En el código anterior podemos ver cómo todas las funciones han sido invocadas al
interior de la función main (la función principal), esto nos demuestra que podemos
hacer uso de funciones al interior de otras. También vemos cómo se asigna el valor
retornado por la función a la variable 'respuesta' y finalmente, antes del return, vemos
cómo hemos usado el valor retornado por 'funcionBool' como parámetro del
procedimiento.