You are on page 1of 11

Ejercicios de autoevaluacin

2.1 Complete las siguientes oraciones:


a) Todo programa en C++ empieza su ejecucin en la funcin main.
b) Un(a) llave izquierda ({) empieza el cuerpo de toda funcin, y un(a) llave derecha
(}) termina el cuerpo.
c) Toda instruccin de C++ termina con un(a) punto y coma (;).
d) La secuencia de escape \n representa el carcter nueva lnea, el cual hace que el
cursor se posicione al principio de la siguiente lnea en la pantalla.
e) La instruccin if.se utiliza para tomar decisiones.

2.2 Indique si cada una de las siguientes instrucciones es verdadera o falsa. Si es


falsa, explique por qu. Asuma que se usa
La instruccin using std::cout;
a) Los comentarios hacen que la computadora imprima el texto que va despus de
los caracteres // en la pantalla, al ejecutarse el programa. Falso. Los comentarios
no producen ninguna accin cuando el programa se ejecuta. Se utilizan para
documentar
b) Cuando la secuencia de escape \n se imprime con cout y el operador de insercin
de f lujo, el cursor se posiciona al principio de la siguiente lnea en la pantalla.
Verdadero.
c) Todas las variables deben declararse antes de utilizarlas. Verdadero.
d) Todas las variables deben recibir un tipo al declararlas. Verdadero.
e) C++ considera que las variables nmero y nmero son idnticas. Falso. C++ es
f)

sensible a maysculas y minsculas, por lo que estas variables son distintas.


Las declaraciones pueden aparecer casi en cualquier parte del cuerpo de una

funcin de C++. Verdadero.


g) El operador mdulo (%) se puede utilizar slo con operandos enteros. Verdadero.
h) Los operadores aritmticos *, /, %, + y tienen todos el mismo nivel de
precedencia. Falso. Los operadores *, / y % se encuentran en el mismo nivel de
precedencia, y los operadores + y - se encuentranen un nivel menor de
i)

precedencia.
Un programa en C++ que imprime tres lneas de salida debe contener tres
instrucciones en las que se utilicen cout y el operador de insercin de f lujo. Falso.
Una instruccin con cout y varias secuencias de escape \n puede imprimir varias
lneas.

2.3 Escriba una sola instruccin en C++ para realizar cada una de las siguientes
tareas (suponga que no se han utilizado declaraciones using):
a) Declarar las variables c, estaEsUnaVariable, q76354 y numero como de tipo int. int
c, estaEsUnaVariable, q76354, numero;
b) Pedir al usuario que introduzca un entero. Termine el mensaje del indicador con un
signo de dos puntos (:) seguido de un espacio, y deje el cursor posicionado
despus del espacio. std::cout << "Escriba un entero: ;
c) Recibir un entero como entrada del usuario mediante el teclado, y almacenarlo en
la variable entera edad. std::cin >> edad;
d) Si la variable numero no es igual a 7, mostrar La variable numero no es igual a 7.
if ( numero != 7 )
std::cout << "La variable numero no es igual a 7\n";
e) Imprimir el mensaje "Este es un programa en C++" en una lnea. std::cout << "Este
es un programa en C++\n";
f) Imprimir el mensaje "Este es un programa en C++" en dos lneas. La primera lnea
debe terminar con es un. std::cout << "Este es un\n programa en C++\n";
g) Imprimir el mensaje "Este es un programa en C++"; cada palabra se debe escribir
en una lnea separada. std::cout << "Este\nes\nun\nprograma\nen\nC++\n";
h) Imprimir el mensaje "Este es un programa en C++". Separe una palabra de otra
mediante un tabulador. std::cout << "Este\tes\tun\tprograma\ten\tC++\n"
2.4 Escriba una declaracin (o comentario) para realizar cada una de las siguientes
tareas (suponga que se han utilizado declaraciones using para cin, cout y endl):
a) Indicar que un programa calcular el producto de tres enteros. // Calcula el
producto de tres enteros
b) Declarar las variables x, y, z y resultado de tipo int (en instrucciones separadas).
int x;
int y;
int z;
int result;
c) Pedir al usuario que escriba tres enteros. cout << "Escriba tres enteros: ";
d) Leer tres enteros del usuario y almacenarlos en las variables x, y y z. cin >> x >> y
>> z;
e) Calcular el producto de los tres enteros contenidos en las variables x, y y z, y
asignar el resultado a la variable resultado. resultado = x * y * z;
f) Imprimir "El producto es ", seguido del valor de la variable resultado. cout << "El
producto es " << resultado << endl;
g) Devolver un valor de main, indicando que el programa termin correctamente.
return 0;
2.5 Utilizando las instrucciones que escribi en el ejercicio 2.4, escriba un programa
completo que calcule e imprima el producto de tres enteros. Agregue comentarios
al cdigo donde sea apropiado. [Nota: necesitar escribir las declaraciones using
necesarias.]
a) 1 // Calcula el producto de tres enteros
b) 2 #include <iostream> // permite al programa realizar operaciones de entrada y
salida

c)
d)
e)
f)
g)
h)
i)
j)
k)
l)
m)
n)
o)
p)
q)
r)
s)

3
4 using std::cout; // el programa usa cout
5 using std::cin; // el program usa cin
6 using std::endl; // el programa usa endl
7
8 // la funcin main empieza la ejecucin del programa
9 int main()
10 {
11 int x; // primer entero a multiplicar
12 int y; // segundo entero a multiplicar
13 int z; // tercer entero a multiplicar
14 int resultado; // el producto de los tres enteros
15
16 cout << "Escriba tres enteros: "; // pide los datos al usuario
17 cin >> x >> y >> z; // lee tres enteros del usuario
18 resultado = x * y * z; // multiplica los tres enteros; almacena el resultado
19 cout << "El producto es " << resultado << endl; // imprime el resultado; fin de
lnea
t) 20
u) 21 return 0; // indica que el programa se ejecut correctamente
v) 22 } // fin de la funcin main
2.6 Identifique y corrija los errores en cada una de las siguientes instrucciones
(suponga que se utiliza la instruccin using std::cout):
a)
if ( c < 7 );
cout << "c es menor que 7\n";
Error: punto y coma despus del parntesis derecho de la condicin en la
instruccin if.
Correccin: elimine el punto y coma despus del parntesis derecho. [Nota: el
resultado de este error es que la instruccin
de salida se ejecutar sin importar que la condicin en la instruccin if sea
verdadera o no.] El punto y
coma despus del parntesis derecho es una instruccin nula (o vaca): una
instruccin que no hace nada. En el
siguiente captulo aprenderemos ms acerca de la instruccin nula.
b)

if ( c => 7 )
cout << "c es igual o mayor que 7\n";
Error: el operador relacional =>.
Correccin: cambie => a >=, y tal vez quiera cambiar igual o mayor que a mayor
o igual que, tambin.

2.7 Hable sobre el significado de cada uno de los siguientes objetos:


A) std::cin: Los nombres cin (el f lujo de entrada estndar)
B) std::cout: indica a la computadora que debe realizar una accin
2.8 Complete las siguientes oraciones:
a) __________ se utilizan para documentar un programa y mejorar su legibilidad.

b) El objeto que se utiliza para imprimir informacin en la pantalla es #include


