martes, 31 de marzo de 2009

matriz de deber

package trabafinal;
/**
*
* @author Operador
*/

public class Matriz {
int numeroFilas;
int numeroColumnas;
double [][]matriz;
double [][]matriz1;

/*Matriz a=(Matriz)c.clone();
/*Matriz b=(Matriz)d.clone();
private Object c;*/


public Matriz(int nF, int nC){
numeroFilas = nF;
numeroColumnas = nC;
matriz = new double[numeroFilas][numeroColumnas];
for(int i = 0; i < numeroFilas; i++)
for(int j = 0; j < numeroColumnas; j++)
matriz[i][j] = 0;

}

public String imprimir(){
String aux ="";
for(int i = 0; i < numeroFilas; i++){
for(int j = 0; j < numeroColumnas; j++){
aux = aux + matriz[i][j] +" "; }
aux = aux + "\n"; }
return aux; }


public Matriz inversa(){

Matriz c=new Matriz(this.numeroColumnas,this.numeroFilas);
c.matriz[1][0]=(((this.matriz[1][0]/this.matriz[1][0])*(this.matriz[0][0]))-(this.matriz[0][0]));
c.matriz[1][1]=(((this.matriz[1][1]/this.matriz[1][0])*(this.matriz[0][1]))-(this.matriz[0][1]));
c.matriz[0][1]=(((this.matriz[0][1]/this.matriz[0][1])*(this.matriz[1][1]))-(this.matriz[1][1]));
c.matriz[0][0]=(((this.matriz[0][0]/this.matriz[0][1])*(this.matriz[1][1]))-(this.matriz[0][0]));
return c;
}
public Matriz inversa2(){
Matriz d=new Matriz(this.numeroColumnas,this.numeroFilas);
d.matriz[1][0]=(((this.matriz[1][0]/this.matriz[1][0])*(this.matriz[0][0]))-(this.matriz[0][0]));
d.matriz[1][1]=(((this.matriz[1][1]/this.matriz[1][0])*(this.matriz[0][1]))-(this.matriz[0][1]));
d.matriz[0][1]=(((this.matriz[0][1]/this.matriz[0][1])*(this.matriz[1][1]))-(this.matriz[1][1]));
d.matriz[0][0]=(((this.matriz[0][0]/this.matriz[0][1])*(this.matriz[1][1]))-(this.matriz[0][0]));
return d;
}
public Matriz multiplicacion(Matriz e){

if((this.numeroFilas == e.numeroFilas)&(this.numeroColumnas == e.numeroColumnas)){
Matriz c = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i=0; ifor(j=0; jc.matriz[i][j]= this.matriz[i][j]*e.matriz[i][j];
return e;
} else{
Matriz r = new Matriz (1,1);
System.out.println("No se pueden multiplicar las matrices");
return r;
}

}

public Object clone(){
Matriz obj=null;
try{
obj=(Matriz)super.clone();
}catch(CloneNotSupportedException ex){
System.out.println(" no se puede duplicar");
}
obj.a=(int[][])obj.c.clone();
for(int i=0; i obj.c[i]=(int[])obj.c[i].clone();
}
return obj;
}

public static void main(String args[]){


Matriz a = new Matriz(2, 2);
a.matriz[0][0]=1;a.matriz[0][1]=-1;
a.matriz[1][0]=2;a.matriz[1][1]=1;

System.out.println("la matriz a es:");
System.out.println(a.imprimir());

Matriz b = new Matriz(2, 2);
b.matriz[0][0]=1;
b.matriz[1][1]=1;

System.out.println("la matriz b es:");
System.out.println(a.imprimir());

Matriz e = new Matriz(1, 1);
e.matriz[0][0]=3;
e.matriz[0][1]=4;

System.out.println("la matriz e es:");
System.out.println(a.imprimir());

}

}
lo que falta es para que se copie la matriz a en c y b en d...

lunes, 30 de marzo de 2009

matriz multiplicacion, matriz inversa

public Matriz(int nF, int nC){
numfilas= nF;
numcolum= nC;
matriz= new double[numfilas][numcolum];
for(int i=0; i for(int j=0; j matriz[i][j]= 0;
}

public String imprimir(){
String aux = "";
for(int i=0; i for(int j=0; j aux = aux + matriz[i][j] +" ";
}
aux= aux +"\n";
}
return aux;
}

public Matriz multiplicacion(Matriz B){
if ((this.numfilas == B.numfilas)&(this.numcolum == B.numcolum)){
Matriz r = new Matriz(this.numfilas,this.numcolum);
int j;
for(int i=0; i for(j=0; j r.matriz[i][j]= this.matriz[i][j]*B.matriz[i][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System.out.println("No se pueden multiplicar las matrices");
return r;
}
}
public Matriz inversa(){
Matriz r=new Matriz(this.numeroColumnas,this.numeroFilas);
r.matriz[0][0]=((this.matriz[1][1]*this.matriz[2][2])-(this.matriz[2][1]*this.matriz[1][2]));
r.matriz[0][1]=((this.matriz[1][0]*this.matriz[2][2])-(this.matriz[2][0]*this.matriz[1][2]));
r.matriz[0][2]=((this.matriz[1][0]*this.matriz[2][1])-(this.matriz[2][0]*this.matriz[1][1]));
r.matriz[1][0]=((this.matriz[0][1]*this.matriz[2][2])-(this.matriz[2][1]*this.matriz[0][2]));
r.matriz[1][1]=((this.matriz[1][0]*this.matriz[2][2])-(this.matriz[2][0]*this.matriz[1][2]));
r.matriz[1][2]=((this.matriz[0][0]*this.matriz[2][1])-(this.matriz[2][0]*this.matriz[0][1]));
r.matriz[2][0]=((this.matriz[0][1]*this.matriz[1][2])-(this.matriz[1][1]*this.matriz[0][2]));
r.matriz[2][1]=((this.matriz[0][0]*this.matriz[1][2])-(this.matriz[1][0]*this.matriz[0][2]));
r.matriz[2][2]=((this.matriz[0][0]*this.matriz[1][1])-(this.matriz[1][0]*this.matriz[0][1]));
return r;

}

public static void main(String args[]){
Matriz m = new Matriz(3, 3);
m.matriz[0][0]=1;
m.matriz[1][1]=1;
m.matriz[2][2]=1;
System.out.println("la matriz m es:");
System.out.println(m.imprimir());
Matriz b=new Matriz(3,3);
b.matriz[0][0]=1;b.matriz[0][1]=2;b.matriz[0][2]=3;
b.matriz[1][1]=4;b.matriz[1][2]=5;
b.matriz[2][2]=6;
System.out.println("la matriz b es:");
System.out.println(b.imprimir());

Matriz resultado;

resultado = m.multiplicacion(b);
System.out.println(resultado.imprimir());
resultado=m.inversa();
System.out.println("la matriz inversa de m es:");
System.out.println(resultado.imprimir());
resultado=b.inversa();
System.out.println("la matriz inversa de b es:");
System.out.println(resultado.imprimir());
}
}

domingo, 22 de marzo de 2009

La Programación Orientada a Objetos

La Programación Orientada a Objetos

Es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.
El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo.


El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.

Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.

Suma de Matrices

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[]args){

int[]a=new int[5];
int[]b=new int[5];
int[]c=new int[5];
int resp1;int resp2;

a[0]=1; a[1]=1;
a[2]=9; a[3]=9;
a[4]=2;
b[0]=3; b[1]=2;
b[2]=4; b[3]=2;
b[4]=2;

System.out.print("DEBER DE SUMAR VARIOS NUMEROS");
System.out.println();

for(int i=4;i>2;i--)
{
//la suma de matrices a[]+b[]

c[i]= a[i] + b[i];
resp1=c[i];
if(resp1>=10)
c[i]=resp1-10;
}

// numero que los divida en 2 partes..

for(int i=2;i>0;i--)
{
c[i]=a[i]+b[i]+(a[i+1]%b[i+1]);
resp2=c[i];

if(resp2>=10)
c[i]=resp2-10;
}
c[0]=a[0]+b[0];
for(int i=0;i<5;i++)
System.out.print(c[i]);
}
}

lunes, 16 de marzo de 2009

ARREGLOS

Los arreglos en Java son objetos, demostrando el compromiso de Java con la orientación a objetos.

En java a diferencia del lenguaje C, existe un tipo de variable “especial”, el Array. Este tipo de variables no es más que un conjunto secuencial de memoria a las que se accede a través de un índice de posición.

Los arreglos en Java son objetos, por lo que cuentan con propiedades y métodos para manipularlos. Se pueden declarar arreglos de tipos de datos primitivos y de objetos.

Más abajo tienes la sintaxis básica de declaración de arrays.

Sintaxis:

tipodedato nombre [] [= new tipodedato[capacidad]] o
tipodedato[] nombre [= new tipodedato[capacidad]]



Como puedes observar puedes inicializar un array al momento de declararlo o postergar esta operación para cuando sea necesario.

Para inicializar un array existen 2 maneras:

int[] arreglo=new int[4] o
int[] arreglo={100,200,302,400}



Como podrás concluir la primera declaras el array nada más diciéndole la cantidad de memoria secuencial que se debe reservar, en el segundo ejemplo se inicializa el array dándole los valores que va a contener (obviamente la cantidad de memoria secuencial reservada sera igual a la cantidad de elementos insertados).

Al momento de inicializar un arreglo de la manera :

int[] arreglo=new int[4]
cada posición del arreglo sera inicializada con el valor por defecto del tipo de variable. Por ejemplo si el arreglo si el arreglo es de tipo boolean, todas las posiciones del arreglo serán inicializadas con el valor false (ya que este es valor por defecto de este tipo de dato), por el contrario si el arreglo fuese de un tipo no primitivo, el valor que contendrá cada casilla sera null.


Para obtener el tamaño de un array de manera dinámica se utiliza la propiedad .length, esta propiedad es común para todos los array . También es importante saber que los arreglos se empiezan a enumerar desde el numero (0) cero por tanto para acceder al valor almacenado en la ultima posición deberás colocar el el tamaño del arreglo menos 1 unidad.

Al momento de tratar de acceder a una posición fuera del rango del arreglo se lanzara un exception de tipo java.lang.ArrayIndexOutOfBoundsException (esta exception es una exception no chequeada es por eso que no es necesario colocar un bloque try/catch en el código)

domingo, 15 de marzo de 2009

operaciones con vectores

public class Main {


public static void main(String[] args) {
// TODO code application logic here
double []v;
double []w;
double []z;

v=new double [3];
w=new double [3];
z=new double [3];

double product_escalar = 0;
double magnitud = 0;
double resulma =0;
double unitario = 0;
double angulo = 0;
double magnitud1=0;
double producto=0;

v[0]=1 ;v[1]=6; v[2]=4;
w[0]=5 ;w[1]=-2;w[2]=3;

//suma v[i]+w[i]

for(int i=0; i<3 ;i++)
z[i]= w[i]+v[i];

for(int i=0; i<3 ;i++)
System.out.println("EL RESULTADO DE LA SUMA ES: "+z[i]+", ");


// resta v[i]-[i]

for(int i=0; i<3 ;i++)
z[i]= w[i]-v[i];

for(int i=0; i<3 ;i++)
System.out.println("EL RESULTADO DE LA RESTA ES: " + z[i] +" ");

// producto escalar v[i]*[i]

for(int i=0; i<3 ;i++)
product_escalar += w[i]*v[i];

System.out.println("EL RESULTADO DE LA PRODUCTO ESCALAR ES: " +product_escalar);


// magnitud

resulma+=(magnitud= Math.sqrt(Math.pow(w[0],2)+Math.pow(w[1],2)+Math.pow(w[2],2))+(magnitud1= Math.sqrt(Math.pow(v[0],2)+Math.pow(v[1],2)+Math.pow(v[2],2))));

System.out.println("EL RESULTADO DE LA MAGNITUD ES "+resulma);


// unitario
for(int i=0; i<3 ;i++)
unitario += (w[i]+v[i])/resulma;

for(int i=0; i<3 ;i++)
System.out.println("EL RESULTADO DEL UNITARIO ES: " +unitario);

// angulo entre w y v

for(int i=0; i<3 ;i++)
angulo = Math.acos(product_escalar/(magnitud*magnitud1));

for(int i=0; i<3 ;i++)

System.out.println("EL RESULTADO DEL ANGULO ES: " +angulo);

//producto cruz
producto+= (((v[1]*w[2])-(v[2]*w[1]))+((v[0]*w[2])-(v[2]*w[0]))+((v[0]*w[2])-(v[2]*w[0])));

System.out.println("El valor cruz es: " +producto);


}

}

martes, 10 de marzo de 2009

Que es Java, jdk, jre

Que es Java??
Es un lenguaje de programación con el que podemos realizar cualquier tipo de programa, en la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general.
Una de las principales características es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado.

Lenguaje de programacion orientada a objetos. Fue desarrollado por James Gosling y sus compañeros de Sun Microsystems al principio de la década de los 90.

La programación en Java es compilada en bytecode , el cuál es ejecutado por la maquina virtual Java . Usualmente se usa un compilador JIT.
El lenguaje es parecidos a C y C++, aunque su modelo de objetos es más sencillo.

Qué es el JDK (Java Development Kit)

Se trata de un conjunto de programas y librerías que permiten desarrollar (compilar, ejecutar, generar documentación, etc.) programas en lenguaje Java. Existen versiones del JDK para prácticamente todos los Sistemas Operativos y existen también distintos programas comerciales, Sun distribuye gratuitamente el JDK “oficial” para los siguientes sistemas operativos: Windows 95/98/NT, Solaris y Linux

Los JDK incorporan una herramienta de Debugger (detener la ejecución de un programa en la línea que se desee y poder conocer el valor de las variables en ese momento)

Que es JRE (Java Runtime Environment)

Versión reducida del JDK que permite ejecutar código Java, No permite compilar ni utilizar el Debugger .