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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1] 2 3 4
1  Foros Generales / Dudas Generales / Ayuda con el contenedor TableRow en desarrollo android en: 18 Febrero 2018, 04:12 am
Buenas a todos!
Pues como voy empezando en el mundo del desarrollo android me he propuesto desarrollar un TicTacToe, el problema radica en que no se como hacer que las tres celdas ocupen el mismo espacio proporcional.

Leí por internet que empleando android:layout_weight="1" se solucionaba, pero no...
Gracias por leerlo!

El código que empleo
Código
  1. <TableRow
  2.        android:layout_height="wrap_content"
  3.        android:layout_width="fill_parent"
  4.        >
  5.  
  6.        <TextView
  7.            android:id="@+id/uno"
  8.            android:layout_width="fill_parent"
  9.            android:layout_height="fill_parent"
  10.            android:layout_weight="1"
  11.  
  12.            android:text="X"
  13.            android:textSize="35sp"
  14.            android:textColor="#000000"
  15.  
  16.            android:padding="25dp"
  17.            android:gravity="center"
  18.            android:background="#F78181"
  19.            />
  20.  
  21.        <TextView
  22.            android:id="@+id/dos"
  23.            android:layout_width="fill_parent"
  24.            android:layout_height="fill_parent"
  25.            android:layout_weight="1"
  26.  
  27.            android:text="X"
  28.            android:textSize="35sp"
  29.            android:textColor="#000000"
  30.  
  31.            android:padding="25dp"
  32.            android:gravity="center"
  33.            android:background="#FF00FF"
  34.            />
  35.        <TextView
  36.            android:id="@+id/tres"
  37.            android:layout_width="fill_parent"
  38.            android:layout_height="fill_parent"
  39.            android:layout_weight="1"
  40.  
  41.            android:text="X"
  42.            android:textSize="35sp"
  43.            android:textColor="#000000"
  44.  
  45.            android:padding="25dp"
  46.            android:gravity="center"
  47.            android:background="#F78181"
  48.            />
  49. </TableRow>
  50.  
2  Foros Generales / Dudas Generales / Automatizar "tareas" en la web parte 2 en: 19 Enero 2018, 11:05 am
Buenas a todos!!

Hace poco tenia la siguiente cuestión:
https://foro.elhacker.net/dudas_generales/automatizar_tareas_en_la_web-t479005.0.html

Gracias a su apoyo he tenido un gran avance pero tengo una duda que no he encontrado como resolverla...

Antes que nada he hecho un formulario, el cual consta de 4 campos:
*ID
*Fecha de nacimiento

Cuando el usuario ingresa la información correcta (Id = A5 Dia = 1 Mes = 2 año = 3) en un nueva pagina se le da el mensaje de bienvenida, de lo contrario se abre una nueva pagina con el mensaje sigue intentando.

El problema es que supongamos el usuario olvida su contraseña y no hay otra manera de obtenerla mas que usando la bruta, el sabe que el ID solo consta de una letra mayúscula del alfabeto ingles y un numero, es decir el total de combinaciones posibles seria:
26 * 10 * 5 * 5 * 5 = 32500

Notar que la ID en este caso consta de una letra mayúscula del alfabeto ingles y un numero, los demás datos (día, mes, año) están limitados a 5 valores.

Intentar manualmente esas 32,500 combinaciones seria prácticamente imposible...

Encontré la manera de acceder desde el DOM a los campos del formulario:

document.getElementsByTagName("form")[0].ID.value
document.getElementsByTagName("form")[0].dia.value
document.getElementsByTagName("form")[0].mes.value
document.getElementsByTagName("form")[0].año.value
document.getElementById("Enviar").click()


Mi pregunta es la siguiente:

Como puedo intentar todas las posibles combinaciones hasta que ingrese los datos correctos, es decir, hasta que el formulario me envié a la pagina de bienvenido?

Mi idea es la siguiente (pero no se como llevarla acabo):

