5.2. Operadores e Expressões
Para realizar operações ou comparações existem operadores, como na matemática. Essas operações são úteis para, por exemplo somar, subtrair, dividir, multiplicar valores literais ou variáveis, comparar se uma variável é maior que um valor literal ou outra variável e muito mais. Caso não tenha entendido, imagine que um usuário digite a idade em um sistema de compra de bebida alcoólica, o sistema pode verificar se está idade é igual ou maior que 18 (idade mínima para consumo de bebidas alcoólicas no Brasil).
5.2.1. Expressões literais e aritméticas
Para criar expressões literais e aritméticas precisamos dos operadores de atribuição e aritméticos, cada linguagem tem o seu conjunto de operadores onde os principais são atribuição, adição, subtração, multiplicação, divisão, módulo (resto da divisão inteira) e exponenciação.
Abaixo apresento a tabela 6.1 com os principais operadores de atribuição e aritméticos de cada linguagem apresentada neste livro. Ressalto que há muitos outros em cada linguagem, contudo não são muito usados.
Tabela 6.1. Operadores de Atribuição, Aritméticos e concatenação de strings.
*A linguagem C permite o uso dos operadores de incremento e decremento de duas formas, pré e pós-fixado, enquanto a linguagem Portugol 2.0 apenas o pós-fixado.
Há algo novo na tabela, o conceito de concatenação, esta é uma operação com valores tipo carácter e string (conjunto de caracteres) onde a adição realiza a junção de dois ou mais valores. Por exemplo, 'arthur' + ' assuncao'
resulta em 'arthur assuncao'
. Contudo, perceba que nem todas linguagens realizam tal operação, como a linguagem C. Além disso, muitas linguagens permitem a adição de um número a uma string/caractere, onde é realizada a coerção implícita do valor numérico, ou seja, o valor numérico é convertido para string e então é juntado à string, por exemplo 'arthur' + 27
resulta em 'arthur27'
.
Código 6.1. Diferença entre operadores de incremento e decremento pré e pós-fixado em Linguagem C.
Além disso, foi apresentada a ideia de operadores de incremento e decremento (código 6.1 e 6.2), essa parte deve ser analisada apenas por quem este aprendendo Portugol Studio ou C. Primeiro deve-se saber que são operadores que aumentam ou diminuem o valor de um número em uma unidade, ou seja, x++
é o mesmo que x = x + 1
. Há diferenças entre pré e pós-fixado, uma é quanto a sintaxe, o pré-fixado se escreve ++x
e o pós-fixado x++
e sua diferença é percebida quando a expressão é usada como valor para alguma outra expressão, pois esta diferença se dá pelo momento que a variável é incrementada, se é antes ou depois de seu uso, por exemplo, veja o código 6.1.
Código 6.2. Diferença entre operadores de incremento e decremento pré e pós-fixado em Linguagem C.
5.2.2. Expressões lógicas e relacionais
Para realizar comparações formando expressões relacionais, ou seja, que relacionam dois valores, usamos os operadores relacionais. Imagine que você ter uma variável para o dinheiro do usuário e ele só poderá comprar algo se o saldo for maior que o valor do produto, então poderíamos comparar se o saldo é maior ou igual ao valor do produto, isso é feito com esses operadores relacionais. Perceba que uma relação gera sempre um valor verdadeiro ou falso, afinal uma comparação é falsa ou verdadeira.
Os operadores relacionais costumam ser operadores binários, ou seja, que utilizam dois valores e são símbolos que representam as seguintes comparações: menor que, maior que, menor ou igual, maior ou igual e diferente. E, claro, que cada linguagem pode utilizar um símbolo diferente e até ter mais ou menos operadores. Contudo, o único que costuma variar é o símbolo do diferente. Abaixo apresento a tabela 6.2 com os operadores das linguagens desse livro.
Tabela 6.2. Operadores Relacionais (Comparação).
Podemos precisar de combinar comparações, por exemplo pegue o exemplo anterior do saldo, mas agora você precisa de permissão do usuário pai para comprar, então precisamos do saldo e da permissão do pai, percebe que temos que verificar duas coisas ao mesmo tempo? Para isso podemos utilizar operadores lógicos, normalmente temos dois operadores binários, o E e o Ou e um operador unário, o Não. No exemplo acima usamos o operador E. Abaixo mostro a tabela 6.3 com os operadores de cada linguagem.
Código 6.3. Operadores Lógicos
Por fim, apresento uma tabela verdade com os operadores lógicos (Tabela 6.4), uma tabela verdade é uma tabela onde verificamos qual valor booleano/lógico (verdadeiro ou falso) será gerado com o uso de tal operador. Nas próximas seções, os operadores serão apresentados em cada uma das linguagens.
Tabela 6.4. Tabela Verdade dos Operadores Lógicos.
5.2.3. Exercícios
1) Qual a primeira operação a ser executada em cada em dos comandos abaixo:
x + y - z
v + v / c²
nota 1 + nota 2 / 2
ponto_extra + media / n
x + y + a * b
a * b / c * d
2) Monte uma tabela verdade para os operadores lógicos E(AND), OU(OR) e NÃO(NOT). Não olhe a tabela acima, faça com seu conhecimento.
3) Monte uma lista com os operadores relacionais e explique um pouco de cada um.
Last updated