Está en la página 1de 9

Ejercicio 1:

Utilizando un diagrama de estados, Reordenar los elementos de a[0], ..., a[n]


dejando a la izquierda los <0 y a la derecha los >=0. Resuelve este problema de 3
formas diferentes.
1.1 primera forma :

public class forma1 {

public static void main(String []args){

int []a={1,-1,0,2,4};
int n=a.length-1;
int i=0;
int j=n;
while(i<j){
if(a[i]<0)
++i;
else if(a[j]>=0){
--j;}
else{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
--j;
} }

for(int x=0;x<a.length;x++){
System.out.print(a[x]+" ");
}}}


1.2 segunda forma:
public class forma2 {

public static void main(String []args){

int []a={1,-1,0,2,4};
int n=a.length-1;
int i=0;
int j=n;
while(i<j){
while(i<j && a[i]<0){
++i;}
while(i<j && a[j]>=0){
--j;
}

if(i<j){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
--j;
}
}


for(int x=0;x<a.length;x++){
System.out.print(a[x]+" ");}
}}
1.3 tercera forma:

public class forma3 {

public static void main(String[] args) {

int []a={1,4,23,5,6,-4,-7,-5,7};
int n=a.length-1;
int i=0;
for(int j=0;j<=n;++j){
if(a[j]<0){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;}}

for(int x=0;x<a.length;x++){
System.out.print(a[x]+" ");}

}
}











Ejercicio 2:
Prueba la versin 2 del clculo de x elevado a n usando recursividad. Veremos
que esta implementacin es mucho ms ptima que la de las actividades.

public class potencia{

public static void main(String[] args) {

float a =Elevar(2,3);
System.out.print(a);
}

public static float Elevar(float x, int n){
if(n==0)
return 1;

else if(n%2>0){
return x*Elevar(x,n-1);
}
else
return Elevar(x*x,n/2);}
}

Ejercicio 3:
Implementa las Torres de Hanoi usando recursividad.
import java.util.*;
public class torresHanoi {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
System.out.println("Numero de discos: ");
n = sc.nextInt();
Hanoi(n,1,2,3); // origen /auxiliar/destino
}

public static void Hanoi(int n, int origen, int
auxiliar, int destino){
if(n==1)
System.out.println("mover disco de " + origen + "
a " + destino);
else{
Hanoi(n-1, origen, destino, auxiliar);
System.out.println("mover disco de "+ origen +
" a " + destino);
Hanoi(n-1, auxiliar, origen, destino);
} }}
Ejercicio 4:
Implementar una interfaz para componentes genricas, donde se puede ordenar
enteros entregados como argumentos.
package Definiciones;

public interface Comparable
{
public int Compare(Comparable b);
}
package Definiciones;
final public class Entero implements Comparable {
private int valor;

public Entero(int x){
valor =x;
}
public String toString(){
return Integer.toString(valor);
}
public int valorEntero(){
return valor;
}
public int Compare(Comparable b){
return valor-((Entero)b).valor;
}

}

Ejercicio 5:
Probar el ejemplo de la Clase Par (definida por el programador)
public class Par {
protected double a;
protected double b;
public Par (double x,double y){
a=x;
b=y;
}
public Par (){
a=0;
b=0;
}
public Par (Par x){
a=x.a;
b=x.b;
}
public double primero(){
return a;
}
public double segundo(){
return b;
}
public boolean equals(Par x){
return a==x.a && b==x.b;
}
public String toString(){
return "("+a+","+b+")";
}
public void primero(double x){
a=x;
}
public void segundo(double x){
b=x;
}
public void asignar(Par x){
this.a=x.a;
this.b=x.b; }
public static void main(String[] args) {
Par p = new Par (1,2);
Par q=new Par ();
Par r=new Par (p);
System.out.println(p.toString());
q.asignar(p);
r=p;
}}

Ejercicio 6:
Probar el ejemplo de la Herencia de la Clase Terna

