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

#471
Software / Re: Google chrome 10
9 Marzo 2011, 21:20 PM
Descargar Chrome de "programas-gratis" es un pecado. Por qué no te descargas el navegador de su página oficial?

Y si lo que buscas es comparación de rendimiento, busca benchmarks en google, a ver que dicen.
#472
Dudas Generales / Re: Ayuda con libro
9 Marzo 2011, 21:17 PM
has buscado en bibliotecas de tu zona? Me extrañaría bastante que una biblioteca de universidad, por ejemplo, no lo tuviese.

PD: tutoriales es para postear tutoriales, no preguntas.
#473
Mira los avisos del compilador:

algo.c: En la función 'intro':
algo.c:102:7: aviso: el formato '%s' espera el tipo 'char *', pero el argumento 2 es de tipo 'int'
algo.c: En la función 'cons_marca':
algo.c:127:5: aviso: se pasa el argumento 2 de 'posicionar' desde un tipo de puntero incompatible
algo.c:27:5: nota: se esperaba 'char *' pero el argumento es de tipo 'struct vector *'
algo.c:134:5: aviso: el formato '%s' espera el tipo 'char *', pero el argumento 2 es de tipo 'int'


Las llamadas a system son algo tirando a mala costumbre, tu código por ejemplo no compila se puede usar en linux debido a que cls no es un comando de sistema de linux.

No te vendría mal compilar con avisos (en gcc o mingw -Wall -pedantic)

Por otro lado, no se exactamente si es lo que pretendes, pero
char marca

Con eso guardas sólo un caracter, si quieres guardar una cadena, creo que ya sabes qué toca
#474
Programación C/C++ / Re: Listas en C++
9 Marzo 2011, 18:01 PM
Te comento, en C++, cuando tu utilizas el & en la cabecera de una función, como en el caso:
Código (cpp) [Seleccionar]
void insertar_al_principio (struct t_nodo *&p)

Lo que se está diciendo es : En vez de pasarme una copia de p, quiero que me lo pases por referencia. Con esto se consiguen dos cosas: no copias la estructura, y cualquier cambio que hagas dentro de la función se mantendrá fuera.

Posiblemente sea más claro de leer si estuviese puesto así:
Código (cpp) [Seleccionar]
void insertar_al_principio (struct t_nodo* &p)
De esta forma, digamos que dices que recibes un puntero a nodo, pasado por referencia.

La diferencia entre pasar por referencia y por copia es la siguiente:

Suponiendo que nuestra variable vale 4
Código (cpp) [Seleccionar]

void foo(int x){
x++;
}

La función termina y la variable que nos han pasado sigue valiendo 4, porque en realidad hemos modificado la copia de dicha variable que se ha pasado a la función, y que ha sido destruida al terminar.

Seguimos suponiendo que vale 4
Código (cpp) [Seleccionar]

void foo(int &x){
x++;
}

Aquí nuestra variable valdría 5, porque hemos pasado no una copia de ella, sino su referencia. Y por tanto, hemos modificado más allá del alcance de la función.

Para hacer esto en C, tenías que especificar en la función que recibirías un puntero, y bien pasar la dirección de la variable cuando llamases a la función, o bien un puntero a la misma para poder modificarla dentro de la propia función y que dicho cambio existiese fuera.
#475
Programación C/C++ / Re: Listas en C++
9 Marzo 2011, 15:41 PM
Para apuntar a una lista, necesitas un puntero a lista, y si tu lista es un "struct t_nodo" necesitas para apuntarlo un "struct tnodo"* . No hay un "puntero genérico" y tampoco puedes apuntar a una dirección de memoria en concreto, porque tu programa NUNCA (bueno, vale, puede suceder) se va a ejecutar en la misma sección de memoria, o va a declarar su memoria dinámica en la misma dirección, sino que la dirección se la dará el sistema operativo teniendo en cuenta lo que quede libre en ese momento.

Cuando tu declaras un puntero a entero, ese puntero está hecho para apuntar a una zona de memoria de 4 bytes (u 8, según la máquina) cuyo contenido se procesa como número entero. En cambio, no puedes tuilizar un puntero a entero para apuntar a un char, porque el char ocupa 1/4 de un entero, y por tanto, te comes el char y 3 de su alrededor.

Lo mismo pasa con las estructuras, cuando tu declaras un puntero a una estructura, digamos que preparas el puntero para hacer referencia a los campos de dicha estructura.
#476
Software / Re: Backup con DVD
9 Marzo 2011, 10:40 AM
Caso a) Tienes pensado simplemente almacenar los 16 GB y NO usarlos directamente desde los DVD a menos que los pases a un PC? En ese caso, y comprímelos con alguna utilidad tipo zip o rar y los divides en tamaño de DVD.

Caso b) (no conozco un programa, así que tienes la opción manual Aunque no se si el Nero puede hacer algo así) Creas una carpeta con el mismo nombre que la cual quieres copiar.

Luego, vas copiando subcarpetas hasta llenar dicho DVD, y continuas con el siguiente. A menos que tengas una subcarpeta que ocupe 4,7GB no deberías tener problemas.

En principio, si usas DVDs de 4.7GB, vas a necesitar entre 3 y 4, dependiendo de cuanto te aproximes a esos 16 GB o no.
#477
En C y C++, las comillas simples ' ' denotan un caracter, mientras que las dobles " " denotan una cadena.

No es lo mismo, comparar en tu código

cadena=="@" que en realidad, lo estás comparando con la siguiente cadena : "@\0"

que

cadena=='@'
#478
Por qué no? No puedes usar el módulo, tampoco bucles, qué otra solución tienes que recurrir a la aritmética binaria?

Bueno, Se me ocurre otra, Si divides al número entre la mitad de si mismo y da 2, es que es par. Si da diferente, es impar. Eso SIEMPRE Y CUANDO trates con enteros, debido a que en impares, se cancela el resto, y entonces tu número/2 no sería exactamente la mitad


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Si, esa era otra xDDDDDD
#479
Una solución bastante... <insértese algo aquí> es lo siguiente.

Si tu tienes un número representado en binario, será par si el último bit (LSB, bit de menor peso), es 0. Impar en caso contrario.

Entonces, puedes probar a usar una AND bit a bit, (En C/C++ sería el &, que no el &&) para saber si el LSB bit está a 0.
#480
Shell Root, me parece que se refiere más a cuando lee de consola,creo.

en caso de que sea lo que yo comenté:

Código (cpp) [Seleccionar]

cin.getline(cadena,tamaño-1,'\n')

de esa forma, lees la linea entera, teniendo como separador de linea el salto de linea, tragándote el espacio.


scanf("%s \n",cadena);


Si no me he equivocado en algo de la sintaxis, en principio la idea debería ser esa.