Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - César Krall

Páginas: 1 ... 50 51 52 53 54 [55] 56 57 58 59 60 ... 68
1081
Aprender a programar desde cero / Re:Problema con curso de java
« en: 12 de Octubre 2013, 18:35 »
Si el BlueJ te funciona bien puedes olvidarte de eso ya que podrás seguir el curso sin problemas. Saludos!

1082
Aprender a programar desde cero / Re:Problema con curso de java
« en: 11 de Octubre 2013, 08:21 »
Si funciona en otro equipo... algún problema tienes en el tuyo. ¿Qué sistema operativo tienes?

Se me ocurren hacer estas cosas:

a) Si usas Windows accede al panel de control, luego a programas y comprueba si te aparece un apartado que pone "Java". Si es así, pulsa sobre él y se te abrirá una ventana. En la pestaña Java - Configuración del Java Runtime Environment pulsa Ver... y comprueba si te aparecen líneas tanto en usuario como en sistema y comprueba que tengan checkada la opción "Activado"


b) Entra en la página http://www.java.com/es/download/testjava.jsp que es un tester del estado de Java a ver qué te indica ahí.

c) Intenta ejecutar el programa en el mismo directorio donde tengas instalado java (en lugar de en C:/Ejemplos)

La alternativa final sería desinstalar y volver a instalar Java pero esto no creo que solucionara el problema porque si te genera el .class es que Java está corriendo, lo que parece que tienes es un problema para ejecutarlo en la ruta en que intentas hacerlo.

1083
Aprender a programar desde cero / Re:Tabla de decisiones
« en: 09 de Octubre 2013, 11:01 »
Léete lo que está comentado en este hilo, creo que te pueda ayudar a resolver lo que planteas: https://www.aprenderaprogramar.com/foros/index.php?topic=97.0

Saludos!

1084
Citar
Gracias Cesar,super bien explicado.
Lo del correo electronico es como se hace para que se "valide"digamoslo asi un correo.

Ejemplo;mi pag web se llama vegaimagen y quiero crear tata@vegaimagen.com se que lo hago con el hosting pero como me llegaria esos e-mails a mi, el hosting lo haria que se vinieran directamente hacia el usuario?..gracias de antemano
Hola tata, si tienes una cuenta de correo en el hosting y quieres leer los correos que llegan a esa cuenta de correo, lo más fácil es acceder al correo a través de una dirección de internet o a través del panel de control del hosting. La dirección para acceder al correo suele ser del tipo http: // vegaimagen.com/webmail ó http: // vegaimagen.com/roundcube , una vez escribes esa dirección te pide usuario y password y una vez los introduces ya tienes acceso a leer los correos recibidos, o enviar correos. La cuenta de correo, el nombre de usuario y el password normalmente se crean desde el panel de administración del hosting al que debes tener acceso. La dirección para acceder tendrías que ver si te aparece en el panel de administración o si no consultarle al proveedor del hosting. Saludos.

1085
Aprender a programar desde cero / Re:Problema con curso de java
« en: 08 de Octubre 2013, 08:47 »
Hola, aunque no se puede estar cien por cien seguro, este error parece indicar que no tienes bien configurado Java en el sistema. Aunque ya lo tuvieras instalado, para poder ejecutar desde cualquier directorio tienes que configurar Java.

Haz lo que se indica aquí: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=389:configurar-java-en-windows-variables-de-entorno-javahome-y-path-cu00610b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Nota: tendrás que buscar la ruta donde tienes instalado Java en tu computador.

Vete siguiéndolo paso a paso y si tienes problemas indica exactamente dónde para tratar de echar una mano. Saludos!


1086
Aprender a programar desde cero / Re:Problema con iteraciones
« en: 08 de Octubre 2013, 08:34 »
Hola Juan, trataré de resolver esas dudas para que puedas seguir avanzando con el curso:

1 El proceso se repite N cantidad de veces, pero no siempre hace lo mismo. Los valores "que se prueban" van cambiando. Imagínate que tú me preguntas: "Tengo pensado un número del 1 al 20 ¿Cuál es? Y yo te respondo: 1ª iteración: ¿Es el 1? Respuesta tuya: no 2ª iteración: ¿Es el 2? Respuesta tuya: no 3ª iteración: ¿es el 3? Respuesta tuya: no ... como ves en cada iteración probamos un valor distinto (hacemos algo distinto). No tendría sentido estar repitiendo siempre lo mismo. Las iteraciones terminarían cuando: me digas que he encontrado el número (se cumple la condición de terminación), o cuando llegue a 20 y todas las respuestas sean no.