public class Terna extends Par{
protected double c;
public Terna(double x,double y,double z){
super(x,y);
c=z;
}
public Terna(){
super();
c=0;
}
public Terna(Terna x){
super(x);
c=x.c;
}
public double tercero(){
return c;
}
public void tercero(double x){
c=x;
}
public void asignar(Terna x){
super.asignar(x);
c=x.c;
}
public boolean equals(Terna x){
return super.equals(x)&& c==x.c;
}
public String toString(){
return "("+a+","+b+","+c+")";
}
public static void main(String[] args) {
Terna a=new Terna(azar(1,100),azar(1,100),azar(1,100));
System.out.println( a.toString() );
a.segundo(azar(1,100));
a.tercero(azar(1,100));
System.out.println( a.toString() );


}
private static int azar(int i, int j) {
Random r = new Random();
int valorDado = r.nextInt(j)+i;
return valorDado;
}

}
Ejercicio 7:
Probar el ejemplo del Polimorfismo de las Clases Par o Terna
public class Par {
protected double a;
protected double b;
public Par(double x,double y){
a=x;
b=y;
}
public Par(){
a=0;
b=0;
}
public Par(Par x){
a=x.a;
b=x.b;
}
public double primero(){
return a;
}
public double segundo(){
return b;
}
public boolean equals(Par x){
return a==x.a && b==x.b;
}
public String toString(){
return "("+a+","+b+")";
}
public void primero(double x){
a=x;
}
public void segundo(double x){
b=x;
}
public void asignar(Par x){
this.a=x.a;
this.b=x.b; }
public static void main(String[] args) {
Par p = new Par(1,2);
Par q=new Par();
Par r=new Par(p);
System.out.println(p.toString());
q.asignar(p);
r=p;
}}

public class Terna extends Par{
protected double c;
public Terna(double x,double y,double z){
super(x,y);
c=z;
}
public Terna(){
super();
c=0;
}


public Terna(Terna x){
super(x);
c=x.c;
}
public double tercero(){
return c;
}
public void tercero(double x){
c=x;
}
public void asignar(Terna x){
super.asignar(x);
c=x.c;
}
//componentes que se redefinen
public boolean equals(Terna x){
return super.equals(x)&& c==x.c;
}
public String toString(){
return "("+a+","+b+","+c+")";
}
public static void main(String[] args) {
Terna a=new Terna(azar(1,100),azar(1,100),azar(1,100));
System.out.println( a.toString() );
a.segundo(azar(1,100)); //mtodo heredado
a.tercero(azar(1,100));
System.out.println( a.toString() );


}
static int azar(int i, int j) {
Random r = new Random();
int valorDado = r.nextInt(j)+i;
return valorDado;
}}

public class poli {


public static void main(String[] args) {
int a=Terna.azar(1,100), b=Terna.azar(1,100);
Par p = Terna.azar(1,2)==1 ? new Par(a,b) : new
Terna(a,b,Terna.azar(1,100));
System.out.println(p.toString());

}}

Ejercicio 8:
Probar el ejemplo de la Clase Abstracta Par y la Clase Fraccin
public abstract class CPar {
protected int a, b;
public CPar(int x,int y){
a=x;
b=y;
}

public int primero(){
return a;
}
public int segundo(){
return b;
}
public void primero(int x){
a=x;
}
public void segundo(int x){
b=x;
}
abstract public String toString();
}
public class Fraccion extends CPar{
public Fraccion(int x,int y){
super(x,y);
}
public Fraccion suma(Fraccion x){
return new Fraccion(a*x.b+b*x.a,b*x.b);
}
public String toString(){
return a+"/"+b;
}}
public class Par1{

public static void main(String[] args) {
Fraccion f;
f=new Fraccion(5,9);
System.out.println(f);
}}

Ejercicio 9:
Probar el ejemplo de la Interfaz Funcion y la Clase Seno
public interface Funcion{
public double valor(double x);
}

class Seno implements Funcion{
public double valor(double x){ return Math.sin(x); }
}


class Programa{

static public void main(String[]args){
System.out.println((new Seno()).valor(Math.PI));
}
}

También podría gustarte