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

#21
hay dos errores:

1. No se le asignan valores a los elementos del array. Es por eso que al momento de efectuar la suma estos contienen valores no determinados (valores 'basura').

2. Los indices de los elementos del arreglo en este caso son: 0,1,2,...,9. En el condicional del for deberia estar i<10.
#22
Creo que esta línea

File.path = (char*) malloc (File.path_len * sizeof(char));


debería estar escrita asi

File.path = (char*) malloc ((File.path_len +1) * sizeof(char));


Y también faltaría copiar la cadena al espacio de memoria reservado..

Osea que esto

File.path = path;


esta mal. Deberias utlizar strcpy ..

Saludos
#23
Scripting / Re: virus informatico msn.exe
21 Febrero 2011, 01:40 AM
Cita de: pitoloko en 18 Febrero 2011, 08:08 AM
Al menos este tipo, WaRRed, intenta compartir lo que hace... eso tambien cuenta.
+1

Saludos
#24
Buenas, me gustaria formar parte del proyecto  ;D

PD: No se mucho (casi nada  :xD) sobre como hacer un SO pero me gustaría aprender..
#25
Programación General / Re: Reto Programación
22 Diciembre 2010, 00:09 AM
ajam, hay cierto parecido. En ambos problemas se tienen que realizar movimientos con ciertas restricciones  :)




Bueno como lo prometido es deuda aqui esta el código.

#include <stdio.h>

#define MAX_ELEM 1000

void permutar(char *a,char *b)
{
 char temp=*a;
 *a=*b;
 *b=temp;
}

int main(void)
{
 int i,diravance=1,dirsalto=1,csaltos=1,saltos=1,incsaltos=1,ne,te,uesp,des=-1;
 char a[MAX_ELEM];
 /* leer la cantidad de elementos de cada tipo */
 scanf("%d",&ne);
 /* establecer la posicion inicial de los 1's y 2's */
 te=2*ne+1;
 for(i=0;i<te;i++)
   a[i]=(i<ne)?'1':'2';
 a[ne]=' ';
 a[te]='\0';
 uesp=ne;
 puts(a);
 /* efectuar los cambios en el arreglo */
 while(csaltos>=0)
 {
   permutar(&a[uesp],&a[uesp+des]);
   uesp+=des;
   puts(a);
   /* determinar siguiente movimiento */
   if(saltos)
   {
     des=dirsalto*2;
     saltos--;
   }
   else
   {
     des=diravance;
     saltos=(csaltos+=incsaltos);
     dirsalto*=-1;
     diravance*=-1;
   }
   /* hacer el ajuste necesario luego de la mitad del total de movimientos */
   if(saltos>=ne||ne==1)
   {
     incsaltos=-1;
     diravance=-diravance;
   }
 }
 return 0;
}


Que tengan unas felices fiestas!
Saludos  :)

EDIT: Para no hacer doble post
#26
Programación General / Re: Reto Programación
21 Diciembre 2010, 23:44 PM
Esta sería la serie de movimientos para 4 elementos de cada tipo:

1111 2222  avance (1)
111 12222  salto  (2)
11121 222  avance (2)
111212 22  salto  (1)
1112 2122  salto  (1)   
11 212122  avance (1)   
1 1212122  salto  (2)   
121 12122  salto  (2)   
12121 122  salto  (2)   
1212121 2  avance (2)
12121212   salto  (1)
121212 21  salto  (1)
1212 2121  salto  (1)
12 212121  salto  (1)
21212121  avance (2)
2 1212121  salto  (2)
221 12121  salto  (2)
22121 121  salto  (2)
2212121 1  avance (1)
221212 11  salto  (1)
2212 2111  salto  (1)
22 212111  avance (2)
222 12111  salto  (2)
22221 111  avance (1)
2222 1111         


Basandonos en las regularidades que se presentan se puede hacer un par de algoritmos...

Para mañana les traigo uno implementado en C

Saludos ;D
#27
Ejercicios / Re: Reto/Juego Ejercicios en Python
20 Diciembre 2010, 03:53 AM
Esperando estamos  :D
#28
Ejercicios / Re: Reto/Juego Ejercicios en Python
20 Diciembre 2010, 03:04 AM
 :laugh: No supo responder a su propio reto
#29
Muy buena, SmartGenius! y en batch  :o
Los codes que pusieron en Python no funcionan  :-X Para ciertos valores dan resultados erroneos. Por ejemplo, al introducir como dato 1999 devuelve como resultado MDCCCCLXXXXVIIII cuando la respuesta correcta es MCMXCIX.

Saludos y disculpen las molestias  >:D
#30
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(void)
{
 int n;
 bool es_ondulado=true;
 cin>>n;
 if(n>=100)
 {
   int z=n,i=3;
   const int ab[]={(z%100)/10,z%10};
   z/=100;
   while(z>0 && es_ondulado)
   {
     es_ondulado=((z%10)==ab[i%2]);
     z/=10;
     i++;
   }
 }
 if(es_ondulado)
   cout<<"ES ondulado\n";
 else
   cout<<"NO es ondulado\n";
 return 0;
}