Sei sulla pagina 1di 14

AprendeAProgramar.

com FOROS TUTORIALES REFERENCIA TESTS

I n t ro d u c c i n a C + + / Introduccin a
Tutoriales C++

Este sitio web usa cookies de terceros para analizar el trfico y personalizar los anuncios. Si no est de acuerdo, abandone el
sitio y no siga navegando por l. Puede saber ms sobre nuestra poltica de cookies (Este aviso se muestra slo una vez en cada
visita al sitio web).

Anterior Posterior Buscar...

2. Operaciones aritmticas y
variables EN LOS FOROS

20-02-2017 16:31
Introduccin a PHP [PHP]

18-02-2017 23:39 Array [C#]


Curso: Introduccin a C++
18-02-2017 21:26
2. Operaciones Aritmticas Y Variables Agrupaciones, pero moctrar
el resto de columnas de la
2.1. Escribir varios textos agrupacin [Python]

Si no queremos escribir slo un texto, podemos indicar varios textos entre comillas, 18-02-2017 20:31 tuplas
siempre precedidos por dos smbolos de "menor que": python [Python]
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
// Ejemplo 02.01 en C++ 18-02-2017 20:26 bucles lista
python [Python]
#include <iostream>
(Anteriores...)
int main ()
{
std::cout << "Hola, " << "Nacho";
return 0;
}

Parece que no aporta mucho: el resultado es el mismo que en el programa del


apartado anterior, as que sigamos mejorndolo

Ejercicios propuestos

(2.1.1) Crea un programa, que en vez de decir "Hola, mundo", te salude a ti por tu
nombre (por ejemplo, "Hola, Nacho", usando varios textos independientes, como
en el ejemplo 2.

2.2. Escribir nmeros


Esta variante del programa anterior s resulta ms interesante:

// Ejemplo 02.02 en C++

#include <iostream>

int main ()
{
std::cout << "5+7=" << 5+7;
return 0;
}

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Su resultado ser 5+7=12. Es decir, lo que hemos escrito entre comillas se muestra "tal
cual". Por el contrario, lo que escribamos sin comillas, se analiza para ver cual puede
ser su significado. En este caso, nuestro compilador (la herramienta que analiza
nuestro programa en C++ y genera un programa ejecutable) ve que se trata de una
operacin, y calcula (y muestra) el resultado de dicha operacin.

Ejercicios propuestos

(2.2.1) Crea un programa que muestre la suma de 25 y 34.


(2.2.2) Crea un programa que muestre la suma de 12345, 112233 y 67890.
(2.2.3) Crea un programa que muestra la suma de 123456789012 y 90123456789.

2.3. Operaciones matemticas


Doy por sentado que sabes que el smbolo "+" se usa para sumar. Lo que quiz no sea
tan evidente para ti es que el smbolo "*" es el que se emplea para multiplicar. Las
operaciones bsicas son:

Operador Operacin

+ Suma

- Resta, negacin

* Multiplicacin

/ Divisin

Ejercicios propuestos

(2.3.1) Crea un programa que muestre la diferencia entre 100 y 39.


(2.3.2) Crea un programa que muestre el producto de 36 y 59.
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
(2.3.3) Crea un programa que muestre el producto de 72 y -14.
(2.3.4) Crea un programa que muestre el producto de 123456789 y 987654321.
(2.3.5) Crea un programa que muestre la divisin de 100 entre 25
(2.3.4) Crea un programa que muestre la divisin de 10 entre 4

2.4. Pedir datos al usuario


Un programa en el que todos los datos estn prefijados es poco til: no tiene sentido
necesitar modificar el puente y recompilar cada vez que hay que probar datos nuevos.
Lo habitual es que esos datos los introduzca el usuario, o se lean de un fichero, o de
una base de datos, o desde una red de ordenadores (Internet o cualquier otra). Iremos
viendo esas alternativas, pero vamos a empezar por la ms fcil: que sea el usuario
quien introduzca los datos.

Usaremos la orden "cin" para leer datos, y deberemos indicar dnde queremos
guardarlos.

Ese lugar donde guardar los datos ser un espacio de memoria al que daremos un
nombre. Esto es lo que se conoce como una "variable". Una variable necesita dos
datos: el nombre con el que nos referiremos a ella y el tipo de datos que queremos
guardar en ella. Por ahora slo .Usaremos la orden "cin" para leer datos, y deberemos
indicar dnde queremos guardarlos.

As, un program que pida un nmero al usuario y muestre su triple podra ser as:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


// Ejemplo 02.03 en C++

#include <iostream>

int main ()
{
int numero;
std::cout << "Dime un nmero: ";
std::cin >> numero;
std::cout << "El triple de tu nmero es " << numero*3;
return 0;
}

Donde:

int numero; sirve para declarar una variable llamada "numero", que usaremos
para almacenar un nmero entero ("int").
std::cin >> numero; se encarga de leer lo que introduzca el usuario y de
guardarlo dentro de la variable "numero". (Atencin: se usan smbolos de "mayor
que", al contrario que en "cout", como forma de expresar que los datos van
"hacia la variable".
std::cout << numero*3; escribe el triple del nmero. Como ya habamos visto, no
hay comillas, por lo que el compilador realiza la operacin correspondiente y
muestra su resultado.

Y un programa que sume dos nmeros introducidos por el usuario sera:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


// Ejemplo 02.04 en C++

#include <iostream>

int main ()
{
int n1;
int n2;
int suma;

std::cout << "Dime un numero: ";


std::cin >> n1;
std::cout << "Dime otro numero: ";
std::cin >> n2;
suma = n1 + n2;
std::cout << "Su suma es " << suma;

return 0;
}

Hay muy pocas novedades. Slo merece la pena destacar que usamosdos variables
para los datos que introduce el usuario, y una tercera variable para calcular la suma
antes de mostrarla.

Cuando vamos, como en este caso, a usar varias variables que son todas del mismo
tipo, podemos declarar todas ellas a la vez, as:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


// Ejemplo 02.05 en C++

#include <iostream>

int main ()
{
int n1, n2, suma;

std::cout << "Dime un numero: ";


std::cin >> n1;
std::cout << "Dime otro numero: ";
std::cin >> n2;
suma = n1 + n2;
std::cout << "Su suma es " << suma;

return 0;
}

Ejercicios propuestos

(2.4.1) Crea un programa que pida dos nmeros al usuario y muestre su


producto.
(2.4.2) Crea un programa que pida dos nmeros al usuario y muestre su
diferencia.
(2.4.3) Crea un programa que pida dos nmeros al usuario y muestre la divisin
del primero entre el segundo.
(2.4.4) Crea un programa que pida tres nmeros al usuario y muestre su suma.
(2.4.5) Crea un programa que pida dos nmeros al usuario (que llamaremos "a" y
"b"), y muestre el resultado de (a+b)(a-b) y el de a2-b2.

2.5. Escribir en varias lneas


Hasta ahora, hemos escrito todo en la misma lnea. No es grave, porque los primeros
programas eran muy sencillos, y en los ltimos, el hecho de usar "cin" ayudaba a que
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
el cursor bajase a la lnea siguiente de pantalla tras cada introduccin de datos. Pero
en ocasiones querremos que un texto aparezca en una lnea y otro en la lnea siguiente,
sin necesidad de que el usuario introduzca datos. Para conseguirlo, enviaremos a cout
algo llamado "std::endl", as:

// Ejemplo 02.6 en C++

#include <iostream>

int main ()
{
std::cout << "Primera lnea" << std::endl;
std::cout << "Segunda" << std::endl << "y tercera"
<< std::endl;
return 0;
}

Ejercicios propuestos

(2.5.1) Crea un programa que te pida tu nombre, y te salude en dos lneas. En la


primer lnea aparecer "Hola" y tu nombre; en la segunda lnea aparecer
"Cmo ests?"

2.6. Evitemos escribir "std::"


Si nos resulta pesado escribir "std::" delante de cada "cout" y de cada "cin", existe una
solucin, sencilla: aadir "using namespace std; al principio del programa. Ya
hablaremos de "espacios de nombres" ms adelante, pero de momento nos
limitaremos a ver una versin alternativa del ejercicio 02.05 que emplee esa
construccin:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


// Ejemplo 02.07 en C++

#include <iostream>
using namespace std;

int main ()
{
int n1;
int n2;
int suma;

cout << "Dime un numero: ";


cin >> n1;
cout << "Dime otro numero: ";
cin >> n2;
suma = n1 + n2;
cout << "Su suma es " << suma;

return 0;
}

Ejercicios propuestos

(2.6.1) Crea un programa que pida te pida tres nmeros y muestre su producto.
No debes usar "std::" sino "using".

2.7. Nmeros con decimales


Si has hecho todos los ejercicios propuestos, habrs notado que, como siempre
estamos usando nmeros enteros, el resultado tambin es un nmero entero. Eso es
especialmente desconcertante en el caso de las divisiones: podramos esperar que
10/2 diera como resultado 2.5, pero obtenemos 2.

La alternativa es usar otro tipo de datos, uno que s permite guardar nmeros reales
(con cifras decimales), de modo que los resultados tambin tengan decimales. Bastar
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
con cambiar "int" por "float":

// Ejemplo 02.08 en C++

#include <iostream>
using namespace std;

int main ()
{
float n1, n2, suma;

cout << "Dime un numero: ";


cin >> n1;
cout << "Dime otro numero: ";
cin >> n2;
suma = n1 + n2;
cout << "Su suma es " << suma;

return 0;
}

Pronto detallaremos que existen ms tipos de datos: enteros que permiten almacenar
ms o menos cifras, y reales que tienen ms o menos precisin. Pero para empezar a
practicar nos bastar con "int" y "float".

Ejercicios propuestos

(2.7.1) Crea un programa que pida te pida dos nmeros reales y muestre su
divisin. Comprueba si esta vez s aparecen correctamente los decimales.

2.8. La operacin "mdulo"


Una quinta operacin aritmtica, que no es especialmente frecuente en "el mundo
real", pero s en la programacin de ordenadores, es la operacin "mdulo", el resto de

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


la divisin. Para ella se usa el smbolo "%". As, una operacin como "25%4" (25
mdulo 4) dara como resultado "1" (el resto que se obtiene al dividir 25 entre 4).

Y por qu se usa con frecuencia? Porque es una forma sencilla de saber si un nmero
es mltiplo de otro: en ese caso, el resto de la divisin ser 0. As podremos darnos
cuenta de cundo un nmero es par (mltiplo de 2), o hacer una pausa tras mostrar
cada bloque de 25 datos, por ejemplo. Lo usaremos mucho en los dos siguientes
temas.

Ejercicios propuestos

(2.8.1) Crea un programa que pida te pida dos nmeros enteros y muestre su
divisin y el resto de esa divisin.

2.9. Incremento y decremento


Hay otra operacin que es muy frecuente cuando se crean programas, pero que no
tiene un smbolo especfico para representarla en matemticas. Es incrementar el
valor de una variable en una unidad:

a = a+1;

Pues bien, en C y C++, existe una notacin ms compacta para esta operacin, y para la
opuesta (el decremento):

a++; // es lo mismo que a = a+1;


a--; // es lo mismo que a = a-1;

Pero esto tiene ms misterio todava del que puede parecer en un primer vistazo:
podemos distinguir entre "preincremento" y "postincremento". En C es posible hacer
asignaciones como
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
b = a++;

As, si "a" vala 2, lo que esta instruccin hace es dar a "b" el valor de "a" y aumentar el
valor de "a". Por tanto, al final tenemos que b=2 y a=3 (postincremento: se incrementa
"a" tras asignar su valor).

En cambio, si escribimos

b = ++a;

y "a" vala 2, primero aumentamos "a" y luego los asignamos a "b" (preincremento), de
modo que a=3 y b=3.

Por supuesto, tambin podemos distinguir postdecremento (a--) y predecremento (--


a).

Ejercicios propuestos:

(2.9.1) Crear un programa que use tres variables x,y,z. Sus valores iniciales sern
15, -10, 2.147.483.647. Se deber incrementar el valor de estas variables. Qu
valores esperas que se obtengan? Contrstalo con el resultado obtenido por el
programa.
(2.9.2) Cul sera el resultado de las siguientes operaciones? a=5; b=++a; c=a++;
b=b*5; a=a*2;

Y ya que estamos hablando de las asignaciones, hay que comentar que en C y en C++ es
posible hacer asignaciones mltiples:

a = b = c = 1;

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


2.10. Operaciones abreviadas: +=
Pero an hay ms. Tenemos incluso formas reducidas de escribir cosas como "a =
a+5". All van

a += b ; // es lo mismo que a = a+b;


a -= b ; // es lo mismo que a = a-b;
a *= b ; // es lo mismo que a = a*b;
a /= b ; // es lo mismo que a = a/b;
a %= b ; // es lo mismo que a = a%b;

Ejercicios propuestos:

(2.10.1) Crear un programa que use tres variables x,y,z. Sus valores iniciales
sern 15, -10, 214. Se deber incrementar el valor de estas variables en 12,
usando el formato abreviado. Qu valores esperas que se obtengan?
Contrstalo con el resultado obtenido por el programa.
(2.10.2) Cul sera el resultado de las siguientes operaciones? a=5; b=a+2; b-=3;
c=-3; c*=2; ++c; a*=b;

Actualizado el: 29-08-2013 15:42

Anterior Posterior

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Contactar
APRENDEAPROGRAMAR.COM MAPA DEL SITIO N OVEDADES
Quines somos?
Cursos gratuitos de Tutoriales 22-03-2015: Puedes votar
programacion de ordenadores, Foros cuando te guste una respuesta
en espaol Referencia 17-10-2014: Se pueden hacer
Por qu? tests de repaso
Preguntas frecuentes Anteriores...

AprendeAprogramar.com - Copyright (c) 2006-2016

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf