quinta-feira, 15 de janeiro de 2015

Aula 3–Operações Matemáticas–Parte 1

 

Olá pessoal, hoje vamos aprender a executar as quatro operações básicas em Autolisp, apesar de ser de fácil entendimento o mesmo não ocorre para se acostumar a executar essas operações da forma que o Autolisp as interpreta.

Para se usar as quatro operações básicas fazemos uso dos seguintes operadorres em Autolisp:

+ = Soma

- = Subtração

* = Multiplicação

/ = Divisão

Quando vamos executar uma conta básica 2 + 2 colocamos o operador matemático no centro, em Autolisp o operador matemático deve vir sempre a frente.

Exemplos:

(+ 2 2) = 4

(- 10 5) = 5

(* 2 3) = 6

(/ 100 25) = 4

Fácil né, a única mudança por enquanto foi mudar a posição do sinal, vamos ver então mais alguns exemplos e mostrar algumas coisas diferentes.

Exemplos:

(+ 2 3 4 5) = 14

(- 10 3 2) = 5

(* 2 3 5) =30

(/ 100 2 5) = 10

Executamos as contas acima utilizando somente um operador, a conta é sempre executada começando pelo numero que estiver mais a esquerda no exemplo de subtração o Autolisp fara 10 – 3 que resultara em 7 e depois 7 – 2 que resultara em 5, na divisão ele fara 100 / 2 que resultara 50  e depois 50 / 5 que resultara em 10.

Tudo muito simples , porem temos que tomar cuidado quando o assunto é a divisão, se você tentar executar a seguinte conta no Autocad recebera um valor que não condiz com a verdade, veja o exemplo abaixo:

(/ 10 4) = 2

Veja que o resultado será 2 enquanto o resultado correto deveria ser 2.5, isso acontece porque estamos executando uma operação matemática com dois números inteiro e o autolisp devolve o valor inteiro mais próximo do resultado real, para executar essa mesma conta e receber o valor correto deve ter no mínimo um valor decimal, veja o exemplo abaixo:

(/ 10 2.0) = 2.5

Agora temos o numero inteiro 10 e o numero decimal 2.0 assim teremos como resultado o valor 2.5.

Executando expressões matemáticas

Vamos relembrar como resolvemos uma expressão matemática.

{ 10 x [ (10 + 10 ) – ( 20 – 15 ) ] }

Abaixo segue passo a passo como resolvemos normalmente essa equação da maneira convencional:

1) Calculamos o que esta dentro dos parênteses.

{ 10 x [ (10 + 10 )( 20 – 15 ) ] }

{ 10 x [ 20 – 5 ] }

2) Agora o que esta dentro dos colchetes.

{ 10 x [ 20 – 5 ] }

{ 10 x 15 }

3) Por ultimo o que esta dentro das chaves.

{ 10 x 15 }

= 150

Pronto, resolvemos facilmente usando as regras matemáticas aprendidas na escola, primeiro resolvemos o que esta nos parênteses, depois colchetes e por ultimo chaves. Em Autolisp a regra é basicamente a mesma, porem com a diferente que somente usaremos parênteses.

Para determinar qual expressão será executada primeiro o Autolisp calcula sempre quem estiver na parte mais interna da equação primeiro.

Abaixo veja como fica o exemplo citado acima só que em Autolisp:

(* 10 ( - (+ 10 10) (- 20 15) ))

Agora o programa vai interpretar primeiros parênteses que estiverem na parte mais internet da equação.

Veja como o Autolisp executa essa conta internamente:

1) Resolve os parênteses mais internos.

(* 10 ( - (+ 10 10) (- 20 15) ))

(* 10 (- 20 5))

2) Continua resolvendo os parênteses mais internos.

(* 10 (- 20 5) )

(* 10 15)

3) Finaliza a conta executando a ultima operação.

(* 10 15)

= 150

Fazer contas utilizando as variáveis