A cada campo del formulario le asigno el valor de una posible combinación, por ejemplo:

document.getElementsByTagName("form")[0].ID.value = "A1"
document.getElementsByTagName("form")[0].dia.value = "1"
document.getElementsByTagName("form")[0].mes.value = "1"
document.getElementsByTagName("form")[0].año.value = "1"
document.getElementById("Enviar").click()

Y después encuentro la manera de pegar ese código en la consola (cuando damos inspeccionar pagina) y si me da el mensaje de bienvenida pues excelente, allí paro, sino seguir intentado las demás combinaciones...

Dejo el código del formulario en HTML Y javascript y el generador de combinaciones en lenguaje C++

Código
  1. <html>
  2.  
  3. <head>
  4. <title>"Example 1"</title>
  5. </head>
  6.  
  7. <body>
  8.  
  9. <h1>Formulario</h1>
  10. <br/>
  11.  
  12. <form target = "_blank" action = ""  method = "POST">
  13.  
  14. <input type = "text" id = "ID", name = "ID" placeholder = "Introduce tu ID aqui">
  15. <select id = "dia" name = "dia">
  16. <option value = "0">Selecciona el Dia</option>
  17. <option value = "1">01</option>
  18. <option value = "2">02</option>
  19. <option value = "3">03</option>
  20. <option value = "4">04</option>
  21. <option value = "5">05</option>
  22. </select>
  23. <select id = "mes" name = "mes">
  24. <option value = "0">Selecciona el Mes</option>
  25. <option value = "1">01 Enero</option>
  26. <option value = "2">02 Febrero</option>
  27. <option value = "3">03 Marzo</option>
  28. <option value = "4">04 Abril</option>
  29. <option value = "5">05 Mayo</option>
  30. </select>
  31. <select id = "año" name = "año">
  32. <option value = "0">Selecciona el año</option>
  33. <option value = "1">2001</option>
  34. <option value = "2">2002</option>
  35. <option value = "3">2003</option>
  36. <option value = "4">2004</option>
  37. <option value = "5">2005</option>
  38. </select>
  39. <br/>
  40. <br/>
  41. <input type = "submit" id = "Enviar" name = "Enviar" value = "Enviar" onclick = "Evaluar()">
  42.  
  43. </form>
  44.  
  45. <script>
  46. function Evaluar(){
  47. var ID = document.getElementById("ID").value,
  48. Dia = document.getElementById("dia").value,
  49. Mes = document.getElementById("mes").value,
  50. año = document.getElementById("año").value;
  51. if(ID === "A5" && Dia === "1" && Mes === "2" && año === "3")
  52. document.write("Bienvenido");
  53. else
  54. document.write("Sigue intentado");
  55. }
  56. </script>
  57. </body>
  58. </html>
  59.  

Código
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector<string>Combinacion;
  5.  
  6. void genera_combinaciones(){
  7.    for(char i = 'A'; i <= 'Z'; i++)
  8.        for(char j = '0'; j <= '9'; j++){
  9.            string cad = "";
  10.            cad.push_back(i);
  11.            cad.push_back(j);
  12.            Combinacion.push_back(cad);
  13.        }
  14. }
  15.  
  16. int main(){
  17.    ofstream File("Combinaciones.txt");
  18.    int t = 0;
  19.    genera_combinaciones();
  20.    for(int i = 0; i < Combinacion.size(); i++)
  21.        for(int dia = 1; dia <= 5; dia++)
  22.            for(int mes = 1; mes <= 5; mes++)
  23.                for(int año = 1; año <= 5; año++)
  24.                    File<<Combinacion[i]<<" "<<dia<<" "<<mes<<" "<<año<<"\n", t++;
  25.    File<<"Total de combinaciones: "<<t;
  26.    File.close();
  27. }
  28.  
