• Jueves 28 de Marzo de 2024, 23:41

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

Páginas: [1] 2
1
Java / Re: ¿Ajedrez?
« en: Sábado 21 de Mayo de 2011, 02:07 »
Deberías usar el buscador tanto del foro como google ambos te sacaran de los apuros como para comenzar, hay miles de source de ajedrez, te aconsejo que antes de adentrarte en esto manejes bien la programación ( conocimiento de estructuras de datos y algoritmos que trabajen en ellas).
Otro tema es armar un IA que juegue eso es bastante complicado y tiene todo un trasfondo teórico atrás.
http://www.caspercomsci.com/pages/javasource.htm
http://www.aihorizon.com/essays/chessai/intro.htm

2
C# / Re: Como quito numeros de una cadena.
« en: Lunes 7 de Febrero de 2011, 16:47 »
Código: C#
  1.  
  2.    var a = Console.ReadLine();
  3.    var b = new List<char>();
  4.    foreach (var x in a)
  5.       if ((x == '*') || (x == '/') || (x == '-') || (x == '+'))
  6.           b.Add(x);
  7.    foreach (var x in b)
  8.      Console.WriteLine(x);
  9.    Console.Read();
  10.  
  11.  
igual si estas haciendo una calculadora o algo así te recomiendo esto para empezar postfija y trabajar con una pila, como para que te vallas acostumbrando a manejar estructuras de datos.

Edit: ya respondieron =P
Código: C#
  1. if(item==itemB)
  2.     {
  3.      }
  4.  
??? if(item!=itemb) maybe?

3
C/C++ / Re: archivos de 5 bits de unidad
« en: Martes 18 de Enero de 2011, 18:36 »
Cita de: "Eternal Idol"
Cita de: "LapizTolita"
segun M$ sí.

Antes de criticar hay que informarse bien, lee el standard.

No sabía que escribir M$ era criticar a Microsoft, yo más bien lo tomé como una abreviatura podría haber puesto Ms. Puse eso porque la información que yo tengo es de ahí.

4
Otros CLR / Re: Usar valor de String
« en: Lunes 17 de Enero de 2011, 22:17 »
Cita de: "pedro00pedro"
Cita de: "LapizTolita"
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);
En cuanto a lo primero: ¿Que diferencia hay como para que merezca la pena cambiarlo?
Lo segundo. no se como se hace eso, aun estoy aprendiendo. ¿ Podrías explicar brevemente como hacerlo?

No hay mucha diferencia para la maquina es cuestión de que tu código quede mas legible, es más cómodo tener un for(int i=0;i<n;++i) y después todo el resto del código a tener desparramadas todas las sentencias de control por ahí.

Respecto a lo segundo, te explico no todo en la vida es arrastrar textbox hay que manejar mas el código.
Declará un arreglo de textbox como lo harías con cualquier otro tipo.
Inicializalos y después le cambias las propiedades y sus respectivas ubicaciones entre otras propiedades que te parezca necesario configurar.

Otra cosa te conviene llamar las variables con nombre mas demostrativos.
Por ejemplo: repeticiones_Textbox


Cita de: "pedro00pedro"
Cita de: "ivancp"
No me agrada la sintaxis del codigo C++ de .NET  (opinion muy personal offtopic para este post)
No se, yo solo he programado en VB.NET y C++.Net, es lo que se y estoy empezando, así que de momento no me preocupo por eso.

No te preocupes el quería robar post nada más.
Y si es resulta bastante incomodo ver C++ así, pero es cuestión de costumbre

5
C/C++ / Re: archivos de 5 bits de unidad
« en: Lunes 17 de Enero de 2011, 18:09 »
Cita de: "Alfonsos1"
si, entiendo tu idea, y entiendo que trabajar de a 4 bytes el lo mas veloz, pero la velocidad no me importa tanto.

¿Como que la velocidad no te importa?, por ahi si explicas bien que estas haciendo te podemos dar un consejo.

Cita de: "Alfonsos1"
si un int tiene 4 bytes, ¿como espesifico que una variable tenga mas de 4 bytes (por ejemplo 8)?,

¡Creando un TAD? ya sea un struct ,union, class lo que mas te satisfaga.

Cita de: "Alfonsos1"
en internet vi que un int almacena lo mismo que un long int...
segun M$ sí.

