Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br
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 tabelaverdade 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