2 Tienes razón, repitiendo el proceso un número menor de veces se llegaría antes a un resultado. Sin embargo, supón que me dices "Tengo pensado un número del 1 al 20000 ¿Cuál es?" Si te pregunto ¿es el 571? y acierto sólo habré hecho una iteración pero acertar a la primera es improbable. Por eso cuanto mayor sea el número de probabilidades, de media tardaré más tiempo. Es decir, es más fácil comprobar todos los números del 1 al 20 que del 1 al 20000. Por eso es tal como tú dices, con unas pocas pruebas el proceso sería más rápido pero no se aseguraría el hallazgo de una solución. Intentando más veces se tardará más, pero hay más posibilidades de encontrar la solución.

Tu hipótesis es correcta: ¿Puede ser que lo que se quiere explicar cuando se itinera, sea que el numero de itineraciones consiste en las veces en que el programa va a cambiar los valores iniciales para intentar llegar a un resultado deseado?
Efectivamente

Un número de iteraciones infinito en general no es aceptable, porque supone que el ordenador se podría quedar horas, días o semanas buscando... sin saber si realmente se va a llegar a una solución. Lo que se hace es poner un límite: si después de realizadas tantas miles de búsquedas no se ha encontrado el resultado, terminar e informar de que no se encontró la solución.

Nota: te convendrá empezar a hacer pequeños programas con Visual Basic (siguiendo en paralelo el curso de visual basic) cuando llegues a la entrega CU00135 del curso, esto te facilitará el aprendizaje. Saludos!


1087
Hola Tata, un formulario se puede validar con PHP. PHP es un lenguaje que se ejecuta en el servidor, aquí tienes un esquema que explica qué supone que se ejecute en el servidor:

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=501:comunicacion-cliente-servidor-sin-php-y-con-php-interprete-php-y-gestor-de-bases-de-datos-cu00804b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Javascript es un lenguaje que se ejecuta en el navegador (aunque normalmente la información venga desde el servidor)

Aquí tienes algo de información sobre Javascript: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=590:ique-es-y-para-que-sirve-javascript-embeber-javascript-en-html-ejercicio-ejemplo-basico-cu00731b&catid=69:tutorial-basico-programador-web-html-desde-cero&Itemid=192

Para validar un formulario de contacto en una página web lo más normal será:

1) Crear el código de validación en php ó en Javascript

2) Subir ese código al hosting

3) Probar que funcione adecuadamente

Lo que comentas del correo electrónico no entiendo bien a qué te refieres.


1088
Hola pasisica, aprender a programar es algo que requiere esfuerzo y dedicación, además organizarse bien y tener una buena orientación. Quizás empezar con un estudio en profundidad de C++ no es lo más recomendable para personas que están empezando (aunque podrás oir opiniones para todos los gustos).

Uno de nuestros campos de trabajo es la enseñanza de la programación, de ahí que tanto en la web como en los foros este tema se discute con amplitud.

Artículo sobre cómo empezar: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=28&Itemid=73

Es necesario plantearse un itinerario formativo coherente, no empezar a estudiar sin haberse planteado cuál es el orden adecuado. Aquí tienes un artículo sobre esto: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=88&Itemid=176

Nosotros recomendamos nuestros libros y nuestros cursos (no sería muy lógico promocionar los de la competencia  :D).

Libro: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=97:libro-y-ebook-qaprender-a-programar-algoritmos-y-fundamentos-de-programacionq&catid=25:libros-editados-por-aprenderaprogramarcom&Itemid=106

Cursos: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86

Supongo que te parecerán un montón de links, pero no está de más echarles un vistazo para tener una visión global. Saludos!

1089
Aprender a programar desde cero / php o javascript primero
« en: 01 de Octubre 2013, 08:12 »
Hola tata, yo recomendaría aprender primero php por una razón básica. Con php, html y css puedes tener una página web completa. En cambio, con javascript, html y css no podrás tener una página web que trabaje con bases de datos y que se pueda considerar "completa".

