Gustavo Queiroz Fernandes Atualizado em: 27/04/2019
Sumário Objetivos... 1 Pré-requisitos... 1 Recursos e Materiais... 1 Última Atualização... 1 1. Operações aritméticas... 1 2. Operações relacionais... 2 3. Operações lógicas... 3 Referências Bibliográficas... 5
Objetivos Pré-requisitos Recursos e Materiais Última Atualização Descrever os operadores aritméticos, relacionais e lógicos, bem como a prioridade de execução de cada um deles dentro de uma expressão matemática Nenhum Nenhum 27/04/2019: Figuras e funções aritméticas atualizadas De forma geral, existem três tipos de operações matemáticas que podemos realizar: As operações aritméticas, relacionais e lógicas. Como os editores de texto que utilizamos para escrevermos os programas de computador geralmente não possuem os caracteres gráficos que representam algumas dessas operações, parte desses operadores são substituídos por símbolos e funções que precisamos conhecer na hora que estamos elaborando nossos algoritmos. Além disso, ao escrevermos expressões matemáticas mais complexas, o computador quebrará essa expressão em operações menores, seguindo uma sequência de cálculo que também precisamos conhecer para garantirmos que as operações sejam realizadas conforme desejamos. Para entendermos um pouco mais sobre esse assunto e evitarmos que nossos algoritmos façam cálculos incorretos, essa seção analisa cada uma das operações aritméticas, relacionais e lógicas disponíveis. 1. Operações aritméticas As operações aritméticas tradicionais são a soma, subtração, multiplicação e divisão, cada uma delas resumida na Tabela 1. Embora já estejamos acostumados a lidar com essas operações e não tenhamos muito o que acrescentar sobre elas, é importante observarmos que o tipo de dado afeta diretamente o resultado que obtemos nesses cálculos. No caso da divisão, por exemplo, se dividirmos dois valores inteiros (como 5/2), a maioria das linguagens de programação apresentará como resultado somente a parte inteira da divisão (2), enquanto que, se pelo menos um dos termos for do tipo do real, o resultado também será real (2.5). Caso o resultado da operação seja atribuído a uma variável, o tipo de dado dela também afetará o valor que será armazenado na memória (2 ou 2.5). Tabela 1: Lista de operadores aritméticos Operador aritmético Função Exemplos + Soma 2+3; x+y; z+2 - Subtração 4-6; x-y; y-4 * Multiplicação 8*4; x*y; 2*x; / Divisão 5/2; x/y; z/2 Além disso, podemos citar também como operações aritméticas, algumas operações bastante comuns, que são representadas em formas de funções matemáticas nos algoritmos, como aquelas ilustradas na Tabela 2 abaixo. A potenciação (pot(x,y)) permite elevarmos qualquer número x à uma potência y (x y y ). A radiciação tira a raiz de x com ínidice y ( x), ao mesmo 1
tempo em que sqrt(x) resultará sempre na raiz quadrada. Por fim, a função mod obtém o resto da divisão de x por y, enquanto que a função div resulta na parte inteira do resultado da divisão (quociente). Tabela 2: Lista de funções matemáticas Operador Função Exemplos pot(x,y) Potenciação (x y ) pot(2,4) (resulta em 16) rad(x,y) y Radiciação ( x) rad(27,3) (resulta em 3) sqrt(x) Raiz quadrada ( x) sqrt(4) (resulta em 2) x mod y Resto da divisão 13 mod 2 (resulta em 1) x div y Quociente da divisão 13 div 2 (resulta em 6) Quando as expressões matemáticas possuem mais de um operador aritmético, a sequência dessas operações acontecerá sempre de acordo com a ilustração da Figura 1, dando-se prioridade para o que está escrito dentro dos parênteses mais internos. Quando diferentes operações estiverem dentro dos mesmos parênteses, calculamos as potências e as raízes, para depois realizarmos as multiplicações, divisões e as funções div e mod, até que por fim, nos reste calcular apenas as somas e as subtrações. Figura 1: Ordem de prioridade de cada operador aritmético Dois exemplos são apresentados a seguir para que possamos compreender melhor essa ordem de prioridade das operações aritméticas. a) pot(4,2) + 8/4 9 mod 4 + sqrt(5*2-1) pot(4,2) + 8/4 9 mod 4 + sqrt(10 1) pot(4,2) + 8/4 9 mod 4 + sqrt(9) 16 + 8/4 9 mod 4 + 3 16 + 2 1 + 3 20 b) sqrt(4 + 11 div 2) + (5*9-11 mod 2) sqrt(4 + 5) + (45 1) sqrt(9) + 44 3 + 44 47 2. Operações relacionais As operações relacionais, resumidas na Tabela 3, são utilizadas para comparar dois valores e nos informar se a comparação é verdadeira ou falsa, de tal forma que o resultado será sempre um tipo de dado lógico (1 ou 0, verdadeiro ou falso). 2
Tabela 3: Lista de operadores relacionais Operador relacional Função Exemplos = Igual a x=y; x=z; > Maior que 3>2; y>x; < Menor que x<y; 2<x; >= Maior ou igual a 8>=7; x>=z; z>=2; <= Menor ou igual a 5<=6; x<=z; <> Diferente de 4<>3; x<>z; Por possuírem prioridade inferior às operações aritméticas, o computador executará sempre os cálculos que estão à esquerda e à direita desses operadores relacionais antes de realizar a comparação, a não ser que a prioridade seja alterada com o uso de parênteses. Alguns exemplos são apresentados abaixo: a) 4 * 3 = 2 * 6 12 = 12 V (Verdadeiro) b) 15 mod 4 < 19 mod 6 3 < 1 F (Falso) 3. Operações lógicas O último tipo de operação que também podemos realizar em nossos algoritmos são as operações lógicas, representadas na Tabela 4. Esses operadores trabalham com valores lógicos e são utilizados para verificarmos se uma determinada condição é atendida ou não. Por isso, de forma similar aos operadores relacionais, essas operações terão sempre um valor lógico como resultado. Tabela 4: Lista de operadores lógicos Operador lógico não e ou Função Negação Conjunção Disjunção Para utilizarmos esses operadores, precisamos consultar as tabelas verdade de cada um deles (Tabelas 5 a 7), que resumem todas as possíveis combinações de valores verdadeiros e falsos que podemos obter. No caso do operador não, o resultado será sempre o oposto da entrada. Já na lógica e, todas as entradas da operação precisam ser verdadeiras para que o resultado seja verdadeiro. E, por fim, na lógica ou, basta que uma das entradas seja verdadeira para que a saída também o seja. Tabela 5: Tabela verdade para operador não Operando Não OP 0 (Falso) 1 (Verdadeiro) 1 (Verdadeiro) 0 (Falso) 3
Tabela 6: Tabela verdade para operador e Operando 1 Operando 2 OP1 e OP2 0 (Falso) 0 (Falso) 0 e 0 = 0 (Falso) 0 (Falso) 1 (Verdadeiro) 0 e1 = 0 (Falso) 1 (Verdadeiro) 0 (Falso) 1 e 0 = 0 (Falso) 1 (Verdadeiro) 1 (Verdadeiro) 1 e 1 = 1 (Verdadeiro) Tabela 7: Tabela verdade para operador ou Operando 1 Operando 2 OP1 ou OP2 0 (Falso) 0 (Falso) 0 ou 0 = 0 (Falso) 0 (Falso) 1 (Verdadeiro) 0 ou 1 = 1 (Verdadeiro) 1 (Verdadeiro) 0 (Falso) 1 ou 0 = 1 (Verdadeiro) 1 (Verdadeiro) 1 (Verdadeiro) 1 ou 1 = 1 (Verdadeiro) As expressões lógicas devem ser solucionadas respeitando a ordem de prioridades ilustrada na Figura 2. Figura 2: Ordem de prioridade de cada operador lógico Além disso, as operações lógicas possuem prioridade inferior às operações relacionais, de tal forma que, em um caso geral, considerando uma expressão matemática contendo todos os tipos de operadores, a solução será realizada na sequência apresentada abaixo. Alguns exemplos também são mostrados para que possamos compreender melhor essa ordem de operação. 1 o : Parênteses mais internos 2 o : aritméticos 3 o : relacionais 4 o : lógicos a) 4 * 3 = 2 * 6 e 4 < 5 12 = 12 e 4 < 5 V e V V c) 4 * (15 mod 4) > 4 e não V 4 * 3 > 4 e não V 12 > 4 e não V V e não V V e F F b) 15 mod 4 > 19 mod 6 ou 3 = 4 3 > 1 ou 3 = 4 V ou F V d) F ou não (5 div 2 rad(19 mod 10) > 7 + pot(2,3)) F ou não(5 div 2 rad(9) > 7 + 8) F ou não(5 div 2-3 > 7 + 8) F ou não(2 3 > 7 + 8) F ou não (-1 > 15) F ou não(f) F ou V V 4
Referências Bibliográficas A. A. T. Maia, Fundamentos da Computação Algoritmos Programação em Linguagem C. Universidade Federal de Minas Gerais, 2013. E. C. Gatto, Operações aritméticas. 2016. Online. [Acesso 21 Abril 2019] E. C. Gatto, Operações relacionais e lógicas. 2016. Online. [Acesso 21 Abril 2019] E. C. Gatto, Expressões matemáticas. 2016. Online. [Acesso 21 Abril 2019] 5