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 ... 23 24 25 26 27 [28] 29 30 31 32 33 ... 68
541
Hola Dan!

En las bases de datos lo que se suele guardar es la ruta de las imágenes, no las imágenes en sí. Podrían guardarse imágenes, pero esto se considera ineficiente. Es más eficiente guardar la ruta, recuperar la ruta desde la base de datos y a partir de la ruta mostrar la imagen.

¿Con qué versión de Visual Basic estás trabajando?


542
Hola!

La respuesta a las preguntas es correcta

El código es correcto pero usas un índice con un for extendido.

Código: [Seleccionar]
        for(Integer auxLista1:lista1){//for each
            System.out.print("\tlista1  ("+i+")= "+ auxLista1+";");i++;
        }

Te recomiendo que leas lo que se comenta en este hilo sobre esto: https://www.aprenderaprogramar.com/foros/index.php?topic=3210

Saludos!

543
Hola edioswaldo!

Para validar entradas por teclado pueden usarse distintas vías, por ejemplo el uso de expresiones regulares que comprueben si la entrada se ciñe a un patrón. Esto no forma parte del curso pero puedes consultarlo en https://docs.oracle.com/javase/tutorial/essential/regex/ por ejemplo.

Tu código está correcto. A seguir avanzando!

544
Hola niurkafer si introduzco como valor del radio 2.5 me sale un error java.util.InputMismatchExceptionn: null (in java.util.Scanner)

¿Por qué? Porque estás dando por supuesto que el radio es un entero al pedirlo al usuario: Integer radioIngresado = sc.nextInt();

Sin embargo el radio como dice el enunciado del ejercicio es un double

¡Debes corregir esto!

Saludos

545
Hola Javier, supón que eres un empleado de un banco y que en tu mesa de la oficina llega un chorro de aire acondicionado que te da frío. Ahora supón que pones un paraguas apoyado sobre la mesa para evitar que el aire acondicionado te dé de lleno. ¿Está mal? No ¿Es efectivo? Sí. Sin embargo tus compañeros te mirarán extrañados porque no es algo habitual, se sale de la convención. Con el contador en un for extendido pasa algo parecido, puedes usarlo si quieres, pero tus compañeros programadores te mirarán extrañados. Con el diseño pasa lo mismo. Si puede resolverse con un diseño sencillo resolverlo de una forma complicada no será bien visto ni siquiera aunque funcione bien.

Saludos!

546
Hola crackdum, he revisado el código y lo que puedo decirte es que no está bien planteado y que habría que cambiar muchas cosas.

Para aprender Java paso a paso y aprender a hacer diseños correctos con buenos planteamientos en el código te recomiendo que sigas este curso paso a paso: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Si realizas el curso puedes ir posteando en los foros las soluciones que le vayas dando a cada uno de los ejercicios para obtener consejos de otras personas en los foros y que puedas comprobar si avanzas haciendo las cosas bien. Haciendo el curso podrás resolver ejercicios de este tipo sin problemas.

Saludos!

547
Hola niurkafer! Todo bien aunque el rango no es el que pedía el ejercicio.

En el api de java podemos leer de nextInt (int n) de Random:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)

Por tanto numeroAleatorio = rd.nextInt(101); no está generando un aleatorio entre 1 y 100 como pide el ejercicio, sino entre 0 y 100. Para solucionar esto puedes escribir numeroAleatorio = rd.nextInt(100) + 1; De esta manera el número será mínimo 1, máximo 1+99=100, de ese modo el número estará entre 1 y 100.

Saludos!

548
Hola crackdum, para poder ayudarte pega el código con el que estás trabajando como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

De esa manera otras personas podremos revisar el código, reproducir el error que estás teniendo y proponer una solución si la encontramos.

Saludos!

549
Hola, en este caso parece que la función está prevista para que se le pase el nombre de un ancla (anchor). Un ancla es una referencia que permite pasar de un punto a otro de una página que es larga.

