Upload
vanhanh
View
230
Download
0
Embed Size (px)
Citation preview
Fundamentos de Programação
Turma CI-240-EST
Josiney de Souza
Agenda do Dia – Aula 8 (30/09/15)
Comentários sobre exercícios propostos Desvio condicional
Simples Composto
Exercícios Propostos
Exercícios: Mostrar na tela o comprimento de um texto
digitado pelo usuário Solicitar do usuário dois textos separados e
mostrá-los na tela concatenados, isto é, os dois textos como um só, sem espaço entre eles
Calcular a porcentagem de nucleotídeos A, C, G e C em uma cadeia de DNA informada pelo usuário. Indicar também a quantidade e a porcentagem de nucleotídeos inválidos.
Exercícios Propostos
Exercícios extras: Solicitar do usuário dois textos separados e
verificar se os dois são iguais ou se o primeiro está antes do segundo considerando ordem alfabética
Solicitar do usuário um texto qualquer e um caractere qualquer. Mostrar:
O índice da primeira ocorrência do caractere no texto. Se não ocorrer no texto, mostrar -1
O índice da última ocorrência do caractere no texto. Se não ocorrer no texto, mostrar -1
Operadores
É possível realizar operações sobre as variáveis e sobre algumas constantes: Atribuição: guardar valor em variáveis Aritmética: soma, subtração, multiplicação,
divisão Relacional: maior, menor, igual, diferente, maior
ou igual, menor ou igual Lógica: e, ou, não
Operadores – Relacional
Operadores para comparar o valor de operandos: Símbolo: ==, !=, <=, <, >=, >, in, is Sintaxe:
(Retorno) Operando <Operador> Operando
Operandos são comparados entre si O retorno é booleano (verdadeiro ou falso)
Operadores – Relacional
Operadores para comparar o valor de operandos: Símbolo: == (igual) Símbolo: != (diferente) Símbolo: <= (menor ou igual que) Símbolo: < (menor que) Símbolo: >= (maior ou igual que) Símbolo: > (maior que) Símbolo: in (pertinência de strings) Símbolo: is (identidade/igualdade entre strings)
Operadores – Relacional
Exemplo de expressões: (7 == 5) // Avalia como falso (5 > 4) // Avalia como verdadeiro (3 != 2) // Avalia como verdadeiro (6 >= 6) // Avalia como verdadeiro (5 < 5) // Avalia como falso ('ana' in 'banana') // Avalia como verdadeiro (nome is 'jao') // Depende do valor da variavel
nome
Operadores – Lógica
Operadores para comparar o valor de operandos: Símbolo: not, and, or Sintaxe:
(Retorno) Expressao <Operador> Expressao
Compara expressões segundo a tabela-verdade
O retorno é booleano (verdadeiro ou falso)
Operadores – Lógica
Operadores para comparar o valor de operandos: Símbolo: not (não) Símbolo: and (e) Símbolo: or (ou)
Operadores – Lógica
Operador not: Inverte o valor da expressão
not (5 == 5) // Avalia como falso
not (6 <= 4) // Avalia como verdadeiro
not True // Avalia como falso
not False // Avalia como verdadeiro
Operadores – Lógica
Operador and:
A B A and B
VERDADEIRO VERDADEIRO VERDADEIRO
VERDADEIRO FALSO FALSO
FALSO VERDADEIRO FALSO
FALSO FALSO FALSO
Operadores – Lógica
Operador or:
A B A or B
VERDADEIRO VERDADEIRO VERDADEIRO
VERDADEIRO FALSO VERDADEIRO
FALSO VERDADEIRO VERDADEIRO
FALSO FALSO FALSO
Operadores – Precedência
Existe uma ordem de avaliação dos operadores: 5 + 4 * 2 + 10 → 23 (28 está errado!!!) 5 + 4 >= 5 * 2 and 2 + 10 > 33 / 3 ???
Operadores – Precedência
Existe uma ordem de avaliação dos operadores: 5 + 4 >= 5 * 2 and 2 + 10 > 33 / 3
5 + 4 >= 10 and 2 + 10 > 33 / 3
5 + 4 >= 10 and 2 + 10 > 11
9 >= 10 and 2 + 10 > 11
9 >= 10 and 12 > 11
False and 12 > 11
False and True = False
Operadores – Precedência
Existe uma ordem de avaliação dos operadores: 1. Parênteses 2. Operadores unários 3. Operadores Aritméticos 4. Operadores Relacionais 5. Operadores Lógicos 6. Operadores de Atribuição
Operadores – Precedência
Operador Associatividade
() Esquerda para direita
not - (unários) Direita para esquerda
** Esquerda para direita
* / % Esquerda para direita
+ - Esquerda para direita
< <= > >= Esquerda para direita
== != in is Esquerda para direita
and or Esquerda para direita
= += -= *= /= %= Direita para esquerda
Operadores – Observações
O retorno dos operadores relacionais e lógicos é verdadeiro ou falso
Na verdade, o computador entende True e False como números inteiros:
True → 1 False → 0
Na prática, uma expressão só será falsa se for 0 ou False
Qualquer outro valor é considerado verdadeiro
Desvio Condicional
Normalmente, um programa segue um fluxo linear de execução: Instruções são executadas uma após a outra De cima para baixo
Desvio Condicional
Normalmente, um programa segue um fluxo linear de execução: Instruções são executadas uma após a outra De cima para baixo
Porém, existem comandos que desviam o fluxo de execução Algumas instruções podem ser ignoradas Depende da condição dada
Desvio Condicional
Execução normal: Desvio condicional:
Desvio Condicional
Servem para tomadas de decisão Desviam a execução linear do código Dependem de uma condição
Resultado da condição deve retornar VERDADEIRO ou FALSO
Conhecidos como comandos de decisão Conhecidos como desvios condicionais
Desvio Condicional
Existem três tipos de desvios condicionais: Simples: if (se) Composto: if – else (se – senão) Aninhado: desvio condicional dentro de desvio
condicional
Desvio Condicional Simples
Sintaxe:
if <CONDICAO>:
<COMANDO>
if <CONDICAO>:
<COMANDO>
<COMANDO>
…
Desvio Condicional Simples
Como funciona: A expressão da <CONDICAO> é avaliada Se o resultado da avaliação é VERDADEIRO
<COMANDO> é executado; ou Os comandos dentro do bloco indentado são
executados
Se o resultado da avaliação é FALSO Tudo dentro do escopo do ”if” é ignorado Execução segue normal depois do ”if”
Desvio Condicional Simples - Exemplo
# coding = latin-1
from math import *
from string import *
idade = int( input('Qual a sua idade? ') )
if idade < 18:
print ('Você é menor de idade')
Desvio Condicional Simples - Exemplo
# coding = latin-1
from math import *
from string import *
idade = int( input('Qual a sua idade? ') )
if idade < 18:
print ('Você é menor de idade')
print ('Não pode comprar bebidas alcoólicas')
Desvio Condicional Composto
Serve para tomar decisões mais complexas
Sintaxe:
if <CONDICAO>:
<COMANDO>
else:
<COMANDO>
Desvio Condicional Composto
Como funciona: A expressão da <CONDICAO> é avaliada Se o resultado da avaliação é VERDADEIRO
<COMANDO> entre ”if” e ”else” é executado; ou Os comandos dentro do bloco indentado entre ”if” e
”else” são executados
Se o resultado da avaliação é FALSO <COMANDO> após ”else” é executado; ou Os comandos dentro do bloco indentado após o
”else” são executados
Desvio Condicional Composto - Exemplo
# coding = latin-1
from math import *
from string import *
idade = int( input('Qual a sua idade? ') )
if idade < 18:
print ('Você é menor de idade')
print ('Não pode comprar bebidas alcoólicas')
else:
print ('Maior de idade. Tá liberado')
Desvio Condicional
Desvio Condicional
Exercícios: Descobrir se um número é par ou ímpar Descobrir qual o maior dentre dois números Obter as médias finais e a frequência de Ana e
Mariana. Dizer se elas estão aprovadas, considerando:
Nota: ter pelo menos 50 de média Frequência: ter pelo menos 25 aulas de presença
Próxima Aula
Desvio condicional aninhado