Na aula passada aprendemos como armazenar um valor em um variável, agora vamos juntar os dois conhecimentos para começar a dar forma a nossa programação.

Vou criar 3 variáveis, altura, largura e comprimento e vou fornecer a elas alguns valores:

(setq altura 2.35)

(setq largura 3)

(setq comprimento 3.75)

Pronto, criamos três variáveis, agora que essas variáveis estão criadas posso usa-lãs para fazer a expressão matemática desejada.

1) vamos somar as variáveis altura e largura.

(+ altura largura)

2) Agora vamos multiplicar a variável comprimento e largura.

(* comprimento largura)

Se você criar as variáveis na linha de comando do autocad e em seguida tentar executar essas contas recebera os seguintes resultados:

(+ altura largura) = 5.35

(* comprimento largura) =  11.25

O que fizemos foi apenas substituir o numero pelo nome da variável que contem esse valor numérico.

Podemos também armazenar o valor de uma expressão matemática em uma variável, veja abaixo como fazer isso.

(setq soma (+ altura largura))

Vamos tentar entender melhor o que foi feito acima.

(setq soma (+ altura largura))

Vamos analisar a linha de programação acima:

1) Os parênteses que estão em azul pertencem ao comando SETQ.

2) Os parênteses em estão em vermelho são da expressão matemática que executara um soma (+).

Ou seja a variável soma recebera o valor da soma da altura mais a largura, é a mesma que se interpretarmos essa minha de comando passo a passo trocando as variáveis por numero, veja:

(setq soma (+ altura largura))

(setq soma (+ 2.35 3))

(setq soma 5.35)

É dessa forma que o autolisp vai interpretar essa função, ele vai fazer a conta em seguida armazenar o valor do calculo na variável soma.

Pessoal essa foi a nossa terceira aula sobre operações matemáticas, ainda vamos ter mais uma aula sobre esse assunto.

Abaixo seguem uma serie de exercícios.

Assista tambem essa videoaula do nosso canal manual de cad.

Sergio Fernandes

Manual de Cad

Exercícios

1) Converta os equações abaixo para Autolisp

a) [(5+5)/(4+1)] x 2

b) {2 x [(400/200)+(2 x 2)]}

C) 2 x 2 x 3 x 4

d) [( 5 + 3 ) × 12 ] ÷ ([( 5 – 3 ) × 4 ]

e) 25-[10+(7-4)]                       

f) 32+[10-(9-4)+8]                     

g) 45-[12-4+(2+1)]                  

h) 70-{20-[10-(5-1)]}            

i) 28+{13-[6-(4+1)+2]-1}        

j) 53-{20-[30-(15-1+6)+2]}                   

k) 62-{16-[7-(6-4)+1]}            

l) 20-{8+[3+(8-5)-1]+6}             

m) 15+{25-[2-(8-6)]+2}

n) 56-[3+(8-2)+(51-10)-(7-2)]

2)Usando o exercicio acima de crie um nome de variável para cada numero existente em uma equação em seguida e as converta pra o formato Autolisp, Exemplo:      

a) [(5+5)/(4+1)] x 2

(setq num1 5)

(setq num2 4)

(setq num3 1)

(Setq num4 2)

(setq Total (* 2 (/ (+ num1 num1) (+ num2 num3)))

 

 

2 comentários:

  1. Olá.

    Eu gostaria de saber como é possível eu salvar os programas que estou criando?

    Os comando, as variáveis, as operações, para usar futuramente.

    ResponderExcluir
    Respostas
    1. A aula dois ofereceu me está resposta.

      Uma coisa importante, o valor da variável somente fica armazenada no desenho em que ela foi criada, caso você tenha vários desenhos abertos a variável somente poderá ser consultada no desenho em que foi aberta, se tentar consultar seu valor em um outro desenho o mesmo retornara o valor nil.

      Outra coisa importante é que a variável somente é valida enquanto o desenho estiver aberto se o mesmo for fechado e aberto novamente todas as variáveis criadas serão eliminadas.

      Excluir