lunes, 10 de marzo de 2014

Examen 2º Cuatrimestre


*  Realizar obligatoriamente la pregunta 4. (3 ptos.)
** Seleccionar al menos dos de las tres primeras (3 ptos.)
***En caso de realizar los cuatro: el último valdrá (1 pto).


1.- Como entrada se solicitan números enteros por teclado, hasta leer un -1. El programa mostrará como resultado el mayor de los números introducidos en caso de que el número mayor se haya introducido más de una vez se mostrará además la palabra EMPATE.
Por ejemplo:
ENTRADA

10 20 30 40 32 40 -1

SALIDA

40 EMPATE


2.- Se introducen por teclado sucesivamente nombre y apellidos de un usuario que se DEBEN almacenar en un array bidimensional (los nombres en una columna y los apellidos en otra). La salida DEBE SER en cada línea:
a.- El nombre de la primera entrada seguido del apellido del último.
b.- El nombre del usuario que está en el medio de la tabla (o de los dos del medio en caso de ser un número par).
c.- El nombre de la última entrada seguido del apellido del primero.


3.- Leer una primera cadena, leer una segunda cadena. Como resultado mostrar el número de veces que la primera está incluida en la segunda.



4.- Un programador quiere crear para su programa una clase de nombre Sofá que permita:
a.- Almacenar el número de plazas del sofá: 2, 3, 2+3.
b.- Guardar además el modelo, precio y dimensiones del mismo.
c.- Implementar las funciones: getPrecio,getAlto,getModelo,getLongitud,getProfundidad,getNumPlazas;
d.- Implementar las funciones: setPrecio,setModelo,setDimensiones(longitud,profundidad,numPlazas).
e.- Implementar la función: obtenerComisión(double porcentaje) que nos devolverá la comisión que obtendría el vendedor a partir del  porcentaje que se le ha pasado al método.
f.- Crear un programa que haga uso de la clase
g.- Crear un constructor al que se le pase el precio, plazas y modelo

/*
* Como entrada se solicitan números enteros por teclado, hasta leer un -1. El programa mostrará como resultado el mayor de los números introducidos en caso de que el número mayor se haya introducido más de una vez se mostrará además la palabra EMPATE.
Por ejemplo:
ENTRADA

10 20 30 40 32 40 -1

SALIDA

40 EMPATE

*/
package examenseg1;
import java.util.Scanner;
/**
*
* @author Juan
*/
public class ExamenSeg1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner leo = new Scanner(System.in);
        int mayor=0,num=0;
        boolean empate=false;
      
      
        System.out.println("Introduzca un número:");
        num=leo.nextInt();
        if (num!=-1) mayor=num;
        while (num!=-1){
          
            System.out.println("Introduzca un número:");
            num=leo.nextInt();
            if (num>mayor && num!=-1)
            {
                mayor=num;
                empate =false;
            } else if(mayor==num) empate=true;
          
          
        }
        if (empate) System.out.println(mayor+" EMPATE");
        else System.out.println(mayor);
      
      
    }
}
/*
2.- Se introducen por teclado sucesivamente nombre y apellidos de un usuario que se DEBEN almacenar en un array bidimensional (los nombres en una columna y los apellidos en otra). La salida DEBE SER en cada línea:
a.- El nombre de la primera entrada seguido del apellido del último.
b.- El nombre del usuario que está en el medio de la tabla (o de los dos del medio en caso de ser un número par).
c.- El nombre de la última entrada seguido del apellido del primero.
*/
package examenseg2;
import java.util.Scanner;
/**
*
* @author Juan
*/
public class ExamenSeg2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int MAX = 100;
        String [][] nombres = new String[MAX][2];
        int pos=-1;
        boolean salir=false;
        String in;
        Scanner leo = new Scanner(System.in);
      
        do {
            System.out.println("Introduzca el nombre o \"S\" para salir");
            in=leo.next();
            salir=in.equalsIgnoreCase("s");
            if (!salir)
            {  
                ++pos;
                nombres[pos][0]=in;
                System.out.println("Introduzca el apellido:");
                in=leo.next();
                nombres[pos][1]=in;
            }
          
        } while (pos<MAX && !salir);
        if(pos>=0) {
            System.out.println(nombres[0][0]+ " "+nombres[pos][1]);
            if(pos>0 && (pos-1)%2==0){
                System.out.println(nombres[pos%2][0] + " "+ nombres[pos%2][1]);
                System.out.println(nombres[pos%2+1][0] + " "+nombres[(pos%2)+1][1]);
            } else System.out.println(nombres[(pos%2)+1][0]+ " "+nombres[pos%2+1][1]);
            System.out.println(nombres[pos][0]+ " "+nombres[0][1]);
        }
  
    }
}
/*
Leer una primera cadena, leer una segunda cadena. Como resultado mostrar
* el número de veces que la primera está incluida en la segunda.

*/
package examenseg3;
import java.util.Scanner;
/**
*
* @author Juan
*/
public class ExamenSeg3 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner leo = new Scanner(System.in);
        String cad1, cad2;
        int pos=0,cont=0;
      
        System.out.println("Introduzca la primera cadena");
        cad1=leo.nextLine();
        System.out.println("Introduzca la cadena a buscar");
        cad2=leo.next();
        /*
        while ((pos=cad1.indexOf(cad2,pos))!=-1 && pos<cad1.length()) {
            cont++;
            pos+=cad2.length();
            pos=cad1.indexOf(cad2,pos);
        }
      
        */
      
        //otra manera
        pos=cad1.indexOf(cad2); //cad1.in
        while (pos!=-1 && pos<cad1.length()) {
            cont++;
            pos+=cad2.length();
            pos=cad1.indexOf(cad2,pos);
        }
        System.out.println("La cadena "+ cad2+ " aparece "+ cont+" veces en: "+ cad1);
      
      
      
    }
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package examenseg4;

/**
*
* @author Juan
*/
public class ExamenSeg4 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Sofa uno = new Sofa("3","mi sofá",1250);
      
        System.out.println("Modelo"+uno.getModelo());
        System.out.println("Plazas:"+uno.getPlazas());
        System.out.println("Altura:"+uno.getAlt());
        uno.setDimensiones(128, 198, 200);
        System.out.println("Altura:"+uno.getAlt());
        System.out.println("tres por ciento: "+ uno.obtenerComision(3));
  
    }
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package examenseg4;

/**
*
* @author Juan
*/
public class Sofa {
    private String plazas;
    private String modelo;
    private double precio;
    private double lon;
    private double alt;
    private double pro;

    public Sofa(String plazas, String modelo, double precio) {
        this.plazas = plazas;
        this.modelo = modelo;
        this.precio = precio;
        this.lon=0;
        alt=0;
        pro=0;
        this.modelo = modelo;
      
        if (this.plazas.equals("3")||this.plazas.equals("3")||this.plazas.equals("2+3") ) this.plazas = plazas;
        else this.plazas="sin definir";
    }

    public double getAlt() {
        return alt;
    }
    public double obtenerComision(double porcentaje){
        if (precio>0) return porcentaje*precio/100;
        else return 0;
    }
    public double getLon() {
        return lon;
    }

    public String getModelo() {
        return modelo;
    }

    public String getPlazas() {
        return plazas;
    }

    public double getPrecio() {
        return precio;
    }

    public double getPro() {
        return pro;
    }

    public void setDimensiones(double alt,double pro, double lon) {
        if (alt>0) this.alt = alt;
        if (pro>0)this.pro = pro;
        if (lon>0)this.lon = lon;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public void setPrecio(double precio) {
        if (precio>0) this.precio = precio;
    }
  
  
}