Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Operadores Aritméticos em Portugol: Adição, Subtração, Multiplicação e Divisão de Inteiros, Notas de aula de Algoritmos

Os operadores aritméticos na linguagem de programação portugol, com ênfase na adição, subtração, multiplicação e divisão de números inteiros. O texto explica as operações aritméticas possíveis, os operadores correspondentes e como escrever expressões aritméticas válidas na linguagem. Além disso, discute a importância da precedência de operadores e como eles são aplicados em uma expressão aritmética qualquer.

O que você vai aprender

  • Quais são as operações aritméticas possíveis para números inteiros na linguagem Portugol?
  • Qual é a operação aritmética correspondente ao símbolo − na linguagem Portugol?
  • Qual é a operação aritmética correspondente ao símbolo + na linguagem Portugol?

Tipologia: Notas de aula

2022

Compartilhado em 07/11/2022

Jacirema68
Jacirema68 🇧🇷

4.5

(122)

227 documentos

1 / 7

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
AULA 5
EXPRESSÕES ARITMÉTICAS PARTE 1
5.1 Operadores aritméticos
Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre
os números inteiros e reais. Para os inteiros, as operações aritméticas são a adição, subtração,
multiplicação e resto. Para os números reais, as operações aritméticas são a adição, subtração,
multiplicação e divisão. Nesta aula, restringiremos nossa atenção aos números inteiros apenas.
Na linguagem Portugol, os operadores aritméticos correspondentes às operações definidas so-
bre os inteiros são
+(adição)
(subtração ou menos unário)
(multiplicação)
\ (divisão inteira)
%(resto aplicado apenas aos valores inteiros).
Com os operadores acima, podemos escrever expressões aritméticas que envolvem constantes
e variáveis inteiras. Por exemplo, suponha que a,becsejam variáveis do tipo inteiro. Então,
temos que
a+b+c, a bc% 2,e5 + 3 8\2
são todas expressões aritméticas válidas na linguagem Portugol.
Nos exemplos acima, tivemos o cuidado de usar operandos do mesmo tipo. A razão para
tal é que, por definição, cada operador aritmético atua sobre valores de um mesmo tipo e o
resultado da operação deve sempre ser um valor do mesmo tipo dos operandos. Logo, não
faz sentido escrevermos algo como a+ 2 quando aé uma variável ou constante do tipo real,
pois existe uma ambigüidade em relação ao resultado da operação. No entanto, como veremos
mais adiante, podemos definir regras semânticas associadas aos operadores que nos permitem
interpretar, de forma única, o resultado da operação aritmética correspondente. Tais regras nos
permitirão escrever expressões aritméticas envolvendo variáveis e constantes dos tipos inteiro
e real.
1
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Operadores Aritméticos em Portugol: Adição, Subtração, Multiplicação e Divisão de Inteiros e outras Notas de aula em PDF para Algoritmos, somente na Docsity!

AULA 5

EXPRESSÕES ARITMÉTICAS – PARTE 1

5.1 Operadores aritméticos

Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre os números inteiros e reais. Para os inteiros, as operações aritméticas são a adição, subtração, multiplicação e resto. Para os números reais, as operações aritméticas são a adição, subtração, multiplicação e divisão. Nesta aula, restringiremos nossa atenção aos números inteiros apenas. Na linguagem Portugol, os operadores aritméticos correspondentes às operações definidas so- bre os inteiros são

    • (adição)
  • − (subtração ou menos unário)
  • ∗ (multiplicação)
  • \ (divisão inteira)
  • % (resto – aplicado apenas aos valores inteiros).

Com os operadores acima, podemos escrever expressões aritméticas que envolvem constantes e variáveis inteiras. Por exemplo, suponha que a, b e c sejam variáveis do tipo inteiro. Então, temos que a + b + c, a − b ∗ c % 2, e − 5 + 3 ∗ 8 \ 2

são todas expressões aritméticas válidas na linguagem Portugol.

Nos exemplos acima, tivemos o cuidado de usar operandos do mesmo tipo. A razão para tal é que, por definição, cada operador aritmético atua sobre valores de um mesmo tipo e o resultado da operação deve sempre ser um valor do mesmo tipo dos operandos. Logo, não faz sentido escrevermos algo como a + 2 quando a é uma variável ou constante do tipo real, pois existe uma ambigüidade em relação ao resultado da operação. No entanto, como veremos mais adiante, podemos definir regras semânticas associadas aos operadores que nos permitem interpretar, de forma única, o resultado da operação aritmética correspondente. Tais regras nos permitirão escrever expressões aritméticas envolvendo variáveis e constantes dos tipos inteiro e real.

