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ú

Temas - NericSain

#1
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
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




void giveMeExpression(char * input)
{
printf(">>> ");
fflush(stdin);
fgets(input,50,stdin);
}

int haveARigth(ArbolBinario a)
{
return a->der == NULL;
}

int haveALeft(ArbolBinario a)
{
return a->izq == NULL;
}

int isOperator(char input)
{
char operators [] = "+-*/^%";
int i;
for(i = 0 ; i< strlen(operators) ; i++)
{
if (operators[i] == input)
return 1;
}
return 0;
}

void assignASon(ArbolBinario boy, ArbolBinario father)
{
if ( haveALeft(father))///si el padre no tiene izq, se le asigna.
{
/* code */
father->izq = boy;
}
else
{
if ( haveARigth(father))///si el padre no tiene der, se le asigna.
{
/* code */
father->der = boy;
}
}
}

ArbolBinario creatNodeCurrent(Pila *p, int first, ArbolBinario currentNode)
{
ArbolBinario a;
a = creaNodo('\0');
if (first != 0)
assignASon(a,currentNode);
push(p,a);
return a;
}

int itIsParentheses(char  *input, int pos)
{
if( input[pos] == '(' )
return 1;
else
return 0;
}

ArbolBinario createArbol(char * input, Pila *p, int pos, ArbolBinario raiz, int primerParentesis)
{
ArbolBinario currentNode  = NULL;
if(pos > strlen(input) - 1)
{
printf("no entra y se sale\n");
printf("\ncurrentNode en funcion es: %p\n",currentNode );
return raiz;
}
else
{
if (  itIsParentheses(input,pos) == 1 && primerParentesis == 0) // si es 1, entonces no sera el primer parentesis
{
/* code */
raiz = creaNodo('\0');
currentNode = raiz;
push(p,currentNode);
pos++;
primerParentesis = 1;
//currentNode->elemento = input[pos];
//printf("\nnuevo Nodo: %p, %p\n", currentNode, raiz);
printf("Entro al if 1, pos  despues : %d y currentNode es: %p\n", pos,currentNode);
imprimePila(*p);
return  createArbol(input,p,pos, currentNode, primerParentesis);
}
else
{
if( itIsParentheses(input,pos) == 1 )//////////caso 2
{
currentNode = creatNodeCurrent(p, pos,raiz);
pos++;
primerParentesis = 1;
printf("Entro al  2if, pos  despues : %d y currentNode es: %p\n", pos, currentNode);
return  createArbol(input,p,pos, currentNode, primerParentesis);
}
else
{
if ( isOperating(input,pos) ==1)/////////CASO 3
{
currentNode = creatNodeCurrent(p, pos,raiz);
currentNode->elemento = input[pos] ;
pos++;
primerParentesis = 1;
printf("Entro al 3if, pos  despues : %d, con elemento: %c y currentNode: %p\n", pos, currentNode->elemento, currentNode);
imprimePila(*p);
return  createArbol(input,p,pos, currentNode, primerParentesis);
}
else
{
if ( isOperator(input[pos]) == 1 )/////////CASO 4
{
currentNode =  pop(p);
raiz->elemento = input[pos];
pos++;
primerParentesis = 1;
printf("Entro al 4if, pos  despues : %d, con elemento: %c y current node es: %p\n", pos, currentNode->elemento, currentNode);
imprimePila(*p);
return  createArbol(input,p,pos, currentNode, primerParentesis);
}
}
}
}
}
}//////////FIN FUNCION

#3
Programación C/C++ / Arboles Binarios en C
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 C/C++ / LLenado De Matriz QR EN C
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 C/C++ / Matrices en C con bits
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 C/C++ / BITS
7 Diciembre 2017, 17:59 PM