De todas formas en este artículo tienes más información: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=702:ique-es-y-que-estudiar-para-ser-programador-web-itinerario-de-formacion-plan-de-estudios-o-de-carrera&catid=39:orientacion-academica&Itemid=189

Y aquí un curso de php básico: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Saludos

1090
Aprender a programar desde cero / Re:J2ES o J2ME
« en: 26 de Septiembre 2013, 11:54 »
Pues no sé quién puede estar trabajando con aplicaciones android, supongo que alguien habrá pero no sé decirte específicamente quién Saludos

1091
Aprender a programar desde cero / Re:J2ES o J2ME
« en: 25 de Septiembre 2013, 11:04 »
Si sólo quieres realizar programación para android no tienes que irte por J2SE ni por J2ME, lo que tienes que aprender es android y java para android (u otro lenguaje para android). Para ello la página de referencia es http://developer.android.com/index.html, aunque puedes encontrar muchos cursos en internet. El problema de tratar de empezar directamente con java para android es que te puedes encontrar intentando aplicar conceptos que no conoces y esto puede hacer que pierdas mucho tiempo intentando hacer algo sin lograrlo por no conocer los fundamentos.

Si quieres aprender de una forma más ordenada, fórmate en J2SE para conocer los conceptos fundamentales y luego empieza con Android, que ya te resultará más fácil porque tendrás la base necesaria. Aquí tienes el curso de conceptos básicos en java: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188; este curso te servirá como base para luego ser programador de app, pero para programar apps tendrás que aprender más cosas de las que se explican en este curso

Respecto a J2SE y J2ME, ambos son cosas parecidas. Lo más habitual siempre es aprender J2SE primero, pero si quieres poner delante J2ME también puedes, nadie lo prohibe.