<iostream> // permite al programa imprimir datos en la pantalla.
c) Una instruccin de C++ que toma una decisin es __________.
d) La mayora de los clculos se realizan normalmente mediante instrucciones suma
= numero1 + numero2;
e) El objeto #include <iostream> // recibe valores de entrada del teclado.
2.9 Escriba una sola instruccin o lnea en C++ que realice cada una de las
siguientes tareas:
a) Imprimir el mensaje "Escriba dos numeros". int suma; // suma de numero1 y
numero2
b) Asignar el producto de las variables b y c a la variable a. std::cout << La suma es
<< numero1 + numero2 << std::endl;
c) Indicar que un programa va a realizar un clculo de nmina (es decir, usar texto
que ayude a documentar un programa). // Programa de suma que muestra la suma
de dos enteros.
d) Recibir tres valores de entrada del teclado y colocarlos en las variables enteras a,
b y c.
2.10 Conteste con verdadero o falso a cada una de las siguientes proposiciones; en
caso de ser falso, explique por qu.
A) Los operadores en C++ se evalan de izquierda a derecha. Verdadero.
B) Los siguientes nombres de variables son todos vlidos: _barra_inferior_, m928134,
t5, j7, sus_ventas, su_cuenta_total, a, b, c, z, z2. Verdadero.
C) La instruccin cout << "a = 5;"; es un ejemplo tpico de una instruccin de
asignacin. Falso; no se puede igualar una letra a un nmero.
D) Una expresin aritmtica vlida en C++ sin parntesis se evala de izquierda a
derecha. Falso; una expresin aritmtica lleva parntesis
E) Los siguientes nombres de variables son todos invlidos: 3g, 87, 67h2, h22, 2h.
Verdadero
2.11 Complete cada una de las siguientes oraciones:
a) Qu operaciones aritmticas se encuentran en el mismo nivel de precedencia
que la multiplicacin? La divisin de enteros
b) Cuando los parntesis estn anidados, cul conjunto de parntesis se evala
primero en una expresin aritmtica? Los operadores en el par ms interno de
parntesis se aplican primero Si hay varios pares de parntesis en el mismo nivel
(es decir, no anidados), se evalan de izquierda a derecha.
c) Una ubicacin en la memoria de la computadora que puede contener distintos
valores en distintos momentos durante la ejecucin de un programa se llama
Variable
2.12 Qu se imprime (si acaso) cuando se ejecuta cada una de las siguientes
instrucciones de C++? Si no se imprime nada, entonces responda nada. Suponga
que x = 2 y y = 3.
a) cout << x;
x=2
b) cout << x + x;
4
c) cout << "x=" ;
x=
d) cout << "x = " << x;
2=2
e) cout << x + y << " = " << y + x;
5=5
f) z = x + y;
5

g) cin >> x >> y;


h) // cout << "x + y = " << x + y;
i) cout << "\n";

2>>3
5=5
nulo

2.13 Cules de las siguientes instrucciones de C++ contienen variables, cuyos


valores se modifican?
a) cin >> b >> c >> d >> e >> f;
no
b) p = i + j + k + 7;
si
c) cout << "variables cuyos valores se destruyen";
no
d) cout << "a = 5";
si
2.14 Dada la ecuacin algebraica y = ax3+ 7, cules de las siguientes instrucciones
(si acaso) en C++ son correctas para esta ecuacin?
a) y = a * x * x * x + 7;
Falso
b) y = a * x * x * ( x + 7 );
Falso
c) y = ( a * x ) * x * ( x + 7 );
Falso
d) y = ( a * x ) * x * x + 7;
Verdadero
e) y = a * ( x * x * x ) + 7;
Verdadero
f) y = a * x * ( x * x + 7 );
Falso
2.15 Indique el orden de evaluacin de los operadores en cada una de las siguientes
instrucciones en C++, y muestre el valor de x despus de ejecutar cada una de
ellas:
a) x = 7 + 3 * 6 / 2 1;
b) x = 2 % 2 + 2 * 2 2 / 2;
c) x = ( 3 * 9 * ( 3 + ( 9 * 3 / ( 3 ) ) ) );
a) x: = 7 + 3 * 6 / 2 - 1;

1 *, 2/, 3+, 4 - y x=15

b) x = 2%2 + 2*2-2/2;

1 *, 2%, 3/, 4 + y x=3

c) x = ( 3 * 9 * ( 3 + ( 9 * 3 / ( 3 ) ) ) ); ( 3 8* 9 9* (6 3 +7 (5 9 *3 3 /4 (131) 2)
5) 6); y x=324
2.16 Escriba un programa que pida al usuario que escriba dos nmeros, que
obtenga los nmeros del usuario e imprima la suma, producto, diferencia y cociente
de los nmeros.
// Declaracin de clase 'Aritmetica'

