elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
11  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Eliminen todos mis post aqui. en: 21 Enero 2009, 01:57 am
Por aquello de "Owned" o "Pwned", Carloswaldo tiene razon. "Owned" es lo lingüisticamente correcto, pero "Pwned" esta casi igual de extendido, en la jerga cibernetica & l33t. Si no les convence, mirar un par de forillos y/o chats en ingles :laugh:

Saludos
12  Programación / Ejercicios / Re: Programación algorítmica: unos problemillas en: 9 Septiembre 2008, 02:39 am
Buenas, ya he vuelto :D

Pues al final me he metido con el de grafos, me ha gustado mucho xD Y por cierto, decirte que me falto implementarle lo de varios casos por falta de tiempo, es decir, la entrada al programa es identica, solo que obvia el numero de casos y solo te resolvera el primero, si quieres probar otros casos hay que ejecutar de nuevo el programa (sorry, obviamente no presentaria eso asi en un concurso xDD)

Pero nada, queria que simplemente le echaras un vistazo a la parte principal del programa, el algoritmo y tal que es lo que importa al fin y al cabo, y ver que cambiarias tu o como lo harias (seguro que se puede hacer mas eficientemente que el mio :))

Aqui te lo dejo (Otra cosa, solo lo he hecho en pascal, en cuanto vuelva a tener un rato disponible intentare pasarlo a C a ver):

Código
  1. program circulos;
  2.  
  3. const
  4. MAX = 20;
  5.  
  6. type
  7. TValores  = Record
  8.                Asignado : boolean;
  9. Color       : boolean; { 'True' = Verde; 'False' = Amarillo }
  10. End;
  11. TVertices = array [0..MAX] of TValores;
  12. TCasos = array [1..MAX] of TVertices;
  13.  
  14. var
  15. nCasos : integer;
  16. nVertices : integer;
  17. nAristas : integer;
  18. inicio, fin  : integer;
  19. vertices : TVertices;
  20. casos : TCasos;
  21. flag : boolean;
  22. i : integer;
  23.  
  24. procedure init_vertices (var c : TCasos);
  25.  
  26. var
  27. i, j : integer;
  28.  
  29. begin
  30.  
  31. for i := 1 to MAX do
  32. for j := 0 to MAX do
  33. begin
  34. c[i][j].Asignado := false;
  35. c[i][j].Color := false;
  36. end;
  37.  
  38. end;
  39.  
  40. function evalua (var v : TVertices; inicio, fin : integer) : boolean;
  41.  
  42. begin
  43.  
  44. if (v[inicio].Asignado = false) and (v[fin].Asignado = false) then { si ninguno ha sido asignado aun }
  45. begin
  46. v[inicio].Asignado := true;
  47. v[inicio].Color := true;
  48. v[fin].Asignado := true;
  49. v[fin].Color := false;
  50. evalua := true;
  51. end
  52. else
  53. begin
  54. if (v[inicio].Asignado) xor (v[fin].Asignado) then { si uno de los dos esta asignado }
  55. begin
  56. if v[fin].Asignado = false then
  57. begin
  58. v[fin].Asignado := true; { lo marcamos como coloreado }
  59. v[fin].Color := not v[inicio].Color; { y le ponemos el color contrario al del otro vertice }
  60. end
  61. else
  62. begin  { en caso de que el que no estuviese coloreado aun fuera el vertice inicial, lo mismo para este }
  63. v[inicio].Asignado := true;
  64. v[inicio].Color := not v[fin].Color;
  65. end;
  66. evalua := true;
  67. end
  68. else
  69. begin  { si entramos aqui es porque ambos ya estan coloreados, comprobemos si es incompatible }
  70. if v[inicio].Color = v[fin].Color then
  71. evalua := false
  72. else
  73. evalua := true;
  74. end;
  75. end;
  76.  
  77. end;
  78.  
  79. { -- MAIN --}
  80.  
  81. begin  
  82.  
  83. init_vertices (casos);
  84. flag := true;
  85. readln (nCasos);
  86. readln (nVertices, nAristas);
  87. for i := 1 to nAristas do
  88. begin
  89. readln (inicio, fin);
  90. flag := flag and (evalua (vertices, inicio, fin));
  91. end;
  92. if flag then
  93. writeln ('Miguel, a pintar')
  94. else
  95. writeln ('No pierdas el tiempo');
  96.  
  97. end.

Ale, ahi lo tienes, dispara :P

Decirte tambien que voy a estar fuera hasta el viernes o asi, en cuanto vuelva a estar online le meto mano al susodicho problema nº 2, y tal vez traducir este a C

Gracias de nuevo por tus problemas, de verdad que son muy interesantes y me he entretenido mucho con ellos, sobre todo el ultimo claro (pa haber salido de un examen de GRAFOS hoy mismo y ponerme a hacer problemas de GRAFOS... xDD hay que echarle ganas)

Saludos!
13  Programación / Ejercicios / Re: Programación algorítmica: unos problemillas en: 8 Septiembre 2008, 03:46 am
Si nadie publica nada tendré que dar yo la solución :P

No!! Esperame xDD Tengo un examen mañana y por eso no lo he intentado hasta ahora, no he tenido tiempo, pero cuando llegue me pongo (encima en el examen me cae programacion dinamica :xD Y eso me lo se bien :P)

