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

#162
Bueno, primero una cosa. Lo que pretendes hacer en a() no se hace así. Cuando declaras la variable x, su ámbito de visibilidad se limita a la función donde la declaras. Aun en el caso de que funcionara, no es la manera correcta de llevarlo a cabo.

Para hacer algo como lo que quieres hacer, se utiliza:

Código (cpp) [Seleccionar]
int* p = new int; // si estas en C++
int *p = malloc(sizeof(int)); /* Si estas en C*/

Por lo demás, ¿qué pasa con el valor 10? No pasa absolutamente nada. Se queda por ahí, en algún lugar de la memoria, solo y abandonado sin que nadie pueda acceder a él Y_Y. ¿No te da penita? No se puede liberar la memoria ocupada por el 10 hasta que finalice el programa.

En fin, cuando ya no necesites más la memoria reservada, haces:

Código (cpp) [Seleccionar]
delete p;
free(p);

Se puede implementar un recolector de basura automático, como en Python. Aquí hay un ejemplo.
#163
Cita de: ferminta en 17 Enero 2012, 05:49 AM
es correcto. Miraremos la biografia del señor FIBONACHI dado que nos ha quitado muchas horas a mucha gente. Yo me pongo a compilar de nuevo y a ejecutar a ver donde está el gazapo que tengo o hago.Buenas noches, gracias y buena suerte

De nada.

En este caso, el señor Fibonacci no tiene mucha culpa. Este es un problema de gestión de procesos y de comunicación entre ellos. La secuencia de Fibonacci es sólo un pretexto: lo que importa no es la tarea que realizan los procesos, sino como la realizan.

Por otro lado, Fibonacci nunca propuso la secuencia que lleva su nombre como tal. Sólo la mencionó una vez en un libro de problemas de matemáticas, donde la empleó como módelo de reproducción de los conejos. Nunca le dio más importancia más allá de los conejos.

Saludos
#164
 :huh:

¿De qué estamos hablando? ¿Del mismo problema? Yo había entendedido desde un principio que la salida tendría ser así:

HIJO: fibonacci 1: 1
HIJO: fibonacci 2: 1
HIJO: fibonacci 3: 2
HIJO: fibonacci 4: 3
HIJO: fibonacci 5: 5
HIJO: fibonacci 6: 8
HIJO: fibonacci 7: 13
HIJO: fibonacci 8: 21
HIJO: fibonacci 9: 34
HIJO: fibonacci 10: 55
PADRE: fibonacci 11: 89
PADRE: fibonacci 12: 144
PADRE: fibonacci 13: 233
PADRE: fibonacci 14: 377
PADRE: fibonacci 15: 610
PADRE: fibonacci 16: 987
PADRE: fibonacci 17: 1597
PADRE: fibonacci 18: 2584
PADRE: fibonacci 19: 4181
PADRE: fibonacci 20: 6765

Y que el flujo del programa tenía que ser:

1.- Padre crea pipe
2.- Padre crea hijo
3.- Padre espera finalización del hijo
4.- Hijo calcula los 10 primeros números de la secuencia de Fibonacci y los muestra por pantalla.
5.- Hijo envía datos al padre mediante la pipe para continuar la secuencia con 10 números más
6.- Hijo finaliza y padre retorna del wait
7.- Padre lee pipe.
8.- Padre calcula 10 números de fibonacci más y los muestra por pantalla.

No entiendo cuál es el problema. Si te sirve, aquí hay una versión de mi código mejorada (y modificada para que los dos primeros números de la secuencia sean 0 y 1, no 1 y 1). Repito que, para un programa más completo, se debería añadir comprobación de errores.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
#define N 4

void nextFib(int vec[2]) {
int aux = vec[0];
vec[0] = vec[1];
vec[1] += aux;
}

int main () {
int tabla[2],fdpipe[2];
int i;
pipe(fdpipe);
if (fork() == 0) {
close(fdpipe[0]);
tabla[0] = 0;
tabla[1] = 1;
for (i = 0; i < N; ++i) {
printf("HIJO: Fibonacci %d: %d\n",i,tabla[0]);
nextFib(tabla);
}
write(fdpipe[1],&tabla[0],2*sizeof(int));
exit(0);
}
close(fdpipe[1]);
wait(NULL);
read(fdpipe[0],tabla,2*sizeof(int));
close(fdpipe[0]);
for (i = N; i < 2*N; ++i) {
printf("PADRE: Fibonacci %d: %d\n",i,tabla[0]);
nextFib(tabla);
}
return 0;
}


Saludos

EI: juntando mensajes.

Por cierto, ¿se ha declarado el año internacional de la secuencia de Fibonacci? Últimamente, en el foro veo muchísimos problemas que relacionados con esta sucesión.
#165
Programación C/C++ / Re: Serie Fibonacci C++
16 Enero 2012, 20:46 PM
¡Hola! Me gustaría añadir otra solución al problema ^^

Que conste que desde en un principio lo hubiera hecho como rir3760 , pero ya que él lo ha hecho ya así, aporto algo diferente.

