Jump to content
fearz7

Realizar um calculo dada uma string

Recommended Posts

fearz7

Boa noite pessoal,

Gostaria que me ajudassem com o seguinte problema?

"Dado um valor escalar $str=”120*20%” faça um programa que efectue o respectivo calculo e mostre o

resultado no ecrã. Considere a utilização de expressões regulares para qualquer transformação que seja

necessária."

Minha solução passaria por:

1-Retirar o valor da percentagem (%) da string;

2-Passar o 1º numero para uma variável;

3-Mesmo procedimento para o 2º número;

4-Verificar o operador e realizar o respectivo calculo.

Contudo não sei se esta é a abordagem correcta para resolver o problema, e se existe uma forma mais acessível de resolver o mesmo. Digam da vossa justiça.

Cumprimentos.

Share this post


Link to post
Share on other sites
Rui Carlos

O objectivo é fazer parsing dessa string, ou de uma qualquer string contendo uma expressão aritmética?

Se for só dessa string, é trivial, até porque diria que já sabes que tens uma multiplicação (da mesma forma que me pareces que estás a assumir que tens uma percentagem). Por isso, só procuraria o valor dos dois números.

Agora se for para fazer parsing de uma qualquer expressão aritmética, parece-me muito má ideia utilizar expressões regulares para tal, visto que a linguagem das expressões aritméticas não vai ser uma linguagem regular.

Share this post


Link to post
Share on other sites
fabiomiguel3

http://ideone.com/25gQnJ

Agora desenrasca-te :)

Ps: os numeros serão sempre a posição $1 e $4

Agora tens de ir buscar a posição 2 (se existir) e a 5 (se existir) e tratares.

a posição 3 é o operador

Edited by fabiomiguel3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.