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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Arboles Binarios en C(Construcción Re cursiva) en: 30 Mayo 2018, 00:31 am
HOLA AMIGOS, HACE UNOS DIAS SUBI MI PROBLEMA DE ARBOLES BINARIOS, PERO CREO QUE NO PUDE EXPLICARME BIEN, ESPERABA QUE ESTA VEZ ALGUIEN EN ESTE BASTO MUNDO DEL INTERWEB, PUDIERA AYUDARME, PUES ESTE EJERCICIO YA ME TIRO TODA UNA SEMANA DE TRABAJO SIN PODER RESOLVERLO. ESTE ES UN ALGORITMO ESCRITO QUE EN TEORÍA DESCRIBE COMO SERA LA FUNCIÓN QUE HAGA LA CONSTRUCCIÓN(NO BÚSQUEDA, NI IMPRESIÓN...ETC), SINO CONSTRUCCIÓN DE UN ÁRBOL DE EXPRESIONES
https://ibb.co/fFOsvy


ESPERO ALGUIEN ME PUEDA AYUDAR


PDT, YA ESCRIBI CODIGO, PERO SE ME DETIENE, EL PROGRAMA O SI MODIIFCO NO ME IMPRIME BIEN EL ARBOL

2  Programación / Programación C/C++ / Árbol de Expresiones en C en: 28 Mayo 2018, 19:47 pm
HOLA A TODOS ESOS BUENOS PROGRAMERS, hoy tengo una super urgencia, estoy construyendo un arbol de expresiones: (a+b) * c, algo parecido a lo anterior, pero ya llegue a un punto de inflexion, pues estoy siguiendo unos pasos que encontre en un libro, pero sigo sin entender como contruir ese arbol, mientras ocupo una pila y vaya guardando los nodos actuales que es en donde ire poniendo los operadores, pero la parte recursiva no la entiendo bien..... ayuda porfa vor
 


Código
  1. void giveMeExpression(char * input)
  2. {
  3. printf(">>> ");
  4. fflush(stdin);
  5. fgets(input,50,stdin);
  6. }
  7.  
  8. int haveARigth(ArbolBinario a)
  9. {
  10. return a->der == NULL;
  11. }
  12.  
  13. int haveALeft(ArbolBinario a)
  14. {
  15. return a->izq == NULL;
  16. }
  17.  
  18. int isOperator(char input)
  19. {
  20. char operators [] = "+-*/^%";
  21. int i;
  22. for(i = 0 ; i< strlen(operators) ; i++)
  23. {
  24. if (operators[i] == input)
  25. return 1;
  26. }
  27. return 0;
  28. }
  29.  
  30. void assignASon(ArbolBinario boy, ArbolBinario father)
  31. {
  32. if ( haveALeft(father))///si el padre no tiene izq, se le asigna.
  33. {
  34. /* code */
  35. father->izq = boy;
  36. }
  37. else
  38. {
  39. if ( haveARigth(father))///si el padre no tiene der, se le asigna.
  40. {
  41. /* code */
  42. father->der = boy;
  43. }
  44. }
  45. }
  46.  
  47. ArbolBinario creatNodeCurrent(Pila *p, int first, ArbolBinario currentNode)
  48. {
  49. ArbolBinario a;
  50. a = creaNodo('\0');
  51. if (first != 0)
  52. assignASon(a,currentNode);
  53. push(p,a);
  54. return a;
  55. }
  56.  
  57. int itIsParentheses(char  *input, int pos)
  58. {
  59. if( input[pos] == '(' )
  60. return 1;
  61. else
  62. return 0;
  63. }
  64.  
  65. ArbolBinario createArbol(char * input, Pila *p, int pos, ArbolBinario raiz, int primerParentesis)
  66. {
  67. ArbolBinario currentNode  = NULL;
  68. if(pos > strlen(input) - 1)
  69. {
  70. printf("no entra y se sale\n");
  71. printf("\ncurrentNode en funcion es: %p\n",currentNode );
  72. return raiz;
  73. }
  74. else
  75. {
  76. if (  itIsParentheses(input,pos) == 1 && primerParentesis == 0) // si es 1, entonces no sera el primer parentesis
  77. {
  78. /* code */
  79. raiz = creaNodo('\0');
  80. currentNode = raiz;
  81. push(p,currentNode);
  82. pos++;
  83. primerParentesis = 1;
  84. //currentNode->elemento = input[pos];
  85. //printf("\nnuevo Nodo: %p, %p\n", currentNode, raiz);
  86. printf("Entro al if 1, pos  despues : %d y currentNode es: %p\n", pos,currentNode);
  87. imprimePila(*p);
  88. return  createArbol(input,p,pos, currentNode, primerParentesis);
  89. }
  90. else
  91. {
  92. if( itIsParentheses(input,pos) == 1 )//////////caso 2
  93. {
  94. currentNode = creatNodeCurrent(p, pos,raiz);
  95. pos++;
  96. primerParentesis = 1;
  97. printf("Entro al  2if, pos  despues : %d y currentNode es: %p\n", pos, currentNode);
  98. return  createArbol(input,p,pos, currentNode, primerParentesis);
  99. }
  100. else
  101. {
  102. if ( isOperating(input,pos) ==1)/////////CASO 3
  103. {
  104. currentNode = creatNodeCurrent(p, pos,raiz);
  105. currentNode->elemento = input[pos] ;
  106. pos++;
  107. primerParentesis = 1;
  108. printf("Entro al 3if, pos  despues : %d, con elemento: %c y currentNode: %p\n", pos, currentNode->elemento, currentNode);
  109. imprimePila(*p);
  110. return  createArbol(input,p,pos, currentNode, primerParentesis);
  111. }
  112. else
  113. {
  114. if ( isOperator(input[pos]) == 1 )/////////CASO 4
  115. {
  116. currentNode =  pop(p);
  117. raiz->elemento = input[pos];
  118. pos++;
  119. primerParentesis = 1;
  120. printf("Entro al 4if, pos  despues : %d, con elemento: %c y current node es: %p\n", pos, currentNode->elemento, currentNode);
  121. imprimePila(*p);
  122. return  createArbol(input,p,pos, currentNode, primerParentesis);
  123. }
  124. }
  125. }
  126. }
  127. }
  128. }//////////FIN FUNCION
  129.  
  130.  
