Visual Basic em Português

Página pessoal de Jorge Paulino sobre o Visual Basic (VB.NET, ASP.NET, VB6, VBA) e algumas noticias de tecnologia

VB.NET: Calculando Expressões Matemáticas

Existem algumas formas de calcular expressões matemáticas, mas na maioria delas, é necessário efectuar uma série de validações, como propriedades distributivas, funções trigonométricas, etc., e a utilização de um grande número de linhas de código.

Uma forma simples de calcular uma expressão matemática, através de uma string, é usando o Microsoft Script Control, um controlo ActiveX normalmente disponível no sistema operativo, e já com alguns anos, mas que ainda pode ajudar bastante na simplificação do código.

Para utilizar este controlo, é apenas necessário adicionar uma referência ao Microsoft Script Control 1.0, no separador COM.

Depois no código é apenas necessário:

Dim ScriptEngine As New MSScriptControl.ScriptControl
ScriptEngine.Language = "VBScript"

Dim expression As String = "(10 + 154) * 300 / (40 - 4)^2"

Dim result As String = ScriptEngine.Eval(expression)
Debug.Writeline(result)

Isto irá mostrar o resultado da expressão, que neste caso é 37,962962962963

Mas podem-se usar expressões mais complexas, com funções trigonométricas incluídas. Como exemplo (expressão sem sentido):

Dim expression As String = "sin(30)*cos(9)/tan(4)*2"

Este controlo permite também efectuar outras operações, como por exemplo:

Dim msg As String = "Msgbox(""Isto é um teste ..."")"
ScriptEngine.ExecuteStatement(msg)

Mas para mais informação sobre elas, deixo aqui este link, entre muitos outros disponíveis: How To Call Functions Using the Script Control


PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!

3 comentários:

Jóni disse...

HELP!
tenho uma aplicação feita em vb.net, e gosta que no inicio da aplicação verificar se há updates. isto tudo localmente....... sem usar clickonce.....

jpaulino disse...

Olá,

Algum problema em usar o ClickOnce ? O ClickOnce pode não ser usado pelo metodo tradicional, mas sim através das API's que disponibiliza.

No entanto tenho um artigo que mostra como fazer a actualização automática: http://vbtuga.blogspot.com/2008/03/vbnet-actualizaes-automticas-da-aplicao.html

Espero que ajude!

Jóni disse...

sim eu vi esse post. mas nesse post vai buscar á internet (ftp) a actualização e eu queria localmente.

a minha aplicação foi feita com o setup and development

Mensagens Recentes



Microsoft Office Especialist

Membro da Comunidade
Experts-Exchange


Administ. da Comunidade
Portugal-a-Programar



Twitter

Artigos no CodeProject

Artigos no CodeProject

Subscrever Novidades

Endereço de Email:

Delivered by FeedBurner

Seguidores

Histórico