Está en la página 1de 20

2

Nociones bsicas





Problema 1
Escriba un programa que calcule la suma de los N primeros nmeros enteros positivos. Utilice
la siguiente frmula:
2
) 1 ( +
=
N N
S
Anlisis
Para la solucin del problema se requiere que el usuario ingrese un entero positivo N y a con-
tinuacin el programa evala la frmula dada e imprime el resultado S.

Codificacin

import java.util.Scanner;

public class Suma {

public static void main(String[] args) {

// Variables
int n, s;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese un entero positivo? ");
n = scanner.nextInt();

// Proceso
s = (n * (n + 1)) / 2;

// Salida
System.out.println("Suma = " + s);
}
}


Ejecucin

Ingrese un entero positivo? 10
Suma = 55

Problema 2
Escriba un programa que lea dos nmeros mediante el teclado y efecte las cuatro operaciones
aritmticas bsicas. Presente los resultados en pantalla.

Anlisis
La solucin del problema requiere de la lectura de dos nmeros reales N1 y N2, a continuacin
el programa realiza las operaciones respectivas (adicin, sustraccin, multiplicacin y divi-
sin) e imprime los resultados. Cabe sealar que estamos asumiendo que en todos los casos el
usuario ingresar datos coherentes (por ejemplo, N2 0).

Codificacin

import java.util.Scanner;

public class Calculadora {

public static void main(String[] args) {

// Variables
double n1, n2, s, d, p, q;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese operando 1? ");
n1 = scanner.nextDouble();
System.out.print("Ingrese operando 2? ");
n2 = scanner.nextDouble();

// Proceso
s = n1 + n2;
d = n1 - n2;
p = n1 * n2;
q = n1 / n2;

// Salida
System.out.println("Suma = " + s);
System.out.println("Diferencia = " + d);
System.out.println("Producto = " + p);
System.out.println("Cociente = " + q);
}
}


Ejecucin

Ingrese operando 1? 7
Ingrese operando 2? 2
Suma = 9.0
Diferencia = 5.0
Producto = 14.0
Cociente = 3.5



Problema 3
Se tiene un cajero automtico el cual permite manipular cierta cantidad de dinero para lo cual
dispone de los siguientes billetes: S/. 10, S/. 20, S/. 50, S/. 100 y S/. 200. Elaborar un progra-
ma que permita la lectura de la cantidad a retirar, la cual debe ser mltiplo de 10. El programa
debe indicar el menor nmero de billetes a utilizar. La salida por pantalla deber ser similar a
la siguiente:

C A J E R O A U T O M T I C O
Cantidad a retirar S/. 580
Billetes de S/. 10 : 1
Billetes de S/. 20 : 1
Billetes de S/. 50 : 1
Billetes de S/. 100 : 1
Billetes de S/. 200 : 2

Anlisis
Para la solucin de este problema ser necesario emplear los operadores aritmticos DIV (/) y
MOD (%).

As para determinar el menor nmero de billetes de S/. 200 contenidos en S/. 580 obtenemos
el cociente entero (parte entera) de la divisin entre ambas cantidades, es decir:

B200 = 580 / 200 = 2

Ahora tenemos que actualizar el monto inicial, hay que descontar S/. 400 equivalentes a los 2
billetes de S/. 200 calculados en el paso previo, para ello calculamos el resto o residuo de la
divisin anterior:

M = 580 % 200 = 180

Para determinar el menor nmero de billetes de S/. 100 contenidos en S/. 180 hacemos:

B100 = 180 / 100 = 1

Actualizamos nuevamente el monto:

M = 180 % 100 = 80

Repetimos el proceso hasta obtener los billetes de las otras denominaciones:

B50 = 80 / 50 = 1
M = 80 % 50 = 30

B20 = 30 / 20 = 1
M = 30 % 20 = 10

B10 = 10 / 10 = 1

Finalmente el programa imprime B10, B20, B50, B100 y B200.
Codificacin

import java.util.Scanner;

public class CajeroAutomatico {

public static void main(String[] args) {

// Variables
int m, aux, b10, b20, b50, b100, b200;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Cantidad a retirar? ");
m = scanner.nextInt();

// Proceso
aux = m;
b200 = aux / 200;
aux = aux % 200;
b100 = aux / 100;
aux = aux % 100;
b50 = aux / 50;
aux = aux % 50;
b20 = aux / 20;
aux = aux % 20;
b10 = aux / 10;

// Salida
System.out.println("C A J E R O A U T O M T I C O");
System.out.println("Cantidad a retirar S/. " + m);
System.out.println("Billetes de S/. : " + b10);
System.out.println("Billetes de S/. : " + b20);
System.out.println("Billetes de S/. : " + b50);
System.out.println("Billetes de S/. : " + b100);
System.out.println("Billetes de S/. : " + b200);
}
}


Ejecucin

Cantidad a retirar? 740
C A J E R O A U T O M T I C O
Cantidad a retirar S/. 740
Billetes de S/. : 0
Billetes de S/. : 2
Billetes de S/. : 0
Billetes de S/. : 1
Billetes de S/. : 3


Problema 4
Escriba un programa que permita convertir un volumen dado en galones (gal) a su equivalente
en litros (L). El programa leer la cantidad de galones e imprimir la cantidad de litros corres-
pondientes. Utilice el factor de conversin 3,7853 L/gal.
Anlisis
La solucin del problema pasa por solicitar al usuario el nmero de galones a convertir, por
ejemplo VG = 2 gal.

Luego, el nmero el volumen en litros VL est dado por:

L 5706 , 7
gal
L
7853 , 3 gal 2 = =
L
V

Finalmente el programa imprime VL.

Codificacin

import java.util.Scanner;

public class Volumen {

public static void main(String[] args) {

// Constantes
final double FACTOR = 3.7853;

// Variables
double v;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese volumen en gal? ");
v = scanner.nextDouble();

// Proceso
v = v * FACTOR;

// Salida
System.out.println("Volumen = " + v + " L");
}
}


Ejecucin

Ingrese volumen en gal? 2
Volumen = 7.5706 L


Problema 5
Escriba un programa que calcule e imprima la superficie (S) de un crculo en funcin de su
radio (r) que ser ledo desde el teclado. Recuerde que S = r
2
.

Anlisis
Para la solucin del problema se solicita al usuario que ingrese un valor numrico correspon-
diente al radio del crculo (se asume que en todos los casos r > 0), luego el programa evala la
frmula para calcular la superficie del crculo e imprime los resultados. El valor de la constan-
te se tomar como 3,141592.

Codificacin

import java.util.Scanner;

public class AreaCirculo {

public static void main(String[] args) {

// Constantes
final double PI = 3.141592;

// Variables
double r, s;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese radio del crculo (r > o)? ");
r = scanner.nextDouble();

// Proceso
s = PI * r * r;

// Salida
System.out.println("rea del crculo = " + s);
}
}


Ejecucin

Ingrese radio del crculo (r > o)? 2
rea del crculo = 12.566368


Importante
La biblioteca de clases de Java incluye una clase llamada Math en su paquete java.lang, la
que cuenta con la constante predefinida PI que proporciona el valor del nmero . Por lo tanto
en la codificacin anterior podra omitirse la definicin de la constante y simplemente usarse
la predefinida de Java, tal como se muestra a continuacin:


s = Math.PI * r * r;


Problema 6
Escriba un programa que lea una temperatura en grados Celsius (C) y a continuacin muestre
los valores equivalentes en grados Fahrenheit (F), Kelvin (K) y Ranking (R).

9
492
5
273
9
32
5

=

=
R K F C
T T T T

Anlisis
La solucin de este problema implica que el usuario ingrese un valor de temperatura en C y
el programa evale las siguientes frmulas obtenidas de la expresin general:

32
5
9
+ =
C F
T T 273 + =
C K
T T 492
5
9
+ =
C R
T T

Finalmente el programa imprime los valores de TF, TK y TR.

Codificacin

import java.util.Scanner;

public class Temperatura {

public static void main(String[] args) {

// Variables
double tC, tF, tK, tR;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese temperatura en C? ");
tC = scanner.nextDouble();

// Proceso
tF = 1.8 * tC + 32;
tK = tC + 273;
tR = 1.8 * tC + 492;

// Salida
System.out.println("TC = " + tC + " C");
System.out.println("TF = " + tF + " F");
System.out.println("TK = " + tK + " K");
System.out.println("TR = " + tR + " R");
}
}


Ejecucin

Ingrese temperatura en C? 100
TC = 100.0 C
TF = 212.0 F
TK = 373.0 K
TR = 672.0 R


Importante
Obsrvese que en la codificacin anterior al evaluar TF y TR en vez de utilizar 9/5 hemos utili-
zado el valor equivalente 1,8. Esto debido a que en Java se cumple la ley de cerradura dado
que al evaluar una expresin si todos los operandos son enteros, el resultado tambin ser
entero. Otra alternativa igualmente vlida es usar la transformacin de tipos o casting. Pasar
por alto esta observacin nos hubiera conducido a resultados inesperados.
Problema 7
Escriba un programa que lea 4 calificaciones y calcule el promedio de las mismas consideran-
do las 3 calificaciones ms altas. Visualice el promedio con 2 cifras decimales.

Anlisis
Para obtener la solucin de este problema debe solicitarse al usuario el ingreso de las 4 califi-
caciones N1, N2, N3 y N4. En seguida el programa debe determinar la calificacin ms baja
Nmin, para ello hacemos:
Nmin = min{N1, N2, N3, N4}

Donde la funcin min compara los valores de N1, N2, N3 y N4 y retorna el menor valor. Java
cuenta con el mtodo Math.min(a, b) del paquete java.lang que cumple anloga funcin.

Por lo tanto el promedio considerando las 3 notas ms altas se obtiene mediante:

3
4 3 2 1
min N N N N N
om Pr
+ + +
=

Finalmente se imprime Prom con un ancho de 5 posiciones: 2 para la parte entera, 1 para la
coma y 2 para la parte decimal (%5.2f).

Codificacin

Import java.util.Scanner;

public class Promedio {

public static void main(String[] args) {

// Variables
double n1, n2, n3, n4, nmin, promedio;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese Nota 1? ");
n1 = scanner.nextDouble();
System.out.print("Ingrese Nota 2? ");
n2 = scanner.nextDouble();
System.out.print("Ingrese Nota 3? ");
n3 = scanner.nextDouble();
System.out.print("Ingrese Nota 4? ");
n4 = scanner.nextDouble();

// Proceso
nmin = Math.min(n1, Math.min(n2, Math.min(n3, n4)));
promedio = (n1 + n2 +n3 + n4 - nmin) / 3;



// Salida
System.out.printf("Promedio = %5.2f\n", promedio);
}
}

Ejecucin

Ingrese Nota 1? 12
Ingrese Nota 2? 14
Ingrese Nota 3? 10
Ingrese Nota 4? 15
Promedio = 13.67


Problema 8
La relacin entre los catetos (a y b) de un tringulo rectngulo y la hipotenusa (h) viene dada
por el famoso teorema de Pitgoras:
2 2 2
h b a = +

Escribir un programa que lea la longitud de cada cateto y calcule el valor de la hipotenusa.

Anlisis
La solucin de este problema requiere que el usuario ingrese dos nmeros reales a y b corres-
pondientes a las longitudes de cada lado o cateto, luego del teorema de Pitgoras se despeja la
hipotenusa:
2 2
b a h + =

Java cuenta con el mtodo Math.sqrt(x) del paquete java.lang que retorna el valor de la raz
cuadrada de x (donde x no puede ser negativo).

Finalmente el programa imprimir el valor de h.

Codificacin

import java.util.Scanner;

public class Pitagoras {

public static void main(String[] args) {

// Variables
double a, b, h;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese cateto a? ");
a = scanner.nextDouble();
System.out.print("Ingrese cateto b? ");
b = scanner.nextDouble();

// Proceso
h = Math.sqrt(a * a + b * b);

// Salida
System.out.println("Hipotenusa = " + h);
}
}

Ejecucin

Ingrese cateto a? 3
Ingrese cateto b? 4
Hipotenusa = 5.0


Importante
Java cuenta con el mtodo Math.hypot(a, b) del paquete java.lang que retorna el valor de la
hipotenusa en funcin de los catetos a y b.


// Proceso
h = Math.hypot(a, b);


Problema 9
Escriba un programa para resolver un tringulo rectngulo conociendo la medida de un ngulo
agudo y la longitud de la hipotenusa h. Es decir, el programa deber determinar e imprimir
las longitudes de los catetos m y n.
h

n
m

Anlisis
Para la solucin de este problema la idea es generar una razn trigonomtrica para con el
lado conocido, en este caso h, y el lado incgnita, en este caso m y n. Es decir:

h
m
= sen sen h m =

h
n
= cos cos h n =

Por ltimo el programa imprimir los valores de m y n.

Codificacin

import java.util.Scanner;

public class ResolucionTriangulos {

public static void main(String[] args) {

// Constantes
final double FACTOR = Math.PI/180;


// Variables
double m, n, h, theta;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese h? ");
h = scanner.nextDouble();
System.out.print("Ingrese en grados sexagesimales? ");
theta = scanner.nextDouble();

// Proceso
theta = theta * FACTOR;
m = h * Math.sin(theta);
n = h * Math.cos(theta);

// Salida
System.out.println("m = " + m);
System.out.println("n = " + n);
}
}


Ejecucin

Ingrese h? 10
Ingrese en grados sexagesimales? 60
m = 8.660254037844386
n = 5.000000000000001


Importante
Java cuenta con los mtodos Math.sin() y Math.cos() del paquete java.lang los que permi-
ten calcular el seno y el coseno del ngulo . Sin embargo, hay que tener en consideracin que
el valor de debe estar en radianes. Por lo tanto es necesario convertir el valor del ngulo de
grados sexagesimales a su equivalente en radianes. Recuerde que rad equivale a 180.

Sin embargo, Java proporciona los mtodos Math.toRadians() y Math.toDegrees() del
paquete java.lang, que permiten convertir el valor de un ngulo dado en grados sexagesimales
a su equivalente en radianes y viceversa. En caso de hacer uso de estos mtodos ya no es ne-
cesario utilizar el factor de conversin.


// Proceso
theta = Math.toRadians(theta);
m = h * Math.sin(theta);
n = h * Math.cos(theta);


Problema 10
Escriba un programa que lea la parte real (Re) y la parte imaginaria (Im) de un nmero com-
plejo z = (a, b) y calcule el mdulo (r) y el argumento () del mismo. El programa debe im-
primir por pantalla la representacin rectangular, la representacin polar y la representacin
exponencial del complejo.
Anlisis
Un nmero complejo es de la forma z = (a, b) donde a es la parte real y b es la parte imagina-
ria. El programa debe solicitar al usuario que ingrese los valores de a y b (ambos reales).

El mdulo del complejo est dado por:
2 2
b a r + =

El argumento del complejo est dado por:
|
.
|

\
|
=
a
b
arctan

La representacin rectangular del complejo es:

i b a z + =

La representacin polar del complejo es:

cis ) sen (cos r i r z = + =

La representacin exponencial del complejo es:

u i
re z =

Donde i es la unidad imaginaria ( 1 = i ).

Codificacin

import java.util.Scanner;

public class Complejo {

public static void main(String[] args) {

// Variables
double re, im, r, theta;
String rect, polar, exp;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese la parte real de z? ");
re = scanner.nextDouble();
System.out.print("Ingrese la parte imaginaria de z? ");
im = scanner.nextDouble();

// Proceso
r = Math.sqrt(re * re + im * im);
theta = Math.atan(im/re);
theta = Math.toDegrees(theta);
rect = "z = " + re + " + " + im + " i";
polar = "z = " + r + " cis " + theta + "";
exp = "z = " + r + " e^" + "(i " + theta + ")";



// Salida
System.out.println("Representacin rectangular:");
System.out.println(rect);
System.out.println("Representacin polar:");
System.out.println(polar);
System.out.println("Representacin exponencial:");
System.out.println(exp);
}
}


Ejecucin

Ingrese la parte real de z? 3
Ingrese la parte imaginaria de z? 4
Representacin rectangular:
z = 3.0 + 4.0 i
Representacin polar:
z = 5.0 cis 53.13010235415598
Representacin exponencial:
z = 5.0 e^(i 53.13010235415598)


Problema 11
Escriba un programa que visualice la fecha (dd-mm-aaaa) y hora (hh:mm:ss) del sistema.

Anlisis
La solucin del problema pasa por capturar la fecha y la hora del sistema y visualizarlas segn
el formato solicitado. Para tal fin Java cuenta con las clases Calendar y GregorianCalendar
del paquete java.util.

Codificacin

import java.util.Calendar;
import java.util.GregorianCalendar;

public class FechaHora {

public static void main(String[] args) {

// Variables
GregorianCalendar hoy = new GregorianCalendar();
String fechaActual, horaActual;
int dia, mes, ao, hora, min, seg;

// Proceso
dia = hoy.get(Calendar.DAY_OF_MONTH);
mes = hoy.get(Calendar.MONTH) + 1;
ao = hoy.get(Calendar.YEAR);
hora = hoy.get(Calendar.HOUR_OF_DAY);
min = hoy.get(Calendar.MINUTE);
seg = hoy.get(Calendar.SECOND);
fechaActual = dia + "-" + mes + "-" + ao;
horaActual = hora + ":" + min + ":" + seg;


// Salida
System.out.println("Fecha: " + fechaActual);
System.out.println("Hora: " + horaActual);
}
}


Ejecucin

Fecha: 11-8-2013
Hora: 16:14:4


Problema 12
Escriba un programa que permita determinar la edad (en aos) de una persona a partir de su
fecha de nacimiento. Utilice la fecha del sistema.

Anlisis
La solucin del problema consiste en solicitar al usuario que ingrese su fecha de nacimiento
(FechaNac) y a continuacin se captura la fecha actual del sistema (Hoy).

Luego se procede a restar la fecha de nacimiento de la fecha actual para obtener el nmero de
aos del usuario, es decir:
Edad = Hoy FechaNac

Por ejemplo, si FechaNac = 20-12-1948 y Hoy = 11-08-2013, entonces Edad = 64 aos.

Como ya se mencion en el problema anterior, Java proporciona la clase GregorianCalendar
del paquete java.util para la manipulacin de fechas. Los objetos de esta clase cuentan con el
mtodo getTimeInMillis( ) que retorna la fecha en milisegundos, por lo tanto al efectuar la
sustraccin anterior se obtiene la edad en milisegundos, siendo necesario convertirla a aos:

EdadEnAos = EdadEnMilisegundos / 365 / 24 / 60 / 60 / 1000

Una solucin menos elaborada consiste en restar el ao actual (2013) del ao de nacimiento
(1948), obtenindose la edad aproximada (65 aos). Obsrvese que el resultado no es del todo
cierto dado que el usuario an tiene 64 aos ya que recin cumplir 65 aos en el mes de di-
ciembre.

Codificacin

import java.util.GregorianCalendar;
import java.util.Scanner;

public class EdadPersona {

public static void main(String[] args) {

// Variables
GregorianCalendar fechaNac;
GregorianCalendar hoy = new GregorianCalendar();


long edad;
int dia, mes, ao;

// Entrada
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese su fecha de nacimiento");
System.out.print("Da? ");
dia = scanner.nextInt();
System.out.print("Mes? ");
mes = scanner.nextInt();
mes = mes - 1;
System.out.print("Ao? ");
ao = scanner.nextInt();

// Proceso
fechaNac = new GregorianCalendar(ao, mes, dia);
edad = hoy.getTimeInMillis() - fechaNac.getTimeInMillis();
edad = edad / 365 / 24 / 60 / 60 / 1000;

// Salida
System.out.println("Su edad es: " + edad + " aos");
}
}


Ejecucin

Ingrese su fecha de nacimiento
Da? 20
Mes? 12
Ao? 1948
Su edad es: 64 aos


Problema 13
Escriba un programa que muestre la fecha del sistema formateada segn las caractersticas de
regionalizacin del sistema operativo.

Anlisis
La solucin del sistema consiste en capturar la fecha del sistema y el formato correspondiente
a las caractersticas de regionalizacin instaladas en la computadora. Para tal fin Java cuenta
con el mtodo format(d) de la clase DateFormat contenida en el paquete java.text, donde d
es un objeto de tipo Date del paquete java.util.

Codificacin

import java.text.DateFormat;
import java.util.Date;

public class FechaFormateada {

public static void main(String[] args) {



// Variables
Date hoy = new Date();
DateFormat df = DateFormat.getDateInstance();
String fechaLocal = df.format(hoy);

// Salida
System.out.println("Fecha actual: " + fechaLocal);
}
}


Ejecucin

Fecha actual: 11/08/2013


Problema 14
Escriba un programa que simule el lanzamiento de una moneda.

Anlisis
El lanzamiento de una moneda es un experimento aleatorio dado que el resultado (cara o cruz)
no se puede predecir con exactitud antes de realizar el experimento.

La solucin de este problema consiste en generar un nmero aleatorio entero que solamente
pueda tomar uno de dos posibles valores. Por ejemplo, se puede asumir que cara corresponde
a 0 y que sello corresponde a 1.

Java proporciona el mtodo Math.random( ) del paquete java.lang que permite la generacin
de un nmero aleatorios comprendidos entre 0 x < Lsup. Si Lsup no es especificado el resul-
tado es un nmero aleatorio real comprendido entre 0 x < 1.

En este caso es conveniente generar nmeros aleatorios entre 0 x < 2 (ejemplo: 0,770769;
1,739792; 0,202459; 0,398832; etc.) y truncar la parte decimal (ejemplo: 0; 1; 0; 0; etc.).

Codificacin

public class Moneda {

public static void main(String[] args) {

// Variables
int resultado;

// Proceso
resultado = (int) (Math.random() * 2);

// Salida
System.out.println("Lanzamiento de una moneda");
System.out.println("0 = Cara, 1 = Cruz");
System.out.println(resultado);
}
}

Ejecucin

Lanzamiento de una moneda
0 = Cara, 1 = Cruz
1


Problema 15
Escriba un programa que simule el lanzamiento de un dado.

Anlisis
El razonamiento es similar al problema anterior.

Codificacin

public class Dado {

public static void main(String[] args) {

// Variables
int resultado;

// Proceso
resultado = (int) Math.ceil(Math.random() * 6);

// Salida
System.out.println("Lanzamiento de un dado");
System.out.println(resultado);
}
}


Ejecucin

Lanzamiento de un dado
3
















Problemas propuestos

1. Escriba un programa para convertir una longitud dada en metros (m) a su equivalente en
pies (ft). El programa leer el nmero de metros e imprimir el nmero de pies correspon-
dientes. Utilice el factor de conversin 3,2808 ft/m.

2. Escriba un programa que solicite la medida de un ngulo en grados sexagesimales y la
convierta a sus equivalentes en grados centesimales y radianes, respectivamente. Utilice
los siguientes factores de conversin: 10
g
/9 y rad/180.

3. Escriba un programa que resuelva el problema que tienen en cierta gasolinera. Los surti-
dores de la misma registran el volumen expendido en galones (gal), pero el precio de la
gasolina est fijado en litros (L). El programa deber calcular e imprimir el importe a co-
brar al cliente en soles (S/.) y en dlares (US $).

4. Escrbase un programa que lea los valores de la base (b) y altura (h) de un rectngulo y
calcule su permetro (p) y rea (s) respectivamente. Recordar que: ) ( 2 h b p + = y bh s = .

5. Escriba un programa que calcule la suma de los cuadrados de los N primeros nmeros
enteros positivos, es decir:
S = 1
2
+ 2
2
+ 3
2
+ + N
2


Utilice la siguiente frmula:
6
) 1 2 )( 1 ( + +
=
N N N
S

6. Escrbase un programa que calcule la suma de los N primeros nmeros enteros positivos
impares:
S = 1 + 3 + 5 + + (2N 1)

Utilice la siguiente frmula:
S = N
2


7. Escrbase un programa que calcule la suma de los N primeros nmeros enteros positivos
pares:
S = 2 + 4 + 6 + + (2N)

Utilice la siguiente frmula:
S = N (N + 1)

8. La famosa ecuacin de Einstein que relaciona la masa (m) y la energa (E) de un cuerpo
est dada por la frmula siguiente:
2
mc E =

Donde c es la velocidad de la luz y su valor es 2,99792510
10
cm/s.

Escriba un programa que lea una masa en gramos (g) y obtenga la cantidad de energa en
ergios (erg) producida cuando la masa se transforma en energa.
9. Escriba un programa que dado dos nmeros efecte las siguientes operaciones aritmticas:
adicin, sustraccin, multiplicacin, divisin entera (cociente y residuo), divisin real y
exponenciacin.

10. Escriba un programa que calcule e imprima la cantidad de segundos que hay en un deter-
minado nmero de das.

11. Escriba un programa que lea un nmero de segundos y lo convierta a su equivalente en
horas, minutos y segundos.

12. Un sistema de dos ecuaciones lineales con dos incgnitas de la forma:

f ey dx
c by ax
= +
= +


se puede resolver mediante la regla de Cramer obtenindose:

bd ae
bf ce
x

=
bd ae
cd af
y

=

Escriba un programa que lea dos conjuntos de coeficientes (a, b, c) y (d, e, f) e imprima
los valores de x e y.

13. Escriba un programa que calcule el inters i y el monto total acumulado M producido por
un capital C, invertido a una tasa de inters r % anual durante t meses.

12 100

=
t r C
i i C M + =

14. Escriba un programa que calcule el inters compuesto I generado por un capital C durante
n aos a una tasa de inters r % anual.

n
r C M %) 1 ( + = C M I =

15. Escriba un programa que permita leer las coordenadas de dos puntos en el plano eucli-
diano: P1 (x1, y1) y P2 (x2, y2), y a continuacin calcule la distancia (d) entre dichos puntos,
mostrando el resultado obtenido por pantalla. La distancia entre dos puntos en el plano es-
t dada por la siguiente frmula:

2
1 2
2
1 2
) ( ) ( y y x x d + =

16. El rea de un tringulo cuyos lados son a , b y c , se puede calcular mediante la frmula:

) )( )( ( c p b p a p p S = p = (a + b + c) / 2

Escrbase un programa que lea las longitudes de los tres lados de un tringulo y calcule el
rea del mismo.
17. Un proyectil es lanzado desde el piso con una velocidad inicial v0 (m/s) y formando un
ngulo con la horizontal. Determinar la mxima altura H (m) que logra alcanzar el pro-
yectil, el alcance horizontal D (m) y el tiempo total que permanece en el aire t (s).

g
v
H
2
sen
2 2
0
=
g
v
D
2 sen
2
0
=
g
v
t
sen 2
0
=

Considere el valor de la aceleracin de la gravedad g = 9,81 m/s
2
.

18. Escriba un programa que permita evaluar el siguiente polinomio:

e dx cx bx ax x P + + + + =
2 3 4
) (

Donde a, b, c, d, e y x son ledos desde el teclado. El programa deber imprimir en panta-
lla el valor numrico del polinomio.

19. Se analiz un hueso fosilizado y se encontr que contena la centsima parte (1/100) de la
cantidad original de carbono 14. Escriba un programa que permita determinar la antige-
dad del fsil en aos.
|
|
.
|

\
|
=

14
14
0
ln 1 , 8079
C
f
C
m
m
t

20. Escrbase un programa que lea el precio unitario de un producto y el nmero de unidades
adquiridas, y determine el subtotal, el IGV (19%) y el precio total de la venta. As mismo,
el programa deber calcular el vuelto a entregar al cliente. En todos los casos formatee la
salida a dos cifras decimales.