Gracias por tu atencion :rolleyes:
3  Foros Generales / Dudas Generales / Re: Automatizar "tareas" en la web en: 11 Enero 2018, 01:40 am
Muchas gracias "engel lex"!!
4  Foros Generales / Dudas Generales / Re: Automatizar "tareas" en la web en: 11 Enero 2018, 01:26 am
Gracias por responder  ;-), la verdad no entiendo mucho de lo que me dices (dado que nunca he programado en js y html, y en general nunca he estudiado este campo de la informática) y ese termino de ajax tampoco lo había escuchado antes  :-\.
Que me recomiendas aprender entonces? (Si tienes algún material que me ayude a profundizar en esto seria muy gratificante)
5  Foros Generales / Dudas Generales / Automatizar "tareas" en la web en: 11 Enero 2018, 01:10 am
Buenas a todos!
Desde hacer tiempo que en mi colegio (cursando la preparatoria) suben las calificaciones en una plataforma en donde cada estudiante se le asigna una clave, ya con esta ingresas tu fecha de nacimiento y puedes entrar a tu cuenta para ver tu perfil.

Le pedí a varios amigos su clave y me doy cuenta que de 9 caracteres  los primeros 6 son los mismos, y los tres últimos (que son solo números) es lo que cambia.

Afortunadamente tengo fuertes conocimientos en algoritmos (y solo conozco el lenguaje C/C++), puedo obtener todas las combinaciones posibles, pero mi problema es:

Como lleno cada campo de la plataforma automáticamente?

Es decir, en vez de yo usuario copiar y pegar cada combinación (poner la clave, y fecha de nacimiento) en su campo correspondiente me gustaría hacer esto de manera automática

Si pudieran indicarme que aprender para hacer esto (realizar tareas iterativas automáticamente) o compartirme algún pdf relacionado estaría genial!
Cualquier información sirve, gracias por su atención!
6  Programación / Programación C/C++ / Re: Uso de la estructura Pair en C++ en: 26 Julio 2017, 19:30 pm
Mira lo que pasa es que estoy intentado resolver un problema tipo laberinto, en el cual quiero conocer en cada estado:
*la distancia recorrida,
*mi posición
*la posición del otro objeto
y como sabrás en este tipo de problema piden el camino mas corto, entonces lo que hago es poner así la estructura:
d, x, y, x2, y2
donde d =  distancia recorrida hasta ese momento, y como el set ordena de menor a mayor cumple la función que deseo.
Y en cuanto eso de que no permiten repeticiones no importa, pues tengo una matriz de casillas visitadas.

Mi pregunta inicial era como acceder a todos los elementos cuando uso 4 Pairs anidados?
(En base a este codigo que habia mostrado
Código
  1. #define Estado pair<int, pair<int, pair<int, pair<int, int> > > >
  2. set<Estado>Cola;
)
Por cierto, buen Blog!! :-*
7  Programación / Programación C/C++ / Re: Uso de la estructura Pair en C++ en: 26 Julio 2017, 19:08 pm
Gracias por responder :laugh:, uso la estructura set, para evitar implementar una cola de prioridad con MIN. y pues como bien comentas los ordena de menor a mayor, ademas existe la priority_queue de la stl, pero este set me va mejor en rendimiento.
 
8  Programación / Programación C/C++ / Re: Ayuda programa de BINGO en C en: 26 Julio 2017, 09:50 am
Quiza no responda tu pregunta pero te daré una recomendación, ¿Porque no generas una cédula aleatoria?

Motivos:

*Evitas que el usuario se desgaste pensando en ello
*Te evitaras menos lineas de codigo

Una forma de hacerlo es usando la funcion rand(), o bien en base a los nombres (ya que son unicos) puedes concatenar, por ejemplo:
"Enrique Peña Nieto" -> EnPeNi
9  Programación / Programación C/C++ / Uso de la estructura Pair en C++ en: 26 Julio 2017, 09:44 am
Hola a todos!
Quiero hacer una cola que guarde cinco valores y para ello estoy usando la estructura PAIR de c++, el problema esta en como acceder a estos elementos.

El codigo de abajo muestra como defino el estado y la cola de este tipo
Código
  1. #define Estado pair<int, pair<int, pair<int, pair<int, int> > > >
  2. set<Estado>Cola;

Por ejemplo, se que para acceder al primer elemento es:
Código
  1. int a = (*Cola.begin()).first;

Para el segundo elemento es:
Código
  1. int a = (*Cola.begin()).second.first;

Podrias ayudarme por favor?
10  Programación / Programación C/C++ / Problema de Backtracking (recursion) en: 6 Julio 2017, 08:17 am
Hola que tal, ando intentando un problema de un juez en linea https://omegaup.com/arena/problem/decepcion#problems

Dado un entero n, se forma una fila de n torres con alturas desde 1 hasta n centímetros, ninguna altura aparece más de una vez. Se quieren conocer todas las permutaciones de esta fila tal que viendo la fila de frente solo se vean F torres diferentes y vista por detrás solo se vean B torres. Se dice que podemos ver una torre con altura H si no hay otra torre delante de ella (con respecto a nuestra visión) con altura mayor a H.

Entrada

Tres enteros separados por espacios: n, F y B.

Salida

Un entero que representa el número de permutaciones que cumplen con las condiciones establecidas.

Ejemplo

4 2 3
3
Las tres permutaciones posibles son:
Frente → 2 4 3 1
Frente → 1 4 3 2
Frente → 3 4 2 1

Límites

1≤n,F,B≤13


En el cual tengo una respuesta que me da 55 puntos, me da tiempo limite excedido
Podrias darme una ayuda?
Por ejemplo alguna poda o mucho mejor alguna pagina donde expliquen temas de este tipo
, etc..., todo es bueno.
Bueno y pues lo que hago es literal hacer lo que pide el problema, no tengo ninguna poda
(en un principio pense que el numero mayor seria un numero fijo, si viste en el ejemplo viene:

4 2 3
3
Las tres permutaciones posibles son:
Frente → 2 4 3 1
Frente → 1 4 3 2
Frente → 3 4 2 1

pero si pongo este otro caso ya no es factible

5 3 2

unas permutaciones posibles son:

12534

13254

)
Código
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool visitado[15];
  5. string cad[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", ":",";", "<", "="};//si checas el codigo ascii despues del 9 sigue el ":" y luego el ";", etc..., es decir, que poner ":" es como poner 10, etc.
  6.  
  7. int n, x, y, C;//C = contador = permutaciones validas
  8.  
  9. bool esValido_izq(string tmp){
  10.    int a = 1, mayor = tmp[0];
  11.    for(int i = 1; i < n; i++)
  12.        if(tmp[i] > mayor)
  13.            mayor = tmp[i], a++;
  14.    return (a == x);
  15. }
  16.  
  17. bool esValido_der(string tmp){
  18.    reverse(tmp.begin(), tmp.end());
  19.    int a = 1, mayor = tmp[0];
  20.    for(int i = 1; i < n; i++)
  21.        if(tmp[i] > mayor)
  22.            mayor = tmp[i], a++;
  23.    return (a == y);
  24. }
  25.  
  26. void permutar(string tmp = ""){
  27. if(tmp.size() == n){
  28.        if(esValido_izq(tmp) && esValido_der(tmp)){
  29.            C++;
  30.            //cout<<"\n"<<tmp<<"\n"; //descomentar para ver las permutaciones validas
  31.        }
  32.        return;
  33. }
  34. for(int i = 0; i < n; i++)
  35. if(!visitado[i]){
  36. visitado[i] = true;
  37. permutar(tmp + cad[i]);
  38. visitado[i] = false;
  39. }
  40. }
  41.  
  42. int main(){
  43.    cin>>n>>x>>y;
  44.    permutar();
  45.    cout<<C;
  46. }
  47.  
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines