4. Operadores e Aritmética

11
4. Operadores e Aritmética

description

4. Operadores e Aritmética. +. *. *. 2. a. b. c. Operadores. Na matemática costuma-se escrever expressões como 2*a + b*c onde + e * são operadores e 2 , a , b e c são argumentos. - PowerPoint PPT Presentation

Transcript of 4. Operadores e Aritmética

Page 1: 4. Operadores e Aritmética

4. Operadores e Aritmética

4. Operadores e Aritmética

Page 2: 4. Operadores e Aritmética

Introdução à Programação Prolog 2

Operadores• Na matemática costuma-se

escrever expressões como 2*a + b*c onde + e * são operadores e 2, a, b e c são argumentos.

• Em particular, + e * são denominados operadores infixos porque se localizam entre os dois argumentos que operam.

• Tais expressões são representadas por árvores e podem ser escritas, se for desejado, sob a forma de termos Prolog, com os símbolos + e * como functores:

+(*(2, a), *(b, c))+(*(2, a), *(b, c))

+

* *

2 a b c

Em geral, entretanto, prefere-se usar a notação infixa, mais natural e que também é aceita pelo Prolog.

Page 3: 4. Operadores e Aritmética

Introdução à Programação Prolog 3

Definição de Operadores

• Em Prolog a definição de novos operadores é realizada pela inserção no programa de um certo tipo especial de cláusulas, denominadas diretivas :-op,

• Uma diretiva :-op deve aparecer no programa antes de qualquer expressão que contenha esse operador. Por exemplo, o operador tem pode ser definido pela diretiva:

:-op(600, xfx, tem).

• Isso informa ao sistema que se deseja usar tem como um operador de prioridade 600 e cujo tipo é xfx, que designa uma classe de operadores infixos. (Ex: joão tem informações.)

• A forma de especificação, xfx, sugere que o operador, denotado por f, deva ser colocado entre dois argumentos, denotados por x.

Page 4: 4. Operadores e Aritmética

Introdução à Programação Prolog 4

Tipos de Operadores

-yfxfposfixos

-fyfxprefixos

yfxxfyxfxinfixos

TIPOOPERADORES

Page 5: 4. Operadores e Aritmética

Introdução à Programação Prolog 5

Operadores Pré-definidos

A linguagem Prolog já vem com diversos operadores pré-definidos. Um conjunto padrão pode ser visto abaixo:

:-op(1200, xfx, ':-').:-op(1200, fx, [':-', '?-']). :-op(1100, xfy, ';'). :-op(1000, xfy, ','). :-op( 700, xfx, [is, =, \=, <, >, =<, >=, ==, =\=, \==, =:=]).:-op( 500, yfx, [+, -]). :-op( 500, fx, [+, -, not]). :-op( 400, yfx, [*,/,div]). :-op( 300, xfx, mod). :-op( 200, xfy, ^).

Page 6: 4. Operadores e Aritmética

Introdução à Programação Prolog 6

Operadores Aritméticos

Em especial os operadores aritméticos mais comuns podem ser conferidos na tabela abaixo:

potenciaçãoxfy200^

resto da divisão inteira

xfx300moddivisão inteirayfx400div

divisãoyfx400/multiplicaçãoyfx400*

subtraçãoyfx500-adiçãoyfx500+

SIGNIFICADOTIPOPRIORIDADEOPERADOR

Page 7: 4. Operadores e Aritmética

Introdução à Programação Prolog 7

Operadores is e =A diferença entre estes dois operadores deve ficar clara a partir dos exemplos a seguir:

?- X = 1+2.X = 1+2yes

?- X is 1+2.X = 3yes

?- t(X,2) = t(5,Y).X = 5, Y = 2yes

?- X is 3^2*2.X = 18yes

?- X is 3^2^2.X = 81yes

?- X is 2^2^2, Y is X^3.X = 16, Y = 4096yes

?- ...e assim por diante.

Page 8: 4. Operadores e Aritmética

Introdução à Programação Prolog 8

Operadores de Comparação

valores diferentesxfx700=\=

valores iguaisxfx700=:=

menor ou igual axfx700=<

maior ou igual axfx700>=

menor quexfx700<

maior quexfx700>

SIGNIFICADOTIPOPRIORIDADEOPERADOR

Page 9: 4. Operadores e Aritmética

Introdução à Programação Prolog 9

Funções Pré-definidas

Um número aleatório entre 0 e Um número aleatório entre 0 e 11

randomrandom

Valor de pi com 15 casas Valor de pi com 15 casas decimaisdecimais

pipi

Arredonda X para N casas Arredonda X para N casas decimaisdecimais

round(X,N)round(X,N)

Tangente de XTangente de Xtan(X)tan(X)

Raiz quadrada de XRaiz quadrada de Xsqrt(X)sqrt(X)

Seno de XSeno de Xsin(X)sin(X)

Logaritmo decimal de XLogaritmo decimal de Xlog(X)log(X)

Logaritmo natural de XLogaritmo natural de Xln(X)ln(X)

Valor de "e" elevado a XValor de "e" elevado a Xexp(X)exp(X)

Cosseno de XCosseno de Xcos(X)cos(X)

Arco-tangente de XArco-tangente de Xatan(X)atan(X)

Arco-seno de XArco-seno de Xasin(X)asin(X)

Arco-cosseno de XArco-cosseno de Xacos(X)acos(X)

Valor absoluto de XValor absoluto de Xabs(X)abs(X)

SIGNIFICADOSIGNIFICADOFUNÇÃOFUNÇÃO

Page 10: 4. Operadores e Aritmética

Introdução à Programação Prolog 10

Fatorial

fatorial(0, 1).

fatorial(X, Y):- X1 is X-1,fatorial(X1,

Y1),Y is X*Y1.

Page 11: 4. Operadores e Aritmética

Introdução à Programação Prolog 11

Máximo Divisor Comum

mdc(X, X, X).

mdc(X, Y, D) :-X < Y,Y1 is Y-X,mdc(X, Y1,

D).

mdc(X, Y, D) :- X > Y,mdc(Y, X, D).