Prévia do material em texto
08/05/2022
1
PARADIGMAS DE LINGUAGENS
DE PROGRAMAÇÃO EM PYTHON
Tema 4 - Aula 09 :
Expressões e sentenças de
atribuição.
Prof. Ronaldo Candido
ronaldo.candido@estacio.br 2022.1
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Conteúdo Programático
1. Introdução à expressões e sentenças de atribuição.
2. Expressões.
3. Sentenças de atribuição.
4. Expressões aritméticas.
5. Expressões condicionais.
6. Atividade verificadora de aprendizagem.
Objetivos da aula
• Empregar formas fundamentais de instruções, baseando-se na sintaxe e semântica de
expressões aritméticas, relacionais e booleanas e atribuições, para escrever instruções
matemática e lógicas compreensíveis, corretas e executáveis por computadores.
1
2
08/05/2022
2
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Situação-problema
• A precedência de operadores é um conceito matemático que determina a
prioridade de certos operadores sobre outros no momento da realização.
Atualmente circulam na internet diversos desafios para que os internautas
forneçam o resultado de operações matemáticas como por exemplo 8 / 2(2+2) = ?
• Nesse caso podemos ter duas soluções distintas? Qual o motivo?
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Introdução à expressões e sentenças de atribuição
• Uma expressão é uma frase do programa que necessita ser avaliada e produz como
resultado um valor:
Uma “conta”, uma “computação”.
• Elementos:
Operadores.
Operandos.
Resultado.
• Podem ser classificadas em:
Expressões simples: apenas um operador.
Expressões compostas: mais de um operador.
3
4
08/05/2022
3
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Expressões
• Expressões são o meio fundamental de especificar computações em uma linguagem
de programação:
Familiarização com as ordens de avaliação de operadores e de operandos:
Regras de associatividade e de precedência da linguagem.
A essência das linguagens de programação imperativas e o papel predominante
das instruções de atribuição cuja finalidade é mudar o valor de uma variável.
• A avaliação de expressões aritméticas foi a motivação para o desenvolvimento da
primeira linguagem de programação.
• Uma expressão aritmética consiste de:
Operadores e operandos.
Parênteses.
Chamadas de função.
• Exemplo:
b = 7
a = (3.2 + 8.4) / b
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Sentenças de atribuição
• Atribuição usa o sinal de = (igual) para armazenar um valor :
b = 7
nome = ‘Maria’
• Considerações de projeto:
Quais são as regras de precedência de operadores?
Quais são as regras de associatividade de operadores?
Qual é a ordem de avaliação dos operandos?
Existem restrições quanto os efeitos colaterais da avaliação dos operandos?
A linguagem permite sobrecarga de operadores definidas pelo usuário?
5
6
08/05/2022
4
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Expressões aritméticas
• Operadores:
Unário (possui apenas um operando) :
a++
Binário (possui dois operandos) :
a * b
Ternário (possui 3 operandos) :
(a , =
7
8
08/05/2022
5
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Expressões condicionais
• Operador ternário :
C, C++ e Java :
x = (10 % 2 == 0) ? 3 : 4
Equivalente a if / else :
if(10 % 2 == 0)
x = 3
else
x = 4
• Várias condições lógicas:
(2 > 1) or (3 0): resultado FALSO
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Sobrecarga de operadores
• Usar um operador para mais do que um propósito:
+ para adição de quaisquer operandos de tipo numérico.
int e float
Em Java (+) para concatenar cadeias.
• Em Java/Python :
x = y + z (soma)
nomeCompleto = “Ana” + “Galvão” (concatenação)
• Conversão de tipos (casting) no Python :
numero = ’10’
z = int(numero)
print(z+2)
9
10
08/05/2022
6
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Conversão de tipos
• Desvantagem de conversão:
Diminui poder do compilador na detecção de erros.
Na maioria das linguagens, todos os tipos numéricos são convertidos em
expressões, usando coerção de alargamento.
• Operadores compostos :
É um método abreviado de especificar uma forma de atribuição.
a = a + b
É escrito como :
a += b
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
1. Analise o programa abaixo e, para cada uma das saídas (comandos print), detalhe passo a passo
como o Python (segundo suas prioridades) resolveria as equações e o resultado final obtido.
x = 2
y = 3
z = 0.5
print(x + x * x ** (y * x) / z)
print(not x + z = y and True)
2. Faça um programa Python que calcule a área do cubo.
3. Escreva um programa que recebe três inteiros como entrada do teclado e escreva na tela a
média, a soma, o produto, o menor valor e o maior valor, usando uma linha para cada
resultado.
Atividade verificadora de aprendizagem
11
12
08/05/2022
7
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda +
• Documentação: "Operadores aritméticos e booleanos". Disponível em:
. Acesso em: 2 mai. 2022.
• Atividade Autônoma Aura:
Questão 1: Analise o seguinte trecho de código:
n1 = int(input('Primeiro numero: '))
n2 = int(input('Segundo numero : '))
n3 = int(input('Terceiro numero: '))
print(n1,'-',n2,'-',n3)
if(n3 > n2):
aux = n3
n3 = n2
n2 = aux
if(n2 > n1):
aux = n2
n2 = n1
n1 = aux
if(n3 > n2):
aux = n3
n3 = n2
n2 = aux
print(n1,'-',n2,‘-',n2)
Este programa :
a) Irá ordenar os números em ordem crescente.
b) Irá ordenar os números em ordem decrescente.
c) Apresentará um erro no comando input.
d) Apresentará um erro pois está utilizando a variável aux de forma global.
e) Apresentará erro caso o usuário entre com números iguais.
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Aprenda + (continuação)
Questão 2: (NCUFPR - ITAIPU BINACIONAL, 2017) Sejam os seguintes comandos Python
executados na sequência apresentada:
x = range(10)
def somar(x,y):
return x+y
x = [i**2 for i in x if i%2 == 0]
reduce(somar,x)
Qual é o resultado da execução?
a) 285
b) 120
c) 90
d) 45
e) 20
13
14
08/05/2022
8
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
Para a próxima aula...
• Leitura e resolução das atividades propostas no livro SEBESTA, R. “Conceitos de Linguagens de
Programação”. Capítulo 9 (Subprogramas), páginas 364 a 393.
• Estudar a Aula 10 de PARADIGMAS no SAVA previamente e realizar as atividades propostas..
AULA 09
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO EM PYTHON
Prof. Ronaldo Candido
BANIN, S. L. Python 3 Conceitos e Aplicações. Uma Abordagem Didática. 1a. ed. São
Paulo: Érica, 2018. Disponível em:
. Acesso em: 16
fev. 2022.
FERREIRA, T. Entendendo as funções map, filter e reduce. Disponível em:
. Acesso em: 5 mai. 2022.
PERKOVIC, L.Introdução à Computação Usando Python - Um Foco no Desenvolvimento de
Aplicações. 1a. ed. Rio de Janeiro: LTC, 2016. Disponível em:
. Acesso em:
14 fev. 2022.
SEBESTA, R. W. Conceitos de Linguagens de Programação. 11a. ed. Porto Alegre: Bookman,
2018. Disponível em:
. Acesso em: 14
fev. 2022.
Referências
15
16
08/05/2022
9
Prof. Ronaldo Candido
ronaldo.candido@estacio.br
Dúvidas, sugestões ou análises ???
PARADIGMAS DE LINGUAGENS
DE PROGRAMAÇÃO EM PYTHON
17