Você está na página 1de 38

Para el desarrollo de la prueba objetiva, deber revisar su gua de estudio,

texto bsico, y anuncios/recursos que se publican en el Entorno Virtual de


Aprendizaje (EVA).
Acuda a la bibliografa complementaria citada en el gua de estudio y EVA,
as enriquecer sus conocimientos para el ptimo desarrollo de esta
evaluacin.
Solo una vez revisados los temas de: Excepciones, Arreglos y Recursividad,

inicie el desarrollo de esta Evaluacin a Distancia (componente objetivo); no


olvide que el fin de sta, es ofrecerle un indicador del nivel de
conocimientos y competencias de cada unidad y as refuerce su estudio en
aquellas que obtenga menor puntaje.
Al rendir sta evaluacin a distancia, lea y analice con atencin cada una de

las siguientes preguntas/cdigos y seleccione el literal de la alternativa


correcta o la que mejor defina el concepto o programa. Recuerde que Ud.
deber ingresar sus respuestas en el EVA, este documento nicamente le
sirve como borrador.
De las cuatro alternativas que se muestran en cada pregunta (a, b, c, d),

ms de una le podr parecer correcta, pero no es as; existe una nica


solucin.

1)

2)

El bloque try - catch permite el tratamiento de excepciones. En el bloque try se


coloca el cdigo que podra ____________ la excepcin; y en el bloque catch el
cdigo que ______________ la excepcin.

a.

generar maneja

b.

manejar genera

c.

capturar genera

d.

manejar limpia

En Java una excepcin se define como:

3)

4)

5)

a.

Un segmento de cdigo que garantiza la ejecucin sin ninguna


interrupcin.

b.

Prevencin de ocurrencia de excepciones a travs de la clusula throw.

c.

Una alerta encendida (problema) en la ejecucin de un segmento de


cdigo.

d.

La posibilidad mayor al 90% de ocurrencia de errores en el cdigo Java.

Cuando ocurre una excepcin que es capturada en el respectivo bloque try, el


control del programa se transfiere al ______________ que maneja el tipo de
excepcin lanzada; luego, el control del programa ____________ al punto de
lanzamiento de la excepcin (bloque try), y continua su flujo secuencial definido.

a.

try subsecuente no regresa

b.

bloque catch no regresa

c.

bloque catch regresa

d.

bloque try no regresa

Todo bloque _____ debe tener al menos _____ bloque(s) _____ para el
manejo correcto de una excepcin.
a.

catch dos try

b.

try dos catch

c.

catch cero try

d.

try un catch

Se solicita codificar un mtodo que permita el ingreso de n calificaciones, las


promedie y almacene en un archivo de salida.txt
1 public static void notas() throws FileNotFoundException
2 {
3
Formatter salida = new Formatter("salida.txt");
4
Scanner entrada = new Scanner(System.in);
5
int limite = entrada.nextInt();
6
int nota[] = new int[limite], sumatoria = 0;
7
double promedio;
8
for (int i = 0; i < limite; i++)
9
{
10
nota[i] = entrada.nextInt();
11
sumatoria += nota[i];
12
salida.format("%s = %d \r\n", "Nota", nota[i]);
13
}
14
promedio = sumatoria / limite;
15
salida.format("%s = %f \r\n", "Promedio", promedio);
16
salida.close();
17 }

Dado el cdigo anterior revisar su flujo e implementar el manejo de excepciones


relacionando las lneas codificadas y la excepcin que se debera capturar/tratar.

LINEA DE CDIGO
w.
Lnea 3
Lneas 5 y
x.
10
y.
Lnea 11
z.
Lnea 14

6)

a.

w-2, x-4, y-1, z-3

b.

w-2, x-3, y-4. z-1

c.

w-2, x-4, y-3, z-1

d.

w-4, x-2, y-3, z-1

El bloque catch puede atrapar una excepcin siempre y cuando


______________ con el tipo de excepcin lanzada. La clusula throws indica
_________________. Para que un mtodo lance una excepcin verificada esta
debe ______________ de ese mtodo para evitar un error.
a.
b.
c.
d.

7)

TIPO DE EXCEPCIN
ArithmeticException
FilenotFoundException
ArrayIndexOutOfBoundsExcep
tion
InputMismatchException

regrese al punto de lanzamiento del respectivo bloque try que coincida


un parmetro cerrar el bloque try
imprima un mensaje descriptivo que coincida que se ejecutarn varios
bloques try catch cerrar el bloque try
su parmetro de excepcin coincida las excepciones que lanza el
mtodo enumerarse en la clusula throws
su catch agrupe a todos los tipos de excepcin o coincida la
superclase de las excepciones heredarse de throws

Manejar adecuadamente las excepciones que pudieran presentarse permite


seguir ejecutando el programa. Dados los cdigos anteriores, indique qu tipo
de excepcin deberan atrapar.
CODIGO 1
1
2
3
4

public static void main(String[] args) {


int a = 4, b=0;
System.out.println(a/b);
}

CODIGO 2
1
2
3
4

public static void main(String[] args) {


int [] array = new int [5];
array[5] = 1;
}

CODIGO 3
1
2
3

System.out.print("Introduce un nmero entero: ");


int = sc.nextlnt();
System.out.print("Nmero introducido: " + n);

CODIGO 4
1
2
3

a.

ArithmeticException InputMismatchException ArithmeticException ArrayIndexOutOfBoundsException


ArithmeticException NoSuchElementException ArithmeticException ClasscastException
ArrayIndexOutOfBoundsException ArithmeticException
InputMismatchException - ArrayIndexOutOfBoundsException
ArithmeticException ArrayIndexOutOfBoundsException InputMismatchException - ArithmeticException

b.
c.
d.

8)

b= entrada.nextInt();
entrada.nextLine();
System.out.println("El cociente "+a+"/"+b+" es "+(a/b));

Si se lanza una excepcin y esta no se atrapa, se limpia la pila de llamada a


mtodos y se trata de atrapar la excepcin en el siguiente bloque try exterior.
Conforme a lo indicado anteriormente. cules de los siguientes comandos se
usan en la limpieza de la pila?
1
2
3
4

9)

throw new Exception(mensaje, excepcin);


StackTraceElement [ ] resultadoBusqueda = excepcin.getStackTrace( );
Assert (numero >=1 && numero <= 11)
Excepcin.printStackTrace( );

a.

1y4

b.

2y3

c.

2y4

d.

1y3

La jerarqua de excepciones indica que las clases Exception y Error derivan de


la superclase Throwable. Exception y sus subclases casos excepcionales que
pudieran darse en un programa y que se pueden atrapar en el mismo. Error y
sus subclases indican problemas que se pueden dar en tiempo de ejecucin y
que no deben atraparse generalmente.
Considerando lo anterior indique cul de las siguientes clases puede ser
atrapada como excepcin.
OPCIN
1 ThreadDeath
2 ArrayIndexOutOfBoundsException
3 AWTerror
4 NullPointerException
5 NoSuchElementException
a.

1-A, 2-N, 3-A, 4-N,5-A

b.

1-A, 2-A, 3-N, 4-N, 5-A

c.

1-N, 2-A, 3-N, 4-A,5-A

d.

10)

1-A, 2-N, 3-A, 4-N,5-N

Se requiere implementar la funcionalidad de sobreGiro( ) a un sistema


bancario, para ello las condiciones son las siguientes:
Un cliente puede tener dos cuentas: ahorros, crdito; pero solo en la segunda
puede tener saldo en rojo sin sobrepasar un monto determinado.
Dada el requerimiento anterior, cul de las siguientes excepciones son las que
se deberan atrapar y manejar.

11)

a.

ArithmeticException y ArrayIndexOutOfBoundsException.

b.

Una excepcin propia que controle el monto mximo a sobregirar.

c.

FilenotFoundException para advertir la ausencia del archivo Credito.txt

d.

InputMismatchException para atrapar el ingreso de cantidades fuera


lmite.

El siguiente programa realiza el ingreso de los valores para el arreglo notas[ ]


desde el mtodo IngresoDatos(int notas[]); sin embargo en un punto dado se
lanza y maneja una excepcin.
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4

package manejoExcepciones;
import java.util.Scanner;
public class testExcepcion_throw2 {
public static void main(String[] args) {
int notas[] = new int[2];
try{
IngresoDatos(notas);
}
catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
System.out.println("Arreglo fuera de rango");
arrayIndexOutOfBoundsException.printStackTrace();
}
catch(Exception exception){
System.out.println(exception.getMessage());
}
}

public static void IngresoDatos(int notas[]) throws ArrayIndexOutOfBoundsException{


Scanner entrada = new Scanner(System.in);
for (int i = 0; i <= notas.length; i++){
notas[i] = entrada.nextInt();
}
}
}

Dada la descripcin anterior y el programa <testExcepcion_throw2.java>


revise, evalu y relacione las siguientes acciones con las lneas de cdigo que
hacen posible la misma:
6