1092
Aprender a programar desde cero / Re:J2ES o J2ME
« en: 25 de Septiembre 2013, 08:25 »
Hola kolti, si lo que quieres es desarrollar aplicaciones con java rápidamente pero tan rápido como ya, hay plataformas que te permiten crear apps sin tener conocimientos de programación, por ejemplo para android está appinventor (http://appinventor.mit.edu/explore/) se basa en un entorno gráfico donde no se escribe código, sólo se arrastran elementos visualmente y listo. Te lees un poco el tutorial y en quince minutos puedes tener aplicaciones android.

Si lo que buscas es convertirte en un programador profesional, esto requiere muchos meses o años de dedicación y estudio, no hay una varita mágica que te convierta en programador en un par de semanas.

Sobre si el J2SE te servirá luego para programar aplicaciones: sí. Habrá algunos cambios, pero todo lo aprendido te servirá.

Sobre no haber programado nada hasta ahora, si quieres crear aplicaciones sin ser programador usa appinventor, si quieres ser programador realiza los cursos de Fundamentos de programación I, II y Visual Basic; no hace falta que los hagas completos, hay partes que puedes saltarte porque son menos importantes, pero te dan la base para poder convertirte en programador. Saludos!


1093
Hola! Sobre el condicional if (k != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";} lo puse para que en cada pasada por el bucle se escriba un número y una coma, excepto en la última que es lo que detecta el condicional, para que en la última se escriba un número y el cierre de corchetes.

Gracias al condicional sale por ejemplo [22,11,4,2] en vez de [22,11,4,2

Si quieres poner un símbolo de comienzo y cierre como [ y ] necesitas saber cuál es el último número a imprimir y esta es la forma que se me ocurrió, si se te ocurre otra también puedes usarla.



Sobre cómo llegar a ser un buen programador te copio lo que se ha escrito en otro hilo que en general me parece correcto, hay varios hilos donde se ha hablado de este tema:

"Llegar a ser un buen programador depende de la persona, su capacidad innata para la programación, el esfuerzo y estudio que aplique para el aprendizaje y además, de forma importante, en que ese esfuerzo y estudio esté bien organizado y estructurado.

Me explico: una persona puede dedicar 5 horas al día a estudiar y practicar delante del ordenador y si lo hace sin seguir un orden y organización adecuados, al cabo de un año no haber aprendido prácticamente nada. En cambio, si esa misma persona sigue un orden y pautas adecuadas, al cabo de un año puede estar a nivel profesional en alguna tecnología.

¿A qué me refiero con buena organización, estructuración, orden, etc.?

Me refiero a que para adquirir conocimientos de programación existen miles de fuentes de información: libros, páginas web, revistas, etc. Es importante elegir buenas fuentes: buenos libros, buenas páginas web, etc.

También me refiero a que a la hora de estudiar y practicar hay que marcarse un orden y unos objetivos. Por ejemplo, si quieres convertirte en programador web un buen itinerario empezaría con un curso de Fundamentos de Programación o quizás con HTML. Si comienzas tu formación con un curso de Dreamweaver ó un curso de CSS posiblemente pierdas el tiempo. No tiene sentido estudiar CSS sin antes tener fundamentos de HTML... al menos esa es mi opinión.

Tampoco a todo el mundo se le da la programación. Es como dibujar, hay gente que tiene facilidad y gente a la que le cuesta mucho. Si me cuesta mucho lo lógico es que no sea pintor, sino que me dedique a algo que me suponga menos esfuerzo.

Si tienes una capacidad innata y te formas siguiendo una organización y orden adecuados, lograrás comprensión sobre la lógica que hay debajo de los sistemas informáticos y esto te permitirá resolver mayor cantidad de problemas. Nadie lo sabe todo, pero hay algunas personas que con conocimiento y práctica son capaces de resolver cosas que la mayoría de la gente no sabría resolver. Y te lo digo después de haber trabajado junto a un buen número de programadores, cada uno de ellos distinto."



1094
Si te refieres a colocar la impresión dentro del método guardar_vector puedes hacerlo así, aunque no sé si es a esto a lo que te refieres:

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {

    public static void main(String[] args){

        String menu="MENU DE MATRICES \n";

        int i,j;
        int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
        int a[][]=new int [n][n];
        int b[][]=new int [n][n];
        int c[][]=new int [n][n];
        int vector []= new int[n*n];

        llenar_matrices(a,b,n);
        int op=0;
        menu+="1.  Suma de matrices\n";
        menu+="2.  Transpuesta de matriz\n";
        menu+="3.  Intercambiar filas\n";
        menu+="8.  Guardar en Vector\n";
        menu+="12. Imprimir Matriz por consola\n";
        menu+="13. Imprimir Matriz por ventanas\n";
        menu+="20. Fin\n";
        menu+="Escoja Opción:\n";
        while (op!=20){
            op=Integer.parseInt(JOptionPane.showInputDialog(menu));
            switch (op){
                case 1:
                sumar(a,b,c,n);
                break;
                case 2:
                transpuesta(a,c,n);
                break;
                case 3:
                intercambia_filas(a,c,n);
                break;
                case 8:
                Guardar_Vector(a, vector, n);
                break;
                case 12:
                imprimir (a,n);
                break;
                case 13:
                imprime_ventana(a,n,"Matriz A-------GARROTE");
                break;
                case 20:
                break;
            }
        }
    }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                c1[i][j] = a1[i][j] + b1[i][j];
            }
        }
        imprime_ventana(a1,n1,"Matriz A");
        imprime_ventana(b1,n1,"Matriz B");
        imprime_ventana(c1,n1,"Matriz A+B");
    }


    static void transpuesta(int a[][],int c[][], int n){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[j][i];
            }
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz Transpuesta");
    }


    static void intercambia_filas(int a[][],int c[][],int n){
        int i,j,t;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[i][j];
            }
        }
        int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
        int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
        for(j=0;j<n;j++){
            t=c[f1][j];
            c[f1][j]=c[f2][j];
            c[f2][j]=t;
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz de filas intercambiadas");
    }


    static void Guardar_Vector(int a[][], int vector[], int n){
        int i,j;
        int contador = 0;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                vector[contador]=a[i][j];
                contador = contador+1;
            }
        }
       
        imprime_ventana(a,n,"Matriz A");
                String salida="[";
        for (int k=0;k<n*n;k++){

            salida=salida+ vector[k]+"  ";

            if (k != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,"Mostrando vector",JOptionPane.PLAIN_MESSAGE);

    }

    static void llenar_matrices(int a1[][], int b1[][],int n1){
        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                a1[i][j]=(int)(Math.random()*10);
                b1[i][j]=(int)(Math.random()*10);
                //System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
            }
        }
    }

    static void imprimir(int m[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                System.out.print(m[i][j]+"\t");
            }
            System.out.println(" ");
        }
    }


    static void imprime_ventana (int a[][],int n,String mensaje){
        String salida="";
        for (int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                salida=salida+ a[i][j]+"\t";
            }
            salida=salida+"\n";
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

}/// cierre class

1095
La matriz b[][] es una matriz auxiliar respecto a la matriz a[][]. Si quisieras hacerlo por columnas tendrías que seguir usando la matriz a[][] (al menos así lo entiendo yo), únicamente tendrías que definir otro método que trabajara por columnas.

El poner el imprimir_vector por separado fue para guardar la misma lógica que traía el código: en el código por un lado se trabaja la obtención del resultado y por otro lado están los métodos para imprimir, lo único que hice fue seguir esa lógica, pero si quieres meter el código de imprimir dentro del método guardar_vector podrías hacerlo.

Saludos!

1096
Aquí te pongo el código que podría ser una solución, aunque no sé exactamente si es así como lo quieres.

Yo esto suponiendo que si tienes una matriz como:

[ 9 8 7
  2 6 5
  9 9 2 ]

Lo que quieres es generar un vector con los elementos de la matriz extrayendo fila a fila, de forma que el vector quedaría así:

[9  , 8  , 7  , 2  , 6  , 5  , 9  , 9  , 2  ]

Código ampliado:

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {

    public static void main(String[] args){

        String menu="MENU DE MATRICES \n";

        int i,j;
        int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
        int a[][]=new int [n][n];
        int b[][]=new int [n][n];
        int c[][]=new int [n][n];
        int vector []= new int[n*n];

        llenar_matrices(a,b,n);
        int op=0;
        menu+="1.  Suma de matrices\n";
        menu+="2.  Transpuesta de matriz\n";
        menu+="3.  Intercambiar filas\n";
        menu+="8.  Guardar en Vector\n";
        menu+="12. Imprimir Matriz por consola\n";
        menu+="13. Imprimir Matriz por ventanas\n";
        menu+="20. Fin\n";
        menu+="Escoja Opción:\n";
        while (op!=20){
            op=Integer.parseInt(JOptionPane.showInputDialog(menu));
            switch (op){
                case 1:
                sumar(a,b,c,n);
                break;
                case 2:
                transpuesta(a,c,n);
                break;
                case 3:
                intercambia_filas(a,c,n);
                break;
                case 8:
                Guardar_Vector(a, vector, n);
                break;
                case 12:
                imprimir (a,n);
                break;
                case 13:
                imprime_ventana(a,n,"Matriz A-------GARROTE");
                break;
                case 20:
                break;
            }
        }
    }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                c1[i][j] = a1[i][j] + b1[i][j];
            }
        }
        imprime_ventana(a1,n1,"Matriz A");
        imprime_ventana(b1,n1,"Matriz B");
        imprime_ventana(c1,n1,"Matriz A+B");
    }


    static void transpuesta(int a[][],int c[][], int n){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[j][i];
            }
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz Transpuesta");
    }


    static void intercambia_filas(int a[][],int c[][],int n){
        int i,j,t;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[i][j];
            }
        }
        int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
        int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
        for(j=0;j<n;j++){
            t=c[f1][j];
            c[f1][j]=c[f2][j];
            c[f2][j]=t;
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz de filas intercambiadas");
    }


    static void Guardar_Vector(int a[][], int vector[], int n){
        int i,j;
        int contador = 0;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                vector[contador]=a[i][j];
                contador = contador+1;
            }
        }
       
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana_vector(vector,n,"Vector generado");

    }

    static void llenar_matrices(int a1[][], int b1[][],int n1){
        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                a1[i][j]=(int)(Math.random()*10);
                b1[i][j]=(int)(Math.random()*10);
                //System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
            }
        }
    }


    static void imprimir(int m[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                System.out.print(m[i][j]+"\t");
            }
            System.out.println(" ");
        }
    }


    static void imprime_ventana (int a[][],int n,String mensaje){
        String salida="";
        for (int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                salida=salida+ a[i][j]+"\t";
            }
            salida=salida+"\n";
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

    static void imprime_ventana_vector (int a[],int n,String mensaje){
        String salida="[";
        for (int i=0;i<n*n;i++){

            salida=salida+ a[i]+"  ";

            if (i != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

}/// cierre class


Esto es lo que hace el código que te he puesto. He tenido que crear un método para imprimir el vector, revísalo a ver si te sirve. Saludos y suerte.

1097
Estoy mirándolo, en cuanto tenga algo te respondo. Saludos!

1098
Hola, te comento algunas cuestiones: por un lado, cuando vayas a poner código debes usar el botón con el símbolo # que te aparece en el editor del foro, e introducir el código entre los símbolos [ code] ... [/ code] que te aparecerán, sino el código puede aparecer incompleto o incorrectamente.

En segundo lugar, no repitas el mismo mensaje en varios hilos del foro porque confunde al parecer que es otro problema o cuestión distinta, y se agradece no confundir.

Sobre el código en sí, voy a poner aquí lo que creo es el código que tú pegaste añadiendo las cosas que no quedaron bien por no usar el botón #

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {
   
    public static void main(String[] args){
     
       String menu="MENU DE MATRICES \n";
     
      int i,j;
      int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
      int a[][]=new int [n][n];
      int b[][]=new int [n][n];
      int c[][]=new int [n][n];
      int vector []= new int[n*n];
     
      llenar_matrices(a,b,n);
      int op=0;
      menu+="1.  Suma de matrices\n";
      menu+="2.  Transpuesta de matriz\n";
      menu+="3.  Intercambiar filas\n";
      menu+="8.  Guardar en Vector\n";
      menu+="12. Imprimir Matriz por consola\n";
      menu+="13. Imprimir Matriz por ventanas\n";
      menu+="20. Fin\n";
      menu+="Escoja Opción:\n";
      while (op!=20){
         op=Integer.parseInt(JOptionPane.showInputDialog(menu));
         switch (op){
         case 1:
            sumar(a,b,c,n);
           break;
         case 2:
            transpuesta(a,c,n);
            break;
         case 3:
            intercambia_filas(a,c,n);
            break;
         case 8:
          Guardar_Vector(a,b,n);
            break;
         case 12:
            imprimir (a,n);
             break;
         case 13:
            imprime_ventana(a,n,"Matriz A-------GARROTE");
              break;
         case 20:
            break;
         }
      }
   }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){
     
      for (int i=0;i<n1;i++){
      for (int j=0;j<n1;j++){
      c1[i][j] = a1[i][j] + b1[i][j];
      }
      }
      imprime_ventana(a1,n1,"Matriz A");
      imprime_ventana(b1,n1,"Matriz B");
      imprime_ventana(c1,n1,"Matriz A+B");
   }
   static void transpuesta(int a[][],int c[][], int n){
      int i,j;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[i][j]=a[j][i];
         }
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz Transpuesta");
   }
   static void intercambia_filas(int a[][],int c[][],int n){
      int i,j,t;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[i][j]=a[i][j];
   }
      }
      int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
      int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
      for(j=0;j<n;j++){
         t=c[f1][j];
         c[f1][j]=c[f2][j];
         c[f2][j]=t;
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz de filas intercambiadas");
   }
   static void Guardar_Vector(int a[][],int b[][], int n){
 
     
   }
   
   
   static void llenar_matrices(int a1[][], int b1[][],int n1){
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            a1[i][j]=(int)(Math.random()*10);
            b1[i][j]=(int)(Math.random()*10);
            System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
         }
      }
   }
   static void imprimir(int m[][], int n1){
       
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            System.out.print(m[i][j]+"\t");
         }
         System.out.println(" ");
      }
   }
   static void imprime_ventana (int a[][],int n,String mensaje){
      String salida="";
       for (int i=0;i<n;i++){
         for(int j=0;j<n;j++){
            salida=salida+ a[i][j]+"\t";
         }
         salida=salida+"\n";
      }
         JTextArea area= new JTextArea();
         area.setText(salida);
         JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
   }
   }/// cierre class

1099
Hola, aquí hay una explicación sobre uso de matrices o arrays multidimensionales en Java: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=233:arrays-arreglos-multidimensionales-en-java-declaracion-y-uso-ejemplos-y-ejercicios-resueltos-cu00904c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

Aunque no sé si se corresponde con lo que quieres hacer ¿qué es exactamente lo que quieres hacer?


1100
Aprender a programar desde cero / Re:Duda sobre iniciar un programa.
« en: 11 de Septiembre 2013, 08:40 »
Hola, tienes razón en que el código tal y como está da lugar a un error.

Sobre el código que has puesto te haría las siguientes observaciones:

a) Has creado un método que se denomina Edad que no recibe parámetros. La clase carece de constructor. La clase tiene un atributo o variable denominada Edad que no se inicializa, por eso el valor inicial de la variable Edad es cero y cada vez que tratas de ejecutar el método te aparece siempre el mismo mensaje.

Para corregir esto en primer lugar es recomendable no poner a un método el mismo nombre que la clase, ese nombre debe quedar reservado para el constructor. En el constructor lo que se hace es inicializar los atributos de la clase. Por tanto deberías poner un constructor donde pida un parámetro que sea la edad, de modo que puedas establecer la edad que tú quieras y que no siempre valga cero. El código quedaría así:

Código: [Seleccionar]
//Ejemplo de metodo switch
public class Edad{
    private int edad;

    public Edad (int edadRecibida) {
        edad = edadRecibida;}

    public void dimeSiEdadEsCritica(){
        switch(edad){
            case 0:
            System.out.println("Acaba de nacer hace poco. No ha cumplido el año.");
            break;
            case 18:
            System.out.println("Esta justo en la mayoria de edad.");
            break;
            case 65:
            System.out.println("Esta en la edad de jubilacion.");
            break;
            default:
            System.out.println("La edad no es critica.");
            break;
        }
    }
}

Ahora tendrías que crear un objeto y como el constructor requiere un parámetro, te pedirá que indiques new Edad ( ... ) , ahí escribe un número por ejemplo 65 y pulsa ok. Ahora ejecuta el método void dimeSiEdadEsCritica() y deberá aparecerte el mensaje "Está en la edad de jubilación". Este objeto siempre te devolverá el mismo mensaje porque la edad está fijada en un valor, si quisieras ver otro mensaje tendrías que crear otro objeto.

 
Para hacer que el método funcione tendríamos más opciones, te voy a indicar dos más. La primera sería declarar el método dentro de una clase donde uno de sus atributos sea una variable de tipo entero denominada edad. Dentro de la clase creamos un método denominado setEdad que nos permita introducir una edad. Finalmente, crearíamos el objeto de la clase, estableceríamos la edad con el método setEdad y luego llamaríamos al método dimeSiEdadEsCritica para obtener un resultado. El código sería este:

Código: [Seleccionar]
public class testSwitch {
    // Atributos de clase
    private int edad;
    //Constructor
    public testSwitch() {       }


    public void setEdad(int edadRecibida) { edad = edadRecibida;}

        /* Ejemplo método que usa switch - aprenderaprogramar.com */
    public void dimeSiEdadEsCritica() {
        switch (edad) {
            case 0:
            System.out.println ("Acaba de nacer hace poco. No ha cumplido el año");
            break;
            case 18: System.out.println ("Está justo en la mayoría de edad"); break;
            case 65: System.out.println ("Está en la edad de jubilación"); break;
            default: System.out.println ("La edad no es crítica"); break;
        }
    }
}

Con el código anterior puedes cambiar la edad tantas veces como quieras utilizando el método setEdad y luego visualizar el mensaje que corresponda utilizando el método dimeSiEdadEsCritica()


La otra opción sería modificar el método para que lleve un parámetro edad de forma que cada vez que ejecutes el método te pida el parámetro.  El código quedaría así:

Código: [Seleccionar]
public class testSwitch {
    // Atributos de clase

    //Constructor
    public testSwitch() {       }

    /* Ejemplo método que usa switch - aprenderaprogramar.com */
    public void dimeSiEdadEsCritica(int edad) {
        switch (edad) {
            case 0:
            System.out.println ("Acaba de nacer hace poco. No ha cumplido el año");
            break;
            case 18: System.out.println ("Está justo en la mayoría de edad"); break;
            case 65: System.out.println ("Está en la edad de jubilación"); break;
            default: System.out.println ("La edad no es crítica"); break;
        }
    }
}

De cualquiera de estas maneras debería funcionarte. No hay una manera mejor que otra, simplemente debe comprenderse en qué consiste cada opción.

Prueba las distintas formas a ver si te funcionan y ya me comentas si tienes algún problema. Saludos.

Páginas: 1 ... 50 51 52 53 54 [55] 56 57 58 59 60 ... 68

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".