programación en C++ desde cero.
y entérate de las novedades o deja un comentario.
Ültima modificación: 13-07-2018.
Visitas este mes: 1
Visitas el mes pasado:
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:
En los distintos manuales incluimosm más webgrafía especifica de cada sección.
Si este sitio te parece interesante puedes contribuir con una pequeña aportación.
Hemos visto cómo para manejar los datos estamos usando la expresion cout << dato; para mostrar los datos en pantalla, y a esto le llamamos salida. También utilizamos la expresión cin >> dato; para recoger un dato que ha escrito el usuario y que se muestra en pantalla, y al que llamamos "entrada".
Vamos a ver más de cerca estas expresiones. Tanto cout como cin son palabras clave asociadas a la librería iostream. Es decir, cuando escribimos al principio del programa #include<iostream> estamos dando permiso para que el programa reconozca y pueda trabajar con todas las palabras clave de la librería iostream.
La palabra cout indica el lugar donde se producirá la salida, es decir que se producirá un flujo estándar de salida, que de forma predeterminada es en la pantalla.
Del mismo modo cin indica dónde se recogerán los datos, mediante un flujo de entrada. De forma predeterminada son los datos que se muestran en pantalla tras introducirlos con el teclado.
Detras de las palabras clave cout y cin siempre escribimos unos signos dobles de
"menor que" o "mayor que" (cout << o cin >> ). De manera que el signo <<
En la parte derecha del operador se escribe el dato al que se le quiere dar entrada o salida. Este dato puede escribirse de forma literal, mediante una variable, una fórmula, una operación, etc.
Si queremos dar salida o entrada a más de un dato en la misma sentencia, después del último dato volvemos a escribir el operador seguido de otro dato. Es decir la escructura es la siguiente
<canal><operador><dato><operador><dato> ... ;
Donde "canal" es el canal de entrada o salida (cout o cin), el operador puede ser también de entrada o salida ( << o >> ), y el dato es el que entra o sale.
Es decir es lo que hemos visto hasta ahora, sólo que queríamos explicarlo de una manera más detenida.
Ahora veamos algunas particularidades de estos operadores:
Este operador se escribe como un doble signo de "menor que" (<<). En la operación de salida, debemos escribir primero el canal de salida, seguido del operador, y después el dato que queremos sacar. Si queremos sacar un segundo dato volvemos a escribir el operador seguido del segundo dato. Para escribir un tercero vloveríamos a escribir el operador seguido del tercer dato, y así sucesivamente.
Como canal de salida, hasta ahora sólo hemos visto cout, pero, como se verá más adelante, es posible tener otros canales de salida, como podría ser el mandar los datos a un fichero o a una base.
Al igual que con el operador de salida, con el operador de entrada también debemos esctibir primero el canal de entrada (cin para entrada estándar), después el operador, y7 después la variable en donde recogeremos el dato. Si queremos recoger mas de un dato, también podemos hacerlo en la misma sentencia, escribiendo de nuevo el operador y después una nueva variable, para un tercer dato repetiríamos el proceso, escribiendo de nuevo el operador y despues la variable, y así sucesivamente para nuevos datos.
cin >> variable1 >> variable2 >> variable3 ... ;
Cuando hay varios datos para ser introducidos por el usuario, este puede introducirlos todos seguidos, separados por espacios y pulsando intro al final de todo, o introducirlos uno a uno, pulsando intro después de cada uno de ellos.
Por ejemplo, tenemos la siguiente entrada:
int a, b, c;
cin >> a >> b >> c;
El usuario puede introducir los tres datos en la misma línea:
3 7 5 <intro>
O introducirlos los tres datos en distintas líneas, pulsando intro después de cada dato:
3 <intro>7 <intro>5 <intro>
En cualquier caso el resultado es el mismo.
Lo mismo ocurre cuando los datos a introducir están en distintas sentencias, incluso si entre ellas hay otro tipo de sentencias, por ejemplo, tenemos las siguientes sentencias:
int a, b, c;
cout << "numero 1 : "; cin >> a;
cout << "numero 2 : "; cin >> b;
cout << "numero 3 : "; cin >> c;
En este caso, cuando al usuario le aparece el texto para introducir el primer número, puede introducir los tres, separados por espacios. De esta manera cuando aparezca el texto para introducir el segundo número éste ya estará, y el programa no se detiene ahí sino que pasa al siguiente, el cual si ya está introducido, tampoco se detiene y sigue hasta el final.
Por supuesto tambien podemos introducir los números uno a uno, y en este caso el programa se dentendrá en cada número, para esperar a que el usuario los introduzca.
Cabe destacar que cuando el usuario introduce datos, escribir un espacio o una tabulación es interpretado como una separación entre dos datos, Como excepción está la función getline(cin, dato) para las cadenas de texto, ya vista anteriormente..
El manual cplusplus.com y otros manuales de referencia consideran la coma como un operador que sirve para separar elementos del mismo tipo, permitiendo que, en donde hay un elemento (normalmente un dato) pueda haber varios que realizan la misma tarea.
Un ejemplo de esto son las declaraciones de variables, en donde se pueden declarar varias variables del mmismo tipo en una sentencia, separándolas por comas.
int a=2, b=5, c;
Del mismo modo se podrían considerar operadores otros elementos como el punto y coma, de final de sentencia, o el punto, que como se verá más adelante sirve para indicar dependencia de unos elementos respecto de otros. Algunos manuales así lo consideran.
Sin embargo nosotros hemos preferido considerarlos simplemente como elementos de la sintaxis del lenguaje de programación, de la misma manera que pueden ser los paréntesis, los corchetes o las llaves.
También es posible que encontremos como operador algunas funciones de c++, como la que hemos visto para la conversión de tipos (ej:int c=char(num)) (página 2_8), o la función sizeof(), que nos dice el tamaño de un dato.
Nosotros preferimos tratar estos elementos como funciones, aunque en algunos sitios los encontramos como operadores.
De igual manera, otros elementos que veremos más adelante, como pueden ser elementos de la sintaxis relacionados con los punteros o con la programación orientada a objetos, pueden considerrse operadores, aunque aquí preferimos nombrarlos como elementos de la sintaxis, o funciones, dependiendo de los casos.
Más adelante se verá lo que son las funciones, los punteros, y otros elementos que hemos nombrado aquí. De momento nos conformamos con saber que existen, y que en algunos sitios nos los podemos encontrar dscritos como operadores.
Cuando se ponen varias operaciones seguidas, puede que no tengamos claro cual es la que tiene prioridad sobre las otras, es decir, cual se realiza primero. Para no equivocarse es más que recomendable escribir entre paréntesis las operaciones que queremos que se realicen las primeras; para en ultimo lugar, operar con los resultados de los paréntesis con los operadores que están fuera de los mismos.
De no poner paréntesis, las operaciones tienen unas preferencias que serán las siguientes:
En principio las operaciones se realizarán siguiendo el flujo del programa, es decir, de izquierda a derecha, salvo cuando una operación tiene preferencia sobre otra.
Para operaciones aritméticas, la multiplicación y división tiene preferencia sobre la suma y la resta.
En operaciones con booleanos, los operadores condicionales tienen prioridad sobre los operadores lógicos.
En el siguiente tema empezamos a ver las estructuras condicionales
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com