1.
2.
3. {
4.
// Mtodo de clase
5.
public static void main( String[] args )
6.
{
7.
// Declaracin de variables
8.
int x; // Primer nmero entero
9.
int y; // Segundo nmero entero
10.
int suma; // Almacenar el valor obtenido de sumar x e y
11.
int resta; // Almacenar el valor obtenido de restar x menos y
12.
int producto; // Almacenar el valor obtenido de multiplicar x por y
13.
int cociente; // Almacener el valor obtenido de dividir x sobre y

14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
}
48. }

// Instanciacin (creacin) de un objeto de clase 'Scanner'


Scanner entrada = new Scanner( System.in );
// Solicitud de los datos al usuario a travs de la entrada estndar
System.out.print( "Digite el primer nmero entero: ");
x = entrada.nextInt();
System.out.printf( "Digite el segundo nmero entero: ");
y = entrada.nextInt();
// Calcular suma
suma = x + y;
// Calcular resta
resta = x - y;
// Calcular producto
producto = x * y;
// Calcular cociente
cociente = x / y;
// Visualizacin de resultados en la salida estndar (monitor)
System.out.printf( "La suma de %d + %d = %d\n", x , y , suma );
System.out.printf( "La diferencia de %d - %d = %d\n", x , y , resta );
System.out.printf( "El producto de %d * %d = %d\n", x , y , producto );
System.out.printf( "El cociente de %d / %d = %d\n", x , y , cociente);
System.exit(0);

2.17 Escriba un programa que imprima los nmeros del 1 al 4 en la misma lnea, con
cada par de nmeros adyacentes separado por un espacio. Haga esto de varias
formas:
a) Utilizando una instruccin con un operador de insercin de f lujo.
b) Utilizando una instruccin con cuatro operadores de insercin de f lujo.
c) Utilizando cuatro instrucciones.

1.
2.
3.
4.
5.
6.

//mostrar cuatro numeros()


{
System.out.print("1 2 3 4")<< std::endl;
}
{
System.out.print("1")<< std::endl;

7. System.out.print("2")<< std::endl;
8. System.out.print("3")<< std::endl;
9. System.out.print("4")<< std::endl;
10. }
11.
2.18 Escriba un programa que pida al usuario que escriba dos enteros, que obtenga
los nmeros del usuario e imprima el nmero ms grande, seguido de las palabras
"es ms grande". Si los nmeros son iguales, imprima el mensaje "Estos nmeros
son iguales."
1. //Este programa muestra el mayor de dos numeros
2. {
3. string N1;
4. String N2;
5. String resultado="";
6.
7. Int numero 1;
8. Int numero 2;
9. {
10. N1 = ("introdusca el primer entero:");
11.
12. N2=(introdusca el segundo entero:2);
13.
14. If(numero1==numero2)
15. Resultado="estos numeros son iguales";
16.
17. If(numero1>numero2)
18. Resultado="el numero"+numero1+" es mas grande que el "+numero2"
19.
20. If(numero1>numero2)
21. Resultado=numero2+" es mas grande que el "+numero1;
22.
23. //mostrar los resultados
24.
25. Opcionpanel.INFORMACION_MENSAJE);"Estos numeros son iguales"
26.
27. Sistema.exito(0);//aqui termina la aplicacin
28. }
29. }

2.19 Escriba un programa que reciba tres enteros del teclado e imprima la suma,
promedio, producto, menor y mayor de esos nmeros. El dilogo de la pantalla
debe aparecer de la siguiente manera:

1. // Programa que muestra el mayor, menor, producto, promedio, suma de dos


numeros;
2.
{
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
{
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25. }
26. }

// Calcular suma("13 27 14");


suma = x+y+z
// Calcular resta("13 27 14")
resta = x-y-z
// Calcular producto("13 27 14")
producto = x*y*z
// Calcular promedio("13 27 14")
promedio = >>x
// Visualizacin de resultados en la salida estndar (monitor)
System.out.printf( "La suma de %d + %d + %d = %d\n", x , y , suma );
System.out.printf( "La diferencia de %d - %d - %d = %d\n", x , y ,z resta );
System.out.printf( "El producto de %d * %d * %d = %d\n", x , y ,z producto );
System.out.printf( "El promedio de %d / %d / %d = %d\n", x , y ,z promedio);
System.exit(0);

