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 - Ogramar

Páginas: 1 ... 11 12 13 14 15 [16] 17 18 19 20 21 ... 100
301
Buenas, quizás es un tema más complicado de lo que parece a primera vista. HTML provee la funcionalidad de poder elegir un archivo desde nuestro computador local para ser enviado en un formulario. Esto se trata en el curso de HTML (en concreto en la entrega <<CU00725B enctype multipart/form-data HTML. Seleccionar archivo (type file) en formularios. Ejemplo básico>>

Con JavaScript puedes crear un botón para guardar con código del tipo <a href="data:application/xml;charset=utf-8,codigo a incluir" download="filename.html">Guardar</a>

HTML5 ha incluido un estándar para trabajar con ficheros, la especificación File API. Los navegadores antiguos no tienen soporte para esta API, pero los más modernos sí. Esta API permite arrastrar y soltar archivos y muchas otras cosas. En https://developer.mozilla.org/es/docs/Web/API/File/Using_files_from_web_applications hay algunos ejemplos.

Salu2

302
De todo un poco... / Re:Repetición de proceso en Eclipse
« en: 20 de Julio 2018, 17:27 »
Buenas, para publicar en los foros debe seguirse lo que se explica en https://aprenderaprogramar.com/foros/index.php?topic=1460.0

En el curso java desde cero hay ejemplos de código similares a lo que comentas: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Salu2

303
Buenas paramonso, más que correcciones lo que yo planteo son sugerencias o puntos de vista (cada cual puede tener el suyo). En este ejercicio en particular, lo que planteaba es que el enunciado dice lo siguiente: "una hortaliza es un tipo de planta cultivada" y no he visto que tú hayas reflejado esto en un esquema de herencia. Por convenio, cuando se hace un diseño de programación para reflejar un esquema de herencia, una frase como "una hortaliza es un tipo de planta cultivada" se refleja en una relación entre una superclase "planta cultivada" y una subclase "hortaliza". Esta relación no veo que se refleje en tu código. Sin embargo, sí se refleja en el código https://aprenderaprogramar.com/foros/index.php?topic=3941.0 que desde mi punto de vista es más correcto. Es este código un tomate es también una planta cultivada gracias a la relación de herencia.

Salu2

304
Buenas Mary Conchys, lee por favor las recomendaciones que se dan en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 , ahí se indica por ejemplo cómo poner título a los temas en los foros: debe escribirse en el título las palabras clave sobre lo que trata el hilo, y poner el código de ejercicio en mayúsculas (es decir, CU00665B en lugar de cu00665b).

Tu ejercicio está bien resuelto y cumple con lo que se pedía.

Sobre la posibilidad de imprimir la lista de cantantes desde el test, normalmente hay diferentes posibilidades para resolver las cosas (aunque a veces solo se nos ocurra una). Para ver diferentes soluciones a un ejercicio puedes escribir su código en el buscador del foro y te encontrarás con diferentes soluciones planteadas por diferentes personas. Por ejemplo puedes mirar esta solución donde se imprimen los cantantes desde el test: https://aprenderaprogramar.com/foros/index.php?topic=1549.0

Salu2

305
Tal como dices la recursividad tiene un gran potencial, pero a su vez grandes riesgos. Uno de los riesgos es precisamente lo difícil que es de seguir la traza de ejecución con métodos recursivos. La mayoría de la gente terminamos perdiéndonos, lo cual es bastante normal. Diría además que la mayoría de los programadores rehuyen en cierta medida de la recursividad por la dificultad para trazar y llegar a conclusiones sobre lo que hacen estos métodos. No obstante, tiene grandes aplicaciones y algunas de uso frecuente, por ejemplo para recorrer estructuras de directorios e ir alcanzando todas las carpetas y ficheros (que si nos fijamos bien no deja de ser una estructura de árbol, no binario, pero árbol al fin y al cabo).

Respecto a cómo pasan los parámetros en Java puede ser interesante leer esto, según lo cual todo parámetro sea tipo primitivo u objeto pasa por valor (aunque habría matices a comentar): https://www.aprenderaprogramar.com/foros/index.php?topic=49.msg2892#msg2892

Voy a intentar seguir lo que sería la traza de ejecución para un árbol con un nodo raíz y dos nodos hoja hijos. Cada llamada al método la voy a llamar ref.

Llamas al método con el parámetro 0 llamada ref1 y como izq es distinto de null y derecha es distinto de null, te devuelve una llamada ref2 con parámetro a 0 + llamada ref3 con parámetro 0. La llamada ref2 concluye con la condición base: izquierda y derecha son null, y por tanto su return devuelve 1. La llamada ref3 concluye de la misma manera, y también devuelve 1. Ahora se resuelve la llamada ref1 que estaba pendiente de tener los resultados de ref2 y ref3 para devolver su propio resultado, y el resultado que devuelve es 1+1=2 es decir, que hay 2 hojas.

Creo que quizás es útil ver las propias llamadas recursivas como un árbol (aquí ya veo árboles por todos lados), donde en la raíz tienes ref1 (+) que sería un nodo suma de sus hijos. Sus hijos son ref2 y ref3 que valen 1. De ahí que el nodo ref1 termine valiendo 2.

Voy a intentarlo con un árbol binario que tiene el nodo raíz, dos nodos hijo, ramificando el izquierdo a su vez en dos nodos hojas, y siendo el nodo derecho del raíz hoja directamente.

Aquí partimos de la llamada ref1 que deriva a ref2 + ref3. ref3 devuelve un 1, mientras que ref2 devuelve ref4+ref5. Como resultado de ref4 + ref5 obtenemos 1+1. Esto se suma al resultado de ref2 que es 1. Finalmente en ref1 suma 2 más 1 obteniendo 3, que es el número de nodos hoja que tenemos. La cuestión aquí es que el resultado ref1 queda pendiente de poder operarse hasta que se tengan resultados para ref2 y ref3. A su vez ref2 queda pendiente de operarse hasta que se tengan resultados de ref4 y ref5...

Todo pasa por valor: al final lo que terminas haciendo son sumas. Partes de los resultados base de un nodo hoja: un 1. El resto de resultados se van obteniendo agregando esos resultados base.

Desde luego todo esto es complejo de ver y a lo mejor dentro de un rato no estoy satisfecho con esta explicación, pero por lo menos se ha intentado ;)