3  Programación / Programación C/C++ / Arboles Binarios en C en: 24 Mayo 2018, 00:37 am
Hola a todos, esta vez, tengo un problema muy grande, que quiero resolver.
Quiero hacer una especie de calculadora binaria, es decir,
1.-el usuario tendra la pantalla de ejecucion, y aparecera algo asi:


>>>

(Como en python), y el objetivo es que pueda ingresar cosas asi

>>> a = 5
>>> b= 1
>>> a + b
>>> 6
>>> c = 0
>>> (a+b) * c
>>> 0

2.-Pero que mi problema es como implementar un árbol binario, como hacer que re aparezcan estas cosas :">>>", cada vez que el usuario quiera ingresar otros valores.

Por el momento no tengo nada, me gustaría tener su opinión y muchas ideas o propuestas concretas, se los agradecería :)
4  Programación / Programación C/C++ / LLenado De Matriz QR EN C en: 9 Diciembre 2017, 07:49 am
Hola para todos  :) :) :), hoy tengo muchas dudas y acepto respuestas,propuestas y sugerencias con mucho animo.
mi problema es el sig.
tengo que llenar ciertas partes de una matriz de 21x21 con la información en binario de los datos que ingrese el usuario por pantalla.
mi problema es que no se como hacer lo que en la sig. foto explico mejor:
http://es.zimagez.com/zimage/img201712090001.php

Ahora, en mi programa en c, ya hice la decodifican de los caracteres a decimal, y a binario; es decir, que ya tengo un array por cada carácter con unos y ceros, pero todavía, no se como pasar esa información, a la matriz, que ademas tengo que llenar en un un sentido, como tipo espiral serpiente, mas o menos de esta manera:
http://es.zimagez.com/zimage/qrcd.php

Estoy muy atorado, atareado, molesto,cansado y estezado, por favor ojala alguien me escuche, es un proyecto muy importante, de verdad les agradecería. saludos y help me!!, help me!!! :-\ :-\ :-(

MOD: No escribir todo en mayúsculas.
5  Programación / Programación C/C++ / Matrices en C con bits en: 8 Diciembre 2017, 19:34 pm
Hola a todos, me guaría saber si alguien me puede ayudar o tiene alguna idea con este problema que me surgió.

No, se como puedo tomar datos de una matriz, de tal forma que cada 8 casillas, tome otras 8...
es decir, dividir una matriz cada 8 casillas

por ejemplo:
   

 1  2  3  4  5  8  7  3
 5  6  9  7  1  1  2  4
 0  2  3  4  5  4  8  9
 4  0  0  1  6  1  0  0
 1  5  9  7  8  4  5  6
 3  1  2  3  0  4  0  0

en la matriz pasada quiero tomar 8 casillas, pero de cuatro en cuatro de forma horizontal:  algo asi

1  2  3  4
5  6  9  7
 
 y asi tomar de 8 en 8 casillas

1  2  3  4 5  8  7  3
5  6  9  7 1  1  2  4
 0  2  3  4  5  4  8  9
 4  0  0  1  6  1  0  0
 1  5  9  7  8  4  5  6
 3  1  2  3  0  4  0  0



Yo estaba intentando con un contador, que haga que cada vez que ese contador llegue a 4 y saque el modulo:  (cont%4==1) tendría que separarse en 4 bits, pero no me sale

6  Programación / Programación C/C++ / BITS en: 7 Diciembre 2017, 17:59 pm
Código
  1.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines