miércoles, 27 de mayo de 2009

Ejercicio Paneles


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class DemoPanel extends JFrame{
Container contenedor;
private JPanel panelinicio;
private JPanel panelfin;
private JPanel paneli;
private JPanel paneld;
private JButton [][] botones;
private JLabel[][] texto;
private JTextField [][] text;

public DemoPanel(){
super("Campeonato Nacional");
botones = new JButton[3][3];
contenedor = getContentPane();
panelinicio = new JPanel(new GridLayout(3,3,10,10));
String [] equipos = {"Barcelona","Emelec","El Nacional","D.Quito","D.Cuenca","Olmedo","Macara","Manta","Tecnico U."};

int k=0;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
botones[i][j] = new JButton(equipos[k]);
k += 1;
panelinicio.add(botones[i][j]);
}
}
contenedor.add(panelinicio, BorderLayout.NORTH);

texto = new JLabel[5][5];
panelfin = new JPanel(new GridLayout(5,5,10,10));
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
texto[i][j]= new JLabel("texto" +i+ " "+j);
panelfin.add(texto[i][j]);
}
}
contenedor.add(panelfin, BorderLayout.SOUTH);

text = new JTextField[4][3];
paneli = new JPanel(new GridLayout(5,5,10,10));
for(int i = 0; i < 4; i++){
for(int j = 0; j < 3; j++){
text[i][j]= new JTextField("texto" +i+ " "+j);
paneli.add(text[i][j]);
}
}
contenedor.add(paneli, BorderLayout.WEST);

text = new JTextField[2][4];
paneld = new JPanel(new GridLayout(5,5,10,10));
for(int i = 0; i < 2; i++){
for(int j = 0; j < 4; j++){
text[i][j]= new JTextField("texto" +i+ " "+j);
paneld.add(text[i][j]);
}
}
contenedor.add(paneld, BorderLayout.EAST);

setSize(425,425);
setVisible(true);
}

public static void main(String args[]){
DemoPanel aplicacion = new DemoPanel();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

lunes, 25 de mayo de 2009

Evaluacion Sen,Cos,ax+b


import java.applet.Applet;
import java.awt.*;

public class Evaluacion1 extends Applet {
public void paint(Graphics g){
g.drawString("Función Seno, Funcion Coseno, Recta: ax+b", 150, 55);
g.drawString("y=MSen(ax+b)",300 , 80);
g.drawString("y=MCos(ax+b)",300 , 100);
g.drawString("y=(ax+b)",300 , 120);
g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color.BLACK);

int a=1;
int b=0;
int m=100;
for(int i=0;i<361; i=i+2)
{
g.fillOval( a*(38 + i)+b,(int) (265 - m*(Math.sin(i*3.1416/180))),6,6);
g.fillOval( a*(38 + i)+b,(int) (265 - m*(Math.cos(i*3.1416/180))),6,6);
g.fillOval( a*(38 + i)+b,(int) 265-(a*i)+b,6,6);
}

g.setColor(Color.GREEN);
g.drawLine(40,165, 398, 165);
g.drawLine(40,370,398,370);
g.drawLine(131,165, 131, 370);
g.drawLine(221,165,221,370);
g.drawLine(311,165, 311, 370);
g.drawLine(401,165,401,370);
g.setColor(Color.BLUE);
g.drawString("-1", 30, 370);
g.drawString("0", 30,270);
g.drawString("1", 30, 165);
g.drawString("¶/2", 115, 280);
g.drawString("¶", 205,280);
g.drawString("3¶/2", 285, 280);
g.drawString("2¶", 405, 280);
g.drawLine(40,40,35,55);
g.drawLine(35,55,45,55);
g.drawLine(45,55,40,40);
g.drawLine(450,270,425,265);
g.drawLine(425,265,425,275);
g.drawLine(425,275,450,270);
g.setColor(Color.MAGENTA);
g.drawString("valores X ", 460, 270);
g.drawString("valores Y ", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(700, 700);
} }

domingo, 24 de mayo de 2009

Función Seno (Paint)


import java.applet.Applet;
import java.awt.*;

public class FuncionSenApplet extends Applet {
public void paint(Graphics g){
g.drawString("Función seno", 199, 79);
g.drawString("y=Sen(x)",200 , 80);
g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color.YELLOW);
for(int i=0;i<361; i=i+2){
g.fillOval( 38 + i,(int) (265 - 100*(Math.sin(i*3.1416/180))),6,6);}
g.setColor(Color.GREEN);
g.drawLine(40,165, 398, 165);
g.drawLine(40,370,398,370);
g.drawLine(131,165, 131, 370);
g.drawLine(221,165,221,370);
g.drawLine(311,165, 311, 370);
g.drawLine(401,165,401,370);
g.setColor(Color.BLUE);
g.drawString("-1", 30, 370);
g.drawString("0", 30,270);
g.drawString("1", 30, 165);
g.drawString("¶/2", 115, 280);
g.drawString("¶", 205,280);
g.drawString("3¶/2", 285, 280);
g.drawString("2¶", 405, 280);
g.drawLine(40,40,35,55);
g.drawLine(35,55,45,55);
g.drawLine(45,55,40,40);
g.drawLine(450,270,425,265);
g.drawLine(425,265,425,275);
g.drawLine(425,275,450,270);
g.setColor(Color.YELLOW);
g.drawString("valores X ", 460, 270);
g.drawString("valores Y ", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(700, 700);
} }

miércoles, 20 de mayo de 2009

Applet trabajo en clase

Sintesis
La Anatomía de un Applet
Un applet Java es un programa que se adhiere a una serie de convenciones que le permiten ejecutarse en un navegador compatible con Java.

Ejemplo: applet "Hello World":
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}

Importar Clases y Paquetes
En el lenguaje Java, los paquetes se usan para agrupar clases, importar Clases y Paquetes nos ofrece más información sobre los paquetes y la sentencia import.

Definir una Subclase de Applet
Todo applet debe definir una subclase de la clase Applet. En el Applet "Hello World", esta subclase se llama HelloWorld. Los applets heredan gran parte de su funcionalidad de la clase Applet.

Implementar Métodos del Applet
Todo applet debe implementar al menos uno de los siguientes métodos: init, start, o paint. Al contrario que las aplicaciones Java, los applets no necesitan implementar un método main.

Ejecutar un Applet
Los applets están pensados para incluirse en páginas HTML. Usando la etiqueta "APPLET", especificamos (como mínimo) la localización de la subclase Applet y las dimensiones de la ventana del applet. Cuando una navegador que soporta Java encuentra una etiqueta Applet.
Para insertar el applet en una página web, se usa la siguiente estructura:



Ciclo de vida applet
Cuando un applet se carga en el appletviewer, comienza su ciclo de vida, que pasaría por las siguientes fases:

* Se crea una instancia de la clase que controla el applet.
* El applet se incializa.
* El applet comienza a ejecutarse.
* El applet empieza a recibir llamadas. Primero recibe una llamada init (inicializar), seguida de un mensaje start (empezar) y paint (pintar). Estas llamadas pueden ser recibidas asíncronamente.

lunes, 18 de mayo de 2009

Prueba MRU MRUV


public class Tabajo_clase extends javax.swing.JApplet {

/** Initializes the applet Tabajo_clase */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField8.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField1.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField10.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField2.getText());

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField9.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField3.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField11.getText());
Xo.matriz[0][2]= aux;

jTextArea1.setText(Xo.suma(Vo.multiplicaEscalar(t)).imprimir());
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField4.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField5.getText());

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField7.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField17.getText());
a.matriz[0][2]= aux;

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField6.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField14.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField15.getText());
Xo.matriz[0][2]= aux;

jTextArea3.setText(Xo.suma(Vo.multiplicaEscalar(t)).suma(a.multiplicaEscalar(t*t).multiplicaEscalar(0.5)).imprimir());
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField4.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField5.getText());

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField7.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField17.getText());
a.matriz[0][2]= aux;

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField6.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField14.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField15.getText());
Xo.matriz[0][2]= aux;

jTextArea2.setText(Vo.suma(a.multiplicaEscalar(t)).imprimir());
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField8.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField1.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField10.getText());
Vo.matriz[0][2]= aux;

double x=1;
jTextArea4.setText(Vo.multiplicaEscalar(x).imprimir());
}
}

domingo, 17 de mayo de 2009

APPLET

Un applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un navegador web. El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrión, mediante un plugin, o en aplicaciones como teléfonos móviles que soportan el modelo de programación por applets.

A diferencia de un programa, un applet no puede ejecutarse de manera independiente, ofrece información gráfica y a veces interactúa con el usuario, típicamente carece de sesión y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una función muy específica que carece de uso independiente. El término fue introducido en AppleScript en 1993.

**** Ejemplos comunes de applets son las Java applets y las animaciones Flash. Otro ejemplo es el Windows Media Player utilizado para desplegar archivos de video incrustados en los navegadores como el Internet Explorer. Otros plugins permiten mostrar modelos 3D que funcionan con una applet.

Para crear un applet necesitamos escribir una clave de la clase Applet del paquete java.applet.*;

import java.applet.*;
public class MiApplet extends Applet
{
//Cuerpo del ''applet''.
}

Una vez creada la clase que compone el applet, escribimos el resto del código y después lo compilamos, obteniendo el fichero MiApplet.class. Para poder crear el applet se necesita compilar el código Java en un intérprete.

public class MiApplet extends Applet implements Runnable
{
private Thread hilo = null;
private Font fuente;
private String horaActual = "00:00:00";

public void init()
{
fuente = new Font("Verdana", Font.BOLD, 24);
}
public void start()
{
if (hilo == null)
{
hilo = new Thread(this, "Reloj");
hilo.start();
}
}
public void run()
{
Thread hiloActual = Thread.currentThread();
while (hilo == hiloActual)
{
//obtener la hora actual
Calendar cal = Calendar.getInstance();
Date hora = cal.getTime();
DateFormat df = DateFormat.getTimeInstance();
horaActual = df.format(hora);
repaint();
try
{
Thread.sleep(1000);
}
catch (InterruptedException e){}
}
}
public void paint(Graphics g)
{
//Dibujar un rectangulo alrededor del contenedor
g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false);
//Establecer la Fuente
g.setFont(fuente);
//mostrar la Hora
g.drawString(horaActual,14,40);
}
public void stop()
{
hilo = null;
}
}

martes, 12 de mayo de 2009

Librería Swing, Awt y operaciones con vectores

SWING
Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, desplegables y tablas.

Ventajas
* El diseño en Java puro posee menos limitaciones de plataforma.
* El desarrollo de componentes Swing es más activo.
* Los componentes de Swing soportan más características.

Arquitectura
Es una plataforma independiente, Model-View-Controller Gui framework para Java. Sigue un simple modelo de programación por hilos, y posee las siguientes características principales:

* Independencia de plataforma.
* Extensibilidad: es una arquitectura altamente particionada: los usuarios pueden proveer sus propias implementaciones modificadas para sobrescribir las implementaciones por defecto. Se puede extender clases existentes proveyendo alternativas de implementación para elementos esenciales.
* Customizable: dado el modelo de representación programático del framework de swing, el control permite representar diferentes 'look and feel' (desde MacOS look and feel hasta Windows XP look and feel). Más allá, los usuarios pueden proveer su propia implementación look and feel, que permitirá cambios uniformes en el look and feel existente en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación.

AWT
AWT significa Abstract Window Toolkit. Permite hacer interfaces gráficas mediante artefactos de interacción con el usuario, como botones, menús, texto, botones para selección, barras de deslizamiento, ventanas de diálogo, selectores de archivos, etc. Y por supuesto despliegue gráfico general.

Caracteristicas
*Un widget es un elemento gráfico con el que el usuario puede interactuar.
*Ocupa una porción rectangular en una ventana.
*Existen diversos tipos: botones, áreas de texto, etiquetas, etc.
*El kit AWT implementa los widgets más usuales. Para usarlos es necesario importar las clases del paquete java.awt:

Construcción de una ventana de interacción
* Construcción del Frame:
Frame frame= new Frame("Titulo de la ventana");
* Construcción de widgets básicos de interacción:
Botón: Button boton= new Button("nombre del boton");
Etiqueta: Label etiq= new Label("nombre", Label.CENTER);
Area de texto: TextArea area= new TextArea(5, 20);
Campo de texto: TextField texto= new TextField(15);
Botón on/off: Checkbox check= new Checkbox("nombre");


OPERACIONES
package aplicacion;
public class Mivisual extends javax.swing.JFrame {
String aux ="";

public Mivisual() {
initComponents();
}
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt){
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
double x1= Double.parseDouble(jTextField1.getText());
double y1= Double.parseDouble(jTextField2.getText());
double z1= Double.parseDouble(jTextField3.getText());
double x2= Double.parseDouble(jTextField4.getText());
double y2= Double.parseDouble(jTextField5.getText());
double z2= Double.parseDouble(jTextField6.getText());
Matriz v1 = new Matriz(1,3);
Matriz v2 = new Matriz(1,3);
v1.matriz[0][0] = x1; v1.matriz[0][1] = y1; v1.matriz[0][2] = z1;
v2.matriz[0][0] = x2; v2.matriz[0][1] = y2; v2.matriz[0][2] = z2;
aux += (v1.suma(v2)).imprimir();
jTextArea1.setText(aux);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
double x1= Double.parseDouble(jTextField1.getText());
double y1= Double.parseDouble(jTextField2.getText());
double z1= Double.parseDouble(jTextField3.getText());
double x2= Double.parseDouble(jTextField4.getText());
double y2= Double.parseDouble(jTextField5.getText());
double z2= Double.parseDouble(jTextField6.getText());
Matriz v1 = new Matriz(1,3);
Matriz v2 = new Matriz(1,3);
v1.matriz[0][0] = x1; v1.matriz[0][1] = y1; v1.matriz[0][2] = z1;
v2.matriz[0][0] = x2; v2.matriz[0][1] = y2; v2.matriz[0][2] = z2;
aux += (v1.resta(v2)).imprimir();
jTextArea1.setText(aux);
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
double x1= Double.parseDouble(jTextField1.getText());
double y1= Double.parseDouble(jTextField2.getText());
double z1= Double.parseDouble(jTextField3.getText());
double x2= Double.parseDouble(jTextField4.getText());
double y2= Double.parseDouble(jTextField5.getText());
double z2= Double.parseDouble(jTextField6.getText());
Matriz v1 = new Matriz(1,3);
Matriz v2 = new Matriz(1,3);
v1.matriz[0][0] = x1; v1.matriz[0][1] = y1; v1.matriz[0][2] = z1;
v2.matriz[0][0] = x2; v2.matriz[0][1] = y2; v2.matriz[0][2] = z2;
for(int i=0;i<1;i++){
for(int j=0;j<1;j++){
result.matriz[0][0]=result.matriz[0][0]+(v1.matriz[i][j]*v1.matriz[i][j]);
}
}
escalar1.matriz=result.matriz;
result.matriz[0][0]=0;
for(int i=0;i<1;i++){
for(int j=0;j<3;j++){
result.matriz[0][0]=result.matriz[0][0]+(v2.matriz[i][j]*v2.matriz[i][j]);
}
}
aux=(escalar1.suma(result)).imprimir();
jTextArea1.setText(aux);
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
double x1= Double.parseDouble(jTextField1.getText());
double y1= Double.parseDouble(jTextField2.getText());
double z1= Double.parseDouble(jTextField3.getText());
double x2= Double.parseDouble(jTextField4.getText());
double y2= Double.parseDouble(jTextField5.getText());
double z2= Double.parseDouble(jTextField6.getText());
Matriz v1 = new Matriz(1,3);
Matriz v2 = new Matriz(1,3);
v1.matriz[0][0] = x1; v1.matriz[0][1] = y1; v1.matriz[0][2] = z1;
v2.matriz[0][0] = x2; v2.matriz[0][1] = y2; v2.matriz[0][2] = z2;
aux += ((v1.multiplica(v2)).imprimir());
jTextArea1.setText(aux);
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
double x1= Double.parseDouble(jTextField1.getText());
double y1= Double.parseDouble(jTextField2.getText());
double z1= Double.parseDouble(jTextField3.getText());
double x2= Double.parseDouble(jTextField4.getText());
double y2= Double.parseDouble(jTextField5.getText());
double z2= Double.parseDouble(jTextField6.getText());
Matriz v1 = new Matriz(1,3);
Matriz v2 = new Matriz(1,3);
Matriz result=new Matriz(1,1);
Matriz escalar1=new Matriz(1,3);
Matriz escalar2=new Matriz(1,3);
v1.matriz[0][0] = x1; v1.matriz[0][1]= y1; v1.matriz[0][2]=z1;
v2.matriz[0][0] = x2; v2.matriz[0][1]= y2; v2.matriz[0][2]=z2;
aux += "Unitario del vector 1 es: \n";
for(int i=0;i<1;i++){
for(int j=0;j<3;j++){
result.matriz[0][0]=result.matriz[0][0]+(v1.matriz[i][j]*v1.matriz[i][j]);
}
}
for(int i=0;i<1;i++){
for(int j=0;j<3;j++){
escalar1.matriz[i][j]=(v1.matriz[i][j])/(result.matriz[0][0]);
}
}
aux+=(escalar1.imprimir()+"\n");
aux += "Unitario del vector 2 es: \n";
result.matriz[0][0]=0;
for(int i=0;i<1;i++){
for(int j=0;j<3;j++){
result.matriz[0][0]=result.matriz[0][0]+(v1.matriz[i][j]*v1.matriz[i][j]);
}
}
for(int i=0;i<1;i++){
for(int j=0;j<3;j++){
escalar2.matriz[i][j]=(v2.matriz[i][j])/(result.matriz[0][0]);
}
}
aux+=(escalar2.imprimir()+"\n");
aux+="El total de los unitarios es \n";
aux+=(escalar1.suma(escalar2)).imprimir()+"\n";
jTextArea1.setText(aux);
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Mivisual().setVisible(true);
}
});
}

domingo, 10 de mayo de 2009

Herencia Vectorial

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

public Matriz(){}
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 for(int j=0; j aux= aux + matriz[i][j] + " ";
}
aux = aux + "\n";
}
return aux;
}

public String imprimir2(){
String aux ="";
aux=aux+"y1="+ matriz[0][0];
aux=aux+"\n";
aux=aux+"y2="+matriz[1][0];
return aux;
}

public Matriz suma(Matriz B){
if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; 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 sumar las matrices");
return r;
}
}

public Matriz resta(Matriz B){
if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; 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 restar las matrices");
return r;
}
}

public Matriz multiplica(Matriz B){
if(this.numeroFilas==B.numeroColumnas){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
int k;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j for(k=0; k r.matriz[i][j]+=this.matriz[i][k]*B.matriz[k][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden multiplicar las matrices");
return r;
}
}

public Matriz clonar(){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j r.matriz[i][j]=this.matriz[i][j];
return r;
}
public Matriz transpueta(){
Matriz r = new Matriz(this.numeroColumnas,this.numeroFilas);
int j;
for (int i = 0; i < this.numeroFilas; i++)
for(j = 0; j < this.numeroColumnas;j++)
r.matriz[j][i] = this.matriz[i][j];
return r;
}

public Matriz inversa(){
Matriz result=new Matriz(this.numeroFilas,this.numeroColumnas);
double tmp;//variable temporal
Matriz I=new Matriz(this.numeroFilas,this.numeroColumnas*2);
for(int i = 0; i for(int j = 0; j I.matriz[i][j]=0.0;

for(int i = 0; i for(int j = 0; j I.matriz[i][j]=this.matriz[i][j];
if (i==j)
I.matriz[i][j+this.numeroFilas]=1.0;
}
}
for(int i=0; i<(this.numeroFilas); i++){
tmp=I.matriz[i][i];
for(int j=0;j<(this.numeroColumnas*2);j++)
I.matriz[i][j]/=tmp;
for(int k=0;k if(k!=i){
tmp=I.matriz[k][i];
for(int j=0;j<(this.numeroColumnas*2);j++)
I.matriz[k][j]-=tmp*I.matriz[i][j];
}
}
}
for(int i = 0; i < this.numeroFilas; i++)
for(int j = 0; j result.matriz[i][j]=I.matriz[i][j+this.numeroColumnas];
return result;
}
public Matriz multiplicaEscalar(double a){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
for(int i = 0; i < this.numeroFilas; i++)
for(int j = 0; j r.matriz[i][j]= this.matriz[i][j]*a;
return r;
}
}

package herencia;
public class Vector extends Matriz{
public Vector(){
}
public Vector(int numElementos){
numeroFilas = 1;
numeroColumnas = numElementos;
matriz = new double[numeroFilas][numeroColumnas];
}

public Vector(int nF, int nC){
super(nF,nC);
}

public double productoEscalar(Vector x){
double resultado =0;
resultado=this.multiplica(x.transpueta()).matriz[0][0];
return resultado;
}

public static void main(String[] args){
Vector v = new Vector(3,3);
v.matriz[0][0]= 1;
v.matriz[0][1]= 0;
v.matriz[0][2]= 1;
System.out.println(v.imprimir());

Vector v1 = new Vector(3,3);
v1.matriz[0][0]= 1;
v1.matriz[0][1]= 2;
v1.matriz[0][2]= 3;
System.out.println(v1.imprimir());
System.out.println((v.suma(v1)).imprimir());
System.out.println("El producto vectorial");
System.out.println((v1.multiplica(v)).imprimir());
}
}