Esta solución es más ineficiente en términos de memoria, pero es "más C++".

Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>
using namespace std;

int main() {
int n,i,j;
cin >> n;
vector<bool> isFib(n);
i = j = 1;
while (j <= n) {
isFib[j-1] = true;
int aux = i;
i = j;
j += aux;
}
for (i = 0; i < n; ++i)
if (not isFib[i]) cout << i + 1 << endl;
}


Y otra, sin vectores:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main() {
int n,i,j;
cin >> n;
i = j = 1;
while (j <= n) {
for (int k = i+1; k < j; ++k)
cout << k << endl;
int aux = i;
i = j;
j += aux;
}
for (int k = i+1; k < n; ++k)
cout << k << endl;
}


Saludos.
#166
Cita de: Eternal Idol en 16 Enero 2012, 16:54 PM
No.

Claro y conciso  ;D

Las rutinas de la librería estándar tienen que implementarse en función de las interficie genérica (conjunto de servicios) ofrecida por el S.O.

Además, también habría que programar un compilador de C para ese SO.

Saludos.
#167
Cita de: gabzguillermo en 16 Enero 2012, 10:48 AM
bueno disculpen pero pueden usar  el poder de una gpu USAN CUDA  y este programa para descifar diccionarios mejor y mas rapido de 20 a 25 veces mas rapido q un cpu  quad core  el programa sellama Elcomsoft aqui les dejo el link el archivo esta en 7zip http://freakshare.com/files/88mgbvfw/ewsa_setup_en.7z.html

[youtube=425,350]http://www.youtube.com/watch?v=sndsmyiBjko[/youtube]
#168
Seguridad / Re: AYUDA NOVATA
16 Enero 2012, 01:27 AM
¿Hackear el móvil? ¿Cómo exactamente? ¿Llamadas intervenidas? ¿Software maligno? ¿Un rasguño en la pantalla?  :D

Con el portátil te recomiendo lo típico. Instálale un antivirus (hay algunos con versión gratuita, como el BitDefender) y actualízalo (si puedes, estando desconectada de Internet instala el antivirus desde un CD o desde una memoria externa junto con las bases de datos actualizadas). Manténlo desconectado de Internet y realiza un análisis a fondo. Adicionalmente, comprueba si tienes cortafuegos y si no, instala uno también. Un antiespías tampoco vendría mal (y una vez lo tengas instalado, otro análisis al canto con él). Es posible que sepas si te ha enviado algún tipo de malware si ves algo especialmente sospechoso en los report de los análisis que creas que tenga algo que ver con él.

De todas formas, sinceramente creo que tu compañero de trabajo es un tronco en temas de informática y que, si haces lo que te he dicho, encontrarás basura en tu ordenador pero por otras razones (por descargar contenido infectado de alguna Web o cosas así). Llámame pitoniso si quieres, pero lo intuyo. A ver, la cosa va así: hay muchos más lammers con pretensiones de hacker en éste mundo que gente que sepa de verdad. Luego es más probable que tu compañero de trabajo, como mucho, sea de los típicos que vaya por foros como éste preguntando cosas del tipo "KOMO HACKIA EL MOBIL DE MI COMPANYERA DE trabajo A LA QUE ODIO MUCHO? GRAS.IAS DE ENTREPIERNA".

Aun cuando efectivamente este señor hubiera emprendido una acción hostil contra ti, que sepas que te ampara la ley. Da parte a la policía si fuera necesario. Y, buena mujer, si tienes mótivos para creer que han accedido a alguna cuenta tuya, ¿a qué esperas para cambiar la contraseña? Creo que en estos casos es más importante defenderse primero y luego, en medida de lo posible, identificar al agresor (en caso de que efectivamente lo hubiera).

Ah, y si ves que se pone chulo, le pegas un martillazo en la cabeza y listo  ;D

Saludos

P.S. Por los mengues, utiliza un título más informativo... no sé: "¿Cómo saber si me han hackeado el móvil y el ordenador?" o algo así.

#169
Software / Re: actualizar
16 Enero 2012, 01:05 AM
Esta vez, EleKtro H@cker ha sido bueno. En cualquier caso (y perdona si he resultado desagradable antes), procura usar el buscador del foro o Google primero, sobre todo con una consulta/petición que no requiere una atención personalizada.

Saludos.
#170
Ya veo.

En cualquier caso, aquí lo explican. Está en la lengua de Shakespeare, espero que no tengas problemas para entenderlo.

Por cierto, si utilizas Dev-Cpp, deberías bajar la última versión de MinGW y sustituir la que viene con el programa (creo que está en C:\Program Files\Dev-Cpp\bin). Dev-Cpp es un proyecto abandonado y lleva muchos años sin recibir actualizaciones, así que como mínimo deberías actualizar el compilador.

EDITO: He leído que un desarrollador independiente sacó en 2012 una nueva versión de Dev-Cpp. Mira a ver si la que tienes es del 2011 y si no, mira a ver si puedes encontrar esta última versión.