Solución del examen parcial de Algoritmos y estructura de datos
Pregunta I
package examen;
public class Proyector{
//atributos de instancia
prívate int código;
prívate String marca;
prívate double precioSoles, pesokilos;
//atributos de clase
public static int contador;
public static doublé mayPrecio;
public static doublé menPeso;
static{
contador=0;
}
//constructor
public Proyector(int código, String marca, double precioSoles, double pesokilos){
this.codigo = codigo;
this. marca = marca;
this. precioSoles = precioSoles;
this. pesokilos = pesokilos;
contador++;
if(contador ==1){
mayPrecio= precioSoles;
menPeso = pesokilos;
}else{
If(precioSoles> mayPrecio)
mayPrecio = precioSoles;
If(pesokilos < menPeso)
menPeso = pesokilos;
}
}
//get
…
//set
…
//métodos adicionales
public double getDescuento(){
if(pesokilos>2)
return precioSoles*0.20;
else
return precioSoles*0.10;
}
}
public class GUI{
public void procesar(){
Proyecto proy = new Proyector(getCodigo(),
getMarca(),
getPrecioSoles(),
getPesoKilos());
listar(proy);
proy.setPrecioSoles( proy.getPrecioSoles() * 1.10 );
}
public void listar(Proyector p){
imprimir(p. getCodigo ());
imprimir(p. getMarca ());
imprimir(p. getPrecioSoles ());
imprimir(p. getPesoKilos ());
imprimir(Proyector. contador );
imprimir(Proyector. mayPrecio );
imprimir(Proyector. menPeso );
}
}
Pregunta II
a) Diseñe un método que elimine el penúltimo número múltiplo de cinco del arreglo.
Versión 01:
void metodoA(){
int c = 0;
for(int i =índice-1; i>=0; i--){
if(n[i]%5==0 && ++c==2){
eliminar(i);
break;
}
}
}
void eliminar(int pos){
for (int i=pos; i<índice-1; i++){
n[i] = n[i+1];
}
indice--;
}
Versión 02:
void metodoA(){
int c = 0;
int pos=-1;
for(int i =índice-1; i>=0; i--){
if(n[i]%5==0 && ++c==2){
pos = i;
break;
}
}
If(pos !=-1 ){
for (int i= pos; i<índice-1; i++){
n[i] = n[i+1];
}
indice--;
}
}
b) Diseñe un método que remplace el segundo numero múltiplo de 3 del arreglo por la suma de todo los números pares
void metodoB(){
int c = 0, pos=-1;
for(int i =0; i<indice; i++){
if(n[i]%3==0 && ++c==2){
pos = i;
break;
}
}
int suma =0;
for(int i =0; i<indice; i++){
if(n[i]%2==0){
suma += n[i];
}
}
if(pos!=-1){
n[pos] = suma;
}
}
Pregunta III
I Contestar V o F
a) Se tiene la siguiente clase:
package demo;
class A{
void a(int suma){
}
}
Se puede realizar la siguiente instrucción:
A x = new A();
(V): porque cuando no se crea un constructor se crea uno por defecto sin parámetros
b) Si el atributo es private entonces no es necesario tener los métodos get y set para acceder a los atributos de la clase desde otra clase. ( )
(F): Si porque mediante el GET y SET accedes a los atributos
c) El constructor de la clase se ejecuta después del bloque estático
(V):
d) Para importar todas las clases del paquete semana06.beans es necesario colocar la siguiente sentencia import beans.*; ( )
(F):
II Completar
a) Existen dos tipos de métodos de acceso. El que permite obtener el valor del atributo se le llama _____ Get o Getters ______.
b) La palabra reservada que permite definir un atributo de clase es _ static.
c) El concepto llamado _______ sobrecarga _________de métodos consiste en crear varios métodos con el mismo nombre, pero con parámetros diferentes
d) Existen dos tipos de atributos o variables. El atributo o variable de_______ instancia _________se crea cada vez que se crea un objeto.
No hay comentarios:
Publicar un comentario