m0skito si mirás mi post, decime que tan diferente es lo que vos propones.

6
C/C++ / Re: archivos de 5 bits de unidad
« en: Domingo 16 de Enero de 2011, 23:11 »
Hola Alfonsos1, lo ideal seria que almacenes esos números en 4 bytes dado que son 32 bits y serían del 0 al 31 justo, que mejor que guardar tus números en un entero  :good: .

Código: C++
  1. #include <iostream>
  2. #define REP(k,a) for(int k=0; k < (a); ++k)
  3. struct ConjuntoBits
  4. {
  5. private:
  6.     int bits;
  7. public:
  8.     ConjuntoBits()
  9.     {
  10.         bits = 0;
  11.     }
  12.     bool Contiene(int item)
  13.     {
  14.         return (bits & (1 << item)) != 0;
  15.     }
  16.     void Agregar(int item)
  17.     {
  18.         bits=(bits | (1 << item));
  19.     }
  20.     void Remover(int item)
  21.     {
  22.         bits=(bits & ~(1 << item));
  23.     }
  24.    void Mostrar()
  25.    {
  26.        REP(item,32)
  27.            if (Contiene(item))
  28.                std::cout << item << " ";
  29.        std::cout << std::endl;
  30.    }
  31.    int Cantidad()
  32.    {
  33.        int restante = bits;
  34.        int Cantidad = 0;
  35.        while (restante != 0)
  36.        {
  37.            restante &= (restante - 1);
  38.            Cantidad++;
  39.        }
  40.        return Cantidad;
  41.    }
  42. };
  43. int _tmain(int argc, _TCHAR* argv[])
  44. {
  45.     ConjuntoBits algo;
  46.     REP(i,5)
  47.         algo.Agregar(i*5);
  48.     if(algo.Contiene(5))
  49.         std::cout << "si" << std::endl;
  50.     else
  51.         std::cout << "no" << std::endl;
  52.     algo.Mostrar();
  53.     std::cout << algo.Cantidad() << std::endl;
  54.     algo.Remover(5);
  55.     if(algo.Contiene(5))
  56.         std::cout << "si" << std::endl;
  57.     else
  58.         std::cout << "no" << std::endl;
  59.     algo.Mostrar();
  60.     std::cout << algo.Cantidad() << std::endl;
  61.     std::cin.get();
  62.     return 0;
  63. }
  64.  
  65.  

7
Retos / La Fuente de la vida (principiantes)
« en: Domingo 16 de Enero de 2011, 22:20 »
Enunciado del problema
    
Una Fuente de la vida es una fuente especial que produce el elixir de la vida a una velocidad constante de litros de elixir por segundo. Un mago oscuro logró echar una maldición de muerte en la Fuente de modo que además de el elixir que ahora produce un veneno mortal a una velocidad constante de litros de veneno por segundos. Tanto el veneno y el elixir son recolectados en una piscina infinitamente grande alrededor de la fuente y forman una mezcla. La mezcla será mortal una vez que el porcentaje de veneno en la mezcla es al menos el 50%. Tu tarea consiste en calcular el momento en que la mezcla será mortal. En la principio (0 segundos) la piscina contiene 100% elixir. Tu programa debe devolver un double, el tiempo en segundos en que la mezcla se convierte en mortal. Si la mezcla no se vuelve mortal. retornar -1,0.

    

Notas

El valor devuelto debe tener una precisión de un valor relativo o absoluto de 1E-9.

Restricciones

elixir estará entre 1 y 10000, ambos inclusive.

veneno estará entre 1 y 10000, ambos inclusive.

piscina estará entre 1 y 10000, ambos inclusive.

Ejemplos

  • 1
    2
    2

    Retorna: 2.0

    En t = 0s hay 2 litros de 100% elixir.
    En t = 1s hay 3 litros de elixir y 2 litros de veneno para un volumen total de 5 litros. 2 litros de veneno es de 40% de 5 litros de manera que la mezcla aún no es mortal.
    En t = 2s hay 4 litros de elixir y 4 litros de veneno para un volumen total de 8 litros. 4 litros de veneno es exactamente el 50% de la mezcla por lo que ahora es mortal.
     
  •    
    200
    100
    1

    Retorna: -1.0

    Con 200 litros de de elixir por segundos y sólo 100 litros de por segundo de veneno, la mezcla no se vuelve mortal nunca.
  •       
    9999
    10000
    10000

    Retorna: 10000.0

    Puede ser que tome mucho tiempo para que la mezcla se convierta en mortal.

  • 1
    10000
    1

    Retorna: 1.0001000100010001E-4

    Por otra parte, podría tomar muy poco tiempo para que la mezcla se convierta en mortal.

  • 40
    43
    41

    Retorna: 13.666666666666666


Muy fácil igual yo soy medio duro y tire una solución rebuscadísima la primera vez que lo resolví.

Acá dejo las 2 soluciones que yo hice :

Acá hice esto porque tenía el método a mano y fue todo muy sin pensarlo tratando de resolverlo más rápido posible.  

Después pensé y dije no la solución es aun mas fácil y bueno esto es lo que me quedó.

Traten Uds. a ver que les sale. :good:

8
C/C++ / Re: como paso el contenido de un char array a otro char array?
« en: Domingo 16 de Enero de 2011, 18:11 »
Código: C++
  1.  
  2. #define REP(k,a) for(int k=0; k < (a); ++k)
  3.  
  4. int main()
  5. {
  6.     char linea[5];
  7.     fgets(linea,5,f);
  8.     char miarray[3];
  9.     REP(i,3)
  10.         miarray[i]=linea[i];
  11.    
  12. }
  13.  

9
C# / Re: VALIDAR USUARIOS
« en: Domingo 16 de Enero de 2011, 15:13 »
Hola yoelduran, trata de escribir en minúscula porque sino das la sensación de que nos estuvieras gritando.

Tengo mis dudas, ¿Por qué MySql?

Así y todo si buscaras algo ya sea un login o un recorrido en profundidad de un árbol, deberías entenderlo sin importar en que lenguaje esté, por más que este en VB.

Ahora pensemos que necesitas para un login:
  • Nombre del usuario
  • Clave del usuario
  • Una tabla con 2 campos Nombre y Clave
¿Qué Hacer?
  • Pedir el nombre
  • Pedir la clave
  • Enviar una Query a la base de datos para saber si existe el nombre ese y si su clave es la misma que la que obtuviste
¿Difícil no?  :rolleyes:

10
Otros CLR / Re: Usar valor de String
« en: Sábado 15 de Enero de 2011, 05:35 »
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);

11
C# / Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« en: Sábado 15 de Enero de 2011, 02:35 »
origen=origen.AddSeconds(1296585662);

12
C/C++ / Re: array de strings
« en: Viernes 14 de Enero de 2011, 11:30 »
Primero tratá de mejorar tu escritura, a mi esta pagina me ayudo bastante http://es.wikibooks.org/wiki/Programaci ... s_de_texto

13
C/C++ / Re: Buenas!!
« en: Jueves 13 de Enero de 2011, 17:08 »
Bueno primero que nada el primer lenguaje que deberías aprender antes que C++ es el español, que por lo que veo te cuesta bastante expresarte. Y tené en cuenta que el foro es SoloCodigo no SoloTareas.
Ejemplos de Arrays en c++ hay por toda la web, Google no muerde

14
C/C++ / Re: Problemas al leer archivos
« en: Jueves 13 de Enero de 2011, 16:01 »
Bueno espero no haber llegado muy tarde  :P , pero quiero que esto quede como solucionado por si otro usuario llegase a tener el mismo problema. Sin mas rodeos el error es en la linea que dice: while (!MapF.eof()) Ahí debería ir while (i<y)  así no pasan cosas como vos decís que si pones una linea vacía al final seguís haciendo getline() demás sobre el arreglo Map.

Esta más fácil de ver si lo haces así:

Código: C++
  1.  
  2. int i=0;
  3.     while (i<y)    
  4.      {
  5.          MapF.getline( Map[i], x);
  6.          if(Map[i][0]!='#')
  7.              i++;
  8.      }
  9.  

15
C/C++ / Re: Rellenar vector sin repetir
« en: Jueves 13 de Enero de 2011, 14:26 »
Bueno veo que te molesto que un random como yo te de sugerencias sobre como programar, te juro que cuando postie lo de la portabilidad era para darle al pibe ese una sugerencia que a mi me habían dado (si soy algo nuevo en esto de la programación)

Otra cosa no sé porque decís que  
Cita de: "m0skit0"
Y encima le dices que no es portable, pero le plantas un getchar() con WinAPIs  :P  
Siendo que ahí aclaro que esa es la alternativa Windows y por eso le doy 2 alternativas. Capaz que si hubieras leido por lo menos lo que escribí antes de responderme te hubieras dado cuenta de que la función que esta implementada con WinAPIs es getch() que por cierto en el único lugar que es "nativa" es en borland, y que puse:
Cita de: "lapiztolita"
O podes usar la misma macro pero llamando a esta función para limpiar el buffer que es mas portable, además te va a servir para otros momentos que necesites vaciar el buffer del teclado.
Ahí claramente expreso que podes usar la misma macro, oh wait!! si era "mas portable" como usar el getch() implementado con WinAPIs ? claro está que es un getchar(); pero bueno de esos detalles se dan cuenta los que leen por lo menos una vez el post.

Además yo pruebo todo lo que le digo no escribo porque si nada más, si dije que era más portable fue porque lo probé en ubuntu también.

16
C/C++ / Re: Rellenar vector sin repetir
« en: Jueves 13 de Enero de 2011, 10:02 »
Quiza te queda lleno el buffer te doy 2 opciones

Alternativa windows

Código: C++
  1. #include <windows.h>
  2. #define PAUSA printf("nPulse enter para continuar");
  3.     getch();
  4. int getch(void)
  5. {
  6.   int caracter;
  7.   DWORD leidos, modo;
  8.  
  9.   GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &modo);
  10.   SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), modo & !ENABLE_ECHO_INPUT & !ENABLE_PROCESSED_INPUT);
  11.   ReadConsole(GetStdHandle(STD_INPUT_HANDLE), &caracter, 1, &leidos, NULL);
  12.   SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), modo);
  13.   return caracter;
  14. }
  15.  
  16.  

O podes usar la misma macro pero llamando a esta función para limpiar el buffer que es mas portable, además te va a servir para otros momentos que necesites vaciar el buffer del teclado.

Código: C++
  1.  
  2. #include <unistd.h>
  3. #include <errno.h>
  4. #include <fcntl.h>
  5. #define PAUSA printf("nPulse enter para continuar");
  6.      stdin_flush();
  7.      getchar();
  8. int stdin_flush(){
  9.   char buf[64];
  10.   unsigned int bytes_read;
  11.   char flag;
  12.  flag = fcntl(0, F_SETFL, O_NONBLOCK);
  13.  if(flag == -1){
  14.    return flag;
  15.  }
  16.  while(1){
  17.     bytes_read = read(0, buf, sizeof(buf));
  18.     if(bytes_read == 0){
  19.      flag = fcntl(0, F_SETFL, O_SYNC);
  20.     return flag;
  21.     }
  22.     if(bytes_read == -1){
  23.       if(errno = EWOULDBLOCK){
  24.         fcntl(0, F_SETFL, O_SYNC);
  25.         return flag;
  26.       }
  27.       write(2, "Error #%d while reading stdinn", errno);
  28.       flag = fcntl(0, F_SETFL, O_SYNC);
  29.       return -1;
  30.     }
  31.   }
  32. }
  33.  
  34.  

Podrías usar fflush(stdin); pero también podrías freír huevos con aceite del auto  :rolleyes:

17
C/C++ / Re: Ayudenme!
« en: Jueves 13 de Enero de 2011, 08:15 »
Hola Pinkrose, te invito a pasar por acá:
foros.solocodigo.com/viewtopic.php?t=5710

"Aún no tienes privilegios para publicar enlaces en tus mensajes." Sino  eso sería un link.

18
Retos / Re: Reto en C#.NET
« en: Lunes 10 de Enero de 2011, 11:35 »
Primero mejorá tu escritura así se hace más ameno poder leerte, por cierto no entendí que te refieres con "Tenemos una base de X" ni tampoco porque limitas a 3 registros la tabla pero bueno respeto lo que decís.
Yo haría lo siguiente:
Código: C#
  1. static int stringTOday(string a)
  2.         {
  3.             switch (a)
  4.             {
  5.                 case "Dom":
  6.                     return 0;
  7.                 case "Lu":
  8.                     return 1;
  9.                 case "Ma":
  10.                     return 2;
  11.                 case "Mie":
  12.                     return 3;
  13.                 case "Jue":
  14.                     return 4;
  15.                 case "Vi":
  16.                     return 5;
  17.                 case "sab":
  18.                     return 6;
  19.                 default:
  20.                     return -1;
  21.             }
  22.         }
  23.         static void Main(string[] args)
  24.         {
  25.             var tabla = new Dictionary<string, string>(){
  26.                               {"fulano","Lu-Vi" },
  27.                               {"mengano","Lu-Dom" },
  28.                               {"romano","Lu-Sab" }
  29.                               };
  30.             Console.WriteLine("Ingrese el nombre a verificar");
  31.             string aux = "", nombAverificar = Console.ReadLine();
  32.             if (tabla.ContainsKey(nombAverificar))
  33.                 aux = tabla[nombAverificar];
  34.             else
  35.                 Console.WriteLine("El nombre no se encontro");
  36.             string[] dias=aux.Split('-');
  37.            int actual=DateTime.Now.Day;
  38.            if((actual<stringTOday(dias[1]))&&(actual>stringTOday(dias[0]))
  39.                Console.WriteLine("Valido");
  40.            else
  41.                Console.WriteLine("Dia no valido");
  42.         }
  43.  

19
C/C++ / Re: Problema Grafos : Violación de segmento
« en: Domingo 9 de Enero de 2011, 00:15 »
dale pasalo

20
C/C++ / Re: Dudas con juego
« en: Sábado 8 de Enero de 2011, 13:23 »
Mostrá el código así te podemos ayudar

21
C/C++ / Re: Problemas con el buffer de entrada
« en: Sábado 8 de Enero de 2011, 13:21 »
foros.solocodigo.com/viewtopic.php?f=18&t=43072
Ahí explica porque no usar fflush con stdin.
El único error que vi es este :
47         scanf("%30[^n],pedido.calle);

22
C/C++ / Re: Rellenar vector sin repetir
« en: Sábado 8 de Enero de 2011, 12:12 »
Una recomendación usar getchar(); en vez de system("pause"); por que? simplemente porque llamar al sistema es costoso tener que guardar en contexto hacer el pedido, si trabajas en otro sistema operativo puede que no funcione y aparte es inseguro.

23
C# / Re: Interactuar con Reproductor de Audio
« en: Sábado 8 de Enero de 2011, 03:45 »
Código: C#
  1.  
  2.     protected override void WndProc(ref Message msg)  
  3.    {  
  4.        if (msg.Msg == 0x319)   // WM_APPCOMMAND message  
  5.        {  
  6.            
  7.            int cmd = (int)((uint)msg.LParam >> 16 & ~0xf000);  
  8.            switch (cmd)  
  9.            {  
  10.                case 13:  // APPCOMMAND_MEDIA_STOP constant  
  11.                    MessageBox.Show("Stop");  
  12.                    break;  
  13.                case 14:  // APPCOMMAND_MEDIA_PLAY_PAUSE  
  14.                    MessageBox.Show("Play-Pause");  
  15.                    break;  
  16.                case 11:  // APPCOMMAND_MEDIA_NEXTTRACK  
  17.                    MessageBox.Show("Next track");  
  18.                    break;  
  19.                case 12:  // APPCOMMAND_MEDIA_PREVIOUSTRACK  
  20.                    MessageBox.Show("Previous track");  
  21.                    break;  
  22.                default:  
  23.                    MessageBox.Show("cmd = " + cmd.ToString());  
  24.                    break;  
  25.            }  
  26.        }  
  27.        base.WndProc(ref msg);  
  28.    }  
  29.  
Google no muerde

24
C# / Re: Using para Response
« en: Sábado 8 de Enero de 2011, 03:37 »
Quizá estas creando mal el proyecto. Yo he usado eso en C# pero en Web.

25
C# / Re: Conversion a String y caracteres especiales
« en: Sábado 8 de Enero de 2011, 03:26 »
Te recomiendo que sobrecargues el método ToString()
Código: C#
  1.  
  2.         public override string ToString()
  3.         {
  4.             string s="";
  5.             foreach(var x in a)
  6.                 s+=x;
  7.             return s;
  8.         }
  9.  
  10.  
Y después la llamas asi:
Código: C#
  1.  
  2.  Console.WriteLine(c);
  3.  
  4.  

Páginas: [1] 2