Saludos
14  Programación / Ejercicios / Re: Programación algorítmica: unos problemillas en: 6 Septiembre 2008, 16:48 pm
Guay :D

Lo del espacio despues de los numeros lo puse deliberadamente, pensando que asi es mas legible... Pero bueno es igual, se quita y ya esta xD No sabia eso de los concursos, me lo apuntare

Ah, y me gusta tu codigo, te quedo mas corto, tiene estilo :P

Ahora a por el de las minas, como tu dices. Saludos


15  Programación / Ejercicios / Re: Programación algorítmica: unos problemillas en: 6 Septiembre 2008, 06:51 am
Hola ;)

Me han parecido interesantes los ejercicios, voy a postear el primero, si te parece bien:

En C:

Código
  1. #include <stdio.h>
  2.  
  3. int main (void)
  4. {
  5. int i, j, n;
  6.  
  7. printf ("Introduce altura de la pared: ");
  8. scanf ("%d", &n);
  9. for (i = n; i >= 1; i--) { /* Bucle desde la cima hasta la base */
  10. j = i; /* 'j' servira para saber las veces que se repiten los numeros en cada nivel de la piramide */
  11. while (j <= n) {
  12. printf ("%d ", i); /* Imprimimos el numero del nivel... */
  13. j++;
  14. } /* ...tantas veces como niveles alejados de la cima estemos */
  15. printf ("\n");
  16. }
  17. printf ("\n");
  18. return 0;
  19. }



En Pascal:

Código
  1. PROGRAM Triangulos;
  2.  
  3. VAR
  4. i, j, n : Byte;
  5.  
  6. BEGIN
  7.  
  8. Write ('Introduce altura de la pared: ');
  9. ReadLn (n);
  10. For i := n DownTo 1 Do
  11. Begin
  12. j := i;
  13. While (j <= n) Do
  14. Begin
  15. Write (i, ' ');
  16. Inc (j);
  17. End;
  18. WriteLn ();
  19. End;
  20. WriteLn ();
  21.  
  22. END.



Igual se pueden optimizar algo mas, pero bueno... En cuanto pueda intentare el segundo tambien, a ver que tal

Gracias y saludos
16  Informática / Electrónica / Re: FUente de tension regulable en: 28 Agosto 2008, 03:55 am
En estos links viene muy bien explicado, basándose en un regulador de voltaje LM317:

http://www.unicrom.com/cir_fuenteconlm317T.asp
http://perso.wanadoo.es/chyryes/tutoriales/fuentes14.htm

Por cierto, que en el subforo de Electrónica seguro que te pueden ayudar mejor

Saludos
17  Programación / Programación General / Re: Contar caracteres en strings de pascal en: 20 Julio 2008, 03:30 am
Bueno, con length tambien servia, y no hay necesidad de llamar a una unit extra:

Código
  1. program bla;
  2.  
  3. var palabra : string;
  4.  
  5. begin
  6.   write ('introduce palabra: ');
  7.   readln (palabra);
  8.   writeln (length (palabra));
  9. end.

Saludos
18  Informática / Tutoriales - Documentación / Re: Para los interesados en el proyecto de traducción de manuales y textos en: 2 Julio 2008, 22:29 pm
Hola,

Yo me apunto tambien. Se que llevo mucho tiempo dejando un poco de lado lo de las traducciones, tengo un texto ahi pendiente desde hace mucho que aun no he terminado, pero es que estos ultimos 2 meses la universidad y un par de cosas mas no me han dado tiempo ni para respirar xD Pero bueno, la cuestion es que este sabado tengo ya por fin el ultimo examen, y tendria mucho mas tiempo libre para dedicarselo a esto.

Por cierto que lo de la wiki me parece una gran idea, por el concepto de ir aportando cada uno poco a poco a los textos que desee, y no trabajo individual como hasta ahora.

Saludos
19  Programación / Programación Visual Basic / Re: Cuales son las APIS que usan los DownloaderS? en: 21 Junio 2008, 04:59 am
Código:
URLDownloadToFile ()

:B

Saludos
20  Programación / Ejercicios / Re: Array bidimensional en pascal. en: 21 Junio 2008, 04:42 am
Lo normal para eso es hacer:

Código
  1. Var
  2.   Matriz : Array [1..3, 1..3] of Byte;
  3.   i, j   : Byte;
  4.  
  5. Begin
  6.  
  7.   { Aqui codigo para insertar los numeros }
  8.   { . . . }
  9.  
  10.   For i := 1 To 3 Do
  11.   Begin
  12.      For j := 1 To 3 Do
  13.         Write (Matriz[i][j], ' ');
  14.      WriteLn ();
  15.   End;
  16.  
  17. End.

Y si quieres hacerlo con While...

Código
  1. i := 1; j := 1;
  2.  
  3. While (i <= 3) Do
  4. Begin
  5.   While (j <= 3) Do
  6.   Begin
  7.      Write (Matriz[i][j], ' ');
  8.      Inc (j);
  9.   End;
  10.   WriteLn ();
  11.   Inc (i);
  12.   j := 1;
  13. End;

Saludos   
 
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines