Identificar Linguagem

7 respostas
W

Alguem poderia me ajudar a identificar que linguagem é essa?
E se alguem poderia me ajudar a converter para Java?
Esses códigos estão sendo propostos para validar uma expressão matemática através de uma pilha.

clas s Item { public : Apontador abaixo ; char conteudo ; } ; / Item / typedef struct Item Apontador ;

clas s TExp { public : Apontador base, topo; EApontador anterior ; intresultado; //Basicas voidfazExpVazia (void); intvazia (void); voidempilha (char); chardesempilha (void); void imprime (void); //Programa int leExp (char, int); void viraPilha (void); void converte (void); double resolve (void); } ; / TExp / typedef struct TExp EApontador ;

void TExp: : empilha (char registro){ Apontador item; item = (Apontador) malloc (sizeof (Item)); item>conteudo = registro; item>abaixo = topo>abaixo; topo��>abaixo = item; } / empi lha / char TExp : : desempilha() { if (!vazia()) { Apontador aux = topo>abaixo; topo��>abaixo = aux>abaixo; return aux>conteudo ; } /i f/ } /desempi lha/

int eOperador (char c){ if (c=='+'|| c=='-'||c=='*'||c=='/'||c=='$') return 1; return 0; } / eOperador / int eNumero (char c){ if (c=='0'||c=='1'||c=='2'||c=='3'||c=='4'||c== '5'||c=='6'||c=='7'||c=='8'||c=='9') return 1; return 0; } / eNumero / int abreParenteses (char c) { if (c=='(') return 1; return 0; } / ab r ePar ent e s e s / int f e chaPa r ent e s e s ( char c ) { if (c==')') return 1 ; return 0; } / f e c h aPa r ent e s e s / int qualNumero ( char c ) { if ( c == '0' ) return 0 ; if ( c == '1' ) return 1 ; if ( c == '2' ) return 2 ; if ( c == '3' ) return 3 ; if ( c == '4' ) return 4 ; if ( c == '5' ) return 5 ; if ( c == '6' ) return 6 ; if ( c == '7' ) return 7 ; if ( c == '8' ) return 8 ; if ( c == '9' ) return 9 ; } / qualNumero / int pesoOp ( char op ) { if ( op == '$' ) return 2 ; if ( op == '*' | | op == '/' ) return 1 ; if ( op == '+' | | op == '-' ) return 0 ; } / pesoOp / int peso ( char op1 , char op2 ) { int P1 , P2 ; P1 = pesoOp ( op1 ) ; P2 = pesoOp ( op2 ) ; if ( P1 > P2 ) return 2 ; if ( P1 == P2 ) return 1 ; if ( P1 < P2 ) return 0 ; } / peso /

int TExp : : leExp ( char exp ) { leExp ( exp , 0 ) } / leExp / int TExp : : leExp ( char exp , int iterador) { if ( validaExp ( exp ) ) { int i = iterador; TExp aux ; aux . fazExpVazia ( ) ; do{ if (abreParenteses (exp[i])) { TExp Parenteses; Parenteses.fazExpVazia ( ) ; Parenteses.anterior = this ; i++; i = Parenteses.leExp( exp , i ) ; } else if (eNumero ( exp [ i ] ) ) { empilha( exp [ i ] ) ; i++; } else if (eOperador ( exp [ i ] ) ) { if (aux . va z i a ()) { aux.empilha (exp[i]) ; i++; } else if (peso (aux.topo&#56256;&#56320;>abaixo&#56256;&#56320;>conteudo, exp[i]) == 2 ) { while (!aux.vazia()) { empilha (aux.desempilha()) ; } aux.empilha(exp[i]); i++; } else if (peso(aux.topo&#56256;&#56320;>abaixo&#56256;&#56320;>conteudo, exp[i]) == 1 ) { aux.empilha (exp[i]); i++; } else if (peso(aux.topo&#56256;&#56320;>abaixo&#56256;&#56320;>conteudo, exp[i] )==0){ aux.empilha(exp[i]) ; i++; } } else if(fechaParenteses (exp[i])) { while (!aux.vazia()) { empilha (aux.desempilha()); } if (anterior!=NULL) { viraPilha(); while (topo&#56256;&#56320;>abaixo!=base) { anterior&#56256;&#56320;>empilha (desempilha()) ; } i++; return i ; } } else if (exp[i]=='\0') { while(!aux.vazia()) { empilha(aux.desempilha()); } return 1; } } while(exp[i]!='\0'); while(!aux.vazia()) { empilha(aux.desempilha()); } } else printf("Expressão inválida"); }

7 Respostas

henriqueluz

acho que c++.

Andre_Rosa

Parece ser C++ mesmo.

E

É C++, mas você copiou isso a partir de um PDF, portanto um monte de coisas está com problemas de espaçamento ou com símbolos errados. Imprima isso em um papel e tente entender, não é muito diferente do Java, vai ser fácil você converter para Java mesmo sem saber muito C++.

W
entanglement:
É C++, mas você copiou isso a partir de um PDF, portanto um monte de coisas está com problemas de espaçamento ou com símbolos errados. Imprima isso em um papel e tente entender, não é muito diferente do Java, vai ser fácil você converter para Java mesmo sem saber muito C++.
Realmente foi copiado de um PDF, mas poderiam me ajudar a converter isso em java? Caso alguem queira me ajudar vamos por partes:
class Item {
	public:
		Apontador abaixo;
char conteudo;
}; /*Item*/

typedef struct Item *Apontador*

Na a postila tem essa descrição:
A estrutura de um Item é bem simples, ele tem um Apontador, que é um ponteiro para Item, para baixo e um char que irá guardar o conteúdo deste item de nossa expressão.
Logo temos a estrutura de uma expressão propriamente dita, que seria a implementação de uma pilha, com as funções normais de manipulação de pilha, e alguns para
manipulação de nossa expressão:

Como ficaria esse código em Java?

W

Como ficaria essa parte do código em java?

Apontador abaixo; typedef struct Item *Apontador*

E

É por isso que não dá para fazer uma “tradução direta” de C++ para Java. Você já ouviu falar de ponteiros?

ruben_m

isso é C++

Como disse o colega aqui Java não tem ponteiros… para fazer uma tradução do programa precisamos saber qual é o objectivo desse programa (Do jeito que postas te não ajuda muito) para poder ajudar;

traduzir codigo nem sempre é optimo

Criado 25 de agosto de 2011
Ultima resposta 26 de ago. de 2011
Respostas 7
Participantes 5