Por ejemplo: si seleccionamos la respuesta B; con x-18 indicaramos, que para dejar de generar la excepcin
ArrayIndexOfBoundsException (accin x) debemos reemplazar la lnea de cdigo nro. 18, con la instruccin
18: public static void IngresoDatos(int notas[ ]){
Ojo: con este ejemplo no se asegura que la respuesta correcta sea el literal B, lo cual puede o no puede ser.

x.
y.
z.

ACCIONES
Cambio que se debe aplicar para no generar la excepcin
ArrayIndexOfBoundsException
ltima lnea que se ejecuta al capturar y manejar la excepcin.
Mensaje personalizado por el programador y mostrado por pantalla para
informar de la excepcin.

LNEA DE
CDIGO
20:
21:
18:
11:
10:
14:

12)

INSTRUCCIN
for (int i = 0; i < notas.length; i++){
notas[i+1] = entrada.nextInt();
public static void IngresoDatos(int notas[ ]){
arrayIndexOutOfBoundsException.printStackTrace();
System.out.println("Arreglo fuera de rango");
System.out.println(exception.getMessage());

a.

x-20; y-11; z-10

b.

x-18; y-11; z-10

c.

x-20; y-18; z-10

d.

x-20; y-21; z-14

Una de las buenas prcticas en programacin al implementar manejo de


excepciones es NO REEMPLAZAR todo if() con bloques try-catch, ya que el
segmento de cdigo catch consume mayores recursos computacionales en
comparacin de validaciones previas con if(); de hecho usamos if() cuando el
escenario es muy recurrente, pero catch slo cuando el escenario casi nunca
pasa (CASI NUNCA sinnimo de EXCEPCIN).
Puntualizado lo anterior, se presentan 4 requerimientos que Ud. debe resolver
desarrollando una clase en Java que codifique las instrucciones if()-else o try
catch. Analice cada REQUERIMIENTO y seleccione la INSTRUCCIN que
mayoritaria y primordialmente debe incluirse en l .java
Ejemplo:
w-1: Aseguramos que en el proceso de calcular promedios la instruccin
esencial y predominante es if()else

w.
x.
y.
z.

13)

a.

w-1; x-2; y-1; z-2.

b.

w-2; x-2; y-2; z-1.

c.

w-1; x-2; y-1; z-1.

d.

w-1; x-1; y-2; z-2.

REQUERIMIENTO
Clculo repetitivo de promedio de una lista de
valores aleatorios que van de -20 a 20, incluido
el 0.
Ingreso por teclado de valores para las variables
a, b, c y d de tipo: int, double, String y boolean.
Dadas las edades de 3 personas averiguar cul
es la mayor y cual la intermedia.
Calcula la nota final de un estudiante, indicar si
aprob o est en supletorio 1 o supletorio 2.

Las clases testExcepcion_Propia, ExcepcionError1 y ExcepcionError2 forman


parte del siguiente cdigo, que tiene el objetivo solicitar al usuario el ingreso de
la primera letra de su nombre inicial, sin embargo puede ocurrir que el
usuario en vez de una letra ingrese uno o varios caracteres numrico (1-9) o
especiales (- / 5 ; ,), motivo por el cual el programa debera finalizar su
ejecucin, ya que el mismo solo funcionara cuando el usuario ingreso
correctamente un carcter alfabtico (de la a-z o de la A-Z)
1
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
27
28
29
30
31
32
33
34
35
36
37
38

package manejoExcepciones;
import java.util.*;
import java.util.InputMismatchException;
public class testExcepcion_Propia {
public static void main(String[] args) {
try {
ingresoChar();
System.out.println("Continuemos la ejecucon");
} catch (ExcepcionError1 excepcionError1) {
System.out.println(excepcionError1.getMessage());
}
}

public static void ingresoChar() {


Scanner entrada = new Scanner(System.in);
char inicial;
System.out.print("Ingrese su inicial: ");
inicial = entrada.next().charAt(0);
if (!Character.isAlphabetic(inicial)) {
throw new ExcepcionError1();
}
}

class ExcepcionError1 extends RuntimeException {


public ExcepcionError1() {
super("Error al ingreso");
}
}
class ExcepcionError2 extends InputMismatchException {
public ExcepcionError2() {
super("Error al ingreso");
}
}

Analice el flujo del cdigo y a continuacin responda la siguiente pregunta


seleccionando una de las cuatro alternativas siguientes:
Si el usuario por error ingresa desde el teclado el valor de 9 para la variable
inicial, que es lo que se muestra por pantalla:
Pista: La sentencia Character.isAlphabetic(caracter), permite averiguar si la variable caracter es una carcter
alfabtico; isAlphabetic(caracter) devuelve false si no es as. No olvide que ! es el smbolo de negacin.

a.

Por pantalla se presenta Error al ingreso desde la lnea 36.

b.

Por pantalla se presenta Error al ingreso desde la lnea 30.

c.

No hay ningn error por pantalla ya que el 9 igual es un carcter.

d.

Captura la excepcin InputMismatchException de la lnea 34.

.
14)

Cul de los siguientes con consejos se debe tener en cuenta al momento de implementar
manejo de excepciones:
a.
b.
c.
d.

15)

Obligar para cada bloque catch varios parmetros Exception.


Tener un catch por cada tipo de excepcin que podra generarse.
Codificar entre un bloque try y sus correspondientes bloques catch
Si un bloque try no requiere de un bloque catch, no definirlo.

La excepcin FileNotFoundException es una excepcin verificada por que hereda


________________ de la clase ________________.

Pista: busque la jerarqua de herencia de la excepcin FileNotFoundException en el API de


java de su sitio web.
a.
b.
c.
d.
16)

directamente RuntimeException
indirectamente Exception
indirectamente IOException
directamente Thowable

Existe una buena prctica a aplicar a la hora de implementar manejo de excepciones en


un cdigo java, cul de los siguientes planteamientos es una de ellas?
a.
b.
c.
d.

Para evitar mltiples catch, colocar una lista de parmetros Exception entre comas
Colocar cdigo entre un bloque try y sus correspondientes bloques catch.
Anidar bloques try para definir un solo bloque catch para todo el grupo.
Para varios catch ordenarlos segn la jerarqua/herencia de clases Exception.

Las excepciones propias (nuevo tipo de excepcin) deben ____________ de la clase


RuntimeException para ser excepciones no verificadas; o de la clase ____________ (por
ejemplo) para ser una excepcin ____________.
a.
b.
c.
d.
18)

excluirse Error no verificada


crearse Error verificada
heredarse IOException verificada
heredarse IOException no verificada

En el siguiente fragmento de cdigo es evidente la implementacin del manejo de las


excepciones
RuntimeException,
InputMismatchException,
ArrayIndexOutOfBoundsException en las lneas 7, 9 y 11, sin embargo, stas deben ser
atrapadas en un orden determinado. Cul es ste orden?
1 public static void main(String[] args) {
Scanner in = new Scanner(System.in);
2
double n1[] = new double[2];
3
try{
4
for(int i = 0; i < n1.length+3; i++ )
5
n1[i] = in.nextDouble();
6
}catch(______________________________ e1){
7
System.err.printf("Error e1");
8
}catch(______________________________ e2){
9
System.err.printf("Error e2");
1
0
}catch(______________________________ e3){
1
1
System.err.printf("Error e3");
1
2
}
1
3
1 }
4

a.
b.
c.
d.
19)

InputMismatchException ArrayIndexOutOfBoundsException RuntimeException


Exception RuntimeException ArrayIndexOutOfBoundsException
InputMismatchException RuntimeException ArrayIndexOutOfBoundsException
RuntimeException InputMismatchException ArrayIndexOutOfBoundsException

Cul es el motivo por el que las excepciones deben ser atrapadas en una orden
determinado dentro de los n bloques catch que se defina para un solo bloque try?

a.
b.
c.
d.

Para cada bloque catch se debe definir un solo tipo de excepcin heredada de la
clase Throwable
La excepcin RuntimeException (y sus hijas) al ser no verificadas deben ser
atrapadas solo al final.
Todas la excepciones que no hereden de RutimeExcepction pueden ser atrapadas
en los ltimos catch
La estructura jerrquica de herencia de la clase Exception de la que se deriva cada
tipo de excepcin.

10

20)

La clase Throwable ofrece el mtodo printStackTrace que imprime la pila de llamadas a


