Parcial2006.doc

Anuncio
PARCIAL INFORMATICA III – AÑO 2006
NOMBRE:
LEGAJO:
I.-Indique todas las respuestas correctas
1. ¿Cuál de las siguientes afirmaciones representa mejor el concepto de
multiprogramación?
a) Es la capacidad de ejecutar dos o mas programas simultáneamente.
b) Es la presencia de un scheduler en el sistema operativo local
c) Es la capacidad de los computadores basados en múltiples procesadores
d) Es la capacidad de los computadores basados en procesadores superescalares
2. ¿Qué es una máquina virtual?
a) Un dispositivo adicional al procesador principal
b) Una pieza de software que ofrece un entorno operativo particular
c) El soporte de los lenguajes de programación interpretados
d) Un compilador de bytecodes
3. ¿Que es una recuperación de fallos basada en rollback?
a) Una corrección limitada de las variables visibles del sistema
b) La restauración de un estado interno conocido
c) Una continuación de la ejecución con correcciones parciales
d) Un cambio de estado interno del sistema
4. En el tratamiento de excepciones de Java:
a) Sólo las operaciones relacionadas con un tipo de objeto pueden compartir los
mismos manejadores de excepción
b) Los manejadores de excepción deben usar como argumento objetos de la
misma clase
c) Los manejadores de excepción no pueden ser utilizados por más de una
operación.
d) Múltiples operaciones pueden compartir los mismos manejadores de excepción
II.- Indique falso o verdadero (V o F) en cada una de las siguientes afirmaciones:
a) Un patrón de diseño depende del lenguaje de programación
b) Un patrón de diseño es una solución de diseño
c) Un programador debe crear los patrones de diseño
d) Un patrón de diseño promueve la reutilización del software
e) Un hilo puede invocar yield( ) para ceder el procesador a un hilo de mayor
prioridad
f) Un hilo puede recuperarse después de invocar al método stop()
g) Una llamada al método notify(), despierta a todos los hilos que habían
invocado a sleep()
h) El método resume() , hace que un thread pase del estado suspendido al estado
listo
III.- Se tiene una colección de Double. En el siguiente trozo de código complete con el
código adecuado
para eliminar, en forma segura, todos los números negativos de dicha colección.
Ayuda: para transformar un Double en double use el método: public double
doubleValue() de la clase
Double
import java.util.*;
public class SinDoubleNegativos{
public static void eliminaNegativos(Collection c) {
// su código
}
//la
public static void main(String[] args) {
double[] array = {1.2, 3.4, 4.5, -5.7, 2.9, -3.14, 2.2, -3.337, 2.2};
Collection c = _______________________________;//completar
for(int i = 0; i < array.length; i++) {
c.add(new Double(array[i]));
}
eliminaNegativos(c);
System.out.println(c);
}}
salida es [1.2, 3.4, 4.5, 2.9, 2.2, 2.2]
IV.-Transforme la siguiente clase en Serializable:
public class NaipesEspañoles {
public int valor; // 1 al 12
public char palo; // 'b', 'c','o','e'
public NaipesEspañoles(int r, char s) {
valor = r;
palo = s;
}}
Se han grabado un número cualquiera de NaipesEspañoles en un archivo llamado
cartas.dat. Escriba código para leer todas los NaipesEspañoles almacenados en dicho
archivo e imprima por pantalla la suma de los palos de cada uno de los NaipesEspañoles.
import java.io.*;
class Test{
public static void main(String [ ]args)
{
//leer todos los NaipesEspañoles hasta la marca de fin de archivo
}}
V.- Dado el siguiente código, complete el código del método run() y del main de
TestThread:
class
int
MiThread implements Runnable {
valores [];
public MiThread () {
valores= new int[5];
}
public int run() {
//el método run debe asignarle valores a los elementos del vector
//(los numero que quieran, por ej.los primeros 5 enteros)
//y calcular el valor promedio de los elementos y lo imprima.
}
class TestThread {
public static void main (String [] args) {
// cree dos threads de la clase MiThread y lancelos.
}}
Descargar