Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - do-while

#641
¡Buenas!

El algoritmo que utilizas para sacar los datos de dia, mes y año (no utilices la ñ, para el compilador es un caracter estraño), no es correcto.

Si tienes un numero con el formato ddmmaa, tendras que el numero es:

aa * 1000 + mm * 1001 + dd * 1002 = num

Por lo tanto:

aa = num %100
mm = (num / 100) % 100
dd = (num / 1002)

Siemre suponiendo que el usuario ha introducido un numero de 6 digitos.

¡Saludos!

PD: Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
#642
¡Buenas!

Tu solucion esta mal. Si lees la longitud en pies las ecuaciones que planteas son incorrectas:

Tu dices que:
En yardas = valor * yarda, sustituyendo los valores que planteas al principio:
En yardas = valor * 3 * 12 * 2.54

Pero 1 yarda = 3 pies -> 1 pie = (1 / 3) yardas -> valor pies = valor / 3 yardas por lo que:
En yardas = valor / 3

Si seguimos, lo valores correctos seran:
En pulgada = 12 * valor
En centimetros = En pulgadas * 2.54 = valor * 12 * 2.54

¡Saludos!
#643
Es cierto, el problema esta en la declaracion.

Suponiendo que gcc trabaja con ints de 4 bytes, con las constantes indicadas v ocuparia 3,725290298GB. Un poco demasiado, ¿no?  :xD

¡Saludos!
#644
LU despues de una constante significa que es unsigned long.

Es posible que el desplazamiento generado sobre el puntero v se salga de rango... aunque cada una de las dimensiones esta dentro del rango de un unsigned long...

De todas formas, reduciendo el valor de las constantes, no da la falta, pero ambos bucles terminan en menos de un segundo, por lo que no puedo hacer las comparaciones...

¡Saludos!
#645
Voy a hacer una prueba y te comento los resultados.

¡Hasta ahora!

XD, la prueba falla. Esto (la parte de los bucles anidados) me da falta de segmentacion:
#include <time.h>

#define DIM1 1000LU
#define DIM2 1000LU
#define DIM3 1000LU

int main(int argc, char *argv[])
{
   int v[DIM1][DIM2][DIM3];
   unsigned long i,j,k,t;

   t = time(NULL);

   for(i = 0 ; i < DIM1 ; i++)
       for(j = 0 ; j < DIM2 ; j++)
           for(k = 0 ; k < DIM3 ; k++)
               v[i][j][k] = i;


Evidentemente no he puesto todo el codigo...

¿Os pasa lo mismo?

Compilado en ubuntu:

gcc -o ejecutable fuente

XD
#646
¡Buenas!

Anidar distintos bucles uno dentro de otro suele ser mas lento que ejecutar uno solo (por lo menos a mi me lo parece). Si tienes que recorrer una mtriz de n dimensiones, con rango Nn,...,N1 en cada una de ellas te basta con un solo bucle:

tipo matriz[Nn][Nn-1][N1];

for(i = 0 ; i < Nn * ... * N1 ; i++)

Teniendo esto, el subindice mas a la derecha sera: i % N1
Y yendo en orden hacia la izquierda, el subindice k sera: (i / (Nk-1 * ... * N1)) % Nk

En este caso tendrias:


for(i = 0 ; i < DIM_X * DIM_Y ; i++)
    if(v[i / DIM_Y][i % DIM_Y] == loquesea)


No se si te servira o no, ya te digo que no se si esto es mas rapido que anidar bucles. Lo pensare. Si alguno sabeis (con argumentos, claro esta) si es mas rapido esto que anidar bucles nos lo podriais contar...

¡Saludos!
#647
Pobrecica. Con el empeño que le habra puesto, la que le esta cayendo encima...

Hay que reconocer que a partir de ahora las misas en Borja seran mas divertidas...  >:D

¡Saludos!
#648
GNU/Linux / Re: Nuevo SO
24 Agosto 2012, 21:54 PM
¡Buenas!

Si te dedicas a la edicion musical, puede que te venga bien Musix, No se como sera de intuitiva, pero probar la liveCD te puede aclarar dudas.

¡Saludos!
#649
Foro Libre / Re: Red Social de Cervezas
23 Agosto 2012, 17:53 PM
¿¿¿¿He oido cerveza????  >:D

Le echo un ojo y si hay que beber, se bebe, pero... ¿se podria hacer una quedada en algun lado antes de estrenar la red para embolingarnos y tener algo que enseñar nada mas estrenarla?

¡Saludos!

PD: Yo ando por Zaragoza. Aqui se bebe Ambar. Puro veneno (antes de venir aqui estaba acostumbrado a la San Miguel)
#650
¡Buenas!

Acabo de instalar Ubuntu (la ultima version, creo que es 12.04), y no me reconocia el controlador de red. A traves de otra conexion wifi he instalado el controlador privativo "Broadcom STA wireless driver".

No me he quedado a gusto, asi que he investigado si en el repositorio de ubuntu existia algun controlador equivalente y he llegado a esta pagina:

http://nfolamp.wordpress.com/2011/10/15/ubuntu-11-10-getting-wireless-bcm4311-working/

(lspci me dice que la version que tengo es la 4312, aunque intuyo que la solucion es la misma)

¿Lo que dicen ahi es correcto?

Si asi es, que hago primero, ¿eliminar el controlador privativo e instalar despues el nuevo? ¿tendria problemas haciendolo al reves?

Por cierto, ¿como puedo saber como se llama dentro del sistema el controlador que he instalado? Lo digo por eliminarlo con remove, para no estar cambiando de consola a ventanas...

¡Saludos!

Solucionado: Al final he hecho lo que indicaba el sentido comun. Primero eliminar el driver privativo y luego instalar el del repositorio.

Por cierto, me ha quedado la duda de como saber el nombre del controlador para eliminarlo con remove

¡Saludos!