Referencia de anclas (anchors): http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=508:hipervinculos-links-o-enlaces-html-etiqueta-a-atributos-href-target-y-title-tipos-de-links-img-cu00717b&catid=69:tutorial-basico-programador-web-html-desde-cero&Itemid=192

Al pasarle el nombre de un ancla a la función, movería el foco o área visible a esa ancla con un efecto de animación.

Saludos!

550
Hola!

En la clase ListaCantantesFamosos tenemos este código:

Código: [Seleccionar]
for (String desenfunda: listaCantantes){
     System.out.println((i+1) + ".- " + desenfunda);
     i++;
}

Un for extendido es un bucle pensado para no usar índices de recorrido como la variable i. Cuando se quiera mantener un índice es preferible usar un for tradicional (que ya de por sí requiere de un índice) o un bucle while. No está prohibido, pero es algo no recomendado y que en general los programadores no usan (índices con un bucle for each).

Otra cosa a mejorar: introduces demasiada complejidad en las condiciones de la clase con el main. Demasiados if, while dentro de if, etc. indica que no es un buen diseño o planteamiento.

Mira este ejercicio resuelto: https://www.aprenderaprogramar.com/foros/index.php?topic=2262

Piensa que cuanto más simple sea tu código (siempre que cumpla con lo requerido y que esté bien planteado) mejor.

Saludos!

551
Hola! Cuanto más practiques y veas código más soltura irás adquiriendo así que a seguir avanzando!

Saludos

552
No he revisado el código por ello voy solo a comentar algunas cosas, creo que sería bueno oir tu opinión o corrección.

- El cliente pide al servidor que le envíe un fichero que se encuentra en el servidor por ejemplo prueba.txt y que lo deposite en una ubicación del cliente por ejemplo C:/Users/Krall/Desktop/pruebas/llegada.txt

- En el servidor la búsqueda del fichero se hace mediante una búsqueda recursiva en todo el sistema de archivos. Sugerencia: esta búsqueda es muy costosa. ¿Por qué no defines una ubicación donde deba realizarse la búsqueda? (Por ejemplo dentro de una carpeta). De esa manera no tardaría tanto tiempo en realizar la búsqueda (tal y como está ahora puede requerir varios minutos)

- En el diseño los nombres de las clases no acaban de tener una representación clara de lo que son o lo que hacen. Por ejemplo no veo una clase Cliente ni una clase Servidor. Sería bueno oir una descripción del cometido de cada clase (que tendría que hacer quien ha creado el programa)  y quizás también un rediseño para dar mejores nombres a las clases. Por ejemplo BuscarArchivo no es un nombre coherente para una clase. Podría serlo BuscadorDeArchivos o algo similar, pero no es común que el nombre de una clase sea el infinitivo de un verbo. Hay nombres que no veo claros por ejemplo la clase FicheroServidor ¿representa un fichero servidor? Por ejemplo no veo claro que un fichero pueda recibir órdenes por consola, eso no se ve coherente.

Ante todo gracias por la aportación!


553
Para orientar a quienes quieran probar el programa:

- En la clase FicheroCliente reemplazar C:/Documents and Settings/Admin/Desktop/llegada.txt por una ruta propia del pc donde estemos trabajando, por ejemplo C:/Users/Krall/Desktop/pruebas/llegada.txt

En esa ruta será donde se coloque el fichero enviado por el servidor (el fichero que vamos a descargar en el cliente)

Para hacer una prueba, crear un fichero por ejemplo denominado prueba.txt y ubicarlo en el escritorio (o en otro lugar).

Para comenzar, ejecutar el método main de la clase FicheroServidor. Es posible que salte una alerta de Firewall de Windows. En este caso elegir "Permitir acceso"

Por pantalla nos saldrá <<Servidor escuchando: ServerSocket[addr=0.0.0.0/0.0.0.0,localport=4444] 0.0.0.0/0.0.0.0
>>

Abrir otro entorno de ejecución Java y ejecutar el método main de la clase FicheroCliente

Por pantalla nos saldrá:

servidor conectado:NombreServer
Introduce comando válido:


Escribimos get "prueba.txt"

Con esto lo que hemos dicho es "busca el archivo prueba.txt dentro del servidor y descárgalo al cliente en la ruta C:/Users/Krall/Desktop/pruebas/llegada.txt" (o aquella ruta que hayamos indicado).

En la ventana de EnvioFicheros obtendremos al cabo de un par de minutos:

servidor conectado:Krall
Intrude comando válido:
get "prueba.txt"
File C:/Users/Krall/Desktop/pruebas/llegada.txt downloaded (66 bytes read)
Introduce comando válido:


Aquí como comando introduciremos bye para desconectar.

En la ventana EnvioFicheros obtendremos algo como esto

Servidor escuchando: ServerSocket[addr=0.0.0.0/0.0.0.0,localport=4444] 0.0.0.0/0.0.0.0
Buscando archivo solicitado en comando:get "prueba.txt"
Archivo encontrado.
Sending C:\Users\Krall\Desktop\prueba.txt(66 bytes)
Done.


Finalmente, como comprobación de que el archivo ha sido bajado desde el cliente al servidor iremos a la ruta donde indicamos que debía guardarse el archivo en el cliente del tipo C:/Users/Krall/Desktop/pruebas/llegada.txt y comprobaremos que el archivo se encuentra ahora en esa ruta

Una vez escribimos bye nos indicará que la sesión ha finalizado:

En la clase FicheroServidor

servidor conectado:Krall
Intrude comando válido:
get "prueba.txt"
File C:/Users/Krall/Desktop/pruebas/llegada.txt downloaded (66 bytes read)
Intrude comando válido:
bye
Sesion finalizada



En la clase EnvioFicheros:

Servidor escuchando: ServerSocket[addr=0.0.0.0/0.0.0.0,localport=4444] 0.0.0.0/0.0.0.0
Buscando archivo solicitado en comando:get "probandoLorenzo.txt"
Archivo encontrado.
Sending C:\Users\Krall\Desktop\prueba.txt(66 bytes)
Done.
Buscando archivo solicitado en comando:bye
Finalizada la conexion con el cliente.


Con esto hemos completado la ejecución del programa donde: hemos abierto una ejecución en el servidor, hemos abierto otra ejecución en el cliente, luego hemos pedido desde el cliente que busque un archivo en el servidor y lo descargue. Si lo encuentra tendremos el fichero en la ruta que hayamos indicado. Si no lo encuentra, o si hay algún problema, nos saldrá un mensaje de error.

Saludos!


554
Hola Lorenzo!

Se trata de una aportación valiosa porque se practica con muchos conceptos interesantes. Con tu permiso voy a trasladar el código que has creado para que esté visible dentro del hilo del foro y las personas que lo vean puedan hacerse una idea sobre el código sin tener que descargar el fichero como adjunto.

Clase FicheroServidor:

Código: [Seleccionar]
import java.io.*;
import java.net.*;
/**
 * Servidor envio archivos a usuarios
 *
 * @author Lorenzo31
 * @version (a version number or a date)
 */
public class FicheroServidor
{

    public static final int PORT = 4444;