mtodos, as como el getMessage que devuelve la cadena descriptiva almacenada en una
excepcin.
Con sta definicin y dado el cdigo de la clase <ejerMetodosExcepciones.java> gracias a
qu lnea que cdigo imprime por pantalla el rastreo de la pila mostrado en los resultados
adjuntos al final de cdigo?
1 public class ejerMetodosExcepciones {
public static void main(String[] args) {
2
try {
3
B();
4
} catch (ClassCastException e1) {
5
System.err.printf(e.getMessage());
6
e.printStackTrace();
7
} catch (Exception e2) {
8
System.err.printf(e.getMessage());
9
e.printStackTrace();
10
}
11
}
12
public static void B(){
13
A();
14
}
15
public static void A() throws RuntimeException{
16
throw new RuntimeException("<Exception A> ");
17
}
18
19 }
run:
<Exception A> java.lang.RuntimeException: <Exception A>
at nombrePaquete.ejerMetodosExcepciones.A(ejerMetodosExcepciones.java:18)
at nombrePaquete.ejerMetodosExcepciones.B(ejerMetodosExcepciones.java:15)
at nombrePaquete.ejerMetodosExcepciones.main(ejerMetodosExcepciones.java:5)
BUILD SUCCESSFUL (total time: 0 seconds)

a.
b.
c.
d.
21)

Lnea 4
Lneas 6-7
Lneas 9-10
Lneas 17, 14, 4

Una nueva clase de excepcin debe extender a una clase de excepcin existente, para
asegurar que la clase pueda usarse con el mecanismo de manejo de excepciones.
Por lo tanto, en la siguiente jerarqua de excepciones cual es una excepcin propia definida
de forma correcta:

a.
b.
c.
d.
22)

MiExcepcion1
MiExcepcion2
MiExcepcion3
MiExcepcion4

Ejemplos de tipos de datos primitivos en java son:


a.

int n1, n2; double x1, x2;


11

b.
c.
d.
23)

String cadena; Exception exception1;


MiClase objeto1; String cadena;
int arreglo1[ ] = new int[3];

Cul de los siguientes arreglos contiene datos de tipo por referencia?


1 public static void main(String[] args) {
int array_a[][]={{1, 2, 3, 4, 5},{5, 6, 7, 8}};
2
Exception array_b[]= {new RuntimeException()};
3
char array_c[]= {'a','b','c'};
4
double array_d[][]= new double [2][];
5
6 }

El array_? de la lnea de cdigo: _____.


a.
2
b.
3
c.
4
d.
5
24)

Dado el siguiente fragmento de cdigo; en la definicin de las variables por referencia


arrreglo1 y arreglo2 de la lnea 1. Cul de las siguientes lneas (de la 2 a la 5) est
correctamente codificada? Es decir que no generen no erres en tiempo de ejecucin (por
ejemplo excepciones) o errores de compilacin.
1
2
3
4
5

a.
b.
c.
d.
25)

int[] arreglo1 = {6,1}, arreglo2;


arreglo2 = new int[2];
arreglo2[4] = 2;
arreglo1[0] = arreglo2[4];
arreglo2 = arreglo1 [0];

2
3
4
5

Para obtener la longitud de un arreglo unidimensional o multidimensional se puede usar la


instruccin length y la forma de usarla es la siguiente:
int longitud = Nombre_arreglo_o_Matriz.intruccion;
Dada la definicin anterior; cul es la salida por pantalla del siguiente flujo?:
1 public class Test5_longitudArreglo {
2
public static void main(String[] args) {
3
int matrizA[][] = {{1},{2,3},{4,5,6,7}};
4
System.out.println(matrizA.length);
5
System.out.println(matrizA[2].length);
6
}
7 }

Primero se muestra el nmero de _________ de la matrizA y luego el nmero de


elementos de la _________ fila de dicha matriz.
a.
b.
c.
d.
26)

filas primera
columnas primera
filas tercera
filas segunda

El siguiente flujo arroja por pantalla el valor de 6.

12

1 public static void main(String[] args) {


int[] m1 = {9,-5,2}; int v1=0;
2
for(int m : m1)
3
v1 += m;
4
System.out.println(v1);
5
6 }

Cul de las siguientes lneas permite visualizar ste resultado de 6?


a.
b.
c.
d.
27)

System.out.println(m1[0..2]);
System.out.println(m1[0]+m1[1]+m1[2]);
System.out.println(m[0]+m[1]+m[2]);
System.out.println(v1=v1+m);

Cul es la salida por pantalla que se muestra del siguiente flujo?


1 public static void main(String[] args) {
double arreglo[]={20, -10, 1};
2
for (int i = 0; i < arreglo.length; i++)
3
arreglo[i] /= 2;
4
for(double a : arreglo)
5
System.out.println(a);
6
7 }

a.
b.
c.
d.
28)

20.0; -10.0; 1.0


10.0; -5.0; 0.5
-15.0
1.0

La siguiente clase consta de dos mtodos, el principal por defecto main y el programado
valor1(), el cual recibe un parmetro de ingreso lo procesa y retorna un valor entero.
Dado el siguiente cdigo de la clase arreglos_PasaRecorre_1.java indicar cul de las
siguientes sentencias se debe ubicar en la lnea 4 para llamar al mtodo valor1()
enviando el parmetro arreglo
1 public class arreglos_PasaRecorre_1 {
2
public static void main(String[] args) {
3
int arreglo[] = {6,4,1,7};
4
____________________
5
}
6
public static int valor1(int array[]){
7
return array[array.length];
8
}
9 }

a.
b.
c.
d.
29)

El tipo de dato del ndice de un arreglo es de tipo ___ o un valor que pueda promoverse a
int como por ejemplo ___, ___, ___; todos los anteriores pero excepto ___.
a.
b.
c.
d.

30)

int ultimo = valor1(arreglo);


int ultimo = valor1(arreglo[4]);
arreglo(valor1);
System.out.println("arreglo.length");

int byte short char int


long byte short char int
int byte short char long
long byte short char long

Con el mtodo de bsqueda binario, cuantas iteraciones se requieren para encontrar el


nmero 75 en el siguiente arreglo:
13

a.
b.
c.
d.
31)

1
4
12
arreglo.length() 1;

La clase _________ permite ordenar, buscar, compara, insertar, copiar, etc.


elementos dentro de los _________.
Throwable arreglos
Exception arreglos
Arrays arreglos
Arrays registros

a.
b.
c.
d.
32)

int []arreglo = {13, 23, 24, 34, 35, 36, 38, 42, 47, 51, 68, 74, 75, 85, 97}

Con el mtodo de bsqueda lineal, cuantas iteraciones se requieren para encontrar el nmero 5 en el
siguiente arreglo:
1

a.
b.
c.
d.
33)

int []arreglo = {13, 23, 24, 34, 35, 36, 38, 42, 47, 51, 68, 74, 75, 85, 97}

0
1
1, 14 y 16 respectivamente.
arreglo.length(); pero no lo encuentra.

Cul es el mejor mtodo para buscar dentro del siguiente arreglo?


1

a.
b.
c.
d.
34)

Burbuja
Lineal
Binario
Burbuja mejorado

En cuanto al mtodo de bsqueda lineal.


a.
b.
c.
d.

35)

int []arreglo = {23, 213, 224, 334, 345, 446, 518, 542, 644, 797}

Es el nico mtodo que est incluido en la clase ArrayList


Iniciar su bsqueda con un array en orden.
No es tan eficiente como si lo es la bsqueda binaria.
Va partiendo el array ordenado en 2 sucesivamente.

El ordenamiento por seleccin es un algoritmo de ordenamiento simple, pero ineficiente. En


la primera iteracin, se selecciona el elemento ms pequeo en el arreglo y se intercambia
con el primer elemento; en la segunda iteracin, se selecciona el segundo elemento ms
pequeo (el restante ms pequeo) y se intercambia con el segundo elemento, y contina
hasta que en la ltima iteracin se selecciona el segundo elemento ms grande, y se
intercambia con el antepenltimo elemento, dejando el elemento ms grande en el ltimo
ndice.
Dado lo anterior y el siguiente arreglo, como queda ordenado el arreglo con el mtodo por
seleccin en la primera iteracin?
1

a.
b.
c.
d.
36)

int []arreglo = {75, 95, 55, 56, 63, 81, 76, 59, 25, 66};

25, 75, 95, 55, 56, 63, 81, 76, 59, 66


25, 95, 55, 56, 63, 81, 76, 59, 75, 66
75, 95, 55, 56, 63, 81, 76, 59, 66, 25
95, 55, 56, 63, 81, 76, 59, 66, 75, 25

A continuacin mostramos un arreglo de 5 elemento inicializados en su declaracin, luego


14

un conjunto de 5 pasos (iteraciones) que se cumplieron para ordenar dicho arreglo.


1

int []arreglo = {4, -5, 12, -16, 9};

4, -5, 12, -16, 9;


4, -5, -16, 9, 12;
4, -5, -16, 9, 12;
-5, -16, 4, 9, 12;
-16, -5, 4, 9, 12;
Expuesto lo anterior, se puede ver que el arreglo fue ordenado ascendentemente en varias
iteraciones, pero mediante el mtodo de ordenamiento: ________________.
a.
b.
c.
d.
37)

Que es recursividad.
a.
b.
c.
d.

38)

El concepto que se aplica a mtodos que llaman a otros dentro de su cuerpo.


Es una tcnica avanzada que mejora el rendimiento en memoria.
Es aplicada cuando un mtodo se llama a si mismo dentro de su cuerpo.
Ciclos infinitos internos y repetitivos.

Cuando se llama a un mtodo recursivo para resolver un problema, en realidad el mtodo es capaz
de resolver slo el (los) caso(s) ms simple(s), o ____________. Si se llama con un ____________,
el mtodo devuelve un resultado.

a.
b.
c.
d.
39)

seleccin
insercin
burbuja
combinacin

caso base paso recursivo


caso(s) base caso base
paso recursivo caso base
mtodo recursivo ciclo iterativo

En el siguiente .java recursividadBasic.java se ha codificado y llamado el mtodo


recursivo recursivoA([parametros]). Analice su flujo e indique en que lnea (s) de cdigo
se encuentra codificado el caso base.
1 public class recursividadBasic {
2
public static void main(String[] args) {
3
System.out.println(recursivoA(3));
4
}
5
6
public static int recursivoA(int valor){
7
if (valor == 1)
8
return valor + 2;
9
return recursivoA(valor-1);
1
}
0
1
}
1

a.
b.
c.
d.

3
7-8
9
6-10

15

40)

La recursividad e iteracin son dos flujos de control similares en cuanto repiten sentencias
un nmero determinado de veces; sin embargo, tienen marcadas diferencias que los hacen
nicos.
A continuacin, se exponen cuatro premisas de las cuales solo una indica la diferencia real
entre la recursividad e iteracin:
La recursividad _____________________________________________ mientras que la
iteracin _____________________________________________.
a.
b.
c.
d.

usa if, if..else o switch para su repeticin usa for, while o d..while
usa for, while o do..while para su repeticin usa if, if..else o switch
usa la memoria fsica del CPU ocupa memoria virtual disponible
implica una condicin de terminacin jams evala condicin alguna

16

Para el desarrollo de la prueba de ensayo, deber revisar su gua de estudio,

texto bsico, y anuncios/recursos que se publican en el Entorno Virtual de


Aprendizaje (EVA-UTPL). Adems, se sugiere participar (opcional) de los
foros (cdigos, sintaxis, temas adicionales) en los cuales Ud. podr mejorar
sus competencias de anlisis, diseo y codificacin de algoritmos.
Solo una vez revisados los temas de: Excepciones, Arreglos y Recursividad,

inicie el desarrollo de esta Evaluacin a Distancia (componente de ensayo


Ejercicio.java, foro); no olvide que el fin de sta, es ofrecerle un indicador
del nivel de conocimientos y competencias de cada unidad y as refuerce su
prctica, en caso de no obtener un puntaje o comentarios satisfactorios en
su programa (parte de ensayo).
Una vez desarrollada su solucin Ud. debe presentar ste componente de
ensayo considerando las siguientes instrucciones, de no hacerlo se ira
restando el puntaje.

En el EVA se le habilitaran un espacio para subir obligatoriamente dos


archivos, y solo dos archivos, NO, MS.

1er. archivo: correspondiente al informe del programa, el cual debe ser un


documento en Microsoft Word .docx con la siguiente informacin y cdigo
con formato (tabulaciones, colores, etc.) bajo ningn caso se deben pegar
imgenes capturadas:

El nombre del informe debe ser


[usernameDelEva_ProgAlg_AA16_1B.docx] y su contenido es el
siguiente:
UNIVERSIDAD TCNICA PARTICULAR DE LOJA
PROGRAMACIN DE ALGORITMOS - Sistemas Informticos y Computacin
Modalidad Abierta y a Distancia
Periodo: Abril - agosto 2016
Tercer Ciclo

Estudiante: Aqu los Apellidos y Nombres completos del estudiante


17

Nro. de Cdula: Aqu el nmero de cedula del estudiante


Correo(s): Aqu el (los) correo electrnico del estudiante separados por comas
Calificacin que cree merecer: 4 / 4 pts. (Estime conscientemente un puntaje)

Desarrollo de la solucin (CODIGO .JAVA)


/**
* Comentario breve de su solucin
* @author Nombre del Autor
* @version 1.0 17/10/2014
*/
public class usernameDelEva_ProgAlg_AA16_1B.docx {
/**
* metodo1: permite sumar, restar, multiplicar y dividir los aos plazo,
* etc. etc. etc.
* @param x para el valor 1 del ao
* @param y para el valor 2 del mes
* @return el valor de cero si no hay, si hay, el valor mayor a 30
*/
public int metodo1(int x, int y){
//AQUI TODO SU CDIGO ...
return 0;
}
}
class testMetodos{
public static void main(String[] args) {
MiClaseA objeto = new MiClaseA(1, 2);
objeto.metodo1(1, 2);
}
}

/**
* RUN
* PEGAR AQUI LO QUE SE OBTENGA POR PANTALLA EN
RESULTADOS
* SI NO HAY RESULTADOS AQU, SE ASUMIRA COMO
PROGRAMA INVALIDO
*/
Para copiar el cdigo del NICO archivo.java al informe.docx, desde
NetBeans (o de cualquier framework con el que est trabajando) el cdigo ser
copiado con formato, es decir, con los colores, sangras, etc. tpicos del
lenguaje java, para ello Ud. no debe copiar del NetBeans (si usa este IDE)
directamente al documento .docx, sino, debe usar algn intermediario que le
d formato al cdigo para no perlo al pegar al Documento.docx. De entre
muchos intermediarios existentes en la Red o Herramientas de escritorio aqu
le proponemos tres (sintase en la libertar usar el que mejor domine):

Notepad++: http://notepad-plus-plus.org/
Source code (en line): http://markup.su/highlighter/
Made by Alexander Kojevnikov (en line): http://hilite.me/

Nota: stos tres recursos fueron consultados el 13 de enero del 2016, 17H:00.

Y por favor, para no tener en muchas hojas su cdigo, reduzca el tamao de la


letra mnimo 8pts, y con interlineado del mnimo posible.
18

Importantes: No olvide que al final del cdigo dentro del Programa.java y


dentro de un comentario insertado con los caracteres /**, Ud. debe copiar y
pegar lo que obtenga por pantalla como resultado en RUN (resultados de la
ejecucin, bien tabulados por el mismo .java, para lo cual Ud. puede revisar el
apndice G Formatted Output), esta ltima seccin demanda la mayor
calificacin de este componente de ensayo, ya que sta nos certifica que su
aplicacin si funciona y genera los resultados correctos/solicitados.
2do. archivo: correspondiente al cdigo en s, para lo cual Ud. nicamente
debe adjuntar el nico archivo .java (un solo archivo .java) perfectamente
documentado (comentado), organizado y limpio (sin variables que no use, no
espacios en blanco innecesarios y con las tabulaciones correctas).
Por favor, es importante que todo el cdigo este dentro de un solo
archivo .java, tenga o no tenga una o ms clases class. Bajo ninguna
circunstancia Ud. podr subir todo un proyecto comprimido, SINO, SOLO UN
NICO ARCHIVO .java, compilable, ejecutable y no empaquetado, para lo cual,
el nico archivo Programa.java que entregue ser compilado usando
directamente el comando javac y ejecutado con el comando java desde
consola, por lo cual, antes de subir su Programa.java, Ud. deber validar que
si se compila y ejecuta desde cualquier directorio donde se lo mueva/ubique,
para lo cual se recomienda:

No empaquetar la(s) clase(s)


Configurar correctamente las variables de entorno del sistema para el JDK
Compile y ejecute su programa sin usar ningn IDE (sino directamente en
CMD con los comandos javac y java) esto al final, antes de subirlo a la
plataforma.
Como nombre del nico archivo .java se le pide su
usernameDelEva_ProgAlg_AA16_1B.docx, ello con fines de facilitar la
revisin de su cdigo y el registro de su calificacin.
Programe varias clases dentro de un solo archivo .java, para ello, no olvide
que solo una clase debe ser public (con la que guardo el Programa.java)
las dems solo las definir con class, caso contrario se genera un error de
compilacin.

Calificacin 4 puntos.
Una direccin IP es una etiqueta numrica que identifica de manera lgica y
jerrquica, a una interfaz de un dispositivo dentro de una red que utilice el
protocolo IP (Internet Protocol). Las computadoras se conectan entre s
mediante sus respectivas direcciones IP. stas se pueden expresar como
nmeros de notacin decimal en octetos que estn comprendidos en el rango
de 0 a 255, ejemplo: 10.128.1.255. El direccionamiento IP est dividido en las
siguientes clases segn sus rangos:

19

Clase
A
B
C

Rango
0.0.0.0
127.255.255.255
128.0.0.0
191.255.255.255
192.0.0.0
223.255.255.255

Nro. de
redes

Nro. de host
por red

Mascara de
red

Broadcast ID

128

16777214

255.0.0.0

x.255.255.255

16384

65534

255.255.0.0

x.x.255.255

2097152

254

255.255.255.0

x.x.x.255

En una red de clase A, se asigna el primer octeto para identificar la red,

reservando los tres ltimos octetos (24 bits) para que sean asignados a los
hosts, de modo que la cantidad mxima de hosts es 2 24 - 2 (se excluyen la
direccin reservada para broadcast (ltimos octetos en 255) y de red
(ltimos octetos en 0)), es decir, 16.777.214 hosts.
En una red de clase B, se asignan los dos primeros octetos para identificar la
red, reservando los dos octetos finales (16 bits) para que sean asignados a
los hosts, de modo que la cantidad mxima de hosts por cada red es 2 16 - 2,
o 65.534 hosts.
En una red de clase C, se asignan los tres primeros octetos para identificar la
red, reservando el octeto final (8 bits) para que sea asignado a los hosts, de
modo que la cantidad mxima de hosts por cada red es 28 - 2, o 254 hosts.
Restricciones para el direccionamiento:
El primer nmero del ID de red no puede ser 127. Este nmero de ID est
reservado para pruebas de conexin, como realizar un bucle local.
Los nmeros del ID de host no pueden ser todos 255, ya que esta direccin
se utiliza como direccin de difusin IP (broadcast).
El ID de host no puede ser todo cero(s), ya que esta direccin se utiliza para
indicar un ID de red.
El ID de host deber ser exclusivo para el ID de red local.
Se pide:
Desarrollar un .java que permita generar aleatoriamente direcciones IP (cuatro
grupos de nmeros) y de acuerdo a las validaciones del caso se vaya
almacenando en orden dentro de los arreglos A, B, C que representan a la
clase que pertenecen. Las direcciones pueden estar ordenadas dentro de cada
arreglo nicamente por el criterio de los primeros 8 octetos sin importar los
restantes. Implemente las excepciones que considere pertinentes. Al final lo
que se debe visualizar por pantalla son tres listados correspondientes a las tres
clases de direcciones IP; cada arreglo (lista) ordenado.
Importante: el usuario no debe ingresar por teclado ningn valor, todo debe
autogenerarse, de forma tal que, cuando el usuario ejecute su programa, cada
vez se listen grupos/arreglos (A, B, C) de direcciones IP diferentes.

20

Y finalmente: si en el transcurso del desarrollo de este trabajo a distancia Ud.


tuviera inconvenientes, con todo gusto le atenderemos en los medios
compartidos (por ejemplo, foros) que su Tutor disponga en la plataforma virtual
de aprendizaje.

21

Para el desarrollo de la prueba objetiva, deber revisar su gua de estudio,

texto bsico, y anuncios/recursos que se publican en el Entorno Virtual de


Aprendizaje (EVA).
Acuda a la bibliografa complementaria citada en el gua de estudio y EVA,
as enriquecer sus conocimientos para el ptimo desarrollo de esta
evaluacin.
Solo una vez revisados los temas de: Programacin con ficheros y POO en

Java, inicie el desarrollo de esta Evaluacin a Distancia (componente


objetivo); no olvide que el fin de sta, es ofrecerle un indicador del nivel de
conocimientos y competencias de cada unidad y as refuerce su estudio en
aquellas que obtenga menor puntaje.
Al rendir sta evaluacin a distancia, lea y analice con atencin cada una de

las siguientes preguntas/cdigos y seleccione el literal de la alternativa


correcta o la que mejor defina el concepto o programa. Recuerde que Ud.
deber ingresar sus respuestas en el EVA, este documento nicamente le
sirve como borrador.
De las cuatro alternativas que se muestran en cada pregunta (a, b, c, d),

ms de una le podr parecer correcta, pero no es as; existe una nica


solucin.
1.

Qu es un dato en java.
a.
b.
c.
d.

2.

Conjunto de bytes temporales, disponibles mientras dura la ejecucin del


programa.
Conjunto de archivos almacenados en dispositivos de almacenamiento
secundario.
Son variables, arreglos, objetos o archivos almacenados en dispositivos fsicos.
Arreglos con igual o diferente tipo de dato, ejemplo: String nombre, direccin;

El almacenamiento de datos en variables y arreglos es _____________ y se pierden cuando


quedan fuera de alcance o el programa termina. Las computadoras utilizan archivos para
retencin a largo plazo de _____________ cantidades de datos.

22

a.
b.
c.
d.
3.

Los datos en archivos son denominados datos _____________ y se almacenan en dispositivos


de almacenamiento _____________.
a.
b.
c.
d.

4.

parcial pequeas
persistente grandes
temporal grandes
temporal pequeas

temporales secundarios
persistentes principal
persistentes secundarios
cadena temporal

La UTPL cuenta con titulaciones las cuales estn conformadas por


estudiantes que matriculados en asignaturas de un determinado ciclo
aprueban con una sumatoria mnima de 28 puntos.
Dado este escenario:
a.
b.
c.
d.

5.

La entidad UTPL es una representacin de un registro.


La unin de varios estudiantes representa un campo.
Las calificaciones de un estudiante son datos.
La entidad estudiante presenta varios campos.

Los datos que se almacenan en variables y arreglos son temporales; se pierden cuando una
variable local queda fuera de alcance, o cuando el programa termina. Las computadoras
utilizan archivos para la retencin a largo plazo de grandes cantidades de datos, incluso
despus de que los programas que crearon los datos terminan de ejecutarse.
1
2
3
4
5
6
7
8

final double constPI = 3.1416;


String msj = "Prog-Alg";
int a = 1, b = 2;
Formatter inFile = new Formatter("fileTestA1.txt");
inFile.format("%s\n", msj);
inFile.format("%f\n", constPI);
inFile.format("%d\n", a+b);
inFile.close();

Por lo tanto, las sentencias 1-8 del flujo anterior trabajan con datos no persistentes pero, se
tornan persistentes en la(s) lnea(s) __________.
a.
b.
c.
d.
6.

1 a la 3
4 a la 8
8 nicamente
4 nicamente

Los datos persistentes que se mantienen en archivos existen ms all de la duracin de la


ejecucin del programa.
1
2
3
4
5
6
7
8

final double constPI = 3.1416;


String msj = "Prog-Alg";
int a = 1, b = 2;
Formatter inFile = new Formatter("fileTestA1.txt");
inFile.format("%s\n", msj);
inFile.format("%f\n", constPI);
inFile.format("%d\n", a+b);
inFile.close();

As, un ejemplo de dato no persistente en las lneas 1-8 del flujo anterior es __________. Es
decir, instruccin o sentencia que pierde vigencia o que no permite el almacenamiento de datos
23

persistentes.
a.
b.
c.
d.
7.

Hablando del tema ARCHIVOS/Files, se menciona que la unidad mnima de medida de un dato
en una PC es el _____ (0s, 1s) y que el grupo de 8 de stos forman un _____ y en Java dos
bytes representan un _____. Conocer esto es la base para comprender que contiene un archivo
a bajo nivel.
a.
b.
c.
d.

8.

archivos
registros
bites
campos

Los flujos basados en bytes reciben y envan datos en su formato ______. Los flujos basados
en caracteres reciben y envan datos como___________.
La clase Scanner tambin puede ______ desde un archivo. La clase Formatter permite
________ con formato a cualquier flujo basado en texto, en forma
a.
b.
c.
d.

10.

bit byte carcter


bit bit kbyte
byte bit mbyte
byte byte carcter

Si los caracteres estn compuestos por bits y los campos compuestos por caracteres, los
_______ estn compuestos por campos.
a.
b.
c.
d.

9.

fileTestA1.txt
msj=Prog-Alg
.format(___)
.close()

Secuencia de caracteres binario mostrar datos leer datos


Binario secuencia de caracteres leer datos mostrar datos
Secuencia de caracteres mostrar datos binarios leer datos
Leer datos mostrar datos secuencia de caracteres - binario

Un archivo (file) puede contener otros archivos, o tambin un o varios registros; el registro a su
vez est formado por campos y los campos por caracteres (dato o valor) y stos ltimos por
bits.
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2

public class Utpl {


public String nom;
public int ruc;
}
class Docentes extends Utpl{
public String nom, rol;
}
class Administrativo extends Utpl{
public String nom, cargo;

class test{
public static void main(String[] args) {
Docentes docente[] = new Docentes
docente[0] = new Docentes();
docente[0].nom = "Juan Lopez";
docente[0].rol = "Axiliar";

Con esta aclaracin y jerarqua de clases .java, en la lnea 18 se est representado:


__________, en la lnea 17: __________ y la clase UTPL representa __________.
a.
b.
c.

varios campos un archivo varios archivos


un archivo un registro un campo
un campo un registro varios campos
24

d.
11.

Por qu un registro es un grupo de campos relacionados? Porque


_____________________...
a.
b.
c.
d.

12.

un campo un registro una DB

de entre mil registros cada uno es igual gracia a una clave de registro o llave primaria.
tanto los campos como los registros estn compuestos por bit, byte y caracteres.
los valores de los campos son todos exactamente iguales en cada registro relacionado.
los campos representan inequvocamente a un registro a travs de una llave primaria.

Los flujos que reciben y envan bytes a archivos son flujos basados en bytes y los flujos que
reciben y envan caracteres son flujos basados en caracteres, y almacenan datos como una
secuencia de caracteres.
Dado ello, si se emplea un flujo basado en byte para enviar a guardar el 5 en un archivo cual
es el flujo de bytes que se enva?
a.
b.
c.
d.

13.

El cdigo binario del nmero 510 = 01012 y no el binario del carcter 5: 5310 = 001101012
Se enva el caracter 5: 5310 = 001101012 y el nmero 510 = 01012 por redundancia.
Se enva directamente el 5 pero en palabras, es decir, cinco como conjunto de
caracteres.
El cdigo binario del caracter 5: 5310 = 001101012 y no los bit del nmero 510 = 01012

El siguiente flujo de hacia un archivo es un ejemplo de guardar el valor ___ a travs de un flujo
basado en ______________.
00000000 00110001
a.
b.
c.
d.

14.

8 bytes
5 caracteres
0 bytes
1 caracteres

Las sentencias:
Formatter obj1 = new Formatter(file.extension);
Scanner obj2 = new Scanner( new File("file.extension") );
Permiten apertura en modo ____________ y apertura en modo ____________
respectivamente, hacia/desde un archivo.
a.
b.
c.
d.

15.

lectura lectura
escritura escritura
lectura escritura
escritura apertura

Las clases FileInputStream y FileOutputStream se utilizan para grabar o leer datos de tipo
byte.
Considerando lo sealado anteriormente, indique en qu lnea de cdigo se lee o escribe datos
y en cul no.

25

1
2
3
4
5
6
7
8

a.
b.
c.
d.
16.

1N0; 3ESCRIBE; 4NO; 7LEE


1ESCRIBE; 3NO; 4LEE; 7NO
1ESCRIBE; 3ESCRIBE; 4LEE; 7LEE
2NO; 3LEE; 4LEE; 7NO

El siguiente fragmento de cdigo crea y lee el archivo de texto MiArchivo.txt; para efectivizar
dicho requerimiento, la lnea 7 debe ser completada con la siguiente sentencia.
1
2
3
4
5
6
7
8

a.
b.
c.
d.
17.

FileOutputStream fos=new FileOutputStream("D:\\fichero_bin.ddr");


byte codigos[]=new byte[6];
fos.write(codigos);
FileInputStream fis=new FileInputStream("D:\\fichero_bin.ddr");
String texto="Esto es una prueba para ficheros binariosssss";
System.out.print((char)'s');
int valor=fis.read();
byte codigos2[]=texto.getBytes();

Formatter salida = new Formatter(new File("c:\\MiArchivo.txt"));


salida.format("%s", "hola mundo\r\n");
salida.format("%s", "fin de archivo");
salida.close();
Scanner entrada = new Scanner(new File("c:\\MiArchivo.txt"));
while (entrada.hasNext()) {
________________________________
}

System.out.println(entrada.nextLine());
System.out.println(salida.nextLine());
salida.format("%s", entrada.toString());
entrada.format("%s", entrada.toString());

La clase File contiene varios mtodos que permiten obtener informacin sobre un archivo que
se va a manipular.
De las siguientes opciones de cdigo indique qu funcin realiza.
SENTENCIA
FUNCION DE LA SENTENCIA
nombre.getName
1.
Devuelve true si es archivo, false si no lo
(),
Devuelve longitud del archivo en bytes
2.
nombre.isFile() ?
Devuelve nombre del archivo
nombre.isDirector
3.
Devuelve true si es directorio, false si no
y() ?
es
4.
nombre.length(),
a.
1x, 2w, 3z, 4y
b.
1x, 2y, 3w, 4z
c.
1x, 2z, 3w, 4y
d.
1w, 2z, 3x, 4y

18.

Se desea realizar la apertura de un archivo en modo escritura, para ello la lnea a ejecutar es:
a.
b.
c.
d.

19.

Scanner archivo = new Scanner(new File(C:\file.txt));


Formatter archivo = new Formatter(C:\folder\);
Formatter archivo = new Formatter(ruta_adsoluta);
Scanner archivo = new Scanner(System.in);

Los archivos que se crean usando flujos basados en bytes son archivos binarios. Los archivos
que se crean usando flujos basados en caracteres son archivos de texto. Los archivos de texto
se pueden leer mediante ___________, mientras que los archivos binarios se leen mediante
___________ que convierte esos datos en un formato legible para los humanos.

26

a.
b.
c.
d.
20.

un programa editores de texto


editores de texto - un programa
editores de texto editores de texto
programas especiales programas especiales

La compilacin y ejecucin de un .java desde consola se la puede realizar con los comandos
javac y java respectivamente; dichos comandos manejan su propia sintaxis la cual es
necesario conocer para ejecutar cada comando de forma correcta. Por ejemplo, en la siguiente
sintaxis la opcin -classpath o lo -cp permite:
____________________________________________________________________.
javac -classpath .;c:\ejemplos\cap17 CrearArchivoTexto.java
a.
b.
c.
d.

21.

Que es un objeto?
a.
b.
c.
d.

22.

Objeto Clase Objeto


Mtodo Clase Propiedad
Mtodo Objeto Mtodo
Mtodo Clase Clase

Puede utilizarse una clase para crear una instancia de la clase, a la cual se le llama _______.
sta es una de las razones por las que Java se conoce como lenguaje de programacin
orientado a objetos.
a.
b.
c.
d.

25.

crear un objeto - private - signo menos


definir el constructor objetos signo mas
crear un objeto protected signo numeral
definir el constructor public signo menos

La unidad de programa que aloja a un _______ se llama _______. Un(a) _______ puede
contener uno o ms mtodos, que estn diseados para realizar las tareas de esa clase.
a.
b.
c.
d.

24.

Es una abstraccin del mundo real, apunta o instancia una clase con atributos,
propiedades y mtodos.
Son variables especiales que pueden ser de tipo public, private o static lo cual define su
nivel y alcance.
Representan todos los paquetes de la clase Java.* que son importados de forma
implcita hacia cualquier clase.
Representan todos los paquetes de la clase Java.* que son importados de forma
explcita hacia cualquier clase.

Por lo general no se puede invocar a un mtodo de otra clase, sino hasta _______ de esa
clase. Las variables declaradas como _______ slo estn accesibles para los mtodos de la
clase en que estn declarados. En UML, los atributos privados van precedidos por un _______
a.
b.
c.
d.

23.

Especificar que ejecuciones futuras se realizaran en el directorio \cap17


Compilar la clase .java en el directorio actual con todas sus clases actuales.
Especificar donde encontrar los archivos de clase del usuario/paquete, etc.
Compilar y ejecutar todas las clases del directorio actual y del \cap17

Objeto
Mtodo
Clase
Variable local

A los mtodos get() se les llama comnmente ___________________ o ___________________.

27

a.
b.
c.
d.
26.

constructores mtodos creados por defecto


mtodos de inicializacin constructores
mtodos de inicializacin mtodos de asignacin
mtodos de acceso mtodos de consulta

El cdigo siguiente corresponde a una jerarqua de clases.


1
2
3
4
5
6
7
8
9
1
0
1
1
1
2

public class Utpl {


public String nom;
public int ruc;
}
class Docentes extends Utpl{
public String nom, rol;
}
class Administrativo extends Utpl{
public String nom, cargo;
}

Dicho cdigo contiene el siguiente nmero de clases, mtodos y variables de instancia


PROPIOS de dicha jerarqua:
___: clases
___: mtodos.
___: variables de instancia.
a.
b.
c.
d.
27.

334
036
302
306

Cada mtodo puede especificar parmetros que representan la informacin adicional requerida
por el mtodo para realizar su tarea correctamente. La llamada a un mtodo suministra valores
(llamados argumentos) para los parmetros del mtodo.
Dado la puntualizacin anterior, cual es el resultado que se muestra por pantalla si ejecutamos
la siguiente clase?
0 public class Clase_Metodos {
2
public static void main(String[] args) {
3
System.out.println(metodoA(3,1));
4
}
5
public static int metodoA(int a){
6
return a+a;
7
}
8
public static int metodoA(int a, int b){
9
return a-b;
1
}
0
1
}
1

a.
b.
c.
d.
28.

1
2
3
4

Cada mtodo puede especificar parmetros que representan la informacin adicional requerida
por el mtodo para realizar su tarea correctamente. La llamada a un mtodo suministra valores
(llamados argumentos) para los parmetros del mtodo.
Dado la puntualizacin anterior, cual es el resultado que se muestra por pantalla si ejecutamos
la siguiente clase?

28

1 package ejer_EvalPresencial_progalg_abr_ago_2014_2Bim;
2 public class ejer_EvalPresencial_progalg_abr_ago_2014_2Bim_Metodos {
3
public static void main(String[] args) {
4
int num1=3, num2=6;
5
System.out.println(metodoA(num1));
6
System.out.println(metodoA(num2,num1));
7
}
8
public static int metodoA(int a){
9
return a+a;
1
}
0
1
public static int metodoA(int a, int b){
1
1
return a-b;
2
1
}
3
1
}
4

a.
b.
c.
d.
29.

3y6
6y3
3 y 12
12 y 3

En la POO la herencia es una forma de reutilizacin de software. sta ahorra tiempo de


desarrollo al basar las nuevas clases en el software existente de calidad.
Conforme a lo indicado anteriormente. Seleccione cules de las opciones sealadas
constituyen buenas prcticas de ingeniera o errores en la programacin.

1.
2.
3.
4.
5.

AFIRMACIN
Modificar variables de instancia private de la superclase a travs de los
mtodos set(parametro) que las subclases heredan.
Declarar los mtodos sobreescritos con la anotacin @Override.
Sobreescribir un mtodo con un modificador de acceso ms restringido.
Declarar en la superclase las variables de instancia y los mtodos
comunes de toda la jerarqua .
Anteponer al nombre del mtodo de la superclase la palabra clave super
y el separador punto (.) al momento de llamar al mtodo de la superclase

B.
E.
a.
b.
c.
d.
30.

2B;
2B;
2E;
2B;

3B;
3E;
3B;
3E;

4B;
4B;
4E;
4B;

5B
5B
5E
5E

Un constructor es:
a.
b.
c.
d.

31.

1B;
1B;
1E;
1B;

VALOR
Buena
prctica
Errores

Un mtodo para inicializar variables globales y locales de tipo <private>


Un mtodo especial que tiene el mismo nombre de la clase que lo contiene.
La tcnica por la cual construimos los atributos privados de la clase padre.
Un conjunto de mtodos que inicializan nicamente los atributos <public> de la clase.

Que es un constructor sobrecargado?


a.
b.

Son mtodos de acceso private para los miembros de la clase que los contiene.
Es un mtodo especial void que se llama as mismo de forma recursiva.
29

c.
d.
32.

La clase String que contiene un sin nmero de mtodos para el tratamiento de cadenas entre
otros objetos, es una clase que no requiere el importe del paquete _______________ a la que
pertenece, ya que ste paquete se importa implcitamente en cada .java.
a.
b.
c.
d.

33.

java.lang
java.Scanner
java.Throwable
java.util

Cul de las siguientes afirmaciones es correcta?


a.
b.
c.
d.

34.

Son mtodos especiales de accedo static que tienen el mismo nombre de su clase.
Son varios mtodos con el mismo nombre de la clase, pero con diferentes parmetros.

Para sobrecargar un mtodo se le nombra como uno ya existente y con el mismo tipo y
nmero de parmetros de entrada.
El nmero de argumentos en la llamada a un mtodo B debe diferir con el nmero de
parmetros recibidos por B.
No podemos llamar a un mtodo que pertenece a otra clase A, sin crear un objeto de
A he invocarlo a travs del objeto.
Los campos private de una clase A son accesibles en la clase A o en otras donde se
instancien con un objeto.

Cul de las afirmaciones es falsa dadas las dos clases siguientes: Clases1_Test() y ClaseX()
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8

a.
b.
c.
d.
35.

public class Clases1_Test {


public static void main(String[] args) {
ClaseX objClaseX = new ClaseX(30, " libros");
System.out.println(objClaseX.getAll());
}
}
class ClaseX {
private int atributo1;
public String atributo2;
public ClaseX(int atributo1, String atributo2) {
this.atributo1 = atributo1;
this.atributo2 = atributo2;
}
public String getAll(){
return atributo1 + atributo2;
}
}

En ClaseX() no se crea un constructor vaco implcito o por defecto.


atributo1 es accesible desde fuera de la clase a la que pertenece
Otra forma de invocar getAll() es: String cad = objClaseX.getAll();
ClaseX() tiene un constructor y una mtodo accesibles desde fuera.

Cada mtodo puede especificar parmetros que representan la informacin adicional requerida
por el mtodo para realizar su tarea correctamente. La llamada a un mtodo suministra valores
(llamados argumentos) para los parmetros del mtodo.
As, la siguiente clase TestCalc realiza la llamada a mtodos en las lneas de cdigo 5 y 6, con
lo cual se supone que la definicin (cabecera) de los mtodos deben ser:
____________________________________ o
____________________________________ respectivamente,
30

1 class TestCalc {
2
public static void main(String[] args) {
3
double num[] = {1,2,3};
4
Calculadora calc = new Calculadora();
5
System.out.println(calc.opera1(num));
6
System.out.println(calc.opera1(num,'+'));
7
}
8 }

a.
b.
c.
d.
36.

Los miembros de clase _________ existen aun cuando no existan objetos de la clase; estn
disponibles tan pronto como se carga la clase en memoria, en tiempo de ejecucin. Para
acceder a un miembro private static cuando no existen objetos de la clase, debe proporcionarse
un mtodo public static.
a.
b.
c.
d.

37.

public double opera1(double num) public double opera1(double num[ ])


public double opera1(double num[ ], char opera) public double opera1(double num)
public double opera1(double num[ ]) public double opera1(double num[ ], char
opera)
public double opera1(double num{1,2,3}) public double opera1(double num[ ],'+')

public
Static
private
protected

Dado el siguiente diagrama de clases, indicar cul de las operaciones es correcta a la hora de
acceder a los miembros de la jerarqua pero desde la clase administrativo
Nota: en cada clase, el primer bloque pertenece al nombre de la clase, el segundo a los
atributos o campos de la clase y el ltimo pertenece a las sus operaciones o mtodos.

a.
b.
c.
d.
38.

this.sueldo = 0.5 + this.categoria;


this.sueldo = 0.5 + bonificaciones();
docente.categoria = horas + bonificaciones();
empleado.cargo = categoria.publica();

En la herencia simple, una clase se deriva de una superclase directa. En la herencia mltiple,
una clase se deriva de ms de una superclase directa. Java no soporta la herencia mltiple.
Dada sta definicin y los siguientes cuatro diagramas de clase, indicar cul de ellos no es
posible implementar en Java.
Diagrama 1

Diagrama 2

31

Diagrama 3

a.
b.
c.
d.
39.

Diagrama 4

Diagrama 1
Diagrama 2
Diagrama 3
Diagrama 4

Cuando un mtodo de una subclase sobrescribe a un mtodo de una superclase, se puede


acceder al mtodo de la superclase desde la subclase, si se antepone al nombre del mtodo de
la subclase la palabra clave super y un separador punto (.)
Dada la aclaracin anterior, y suponiendo que las clases del siguiente diagrama estn
codificadas con tus atributos, constructores y mtodos, indicar cul de las sentencias aplica
correctamente el uso de la palabra clave super:

a.
b.
c.
d.
40.

Dentro de la claseZ codificar: super.metodoZ1()


Dentro de la claseY codificar: super.metodoY1()
Dentro de la claseY codificar: super.metodoX1()
Dentro de la claseX codificar: super.metodoX1()

Dado el siguiente diagrama de clases que afirmacin es verdadera?

32

a.
b.
c.
d.

estudiante hereda de las clases nacional y extranjero


desde estudiante se puede acceder a descuento y costoEstadia
desde estudiante no se puede acceder a descuento y costoEstadia
los mtodos de las clases hijas pueden ser usados por la clase padre

33

Para el desarrollo de la prueba de ensayo, deber revisar su gua de estudio,

texto bsico, y anuncios/recursos que se publican en el Entorno Virtual de


Aprendizaje (EVA-UTPL). Adems, se sugiere participar (opcional) de los
foros (cdigos, sintaxis, temas adicionales) en los cuales Ud. podr entrenar
sus habilidades de anlisis, diseo y codificacin de algoritmos.
Solo una vez revisados los temas de: Programacin con ficheros, POO en

Java, inicie el desarrollo de esta Evaluacin a Distancia (componente de


ensayo); no olvide que el fin de sta, es ofrecerle un indicador del nivel de
conocimientos y competencias de cada unidad y as refuerce su prctica, en
caso de no obtener un puntaje o comentarios satisfactorios en su programa
(parte de ensayo).
Una vez desarrollada su solucin Ud. debe presentar ste componente de
ensayo considerando las siguientes instrucciones, de no hacerlo se ira
restando el puntaje.

En el EVA se le habilitaran un espacio para subir obligatoriamente dos


archivos, y solo dos archivos, NO, MS.

1er. archivo: correspondiente al informe del programa, el cual debe ser un


documento en Microsoft Word .docx con la siguiente informacin y cdigo
con formato (tabulaciones, colores, etc.) bajo ningn caso se deben pegar
imgenes capturadas:

El nombre del informe debe ser


[usernameDelEva_ProgAlg_AA16_2B.docx] y su contenido es el
siguiente:

UNIVERSIDAD TCNICA PARTICULAR DE LOJA


PROGRAMACIN DE ALGORITMOS - Sistemas Informticos y Computacin
Modalidad Abierta y a Distancia
Periodo: Abril - agosto 2016
Tercer Ciclo

34

Estudiante: Aqu los Apellidos y Nombres del estudiante


Nro. de Cdula: Aqu el nmero de cedula del estudiante
Correo(s): Aqu el (los) correo electrnico del estudiante separados por comas
Calificacin que cree merecer: 4 / 4 pts. (Estime conscientemente un puntaje)

Anlisis y diseo de la solucin (Diagrama de clases)


(A continuacin, un ejemplo de cmo se debe presentar el diagrama de clase, al cual Ud. lo
puede generar con cualquier herramienta, la ms oportuna es NetBeans y plugins respectivos,
caso contrario, Visio, o el mismo Word son aplicables. Dicho diagrama es obligatorio, por
cuanto su .java debe aplicar conceptos de Herencia) Borrar este comentario al redactar su
informe.

Documentacin del diagrama de clases:


NOMBRE DE LA
CLASE

ClaseX

ClaseY

DESCRIPCIN
La clase <ClaseX> permite definir a un estudiantes con
sus atributos a, b, c, etc
MTODOS
DESCRIPCIN
MiMetodoA
Este mtodo/funcin retorna el promedio
de las calificaciones xyz para el ciclo C1,
etc, etc..
MiMetodoB
Este mtodo/funcin retorna el promedio
de las calificaciones xyz para el ciclo C1,
etc, etc..
La clase <ClaseY> hereda de la sper clase <ClaseX>
para permitir procesar los datos a, b, c, etc
MTODOS
DESCRIPCIN
MiMetodoA
Este mtodo/funcin retorna el promedio
de las calificaciones xyz para el ciclo C1,
etc, etc..
MiMetodoB
Este mtodo/funcin retorna el promedio
35

de las calificaciones xyz para el ciclo C1,


etc, etc..
Desarrollo de la solucin (CODIGO .JAVA)
package NombrePaquete;
/**
* Comentario breve de su solucin
* @author Nombre del Autor
* @version 1.0 17/10/2014
*/
public class MiClaseA {
/**
* metodo1: permite sumar, restar, multiplicar y dividir los aos plazo,
* etc. etc. etc.
* @param x para el valor 1 del ao
* @param y para el valor 2 del mes
* @return el valor de cero si no hay, si hay, el valor mayor a 30
*/
public int metodo1(int x, int y){
//Poner aqu su cdigo
return 0;
}
}
class testMetodos{
public static void main(String[] args) {
MiClaseA objeto = new MiClaseA(1, 2);
objeto.metodo1(1, 2);
}
}

/**
* RUN
* PEGAR AQUI LO QUE SE OBTENGA POR PANTALLA EN
RESULTADOS
* SI NO HAY RESULTADOS AQU, SE ASUMIRA COMO
PROGRAMA INVALIDO
*/
Para copiar el cdigo del NICO archivo.java al informe.docx, desde
NetBeans (o de cualquier editor con el que est trabajando) el cdigo ser
copiado con formato, es decir, con los colores, sangras, etc. tpicos del
lenguaje java, para ello Ud. no debe copiar del NetBeans (si usa este IDE)
directamente al documento .docx, sino, debe usar algn intermediario que le
d formato al cdigo para no perlo al pegar al Documento.docx. De entre
muchos intermediarios existentes en la Red o Herramientas de escritorio aqu
le proponemos dos (sintase en la libertar usar el que mejor domine):

Notepad++: http://notepad-plus-plus.org/
Source code (en line): http://markup.su/highlighter/
Made by Alexander Kojevnikov (en line): http://hilite.me/

Nota: stos tres recursos fueron consultados el 13 de enero del 2016, 17H:00.

36

Por favor, para no tener en muchas hojas su cdigo, reduzca el tamao de la


letra mnimo 8pts, y con interlineado mnimo posible.
Importantes: No olvide que al final del cdigo dentro del Programa.java y
dentro de un comentario insertado con los caracteres /**, Ud. debe copiar y
pegar lo que obtenga por pantalla como resultado en RUN (resultados de la
ejecucin, bien tabulados por el mismo .java, para lo cual Ud. puede revisar el
apndice G Formatted Output), esta ltima seccin demanda la mayor
calificacin de este componente de ensayo, ya que nos certifica que su
aplicacin si funciona y genera los resultados correctos/solicitados.
2do. archivo: correspondiente al cdigo en s, para lo cual Ud. nicamente
debe adjuntar el nico archivo .java (un solo archivo .java) perfectamente
documentado, organizado y limpio (sin variables que no use, no espacios en
blanco innecesarios y con las tabulaciones correctas).
Por favor, es importante que todo el cdigo este dentro de un solo
archivo .java, tenga o no tenga una o ms clases class. Bajo ninguna
circunstancia Ud. podr subir todo un proyecto comprimido, SINO, SOLO UN
NICO ARCHIVO .java, compilable, ejecutable y no empaquetado, para lo cual,
el nico archivo Programa.java que entregue ser compilado usando
directamente el comando javac y ejecutado con el comando java desde
consola, por lo cual, antes de subir su Programa.java, Ud. deber validar que
si se compila y ejecuta desde cualquier directorio donde se lo mueva/ubique,
para lo cual se recomienda:

No empaquetar la(s) clase(s)


Configurar correctamente las variables de entorno del sistema para el JDK
Compile y ejecute su programa sin usar ningn IDE (sino directamente en
CMD con los comandos javac y java) esto al final, antes de subirlo a la
plataforma.
Para la gestin de archivos (lectura/escritura), no use rutas absolutas, si
relativas.
Como nombre del nico archivo .java se le pide su
usernameDelEva_ProgAlg_AA16_1B.docx, ello con fines de facilitar la
revisin de su cdigo y el registro de su calificacin.
Programe varias clases dentro de un solo archivo .java, para ello, no olvide
que solo una clase debe ser public (con la que guardo el Programa.java)
las dems solo las definir con class, caso contrario se genera un error de
compilacin.

Calificacin 4 puntos.
Alquiler de Vehculos (Transportes a sus servicios)
Se pretende desarrollar una aplicacin que permita calcular los precios de alquiler de una empresa de
alquiler de vehculos; para lo cual cada vehculo se identifica unvocamente por medio de su matrcula.

37

La empresa alquila distintos tipos de vehculos, tanto para transporte de personas como de carga. En la
actualidad los vehculos alquilados por la empresa son: coches, microbuses, furgonetas de carga y
camiones.
El precio del alquiles de cualquier vehculo tiene un componente base que depende de los das de alquiler a
razn de $50 / da.

- En el caso de alquiler de un coche, al precio base se le suma la cantidad de $1.5 por da.
- El precio de alquiler de los microbuses es igual que el de los coches, salvo que se le aade una
cantidad de $2 independientemente de los das de alquiles.

- El precio de los vehculos de carga es el precio base ms $20 * PMA (peso mximo autorizado en
toneladas).

- Adems, en el caso de los camiones, al precio base se le suma un fijo de $40 independientemente de
los das de alquiler.
La interaccin del usuario con la aplicacin deber realizarse a travs de una interface de mens con las
siguientes opciones: Aade/Alquila vehculo, Obtener precio alquiler, Obtener Costos totales, entre otros
que considere pertinente.
Se pide:

Codificar la jerarqua de clases que crea conveniente aplicando las tcnicas de Herencia y dibujando el
diagrama de clases (documentarlo en el informe).

Los datos para la interaccin usuario/programa deben autogenerarse con la clase Random; cuando su
docente vaya a revisar su aplicacin, sta, no debe solicitar el ingreso de dato alguno, todos los datos
que requiera su app. deben ser autogenerados aleatoriamente, su docente validar los datos de salida o
resultados, en el archivo usernameDelEva_DatosSalida.csv, los cuales sern una copia de lo
visualizado en consola.
Para este problema en particular defina mnimo una clase por cada tipo de vehculo, con los atributos y
mtodos necesarios para el clculo de costo, horas, etc.

Debe instanciar/probar esta jerarqua de clases en una clase CLASE_DE_PRUEBA (como lo hacen los
ejemplos desarrollados en su libro base) en la cual se instancie las clases, se enve los valores, realicen
los clculos y se generen los resultados (por consola y hacia el archivo de salida con extensin .csv
archivos de texto editables tambin con Excel).

Los datos de entrada y resultados deben ser comprensibles, tanto hacia consola como hacia el archivo
de salida .csv; por lo tanto, queda a su eleccin presentar dichos datos de entrada/salida de una
manera creativa y usable.
Importante: Si en el transcurso del desarrollo de este trabajo a distancia Ud. tuviera inconvenientes, con
todo gusto le atenderemos en los medios compartidos (por ejemplo, foros) que su Tutor disponga en la
plataforma virtual de aprendizaje.

38

Você também pode gostar