5.2 PRECEDÊNCIA DE OPERADORES 2

5.2 Precedência de operadores

Qual é o valor da expressão aritmética

5 ∗ 3 % 2?

Podemos dizer que o valor da expressão é igual a 1 , se avaliarmos 5 ∗ 3 primeiro e, depois, 15 % 2, ou podemos dizer que é igual a 5 se avaliarmos 3 % 2 primeiro e, depois, 5 ∗ 1. As duas respostas são igualmente válidas. No entanto, como não podemos permitir ambigüidades em algoritmos, devemos definir regras de precedência de operadores, que são regras para definir a ordem em que os operadores aritméticos que vimos são aplicados em uma expressão aritmética qualquer.

Na linguagem Portugol, os operadores possuem prioridades associadas com eles. A opera- ção associada a um operador com prioridade p é sempre executada antes da operação associada a um operador com prioridade q sempre que p > q. Quando p = q, a operação correspondente ao operador mais à esquerda é executado. O operador de maior prioridade é o menos unário , −. Em seguida, temos os operadores ∗, \ e %. Finalmente, com a prioridade mais baixa, temos os operadores + e −, onde + e − são os operadores de adição e subtração, respectivamente. A Tabela 5.1 resume essas prioridades.

Operador Símbolo Prioridade menos unário − mais alta multiplicação, divisão inteira e resto ∗, \ e % ↑ adição e subtração +, − mais baixa

Tabela 5.1: Operadores aritméticos sobre os inteiros e suas prioridades.

Por exemplo, em a + b + c ,

a operação a + b é realizada e, em seguida, o resultado dela é adicionado ao valor de c, pois os operadores possuem a mesma prioridade e, portanto, as operações são realizadas da esquerda para a direita.

Na expressão aritmética a − b ∗ c % 2 ,

a operação b ∗ c é efetuada primeiro e, em seguida, o resto da divisão de b ∗ c por 2 é calculado. Finalmente, o resto é subtraído de a. Note que a multiplicação foi efetuada antes da divisão, pois os operadores ∗ e % possuem a mesma prioridade, mas ∗ está mais à esquerda.

Uma boa forma de se familiarizar com os operadores aritméticos e as regras de precedência é escrevendo algoritmos para escrever o resultado de expressões aritméticas. O Algoritmo 5. calcula e escreve, usando a instrução escreval, o resultado de expressões envolvendo núme- ros inteiros. A instrução escreval faz o mesmo que a instrução escreva, mas gera um “salto de linha” após a escrita. Um algoritmo mais interessante, o Algoritmo 5.2, recebe, como en- trada, três inteiros quaisquer e calcula e escreve o resultado de algumas expressões aritméticas envolvendo os inteiros lidos.

5.3 ALTERAÇÃO DE PRIORIDADES 4

a terceira operação realizada. Logo, os operadores são aplicados na ordem −, % e ∗. Usamos a notação (a − 1 b) ∗ 3 (c % 2 2) para indicar este fato. Isto é, os operadores possuem índices que indicam a ordem em que são aplicados. Algoritmo 5.2: Algoritmo para calcular algumas expressões aritméticas com variáveis inteiras.

1 algoritmo "Expressoes aritmeticas envolvendo variaveis e constantes" 2 var 3 a , b , c : inteiro 4 inicio 5 escreva( "Entre com o valor da variavel a: " ) 6 leia( a ) 7 8 escreva( "Entre com o valor da variavel b: " ) 9 leia( b ) 10 11 escreva( "Entre com o valor da variavel c: " ) 12 leia( c ) 13 14 escreval( "O resultado da expressao a (^) *** b % c e: ", a** (^) *** b % c ) 15 16 escreval( "O resultado da expressao -a** (^) *** b % c** (^) *** 8 e: ", -a** (^) *** b % c** (^) *** 8 ) 17 18 escreval( "O resultado da expressao -a - b - c** (^) *** 3 e: ", -a - b - c** (^) *** 3 ) 19 20 fimalgoritmo**

