-
Notifications
You must be signed in to change notification settings - Fork 0
/
pruebaExpresionR.cpp
125 lines (111 loc) · 3.87 KB
/
pruebaExpresionR.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include "expresionR.h"
#include "string.h"
int mainPruebaexpresionR()
{
//Creo una nueva expresionR
printf("\n\n************************Creo la expresionR************************\n");
expresionR e;
expresionR e1;
identificador ident;
tipoExpresion tExp;
arbolExpre a;
crearArbol(a);
for(int i=0; i<2; i++)
{
switch (i)
{
case 0:
printf("\n1- Creo expresionR1 con el identificador e1 y con un arbol que contiene una variable\n");
ident.id='e';
ident.posicion=1;
crearTipoExpresionVariable('x',tExp);
cargarArbolAtomico(a,tExp);
cargarExpresionR(ident,a,e);
mostrarExpresionR(e ,TRUE);
break;
case 1:
printf("\n2- Creo expresionR1 con el identificador e1 y con un arbol que contiene un numero\n");
ident.id='e';
ident.posicion=2;
crearTipoExpresionNumero(2,tExp);
cargarArbolAtomico(a,tExp);
cargarExpresionR(ident,a,e1);
mostrarExpresionR(e1,TRUE);
break;
}
}
//Obtengo identificador de la expsionR
printf("\n\n************************Obtengo identificador de expresionR************************\n");
for(int i=0; i<2; i++)
{
switch (i)
{
case 0:
printf("\n1-Prueba Obtengo el identificador de la expresion: ");
mostrarExpresionR(e,TRUE);
printf("\nEl identificador es: %c%d",obtengoID(obtenerIdentificador(e)),obtengoPosicion(obtenerIdentificador(e)));
break;
case 1:
printf("\n2-Prueba Obtengo el identificador de la expresion: ");
mostrarExpresionR(e1,TRUE);
printf("\nEl identificador es: %c%d",obtengoID(obtenerIdentificador(e1)),obtengoPosicion(obtenerIdentificador(e1)));
break;
}
}
//Obtener el árbol de la expresión
printf("\n\n************************Obtengo de la expresionR************************\n");
printf("\n1-Prueba Obtengo el arbol de la expresion: ");
mostrarExpresionR(e,TRUE);
printf("\nEl arbol es: ");
mostrarArbol(obtenerArbol(e));
//Borra la expresiónR
printf("\n\n************************Borro el arbol de la expresionR************************\n");
printf("\n1-Prueba borro el siguiente arbol:");
mostrarArbol(obtenerArbol(e));
printf("\nDe la expresion: ");
mostrarExpresionR(e,TRUE);
borrarExpR(e);
if(arbolVacio(obtenerArbol(e)))
printf("\nEl arbol se borro correctamente");
else
printf("\nEl arbol todavia existe");
//Bajar expresionR a archivo
printf("\n\n************************Bajo la expresionR a archivo************************\n");
tipoExpresion tip;
crearTipoExpresionNumero(99,tip);
identificador elIdent;
elIdent.id='e';
elIdent.posicion=99;
arbolExpre arbol2;
crearArbol(arbol2);
cargarArbolAtomico(arbol2,tip);
int numero=0;
numerarNodos(arbol2,numero);
expresionR laExpre1;
cargarExpresionR(elIdent,arbol2,laExpre1);
printf("\n1-Bajo de la siguiente expresion: ");
mostrarExpresionR(laExpre1,TRUE);
printf("\nEl siguiente arbol: ");
mostrarArbol(obtenerArbol(laExpre1));
string nombre = "pruebaExpresionR.dat";
FILE * f=fopen (nombre,"wb");
bajarExpR(laExpre1,f);
fclose(f);
//Subir expresionR a archivo
printf("\n\n************************Subir la expresionR desde archivo************************\n");
expresionR loadE;
FILE * g=fopen (nombre,"rb");
identificador newI;
crearIdent('e',10,newI);
arbolExpre newA;
crearArbol(newA);
subirExpR(g,newA);
fclose(g);
loadE.ident=newI;
loadE.expresion=newA;
printf("\nLa expresion es la siguiente: ");
mostrarExpresionR(loadE,TRUE);
printf("\nEl arbol:");
mostrarArbol(obtenerArbol(loadE));
return 1;
}