    public static void main (String args[]) throws IOException {

        ServerSocket servidor = null;
        Socket cliente;
        BufferedReader entrada = null;
        //PrintWriter salida = null;
        OutputStream sendChannel = null;
        String cadena = ""; String comando = "";

        try{ servidor = new ServerSocket(PORT);
        }catch(IOException e){System.out.println("Error al conectar con el servidor"); System.exit(-1);}

        /* Se bloquea mientras escucha */
        System.out.println("Servidor escuchando: " + servidor + " " + servidor.getInetAddress());

        cliente = servidor.accept();
        while(!cliente.isClosed()){  //mientras sea distinto a close, sigue escuchando al usuario
            try{
                //Establece canal de entrada
                entrada = new BufferedReader (new InputStreamReader(cliente.getInputStream()));
                //Establece canal envio archivos
                sendChannel = cliente.getOutputStream();
                //lectura entrada usuario
                cadena = entrada.readLine();
            } catch(IOException e ) { System.out.println(e.getMessage()); }

            System.out.println("Buscando archivo solicitado en comando:" + cadena);
            //bucle for quita espacios a la cadena de entrada y lo guarda en comando
            for (int x = 0; x < cadena.length(); x++){
                if(!cadena.substring(x, x+1).equals(" ") && !cadena.substring(x, x+1).equals("\"")){ comando = comando + cadena.substring(x, x+1); }/*final for*/ }
            cadena = comando.substring(0, 3); //reasignamos a la cadena de entrada solo las 3 letras de la orden del usuario

            switch(cadena){  //coge los tres caracteres primeros y compara si es bye, get o otro que en ese caso no seria valido
                case "bye": System.out.println("Finalizada la conexion con el cliente."); cliente.close();  break;

                case "get":  //crea instancia de clase buscar archivo y invoca a la funcion buscador para encontrar el archivo solicitado
                BuscarArchivo find = new BuscarArchivo();
                File archivoEncontrado = find.buscador(comando.substring(3, comando.length() ), new File("C:\\"));
                if(archivoEncontrado != null){   //si es null no encontró el archivo sino sí que lo manda
                    new HiloEnvio (cliente, archivoEncontrado).start();  } else { sendChannel.write(-1); }
                cadena = ""; comando = "";
                break;
                default: sendChannel.write(-1); cadena = ""; comando = ""; //envio archivo vacio comando mal introducido
            }

        }

    }
}

Clase HiloEnvio:

Código: [Seleccionar]
import java.net.*;
import java.io.*;
/**
 * Write a description of class HiloEnvio here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class HiloEnvio extends Thread
{
    private File archivo;
    private Socket socketCliente = null;
    private FileInputStream fileChannel = null;
    private BufferedInputStream lectorArchivo = null;
    private OutputStream sendChannel = null;

    public HiloEnvio(Socket socketCliente, File archivo){ this.socketCliente = socketCliente; this.archivo = archivo; }

    public void run() {
        // envio de file
        try{
            byte [] mybytearray  = new byte [(int)archivo.length()];
            fileChannel = new FileInputStream(archivo);
            lectorArchivo = new BufferedInputStream(fileChannel);
            lectorArchivo.read(mybytearray,0,mybytearray.length);
            sendChannel = socketCliente.getOutputStream();
            System.out.println("Sending " + archivo + "(" + mybytearray.length + " bytes)");
            sendChannel.write(mybytearray,0,mybytearray.length);
            sendChannel.flush();
            System.out.println("Done.");
        }catch (IOException | NullPointerException e) { System.out.println("Interrumpido. ");
            interrupt();}       
    }
}

Clase BuscarArchivo

Código: [Seleccionar]
import java.io.*;
import java.net.*;
/**
 * Write a description of class BuscarArchivo here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class BuscarArchivo
{
   File archivoEncontrado = null; //si retorna null es que no lo ha encontrado
   
   public BuscarArchivo() { }
   
   public File buscador(String nombre, File raiz){
       
       File[] lista = raiz.listFiles();
       
       if(lista != null) {
           for(File elemento : lista) {
               if (elemento.isDirectory())  { //si es directorio vuelve a llamarse a si misma
                   buscador(nombre, elemento);
                } else if (nombre.equalsIgnoreCase(elemento.getName()))  //sino, si es igual encontrado
                  { archivoEncontrado = elemento; System.out.println("Archivo encontrado.");}
                }
            }
             return archivoEncontrado;
        } //cierre buscador
}

Clase FicheroCliente

Código: [Seleccionar]
import java.io.*;
import java.net.*;
/**
 * Write a description of class FicheroCliente here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class FicheroCliente
{
    public static void main(String[] args) throws IOException {

        int bytesRead;
        OutputStream fos = null;
        BufferedOutputStream bos = null;
        Socket socketCliente = null;

        PrintWriter salida = null;

        String hostName = InetAddress.getLocalHost().getHostName();
        /* Creamos un socket en el lado cliente, enlazado con un servidor que está en la misma máquina
        que el cliente y que escucha en el puerto 4444 */

        try{ socketCliente = new Socket(hostName, 4444);
            System.out.println("servidor conectado:" + hostName);

            //Obtenemos el canal de salida
            salida = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socketCliente.getOutputStream())),true);
        }catch(IOException e){
            System.err.println("No puede establecer conexion");
            System.exit(-1); }

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

        String linea = "";

        /*El programa cliente no analiza los mensajes enviados por el usuario, simplemente los
         * reenvia al servidor hasta que este se despide con Adios*/
        while(!linea.equalsIgnoreCase("bye")){   

            do{
                System.out.println("Intrude comando válido:");
                //Leo la entrada del usuario
                linea = stdIn.readLine();
            }while (!linea.matches("[a-z][a-z][a-z] \".*\"") && !linea.equalsIgnoreCase("bye"));
            //La envia al servidor
            salida.println(linea);

            try {
                //reciibr archivo
                //Creamos array de bytes
                byte [] mybytearray  = new byte [66666];
                //Creamos objeto InputStream que abre la cadena de entrada para lectura del fichero que mande servidor
                InputStream cadenaReceptor = socketCliente.getInputStream();
                fos = new FileOutputStream("C:/Documents and Settings/Admin/Desktop/llegada.txt");
                bos = new BufferedOutputStream(fos);  //lee donde va a escribir

                bytesRead = cadenaReceptor.read(mybytearray,0,mybytearray.length);


                if(bytesRead == 1){   //1 valor que toma como mínimo un archivo Outputstream, significa archivo no encontrado o no buscado
                    System.out.println("Archivo no encontrado o comando erroneo");
                } else if(bytesRead == -1){ System.out.println("Sesion finalizada"); } //-1 valor que toma al no recibir ningun archivo erroneo ni correcto, solo con BYE

                else { bos.write(mybytearray, 0 , bytesRead);  //buffer escribe en el archivo asignado
                    bos.flush();
                    System.out.println("File " + "C:/Documents and Settings/Admin/Desktop/llegada.txt"
                        + " downloaded (" + bytesRead + " bytes read)");  }

            }catch(IOException e){ System.out.println("Error en la transmisión.");
                if (fos != null) fos.close();
                if (bos != null) bos.close();
                if (socketCliente != null) socketCliente.close(); }
        }

        if (fos != null) fos.close();
        if (bos != null) bos.close();
        if (socketCliente != null) socketCliente.close();

    }
}

555
Hola! De ninguna manera nos vamos a molestar porque se hagan comentarios y sugerencias como la que indicas aquí. Al revés, agradecemos todas las sugerencias y tratamos de tenerlas en cuenta, así que gracias por la sugerencia.

El ejercicio lo has resuelto muy bien, de forma un tanto distinta a como han hecho otras personas en los foros, pero muy bien planteado y resuelto. Como sugerencia, trata de usar nombres que describan el cometido de las variables. Por ejemplo has puesto texto=cadena.substring(0,1); pero hubiera sido más descriptivo primeraLetra=cadena.substring(0,1);

Saludos!

556
Hola Ana habría que ver el código completo para entender ese fragmento de código.

El código if ( $(this).attr('data-toggle') ) podría interpretarse como "si el elemento tiene definido el atributo data-toggle entonces..."

data-toggle es un atributo dentro de Bootstrap JS que liga el elemento al tipo de funcionamiento que muestra, por ejemplo:

data-toggle="modal"
data-toggle="collapse"
data-toggle="dropdown"
data-toggle="tab"

Para entender todo esto hay que trabajar con Bootstrap (http://getbootstrap.com/) posiblemente combinado con jQuery.

Si elegimos collapse, aquello que queda afectado por el data-toggle queda oculto o se expande según pulsemos

Este es un ejemplo de código donde un texto queda oculto hasta que pulsamos en un botón (expande y retrae el texto según pulsemos):

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Elemento que se expande</h2>
  <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#demo">Pulsa para expandir o retraer</button>
  <div id="demo" class="collapse">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit,
    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
  </div>
</div>

</body>
</html>


Esto se puede hacer con JavaScript sin necesidad de usar jQuery o Bootstrap, la ventaja de usar esto sería aprovechar código ya desarrollado para poder ir más rápido y aprovechar lo que han creado otros programadores (en estos casos los profesionales de jQuery y Bootstrap)

Saludos!

557
Hola RUSO GD!

Tienes mal planteado el código, tras declarar el contenido de $jugadores, que es un array multidimensional has escrito

$jugadores=$paises;

Con esto estás diciendo que la variable jugadores toma el contenido de la variable paises, y dado que paises está vacía, lo que estás haciendo es anular todo lo que has declarado previamente.

Consulta cómo lo han resuelto otros compañeros en los foros:

https://www.aprenderaprogramar.com/foros/index.php?topic=3173

https://www.aprenderaprogramar.com/foros/index.php?topic=2763

https://www.aprenderaprogramar.com/foros/index.php?topic=1350

Si tienes dudas pregunta aquello que no entiendas

Saludos!

558
Hola dnxs! Para obtener ayuda recomendamos siempre que se pegue el código con el que se está trabajando. En este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 se explican algunas cosas útiles de cara a escribir y obtener ayuda en los foros.

Saludos!

559
Hola ahora mucho mejor

Al nombrar las clases conviene pensar qué será el objeto. Un objeto como este será un Comparador, no un Comparar, por ello es más adecuado un nombre como ComparadorDeDosPalabras, tenerlo en cuenta para los próximos ejercicios.

Una cosa que se puede mejorar es esta:

Código: [Seleccionar]
        if ( entrada1.length() > entrada2.length() ){ NumCharCadenaLarga = entrada1.length(); NumCharCadenaCorta = entrada2.length();}
        if ( entrada1.length() < entrada2.length() ){ NumCharCadenaLarga = entrada2.length(); NumCharCadenaCorta = entrada1.length();}
        if ( entrada1.length() == entrada2.length() ){ NumCharCadenaLarga = entrada1.length(); NumCharCadenaCorta = entrada2.length();}

Si te fijas la primera condición y la tercera llevan a la misma acción. Por ello ahorraríamos código si escribimos:
Código: [Seleccionar]
        if ( entrada1.length() >= entrada2.length() ){ NumCharCadenaLarga = entrada1.length(); NumCharCadenaCorta = entrada2.length();}
        if ( entrada1.length() < entrada2.length() ){ NumCharCadenaLarga = entrada2.length(); NumCharCadenaCorta = entrada1.length();}



También deberías corregir un pequeño error que tienes en los índices. Por ejemplo esta ejecución:

Citar
Porfavor ingrese la entrada 1
pan
Porfavor ingrese la entrada 2
pt
¿Letra 1 igual en las dos palabras? true
¿Letra 2 igual en las dos palabras? false
¿Letra 2 igual en las dos palabras?
La palabra 2 no tiene letra 2
¿Letra 3 igual en las dos palabras?
La palabra 2 no tiene letra 3
Ha finalizado la comparacion
La primera entrada consta de 3 caracteres
La segunda entrada consta de 2 caracteres


Si te fijas Letra 2 se repite y dice que la palabra 2 no tiene letra 2 lo cual no es correcto, el programa está bien pero tienes que corregir los índices para que los mensajes que salgan por pantalla sean los correctos. Debes siempre probar los programas varias veces para comprobar que funcionen bien y que den los mensajes correctos.

Saludos!

560
Comunidad / Re:Concurso sobre "la programación" 2015
« en: 15 de Septiembre 2015, 08:30 »
Recordar que el plazo estará abierto hasta el próximo 30 de septiembre de 2015. Saludos!

Páginas: 1 ... 23 24 25 26 27 [28] 29 30 31 32 33 ... 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".