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 - Mario R. Rancel

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 32
102
Buenas noches, el ejercicio está bien resuelto. Como has comentado, se puede mejorar lo que es la presentación y uso de CSS. De hecho, si has visto otros hilos en los foros, en general recomendamos seguir este orden para los cursos de programación web: primero HTML, luego CSS, luego JavaScript, luego PHP y luego Ajax.

Saludos.

104
Buenas noches, todo bien y con buenas apreciaciones por tu parte. Inicialmente parece que hay más datos numéricos pero efectivamente si se mira con detenimiento hay 4.

Saludos.

105
Buenas noches,

En el ejercicio 1 apartado d), si introduces 4, 8, -2, 15 ¿obtienes el mismo resultado con el código inicial que con el código que tú has propuesto?

En el ejercicio 2, si tenemos que crear un programa que haga lo mismo, ¿hace lo mismo cuando ejecutas el programa inicial y el que tú has propuesto?

Saludos.

106
Buenas noches, todo bien y con buenas apreciaciones por tu parte.

Saludos.

107
Buenas noches, desde mi punto de vista correcto como solución del ejercicio. Cuidado con nombres como id="usaurio" porque te pueden generar confusiones cuando estés trabajando con miles de líneas de código.

Cuidado también con este planteamiento:

Código: [Seleccionar]
if($usuario == $nombreExistente[0] || $usuario == $nombreExistente[1] || $usuario == $nombreExistente[2] || $usuario == $nombreExistente[3]){
echo "Nombre de usuario no disponible";
}

¿Qué ocurriría si se incrementa el número de usuarios y en lugar de 3 tuvieras 300? Pues que este código no te serviría, no sería viable escribir 300 or... en este ejercicio tanto puede hacerse como un bucle como no, pero al ver esto es natural pensar en un bucle previendo que en lugar de pocos datos pueda haber muchos.

Saludos.

108
Buenas noches, parece que ocurre tal como has explicado, que getElementById anteriormente no funcionaba pero ahora sí, veo un comentario similar en otro hilo. Saludos.

113
Tienes razón que con lo explicado no se puede resolver en una sola línea...

Podría concatenarse todo en una cadena, pero para eso hace falta una función adicional. Otra opción es usar fptus, que no introduce el salto de línea:

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

int main()
{
    char nombre [50];
    char ciudad [50];
    puts("Introduzca su nombre: ");
    gets(nombre);
    puts("Introduzca su ciudad: ");
    gets(ciudad);
    fputs ("Bienvenido ", stdout);
    fputs (nombre, stdout);
    fputs (", encantado de hablar con alguien de ", stdout);
    fputs (ciudad, stdout);
    return 0;
}

Saludos

114
Correcto

Gracias por avisar de ese error en la versión web.

Saludos,

116
Buenas tardes, poco que comentar, voy a ir marcando los ejercicios con "Correcto" simplemente para que quienes los vean sepan que han sido revisados. Saludos.

117
Hola Pedro, gracias por poner los ejercicios. Te voy a comentar simplemente por qué ponemos lenguajeC en el título de los hilos relacionados con C. El motivo es el siguiente: el buscador del foro utiliza una consulta a base de datos para recuperar los hilos según las palabras clave. El problema es que C es una letra y no resulta diferenciable en una consulta a base de datos. Por eso estamos incluyendo en los títulos lenguajeC todo junto, para que cuando queramos buscar algo sobre C podamos hacer la búsqueda como por ejemplo "arrays lenguajeC" en lugar de "arrays C" que no funcionaría bien. Digamos que es un truco para poder buscar con facilidad luego y nos resulta preferible escribirlo todo junto porque así la búsqueda devuelve exactamente los hilos que llevan la cadena lenguajeC todo junto.

Saludos


118
Buenos días Pedro, en primer lugar gracias por comunicar esa errata, efectivamente se trataba de un error que ya está corregido.

C es un lenguaje un poco peculiar y muchas veces no es fácil interpretar lo que ocurre.

Cuando declaras char cadenaTexto [] = "alameda"; se crea cadenaTexto como array de 7 elementos, índices 0 a 6.

Pero arboleda tiene 8 caracteres, 8 elementos. Por tanto no nos cabe en un array de 7 elementos.

Al tratar de asignar más elementos de los disponibles, se puede producir que se ocupe memoria de espacios colindantes y esto generar resultados inesperados como que al tratar de mostrar letra no se muestre nada (la memoria ha sido alterada). En otros lenguajes te saltaría un error, pero C no realiza comprobación de índices de arrays. No es seguro que esta sea la explicación, pero es el tipo de cosas que te puedes encontrar en C.

Una pequeña trampa sería alterar el orden de las instrucciones:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main() {
    int edad = 21;
    long distancia = 488321;
    char letra = 'k';
    char cadenaTexto [] = "alameda";
    printf("edad = %d\n", edad);
    printf("distancia = %ld\n", distancia);
    printf("letra = %c\n", letra);
    printf("cadenaTexto = %s\n", cadenaTexto);
    edad = 22;
    distancia = 666543;
    letra = 't';
    printf("edad = %d\n", edad);
    printf("distancia = %ld\n", distancia);
    printf("letra = %c\n", letra);
    cadenaTexto [0] = 'a';
    cadenaTexto [1] = 'r';
    cadenaTexto [2] = 'b';
    cadenaTexto [3] = 'o';
    cadenaTexto [4] = 'l';
    cadenaTexto [5] = 'e';
    cadenaTexto [6] = 'd';
    cadenaTexto [7] = 'a';
    cadenaTexto [8] = '\0';
    printf("cadenaTexto = %s\n", cadenaTexto);
}

Aquí jugaríamos con que ya se ha mostrado letra cuando hacemos una manipulación indebida con cadenaTexto. No es una buena solución.

Te propongo que pruebes a trabajar la cadenas de texto carácter a carácter dejando espacio suficiente para que quepa todo lo que desees introducir. Es decir declarar char cadenaTexto [8]; o char cadenaTexto [20]; si lo prefieres e introducir carácter a carácter, a ver si funciona.

Recomendación: incluir return 0; como última línea en el main

Añado pedirte una cosa (si te es posible). Si tienes resueltos los ejercicios del curso, te agradecería que los fueras poniendo en el foro, aunque no te hayan generado dudas, pues así nos ayudas a tener más completos los foros y pueden servir de referencia para personas que están realizando el curso, o para ponerlos de ejemplo cuando se hacen consultas.

Saludos

119
Buenos días, el problema que planteas trata básicamente de cómo crear una interfaz gráfica de usuario con Java. Hay distintos paquetes y frameworks que permiten hacer esto.

Para trabajar con entornos gráficos tienes que aprender a manejar tanto entornos gráficos como los eventos que genera el usuario (clicks en botones, posicionamiento del mouse, etc.).

Como entorno gráfico te recomiendo empezar con Swing: https://docs.oracle.com/javase/tutorial/uiswing/ dentro del tutorial swing hay partes dedicadas a eventos como https://docs.oracle.com/javase/tutorial/uiswing/events/index.html

En este hilo puedes ver un ejemplo: https://www.aprenderaprogramar.com/foros/index.php?topic=679.0

En este otro: https://www.aprenderaprogramar.com/foros/index.php?topic=3491.0

En este otro: https://www.aprenderaprogramar.com/foros/index.php?topic=4249.0

Etc.

Saludos.

120
Buenos días, todo bien

En el código donde indicas que no se imprimen por pantalla los saltos de carro el código HTML que veo al ejecutar en el navegador es el siguiente: *****aprender**********aprende*****<br><br><br>

Esto tiene que ver con cómo ejecuta el intérprete php las órdenes y cómo has definido la función rellenar. Es un problema interesante y en un código extenso puede ser muy difícil de detectar.

Cuando vemos esta línea: echo rellenar($cadena1).'hace frio <br><br><br>'.rellenar($cadena2);

Pensamos que se ejecuta de izquierda a derecha, como es lo habitual y pensamos que estamos concatenando cadenas. Sin embargo nos podemos encontrar con resultados no esperados como el que se obtiene aquí cuando tratamos de realizar una concatenación de funciones que ejecutan algo en lugar de devolver algo. La forma de explicarlo sería: la función rellenar que has planteado ejecuta un echo, es decir, no devuelve algo, sino que ejecuta algo sin devolver nada. Esto es importante: diferencia entre ejecutar algo y devolver algo. Al ejecutar, cuando se produce la concatenación, primero ejecuta lo que es susceptible de ejecutar, de ahí que salga por pantalla *****aprender**********aprende***** y luego realiza la concatenación ¿Qué concatena? hace frio <br><br><br> porque no hay nada más que concatenar (lo otro ya se ejecutó).

Si planteamos el código así:

Código: [Seleccionar]
<?php 
$cadena1 "aprender";
$cadena2 "aprende";
function rellenar($cadena){
return str_pad($cadena, (strlen($cadena)+10) , "*"STR_PAD_BOTH);
}
echo rellenar($cadena1).'hace frio <br><br><br>'.rellenar($cadena2);
?>


Ya obtenemos el resultado esperado. Es importante acostumbrarse a trabajar usando return (cuando sea adecuado usarlo).

En este caso, si quieres concatenar, debes concatenar algo. Tú estabas intentando concatenar la ejecución de funciones con una cadena y esto genera un resultado no esperado. Si simplemente concatenas cadenas con otras cadenas devueltas por funciones ya todo va bien.


Saludos.

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 32

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