Salu2

306
Gracias por llamarme "maestro" Kabuto, yo creo que el maestro eres tú  ;) Todo este tema de los árboles es muy interesante pues son modelos matemáticos con aplicaciones prácticas muy interesantes. De hecho hay muchas clases del API Java que son implementaciones de árboles, no conozco el detalle de las implementaciones pero estoy pensando en TreeMap y otras. Todo esto se expande hacia otra cosa igualmente interesante como son estructuras de datos como montículos, pilas y colas, etc. Hay estructuras de datos ordenadas como montículos ordenados que pueden ser bastante eficientes. A quien le interese, ahí tiene materia para entretenerse...

Salu2

308
Buenas, he adaptado el código al compilador e ide que uso (Codeblocks) cambiando scanf_s por scanf y otros pequeños cambios

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main()
{
int sueldo[100];
char op;
int i,j, D, arc, empleados=0;
float promedio, suma=0;

printf("\nCuantos sueldos desea ingresar?: ");
scanf("%i", &D);

if (D > 0 && D <= 100) {
do {
for (i = 0; i < D; i++) {

system("cls");

printf("Ingresa el sueldo del empleado %i: ", i + 1);
scanf("%i", &sueldo[i]);
suma += sueldo[i];

printf("\nDesea introducir un sueldo? [s/n]: ");
fflush(stdin);
while (getchar() != '\n');
scanf("%c", &op);
if (op == 'n' || op == 'N') {
break;
}

}

} while (op == 's'||op == 'S');

system("cls");

//-------------------------Total de nómina de la empresa-----------------------
printf("\nTOTAL DE NOMINA: %.2f", suma);
//-----------------------------------------------------------------------------

//------------------------Sueldos ordenados de menor a mayor------------------
for (i = 0; i < D; i++)
for(j = i + 1; j < D; j++)
if (sueldo[i] > sueldo[j]) {
arc = sueldo[i];
sueldo[i] = sueldo[j];
sueldo[j] = sueldo[i];
}

printf("\nLISTA ORDENADA DE SUELDOS");
for (i = 0; i < D; i++) {
printf("\n%i", sueldo[i]);
}
//-----------------------------------------------------------------------------

//-----------------------Cantidad de empleados capturados----------------------
empleados = empleados + i;
printf("\nCANTIDAD DE EMPLEADOS: %i", empleados);
//-----------------------------------------------------------------------------

//---------------------Promedio de sueldo de la nómina-------------------------
promedio = suma / D;
printf("\nPROMEDIO DE SUELDO: %.2f", promedio);
//-----------------------------------------------------------------------------

//----------Cantidad de empleados con un sueldo superior al promedio--------
if (sueldo[i] > promedio) {
printf("\nCANTIDAD DE EMPLEADOS CON SUELDO SUPERIOR AL PROMEDIO: %i", sueldo[i]);
}
//-----------------------------------------------------------------------------

}
else {
printf("\nNumero de sueldos a ingresar no valido.\n\nSolo se permite ingresar hasta 100 sueldos.");
}

system("pause>null");
return 0;
}