2.20 Escriba un programa que lea el radio de un crculo como un nmero entero y
que imprima su dimetro, circunferencia y rea. Use el valor constante 3.14159 para
. Realice todos los clculos en instrucciones de salida. [Nota: en este captulo
slo hemos visto constantes enteras y variables. En el captulo 4 hablaremos sobre
los nmeros de punto f lotante; es decir, valores que pueden tener puntos
decimales.]
1. // Programa que recibe el radio de un circulo e imprime el dimetro, circunferencia
y rea de ese crculo.

2.
3.
{
4.
double radio;
5. radio=Integer.parseInt(JOptionPane.showInputDialog("Dame el radio del circulo en
metros:"));
6.
7.
String resultado="el diametro es: "+String.valueOf(3.1416*radio)+" M.\nLa
circunferencia es: "
8.
+String.valueOf(Math.PI*radio)
9.
+"M. \nEl area es: "+ String.valueOf(Math.PI*(Math.pow(radio,3.1416)))
+"M3.1416";
10.
11.
JOptionPane.showMessageDialog(null,resultado ,"resultados de las
operaciones",JOptionPane.INFORMATION_MESSAGE);
12.
13. System.exit(0); //terminar la aplicacion
14. }
2.21 Escriba un programa que imprima un cuadro, un valo, una f lecha y un
diamante como se muestra a continuacin:

2.22 Qu imprime el siguiente cdigo?


a) cout << "*\n**\n***\n****\n*****" << endl;
2.23 Escriba un programa que lea cinco enteros y que determine e imprima los
enteros mayor y menor en el grupo. Use solamente las tcnicas de programacin
que aprendi en este captulo.

2.24 Escriba un programa que lea un entero y que determine e imprima si es impar o
par. [Sugerencia: use el operador mdulo. Un nmero par es un mltiplo de dos.
Cualquier mltiplo de dos deja un residuo de cero cuando se divide entre dos.]

2.25 Escriba un programa que lea dos enteros, determine si el primero es un


mltiplo del segundo e imprima el resultado. [Sugerencia: use el operador de
mdulo.]

2.26 Escriba una aplicacin que muestre un patrn de tablero de damas con ocho
instrucciones de salida, y despus muestre el mismo patrn utilizando el menor
nmero de instrucciones posible.

2.27 He aqu un adelanto. En este captulo, aprendi sobre los enteros y el tipo int.
C++ tambin puede representar letras maysculas, minsculas y una considerable
variedad de smbolos especiales. C++ utiliza enteros pequeos de manera interna
para representar cada uno de los distintos caracteres. Al conjunto de caracteres
que utiliza una computadora, y las correspondientes representaciones enteras para
esos caracteres, se le conoce como el conjunto de caracteres de esa computadora.
Podemos imprimir un carcter encerrndolo entre comillas sencillas, como se
muestra a continuacin:
cout << 'A'; // imprimir una letra A mayscula
Podemos imprimir el equivalente entero de un carcter mediante el uso de
static_cast, como se muestra a continuacin:
cout << static_cast< int >( 'A' ); // imprime 'A' como un entero
A esto se le conoce como operacin de conversin (en el captulo 4 presentaremos
formalmente las conversiones). Cuando se ejecuta la instruccin anterior, imprime
el valor 65 (en sistemas que utilizan el conjunto de caracteres ASCII). Escriba un
programa que imprima el equivalente entero de un carcter escrito en el teclado.
Almacene la entrada en una variable de tipo char. Pruebe su programa varias veces,
usando letras maysculas, minsculas, dgitos y caracteres especiales (como $).

2.28 Escriba un programa que reciba como entrada un nmero entero de cinco
dgitos, que separe ese nmero en sus dgitos individuales y los imprima, cada uno
separado de los dems por tres espacios. [Sugerencia: use los operadores de
divisin entera y mdulo.] Por ejemplo, si el usuario escribe el nmero 42339, el
programa debe imprimir:
42339
2.29 Utilizando slo las tcnicas que aprendi en este captulo, escriba un programa
que calcule los cuadrados y cubos de los nmeros enteros del 0 al 10, y que
imprima los valores resultantes en formato de tabla, como se muestra a
continuacin:

You might also like