A expressão ((2 + 3) − (1 + 2)) ∗ 3 − (3 + (3 − 2)) é bem mais complexa do que a anterior, mas podemos determinar a ordem em que os opera- dores são aplicados da mesma forma que antes. O primeiro passo é substituir as expressões dentro dos parênteses por operandos a serem descobertos. Isto é feito para os parênteses mais externos: op 1 ∗ 3 − op 2. Agora, vemos que se os valores entre parênteses fossem conhecidos, haveria apenas duas ope- rações a serem realizadas: uma multiplicação e uma adição. A multiplição possui prioridade sobre a adição e ela precisa do valor op 1 para ser realizada. Então, considere a expressão cor- respondente a op 1 : (2 + 3) − (1 + 2). Esta expressão contém outras expressões dentro de parênteses e, assim como antes, ela pode ser vista como op 3 − op 4. onde op 3 e op 4 correspondem às expressões 2 + 3 e 1 + 2, respectivamente. Para realizarmos a operação de subtração acima, precisamos dos valores op 3 e op 4. Por estar à esquerda do

5.4 A INSTRUÇÃO DE ATRIBUIÇÃO 5

operador, o valor op 3 é descoberto primeiro. Isto implica que a primeira operação realizada é a adição 2 + 3

e a próxima é a adição 1 + 2.

Em seguida, temos a subtração op 3 − op 4 :

(2 + 3) − (1 + 2).

Depois que a subtração acima for realizada, o valor op 1 se torna conhecido e, consequente- mente, a multiplicação op 1 ∗ 3 pode ser realizada, tornando-se a quarta operação realizada. O resultado desta operação é o primeiro operando disponível da subtração em op 1 ∗ 3 − op 2. Mas, esta subtração não pode ser efetuada antes do valor op 2 ser conhecido, ou seja, antes da expressão 3 + (3 − 2)

ser avaliada. Assim como fizemos antes, podemos imaginar a expressão acima tendo a forma

3 + op 5 ,

onde op 5 é o valor da expressão, 3 − 2 , entre parênteses. A adição na expressão acima precisa do valor op 5 para ser realizada. Isto significa que a subtração 3 − 2 é a quinta operação reali- zada. Depois dela, a adição 3 + op 5 é realizada, tornando-se a sexta operação realizada. Logo em seguida, o valor op 2 se torna conhecido, o que possibilita a realização da sétima e última operação, que é a subtração em op 1 ∗ 3 − op 2. Usando a notação de subscrito, temos a seguinte ordem: ((2 + 1 3) − 3 (1 + 2 2)) ∗ 4 3 − 7 (3 + 6 (3 − 5 2)).

5.4 A instrução de atribuição

Quando utilizamos expressões aritméticas em nossos algoritmos, necessitaremos, muito freqüentemente, armazenar o valor da expressão em uma variável. Como vimos na Aula ?? , a atribuição de um valor a uma variável pode ser realizada através da instrução de leitura leia ou do operador de atribuição <-. A instrução leia é usada apenas quando o valor a ser atribuído à variável é fornecido como entrada para o algoritmo. Como o valor que queremos atribuir à variável é resultante da avaliação de uma expressão aritmética, devemos usar o operador de atribuição.

Por exemplo, suponha que o resultado da expressão

5 ∗ % 2

deva ser atribuído a uma variável inteira de nome resultado. Então, a atribuição pode ser reali- zada da seguinte forma: resultado <- 5 ∗ % 2

Para um exemplo mais concreto do uso do operador de atribuição, considere o Algo- ritmo 5.3, que lê dois números inteiros, calcula o quadrado da soma dos dois números lidos, atribui o resultado a uma variável inteira, usando o operador <-, e escreve o valor da variável.

5.6 EXERCÍCIOS PROPOSTOS 7

  1. Suponha que a linha 11 do Algoritmo 5.3 seja substituída por

quadrado <- a + b ∗ a + b

Você acha que o algoritmo continuará correto? Justifique sua resposta.

  1. Suponha que a linha 11 do Algoritmo 5.3 seja substituída pelas duas seguintes linhas:

quadrado <- a + b

quadrado <- quadrado ∗ quadrado Você acha que o algoritmo continuará correto? Justifique sua resposta.

  1. Escreva um algoritmo, usando a linguagem Portugol, para ler dois números inteiros, cal- cular o cubo da soma desses dois números e escrever o resultado calculado como saída.
  2. Implemente o algoritmo anterior usando a ferramenta VISUALG.