Al ejecutar obtengo:


¿Cuántos sueldos desea ingresar? 2
Ingresa el sueldo del empleado 1: 100

¿Desea introducir un sueldo? [s/n]: s
Ingresa el sueldo del empleado 2: 200

¿Desea introducir un sueldo? [s/n]: n

TOTAL DE NOMINA: 300.00
LISTA ORDENADA DE SUELDOS
100
200
CANTIDAD DE EMPLEADOS: 2
PROMEDIO DE SUELDO: 150.00
CANTIDAD DE EMPLEADOS CON SUELDO SUPERIOR AL PROMEDIO: 318767123

Lo primero que parece ocurrir es que el programa no está bien planteado desde el punto de vista de la algoritmia. Si le digo que quiero introducir dos sueldos, lo lógico es que me pida dos sueldos sin preguntarme en cada ocasión si deseo introducir un sueldo otra vez (ya que ya le he dicho antes cuántos quería introducir).

Tener el for dentro del while (op == 's'||op == 'S'); con la pregunta de si se quiere introducir un sueldo en cada ocasión no parece un buen planteamiento.

El problema de por qué te aparecen esos números extraños habría que estudiarlo, pero puede estar relacionado con que no estés usando adecuadamente los tipos de datos. Por ejemplo sueldo son valores int mientras que suma lo defines como float. Posiblemente haya que definirlo como int, o bien realizar una conversión de tipos. Si no se manejan bien los tipos pueden ocurrir "cosas raras".

Para ver planteamientos de algoritmia, diagramas de flujo, etc. está disponible el curso "Bases de la programación nivel I" en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

Los fundamentos del lenguaje C están explicados en el curso "Curso básico de programación lenguaje C desde cero" disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Salu2

309
Buenas, para quien lea este hilo, he adaptado el código a mi compilador (he usado el IDE Codeblocks) p.ej. en lugar de scanf_s he usado scanf... Además he introducido unas líneas de prueba. El único archivo que he tocado es el main.c que he dejado así:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "juego.h"

int main()
{

int Juego;
char x, y;
printf("Hello world!\n");
printf("\t\t\tJUEGO ROCA, PAPEL Y TIJERAS\n");
printf("Bienvenidos elijan un arma\nR.-Roca\nP.-Papel\nT.-Tijeras\n");
printf("Arma jugador 1: [ ]\b\b");
fflush(stdin);
scanf("%c", &x);
toupper(x);
printf("Arma jugador 2: [ ]\b\b");
fflush(stdin);
scanf("%c", &y);
toupper(y);

if (x == 'R' &&y == 'R')
{
Juego = 1;
}
else
if (x == 'P' &&y == 'P')
{
Juego = 2;
}
else
if (x == 'T' &&y == 'T')
{
Juego = 3;
}
if (x == 'R' &&y == 'P')
{
Juego = 4;
}
else
if (x == 'P' &&y == 'T')
{
Juego = 5;
}
else
if (x == 'T' &&y == 'R')
{
Juego = 6;
}
if (x == 'R' &&y == 'T')
{
Juego = 7;
}
else
if (x == 'P' &&y == 'R')
{
Juego = 8;
}
else
if (x == 'T' &&y == 'P')
{
Juego = 9;
}
else
{
Juego = 0;
}

    if (x==65) {printf("Has introducido A mayuscula"); Juego=99;}

switch (Juego)
{
case 1:
printf("\nR-R Empate");
break;
case 2:
printf("\nP-P Empate");
break;
case 3:
printf("\nT-T Empate");
break;
case 4:
papel_cubre_roca(x, y);
break;
case 5:
tijeras_cortan_papel(x, y);
break;
case 6:
roca_rompe_tijeras(x, y);
break;
case 7:
roca_rompe_tijeras(x, y);
break;
case 8:
papel_cubre_roca(x, y);
break;
case 9:
tijeras_cortan_papel(x, y);
break;
    case 99:
        printf("\nProblema detectado");
break;
case 0:
printf("\nCARACTER INVALIDO");
break;
}
system("pause>null");
return 0;
}

El problema parece estar en cuestiones de base de la programación en C. Un char no puede compararse usando == , un == es un comparador numérico. Si se usa el tipo char, C utiliza además del carácter su equivalente numérico en ASCII. Por ejemplo la A mayúscula es el valor numérico 65, la B mayúscula el 66 y así sucesivamente. He introducido

if (x==65) {printf("Has introducido A mayuscula"); Juego=99;}

para ver si detecta que se introduce una A.

En el case he introducido

    case 99:
        printf("\nProblema detectado");
        break;

Luego ejecuto el programa e introduzco A y T como armas de los jugadores y me aparece el mensaje "Has introducido A" y "Problema detectado"

Posiblemente debería usarse otro tipo de comparador de cadenas como strcmp si se quiere hacer la comparación no numérica. Otra opción es usar los equivalentes numéricos ASCII de cada letra.

También hay que tener cuidado con la posible presencia de caracteres ocultos o en el búfer cuando se hagan comparaciones.

En resumen creo que sería bueno revisar cuestiones de base del lenguaje C para detectar todos los cambios a realizar. Para adquirir los conceptos básicos de C es recomendable seguir el curso básico de programación en lenguaje C desde cero disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Salu2

310
Buenas, por si alguien lee este hilo: para tener almacenadas las notas de los años escolares necesitamos almacenar junto a la nota el año escolar al que pertenece dicha nota. Por ejemplo supongamos que 20962097 significara año escolar dos mil noventa y seis - dos mil noventa y siete. Parece que lo más razonable sería almacenarlo en la tabla Nota, que tendría como campos:

Nota: CodigoNota FK - CodigoMateria PK - CedulaAlumno FK - Nota - Trimestre - AñoEscolar

De esta forma se podrían consultar las notas de cierto alumno para cierto año escolar (y trimestre si se quiere).

En lo referente al cambio de alumno de curso, dado que CodigoNivel está asociado a un curso y en la tabla Alumno CodigoNivel está presente, basta con cambiar el CodigoNivel en la tabla Alumno para cambiar el alumno de curso.

Desde mi punto de vista faltarían claves para tablas como docente o alumno. Cada docente creo que sería conveniente que llevara un IdDocente y cada alumno un IdAlumno. Podría pensarse en usar la cédula como clave, pero no es recomendable por varios motivos, entre otros que sería un dato a introducir por un humano y por tanto sería susceptible de error, cosa que no ocurre cuando se establece la clave como autoincremental en la base de datos.

Salu2

311
Buenas, para escribir en los foros deben seguirse las indicaciones que se dan en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo poner título a los temas, cómo pegar código, etc.

Si no se tienen las bases de Java fundamentales recomendamos seguir el curso Java desde cero: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Para este tipo de ejercicios es conveniente saber plantear problemas de algoritmia básica, para ello es útil seguir el curso "Bases de la programación nivel I" disponible en https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

Aquí dejo una modificación del código para orientar a quien revise este hilo:

Código: [Seleccionar]
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int sumaPositivos = 0;

     
        Scanner sc=new Scanner(System.in);
        int n;
        do {
            System.out.println("Ingresa un numero; cuando quieras terminar escribe 98765");
            n= sc.nextInt();
            if(n==0){
                System.out.println("El numero "+n+" es Cero");
            } else{
                if(n>0 && n!= 98765){
                    System.out.println("El numero "+n+" es positivo");
                    sumaPositivos = sumaPositivos + n;
                }else{
                    System.out.println("El numero "+n+" es negativo");
                }
            }
        }while(n != 98765);

        System.out.println("la suma de los numeros positivos introducidos es "+sumaPositivos);
    }
}

Salu2

312
Buenas, para escribir en los foros deben seguirse las indicaciones que se dan en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo poner título a los temas, cómo pegar código, etc.

Si no se tienen las bases de Java fundamentales recomendamos seguir el curso Java desde cero: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

En el código indicado lo que se usa es una expresión regular para buscar un patrón dentro de una cadena de texto (en este caso dentro del código html de una página web). Para interpretar la expresión regular tenemos que:

String pattern = "<" + tag + ".*\\/?>";

La cadena comienza por "<" seguida del tag indicado. En este caso debemos poner simplemente p o simplemente h2 (según lo que queramos buscar), porque si pones String tag ="<p>" estarías repitiendo dando lugar a que se buscara <<p> lo cual no es correcto.

Por tanto pondríamos String tag = "p"; ó String tag = "h2"; por ejemplo.

Luego el . indica "cualquier carácter". El * es un metacarácter que se usa para indicar que el carácter anterior ocurre cero o una o más de una vez. Es decir, cualquier número de veces. Por tanto tenemos ya <h2> Cualquier cantidad de caracteres

\\ es la cadena de escape o backslah en las expresiones regulares de Java.

? indica ocurrencia ninguna o una vez. Es decir, que podría existir el carácter / ninguna o una vez.

Hay mucha información sobre expresiones regulares en Java en internet.

Haciendo esta pequeña modificación del código:

Código: [Seleccionar]
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class getTag2Html {

   public static void main (String[] args) throws IOException {
      String tag = "h2";
     
                URL web = new URL("http://www.insalfonscostafreda.cat/web/");
      //comprobar que hi hagi dos paràmetres a l'entrada
     
                System.out.println("Buscando en : "+web + " la etiqueta h2");
         // patró de cerca regexp
         String pattern = "<" + tag + ".*\\/?>";

         //Iniciem la connexió
      web.openConnection();

        BufferedReader in = new BufferedReader( new InputStreamReader(web.openStream()));

        File f = new File("prueba_apr_eac2.xml");
        BufferedWriter bw;
        bw = new BufferedWriter(new FileWriter(f));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
           
            if(inputLine.contains(tag)) {
               
                System.out.println(inputLine);
                bw.write(inputLine + "\n");
            }
        }
        bw.close();
        in.close();   
   }
}

He obtenido este resultado:

Buscando en : http://www.insalfonscostafreda.cat/web/ la etiqueta h2
h1, h2, h3, h4, h5, h6, .site-title {
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>
<h2 class="item-title" itemprop="headline">
</h2>




Además como en el código está definido que se cree un archivo xml donde se guarden estos resultados, se ha creado dicho archivo.

Salu2

313
Buenas, indico algunas sugerencias de corrección.

En la respuesta a) dices "Es una variable contador y representa la coordenada x o posición vertical..."

