Vous êtes sur la page 1sur 20

SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

Solucionario
PRIMER BIMESTRE

Respuestas a las Actividades propuestas

Los ejercicios de autoevaluación que corresponden al libro son resueltos en el mismo libro y sus
respuestas están a continuación del planteamiento de los ejercicios.

Actividades del Capítulo I

1. Elabore un resumen las diferentes técnicas de programación aquí expuestas, a excepción de la


POO.

Programación no estructurada
Datos globales
Un solo programa principal
Repetición de instrucciones
No se reutiliza código

Progamación estructurada
- procedimental
Estructuras de control
Dominio sobre el flujo de control
Procedimiento
Procedimiento - parámetros datos
locales

Programción modular
Procedimientos agrupados en módulos
separados pudiendo ser llamados por
diferentes programas
Módulos manejasn estado interno.

2. Defina en sus propios términos las siguientes características del lenguaje Java:

¸ Portable: Que un mismo programa puede ejecutarse en varios sistemas operativos sin
necesidad de cambios

¸ Robusto: Capacidad de tolerancia a fallos y errores si por algún motivo se presenta un error
la aplicación no se cierra.

¸ Multihilo: Es la capacidad de ejecutar varias tareas a la vez.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 61


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

3. ¿Cuál es la principal diferencia entre el JDK y el JRE?

El JDK es el entorno de desarrollo permite crear, depurar y ejecutar programas, mientras que el
JRE es un el intérprete de Java y solo tiene la capacidad de ejecutar programas.

4. ¿Qué es el API de Java?

Un conjunto de clases pre-construidad y empaquetadas, que se distribuyen con el JDK y que


sirven de base para la creación de nuevas aplicaciones, bajo el principio de no reinventar la
rueda.

Actividades del Capítulo II

a. Suponga que existe un programa que contiene una clase pública denominada Estudiante. ¿Cuál
debe ser el nombre y la extensión del archivo en donde se almacenará?

1. ( ) Estudiante.txt

2. ( ) Estudiante.class

3. ( x ) Estudiante.java

b. Señale los identificadores que son válidos en Java para clases y variables. En caso de no ser válidas
indique el porqué:

Clases:

* ( ) EstuDiante

Es válido pero no sigue los estándares recomendados para nombres de clases.

* ( x ) GerenteGeneral

* ( ) $Persona

Válido pero se recomiendo no utilizar $ para nombrar identificadores en general

* ( ) Cuentas_Por_Cobrar

Válido, pero no sigue los estándares recomendados para nombrar clases

* ( ) public

No es válido porque es una palabra reservada de Java

Variables:

* ( ) B

Válido, pero no sigue los estándares recomendada para variables.

* ( ) Area

62 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

Válido pero no sigue los estándares recomendados.

* ( x ) montoTotal

* ( ) __

Válido, pero no se debe utilizar jamás

* ( ) class

No es válido, porque es una palabra reservada de Java.

c. Señale con una R para los operadores relacionales y de igualdad, con una A para los operadores
aritméticos que maneja Java y con una X si no aplica ninguno de los anteriores:

1. ( X ) x

2. ( A ) %

3. ( X ) =

4. ( X ) ¡=

5. ( R ) ==

6. ( X ) ≤

7. ( R ) >=

d. Suponga que tiene un programa escrito en Java que declara 2 variables de tipo entero a y b que
se les asigna los valores 10 y 3 respectivamente. Existe una tercera variable c que se le asigna el
siguiente valor: c = a / b; ¿Cuál es el valor de c?

1. ( ) 3.33

2. ( x ) 3

3. ( ) 0

e. Analice el siguiente programa y señale los números de líneas en donde existan errores.

1 public class EncuentraErrores{


2 public static void main (Strign args[] {
3 int a = 5;
4 int b = 2
5 int c = 0;
6
7 c = 5 % 2;
8 System.out.println(’‘El módulo es: ‘’ c);
9 }
10 )

Ilustración 12 Programa de ejercicio con errores

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 63


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

Línea 4, falta punto y coma (;) al final de la sentencia.

Línea 8, falta el signo + para concatenar el texto “El módulo es: “ con la variable c

Actividades del Capítulo III


1. Construya un programa que permita a un usuario ingresar 3 números y determinar cual de ellos
es mayor.

import javax.swing.JOptionPane;
public class Ejercicio1 {
public static void main(String args[]){
String numTxt; //Variable que almacena el número digitado por el usuario
int intNum; //Variable entera con el número ingresado por el usuario
int numMayor = 0; //Variable que contendrá el número mayor.

//Ciclo repetitivo que itera 3 veces para ingresar 3 números


for(int i = 0; i < 3; i++){
//Lectura del primer número
numTxt = JOptionPane.showInputDialog(“Ingrese un número”);
//Transformar el número ingresado como texto en un entero
intNum = Integer.parseInt(numTxt);
//Si es el primer número ingresado se supondrá que es le mayor
if(i == 0){
numMayor = intNum;
}else{
/*Si es la segunda vez que se ingresa un número se lo compara
*con numMayor para determinar cuál es el mayor*/
if(intNum > numMayor){
numMayor = intNum;
}
}
}
//Se presentan los resultados
JOptionPane.showMessageDialog(null,
“El número mayor es: “ + numMayor,
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

64 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

2. Construya un programa que le presente en pantalla las fórmulas para calcular el área y perímetro
de un triángulo, rectángulo, y círculo. El programa debe presentar un menú y debe permitir al
usuario ingresar un número que corresponda a la figura seleccionada.

import javax.swing.JOptionPane;
public class Ejercicio2 {

public static void main(String args[]){


String formula; //Variable que contendrá la fórmula.
String nroOpcion; //Opción ingresada por el usuario
int intOpcion; //Opción transformada a entero

//Presentamos las opciones


nroOpcion = JOptionPane.showInputDialog(“Ingrese: \n” +
“1) Para ver fórmulas de un Triángulo\n” +
“2) Para ver fórmulas de un Rectángulo\n” +
“3) Para ver fórmulas de un Círculo”);
//Transformamos la opción a entero
intOpcion = Integer.parseInt(nroOpcion);
//Determinamos qué fórmulas desea ver el usuario
switch(intOpcion){
case 1: formula = “Perímetro = La suma de los 3 lados\n” +
“Área = base * altura / 2”;
break;
case 2: formula = “Perímetro = Suma de los lados\n” +
“Área = Lado mayor * Lado menor”;
break;
case 3: formula = “Perímetro = 2 * Pi * Radio\n” +
“Área = Pi * Radio al cuadrado”;
break;
default: formula = “Opción no válida”;
}
//Presentamos el resultado
JOptionPane.showMessageDialog(null,
formula,
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
//Cerramos la aplicación.
System.exit(0);
}
}

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 65


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

3. Elabore 3 programas distintos que permitan presentar en pantalla los primeros 25 números pares.
Cada programa debe ser desarrollado utilizando los ciclos for, while y do…while.

public class Ejercicio3 {


/** Creates a new instance of Ejercicio3 */
public Ejercicio3() {
}

public static void main(String args[]){


//Ciclo for
System.out.println(“Ciclo for:”);
for(int i = 1; i < 26; i++){
System.out.print((i*2) + “,”);
}
System.out.println();
System.out.println(“Ciclo while:”);
//Ciclo while
int contador = 1;
while(contador < 26){
System.out.print((contador*2)+ “,”);
contador ++;
}
//Ciclo do...while
System.out.println();
System.out.println(“Ciclo do...while:”);
contador = 1;
do{
System.out.print((contador*2)+ “,”);
contador ++;
}while(contador < 26);
}
}

4. Diseñe un programa para convertir una longitud dada en metros a sus equivalentes en
centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 centímetros, 1 pulgada =
2.54 centimetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.

import java.text.DecimalFormat; //Para dar formato a los númerdo decimales


import javax.swing.JOptionPane;
/**
*
* @author Jorge
*/
public class Ejercicio4 {
public static void main(String args[]){
String cantidadTxt; //Almacena la información ingresada por el usuario
double dblCantidad; //Cantidad ingresada como número real

66 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

double centimetros; //Almacena la cantidad luego de ser transformada a cm


double pulgadas; //Almacena las pulgadas
double pies; //Almacena los pies
double yardas; //Almacena las yardas
//Para dar formato con 2 dígitos decimales
DecimalFormat dosDigitos = new DecimalFormat(“0.00”);

cantidadTxt = JOptionPane.showInputDialog(“Ingrese una cantidad (en metros)”);


//Transforma a double
dblCantidad = Double.parseDouble(cantidadTxt);

centimetros = dblCantidad * 100; //Convierta centímetros


pulgadas = centimetros / 2.54; //Convierta a pulgadas
pies = pulgadas / 12; //Convierta a pies
yardas = pies/3; //Convierta a yardas
/*
*Presenta los resultados previo formateo de las variables centimtros,
*pulgadas, pies y yardas
*/
JOptionPane.showMessageDialog(null,
“En “ + dosDigitos.format(dblCantidad) + “m, existen: \n” +
dosDigitos.format(centimetros) + “ cm\n” +
dosDigitos.format(pulgadas) + “ pulgadas\n” +
dosDigitos.format(pies) + “ pies\n” +
dosDigitos.format(yardas) + “ yardas”,
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

5. Una institución benéfica europea ha recibido tres donaciones en soles, dolares y marcos. La
donación será repartida en tres rubros: 60% para la implementación de un centro de salud,
30% para un comedor de niños y el resto para gastos administrativos. Diseñe un algoritmo y un
programa que determine el monto en euros que le corresponde a cada rubro. Considere que: 1
dólar = 3.52 soles, 1 dólar = 2.08 marcos, 1 dólar = 1.07 euros.

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

public class Ejercicio5 {

public static void main(String arg[]){


String dinero;
double dblDinero;
double totalDonadacion = 0; //Dinero en dólares
double totalDonaEuros = 0;
DecimalFormat dosDigitos = new DecimalFormat(“0.00”);

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 67


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

//Se ingresa el valor, se lo transforma a dólares y se suma


dinero = JOptionPane.showInputDialog(“Ingrese la donación en Soles”);
dblDinero = Double.parseDouble(dinero);
totalDonadacion += (dblDinero/3.52);

dinero = JOptionPane.showInputDialog(“Ingrese la donación en Marcos”);


dblDinero = Double.parseDouble(dinero);
totalDonadacion += (dblDinero/2.08);

//Se ingresa el valor y se adiciona.


dinero = JOptionPane.showInputDialog(“Ingrese la donación en Dólares”);
dblDinero = Double.parseDouble(dinero);
totalDonadacion += dblDinero;

//Se transforma los dólares en euros


totalDonaEuros = totalDonadacion / 1.07;

JOptionPane.showMessageDialog(null,
“Centro salud: “ +
dosDigitos.format(totalDonaEuros * 0.6) + “\n” +
“Comedor infantil: “ +
dosDigitos.format(totalDonaEuros * 0.3) + “\n” +
“Sobrante: “ +
dosDigitos.format(totalDonaEuros - (totalDonaEuros * 0.9)) + “\n”,
“Donación”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

6. En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas


de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y un programa para
determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1
minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

/**
*
* @author Jorge
*/
public class Ejercicio6 {

public static void main(String args[]){


String metrosTxt, minutosTxt, segundosTxt, csegTxt;
double metros, minutos, segundos, cseg;
double velocidad = 0;

68 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

DecimalFormat dosDigitos = new DecimalFormat(“0.00”);

metrosTxt = JOptionPane.showInputDialog(“Ingrese distancia:”);


minutosTxt = JOptionPane.showInputDialog(“Ingrese minutos:”);
segundosTxt = JOptionPane.showInputDialog(“Ingrese segundos:”);
csegTxt = JOptionPane.showInputDialog(“Ingrese centésimas de segundo:”);

metros = Double.parseDouble(metrosTxt);
minutos = Double.parseDouble(minutosTxt);
segundos = Double.parseDouble(segundosTxt);
cseg = Double.parseDouble(csegTxt);

//Transformamos los datos ingresados a horas


minutos /= 60;
segundos /= 3600;
cseg = (cseg/100)/3600;

metros /= 1000;

velocidad = metros/(minutos+segundos+cseg);

JOptionPane.showMessageDialog(null,
«La velocidad fue de: «+ dosDigitos.format(velocidad) + « km/h»,
«Resultados», JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

7. Calcular el tiempo equivalente en horas, minutos y segundos a un número de segundos leído

import javax.swing.JOptionPane;

public class Ejercicio7 {


public static void main(String args[]){
String segundosTxt;
int segundosIngresados = 0;
int resto = 0;
int horas = 0;
int minutos = 0;
int segundos = 0;

segundosTxt =
JOptionPane.showInputDialog(“Ingrese los segundos: “);
segundosIngresados = Integer.parseInt(segundosTxt);
//Obtiene las horas que existen en los segundos ingresados
horas = segundosIngresados/3600;
//La cantidad de segundos restantes sirven para calcular los min y seg

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 69


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

resto = segundosIngresados%3600;
minutos = resto/60;
//Los segundos son el residuo.
segundos = resto%60;
JOptionPane.showMessageDialog(null,
“Existen “ + horas + “ Horas, “ + minutos + “ Minutos, “ +
segundos + “ segundos”, “En “+ segundosTxt + “ seg”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

8. Construya un programa que permita ingresar un número y luego presente en pantalla si el número
es perfecto.

import javax.swing.JOptionPane;
/**
* Un número es perfecto cuando la suma de sus divisores positivos menores al
* número es igual al mismo número. Ejemplo el número 6
* @author Jorge
*/
public class Ejercicio8 {
public static void main(String args[]){
String nroTxt;
String resultado = null;
int intNro;
int sumaDivisores = 0;

nroTxt = JOptionPane.showInputDialog(“Ingrese el número a evaluar”);


intNro = Integer.parseInt(nroTxt);

for(int i=1; i < intNro; i++){


if(intNro % i == 0)
sumaDivisores += i;
}
if(sumaDivisores == intNro)
resultado = “ es un número perfecto”;
else
resultado = “ no es número perfecto”;

JOptionPane.showMessageDialog(null,
intNro + resultado,
“Nro. Perfectos”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

70 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

9. Elabore un programa que genere los 12 primeros elementos de la serie de fibonacci. Para generar
los elementos de la serie de fibonacci considere lo siguiente:

a. El siguiente elemento de la serie depende de la suma de los 2 anteriores.

b. Los primeros elementos no se generan según (a) sino que son valores iniciales.

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Ejercicio9 {

public static void main(String args[]){


int primerNumero = 1;
int segundoNumero = 0;
int siguienteNumero ;
String numFibo = “”;

JTextArea txtNumeros = new JTextArea();//Cuadro de texto


for(int i = 0; i < 12; i++){
//Cálculos e intercambio de una serie de Fibonacci
siguienteNumero = primerNumero + segundoNumero;
primerNumero = segundoNumero;
segundoNumero = siguienteNumero;
numFibo += siguienteNumero + “\n”;
}
txtNumeros.setText(numFibo);
JOptionPane.showMessageDialog(null,
txtNumeros,
“Resultados”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

10. Calcule el resultado de sumar los n primeros términos de las siguientes series:

S = 1/2 + 2/4 + 3/6 + 4/8 + 5/10 + ...


S = 1/2 + 2/4 + 3/6 + 5/8 + 7/10 + 11/12 + 13/14
+ ...
S = (1!)/1 + (2!)/3 + (3!)/5 + (4!)/7 + (5!)/9 + ...

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

public class Ejercicio10a {

public static void main(String args[]){

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 71


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

String nroTerminosTxt;
int intNroTerminos;
double suma = 0;
DecimalFormat dosDigitos = new DecimalFormat(“0.00”);

nroTerminosTxt = JOptionPane.showInputDialog(“Ingrese el nro. términos”);


intNroTerminos = Integer.parseInt(nroTerminosTxt);

for(int i = 0; i < intNroTerminos; i++){


//Utilizar casting para obtener los valores decimales
suma += ((double)(i+1) / ((i+1)*2));
}
JOptionPane.showMessageDialog(null,
“La suma es: “ + dosDigitos.format(suma),
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

/**
*
* @author Jorge
*/
public class Ejercicio10b {
public static void main(String args[]){
String nroTerminosTxt;
int nroTerminos;
int contadorTerminos = 0;
int generadorNumeros = 1;
boolean esPrimo = true;
double suma = 0;
DecimalFormat formatoNumerico = new DecimalFormat(“0.00”);

nroTerminosTxt =
JOptionPane.showInputDialog(“Ingrese el nro. de terminos”);
nroTerminos = Integer.parseInt(nroTerminosTxt);
while(contadorTerminos < nroTerminos){
esPrimo = true;
for(int i = 2; i < generadorNumeros; i++){
if(generadorNumeros%i == 0){
esPrimo = false;
break;
}

72 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

}
if(esPrimo){
suma += (double)generadorNumeros / ((contadorTerminos + 1) * 2);
contadorTerminos++;
}
generadorNumeros++;
}
JOptionPane.showMessageDialog(null,
“La suma es: “ + formatoNumerico.format(suma),
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

import java.text.DecimalFormat;
import javax.swing.JOptionPane;

/**
*
* @author Jorge
*/
public class Ejercicio10c {
public static void main(String args[]){
String txtNroTerminos;
int intNroTerminos;
double suma = 0;
int factorial; //Almacena el factorial del numerador
int impares = 1;//Denominador de la serie
DecimalFormat formatoNumerico = new DecimalFormat(“0.00”);

txtNroTerminos = JOptionPane.showInputDialog(“Ingrese el nro. terminos: “);


intNroTerminos = Integer.parseInt(txtNroTerminos);

//Genera los numerados de la serie


for(int i= 1; i <= intNroTerminos; i++){
//Calcula el factorial
factorial = i;
for(int j = i - 1; j > 1; j-- )
factorial *= j;
//Raliza la suma utilizando casting para obtener números reales
suma += ((double)factorial/impares);
//Incrementa el denominador
impares += 2;
}
JOptionPane.showMessageDialog(null,

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 73


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

“La suma es: “ + formatoNumerico.format(suma),


“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

Los programas, detallados con comentarios, que dan respuestas a estas preguntas se encuentran en el
CD bajo el directorio: GuiaCapitulos\Ejercicios\ActividadesCapIII

Actividades del Capítulo IV

1. Elabore un programa que calcule la raíz cuadrada de un número.

import javax.swing.JOptionPane;

public class Ejercicio1 {


public static void main(String args[]){
String txtNumero;
int intNumero;

txtNumero = JOptionPane.showInputDialog(“Ingrese el número”);


intNumero = Integer.parseInt(txtNumero);

JOptionPane.showMessageDialog(null,
“Raíz cuadrada de “ + intNumero + “ es “ + Math.sqrt(intNumero),
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
2. Elabore un programa que permita sumar los primeros n términos de la siguiente serie:

import javax.swing.JOptionPane;

/**
*
* @author Jorge
*/
public class Ejercicio2 {
public static void main(String args[]){
String txtNroTerminos;
int intNroTerminos;

74 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

double suma = 0;
int contadorTerminos = 0;
int generaTerminos = 0;
boolean esPrimo;
double numerador;
double denominador;

txtNroTerminos = JOptionPane.showInputDialog(“Ingrese el nro términos:”);


intNroTerminos = Integer.parseInt(txtNroTerminos);

while(contadorTerminos < intNroTerminos){


generaTerminos ++;
esPrimo = true;
for(int i = 2; i < generaTerminos; i++){
if(generaTerminos%i == 0){
esPrimo = false;
break;
}
}
if(esPrimo){
denominador = contadorTerminos + 1;
numerador = generaTerminos;

numerador = Math.pow(numerador, (numerador + denominador));


denominador = Math.pow(denominador, (denominador * 2));
suma += numerador/denominador;

contadorTerminos ++;
}
}
JOptionPane.showMessageDialog(null,
“La suma es:” + suma,
“Resultado”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

3. Busque en la documentación del API de Java información sobre la clase NumberFormat, liste
sus atributos. También busque información sobre la clase Locale y mencione la información que
considere relevante sobre esta clase.

Los atributos de la clase NumberFormat son:


FRACTION_FIELD
INTEGER_FIELD
Locale, es una clase que representa a una específica región geográfica, política o cultural.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 75


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

SEGUNDO BIMESTRE

Respuestas a las Actividades propuestas

Los ejercicios de autoevaluación que corresponden al libro son resueltos en el mismo libro y sus
respuestas están a continuación del planteamiento de los ejercicios.

Actividades del Capítulo V

Cree una clase abstracta que contenga métodos para: determinar si un número es primo, par, impar,
obtener un elemento de la serie de Fibonacci dada su posición y un método que ingresado un número
busque y presente el primer número primo superior a ese número.

1./**
2. *
3. * @author JorgAf
4. */
5.public class UtilSeries {
6.
7. public static boolean par(int n){
8. boolean valor= true;
9. if(n%2==0){
10. return valor;
11. }else{
12. valor =false;
13. return valor;
14. }
15. }

16. public static boolean impar(int n){


17. boolean valor=true;
18. if(n%2==0){
19. valor =false;
20. return valor;
21. }else{
22. return valor;
23. }
24. }

25. public static boolean primo(int n){


26. boolean esprimo=true;
27. int cont=1;
28. while(++cont<n){
29. if(n%cont==0){
30. esprimo=false;
31. break;
32. }

33. }
34. if(esprimo==true){
35. return esprimo;
36. }else{

76 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

37. return esprimo;


38. }
39. }

40. public static int siguiente_primo(int n){


41.
42. boolean esprimo=true;
43. int cont=1, x=0;
44. while(x<1){
45. n++;
46. cont=1;
47. esprimo=true;
48. while(++cont<n){
49. if(n%cont==0){
50. esprimo=false;
51. break;
52. }
53. }
54. if(esprimo==true){
55. x++;
56. }
57. }
58. return n;
59. }

60. public static int fibonacci(int num){


61. int cont=2, c=0, a=0,b=1;
62. boolean entra=false;
63. if(num<=2){
64. switch(num){
65. case 1: c=0;
66. break;
67. case 2: c=1;
68. break;
69. }
70. }else{
71. entra=true;
72. }
73. if(entra==true){
74. c=0;
75. while(cont<num){
76. c=a+b;
77. a=b;
78. b=c;
79. cont++;
80. }
81. }
82. return c;
83. }
}

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 77


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

Actividades del Capítulo VI

Elabore un programa que mediante búsqueda binaria encuentre un elemento dentro de un arreglo.

import java.util.Scanner;
/**
*
* @author jorgaf
*/
public class BusquedaBinaria {

public static void main(String[] args) {


int[] arreglo = {45, 9, 11, 1, -8, 0, 41, 55, 6, -2};

int medio;
int indiceElem = -1;
int inf = 0;
int sup = arreglo.length;

int aux;

//Ordenamos el arreglo
for (int i = 0; i < arreglo.length - 1; i++) {
for (int j = i + 1; j < arreglo.length; j++) {
if (arreglo[j] < arreglo[i]) {
aux = arreglo[i];
arreglo[i] = arreglo[j];
arreglo[j] = aux;
}
}
}
//Arreglo ordenado
for (int i = 0; i < arreglo.length; i++) {
System.out.println(arreglo[i]);

}
//Debemos leer el elemento a buscar
Scanner lector = new Scanner(System.in);
int elemBuscar;

System.out.print(“\nIngrese el elemento a buscar: “);


elemBuscar = lector.nextInt();
//Busqueda binaria
while (inf < sup) {
medio = (inf + sup) / 2;
if (elemBuscar == arreglo[medio]) {
indiceElem = medio;
break;

78 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SOLUCIONARIO Guía didáctica: Lenguaje de Alto Nivel

} else {
if (elemBuscar > arreglo[medio]) {
inf = medio + 1;
} else {
sup = medio - 1;
}
}
}
if (indiceElem != -1) {
System.out.println(“El elemento se encuentra en la posición: “
+ indiceElem);
} else {
System.out.println(“No existe dicho elemento”);
}
}
}

2. Elabore un programa que permita multiplicar 2 matrices

import javax.swing.JOptionPane;
/**
*

* @author jorgaf

*/
public class Multiplicacion {
public static void main(String[] args) {
int[][] matA = {{2, 6}, {4, 3}, {7, 1}};
int[][] matB = {{-1, 6, 3, 7}, {7, 5, 1, 8}};
int[][] matC;
if (matA[0].length == matB.length) {
//Multiplicar
int producto = 1;
int suma = 0;
matC = new int[matA.length][matB[0].length];
for (int fila = 0; fila < matC.length; fila++) {
for (int col = 0; col < matC[fila].length; col++) {
suma = 0;
for (int j = 0; j < matA[0].length; j++) {
suma = suma + (matA[fila][j]*matB[j][col]);
}
matC[fila][col] = suma;
System.out.print(suma + “\t”);
}
System.out.println();
}

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 79


Guía didáctica: Lenguaje de Alto Nivel SOLUCIONARIO

} else {
JOptionPane.showMessageDialog(null,
“El nro. de columnas de la primera matriz, “ +
“no es igual al nro. de filas de la segunda”,
“Multiplicación imposible”,
JOptionPane.ERROR_MESSAGE);
}
System.exit(0);
}
}

Actividades del Capítulo VII

1. Cree las clases necesarias según se muestra en el siguiente diagrama de clases:

Persona Direccion

Attributes Attributes
private String cedula private int tipo
private String nombres private String valor
Operations [1..*] Operations
public Persona( ) public Direccion( )
public String getCedula( ) public int getTipo ( )
public void setCedula (String val) public void setTipo (int val)
public String getNombres( ) public String getValor ( )
public void setNombres(String val) public void setValor (String val)

import java.util.ArrayList;
public class Persona {
private ArrayList<Direccion> mDireccion;
private String cedula;
private String nombres;

public Persona () {
}

public String getCedula () {


return cedula;
}

public void setCedula (String val) {


this.cedula = val;
}

public String getNombres () {


return nombres;
}

80 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja

Vous aimerez peut-être aussi