La respuesta correcta para el apartado a) sería: "Representa la coordenada horizontal(X) que tendrá nuevaVentana. Su valor inicial es 0 para que nuevaVentana aparezca lo mas a la izquierda posible de la pantalla."

En la respuesta b) dices: "representa la coordenada y, o posición horizontal..." cuando lo correcto es "Representa la coordenada vertical (Y) que tendrá nuevaVentana. Su valor inicial es la división de la altura del viewport del navegador entre 2 menos 125. Es decir, le damos una coordenada(Y) inicial a nuevaVentana. Ej: Si window.innerHeight=800, positionY=800/2-125"

También dices "Posicionar la ventana en el centro horizontal de la pantalla. " cuando lo correcto sería "Posicionar la ventana en el centro vertical de la pantalla."

En el f) y g) me han funcionado bien con un monitor o sin paneles laterales del navegador abiertos, es decir, en situación normal. Si lo pruebo con dos monitores o con paneles laterales abiertos no me ha funcionado del todo bien (esto es solo una curiosidad, no vamos a pretender que el código esté preparado para este tipo de cosas). Por tanto el código todo bien.

Salu2

314
Buenas, en la respuesta de César Krall tienes los códigos. Pulsa en seleccionar y copia el código de cada clase. Salu2

316
Buenas, todo bien aunque en este ejercicio me ha dado algo de problemas el CSS que has introducido porque los iframe no me aparecen siempre uno a la izquierda y otro a la derecha. No creo que sea aquí el lugar para hablar de CSS ya que en la web hay un curso específico sobre CSS así que no voy a entrar en esto.

A mí con el espectador me ocurre lo mismo: no carga la web y viendo consola salta el error Load denied by X-Frame-Options: https://www.elespectador.com/noticias does not permit cross-origin framing. Esto se debe a la configuración del servidor de esta web, que rechaza servir la web en frames por seguridad contra ataques, por motivos de copyright o por otras razones. No es una cuestión por tanto del navegador ni del código.

Salu2

318
Buenas, buena presentación y buen código. En mi caso con MSIE tampoco ha funcionado. En primer lugar, debido a la configuración de seguridad del navegador. A mí me aparece el mensaje "Internet Explorer no permitió que esta página web ejecutara scripts o controles ActiveX en el equipo". Si le indico "Permitir" en la parte de expresiones regulares sigue sin funcionarme, y en la parte de indexOf me aparece "Usted está usando el navegador: Navegador desconocido".

En window.navigator.userAgent lo que me devuelve es: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko

Mozilla era la mascota de Netscape, y Netscape fue uno de los navegadores más populares (o el más popular) en la época en que internet se expandió y comenzó a ser usado por todo el mundo. Confunde porque cuando vemos Mozilla normalmente pensamos en Mozilla Firefox, pero en este caso no es el user-agent de Firefox sino de una versión del Explorer.

Tradicionalmente siempre que los navegadores eran Microsoft Internet Explorer, en el user-agent string aparecía MSIE, pero hay versiones donde no aparece y tendrían que ser identificados de otra manera.

En fin, un pequeño lío. De cualquier forma, el objetivo en el curso es tener una idea general sobre el reconocimiento de navegadores y por ese lado misión cumplida.
 
Salu2

319
Buenas, todo bien. Los inconvenientes que tendría el uso de closures sería que si se crean indiscriminadamente en número excesivo, consumen recursos del computador innecesariamente.

Salu2

320
Comunidad / Re:Hola a todos
« en: 22 de Junio 2018, 19:05 »
Buenas Toshirou, da gusto ver cómo en esta web nos entremezclamos personas de todo el planeta con interés por la programación. Esperamos contar contigo para enriquecer los foros. Salu2 desde España

Páginas: 1 ... 11 12 13 14 15 [16] 17 18 19 20 21 ... 100

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".