Baixe o app para aproveitar ainda mais
Prévia do material em texto
FUNDAMENTOS DE PROGRAMAÇÃO I AULA 6: TEÓRICA Estruturas Condicionais Prof. Janderson Universidade Federal de Lavras Departamento de Ciência da Computação Revisando • O que são tipos de dados? Elucide alguns exemplos de tipos básicos na linguagem Python? • O que é um identificador de variável? Quais são as regras para se criar um identificador? • O que representa a operação de atribuição? Operadores • Correspondem a símbolos simples ou combinados que representam operações de natureza: aritmética, relacional ou lógica. – Aritméticos: representam as operações aritméticas básicas. – Relacionais: estabelecem relações/comparações. – Lógicos: representam as operações básicas dadas na lógica matemática. Operadores Relacionais ● Em Python, os principais operadores relacionais são: – Igualdade: == – Diferença: != – Maior: > – Maior ou igual: >= – Menor: < – Menor ou igual: <= Operadores Lógicos ● Em Python, os principais operadores lógicos são: – Negação: not – Conjunção: and – Disjunção: or Expressões • Expressões são compostas por: – Operandos: a, b, x, 2, “z”, True... – Operadores: +, -, %, !=, <, or... – Pontuação: ( ) – Funções: sin(), cos(), sqrt(), ... • Exemplos de expressões: • 4 • x • (x + y) * z + w – v • (-b + sqrt(delta))/2*a • x1 > x2 • dia == 25 and mes == “Dezembro” Expressões Lógicas • Antes de prosseguirmos, vamos fazer uma breve revisão sobre expressões envolvendo os três principais operadores lógicos. • Álgebra booleana: álgebra onde há apenas dois valores válidos: false (F) e verdadeiro (V). • Operações: – Conjunção: and – Disjunção: or – Negação: not Expressões Lógicas • Tabela Verdade: Conjunção X Y X and Y F F F F V F V F F V V V Expressões Lógicas • Tabela Verdade: Disjunção X Y X or Y F F F F V V V F V V V V Expressões Lógicas • Tabela Verdade: Negação X not X F V V F Estruturas Condicionais • Classificadas em três tipos: – Comando condicional simples – Comando condicional composto – Seleção entre duas ou mais sequências de comandos Comando Condicional Simples • Permite a escolha do grupo de ações a ser executado quando determinada condição é satisfeita. Comando Condicional Composto • Permite a escolha entre dois grupos de ações a serem executados, dependendo se uma determinada condição é satisfeita ou não. Comando if • Comando da estrutura condicional em Python: if • Todo comando if requer uma condição. – Verdadeira ou falsa. – Caso a condição seja verdadeira, o comando if executa um conjunto de instruções. • Quando existe um outro conjunto de instruções a ser executado quando o valor da condição é falso, utiliza- se o comando if-else. Comando if • Um conjunto de instruções dentro do comando if começa com o símbolo dois pontos (:). • Todas as instruções dentro de um comando if devem possuir um deslocamento do texto à direita (recuo) em relação ao if ao qual pertencem. • Qualquer instrução pode fazer parte de um conjunto de instruções, inclusive um comando if ou um comando if-else. Comando if • Sintaxe em Python: if <expressão>: <conjunto de instruções> #restante do código • Exemplo: num = 10 if num == 10: print("num e igual a 10") Exemplo Completo num = int(input("Digite um numero: ")) if num > 10: print("O numero e maior do que 10") if num == 10: print("O numero e igual a 10") if num < 10: print("O numero e menor do que 10") Comando if-else • Sintaxe em Python: if <expressão>: <conjunto de instruções 1> else: <conjunto de instruções 2> #restante do código • Podemos pensar no comando else como sendo um complemento do comando if. Exemplo completo num = int(input("Digite um numero: ")) if num == 10: print("O numero e igual a 10") else: print("O numero e diferente de 10") Aninhamento de if • É possível aninhar construções do tipo if-else em diversos níveis: – O if aninhado é simplesmente um if dentro da declaração de um outro if mais externo. – O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado. – Um else está ligado a um if que se encontra em seu mesmo alinhamento textual. Exemplo completo num = int(input("Digite um numero: ")) if num == 10: print("O numero e igual a 10") else: if num > 10: print("O numero e maior do que 10") else: print("O numero e menor do que 10") Encadeamento if-elif-else Encadeamento if-elif-else • Sintaxe em Python: if <expressão1>: <conjunto de instruções 1> elif <expressão2>: <conjunto de instruções 2> elif <expressão3>: <conjunto de instruções 3> else: <conjunto de instruções n> #restante do código Encadeamento if-elif-else • No encadeamento if-elif-else apenas um dos n conjuntos de comandos será executado. – O primeiro cujo teste for verdadeiro. Exemplo completo num = int(input("Digite um numero: ")) if num == 10: print("O numero e igual a 10") elif num > 10: print("O numero e maior do que 10") else: print("O numero e menor do que 10") • Exemplo: escrever o nome de um dígito. ‘0’”zero”, ‘1’”um”, ‘2’”dois”, etc. digito = input("Digite um numero [0,9]: ") if digito == "0": print("zero") elif digito == "1": print("um") elif digito == "2": print("dois") elif digito == "3": print("tres") elif digito == "4": print("quatro") elif digito == "5": print("cinco") elif digito == "6": print("seis") elif digito == "7": print("sete") elif digito == "8": print("oito") elif digito == "9": print("nove") else: print("Nao e digito") Exercício Resolvido Escreva um programa que leia a distância em Km e a quantidade de litros de gasolina consumidos por um carro em um percurso qualquer. Calcule o consumo em Km/l e escreva uma mensagem de acordo com a relação abaixo: Consumo (Km/l) Mensagem Menor do que 8 Venda o carro! Entre 8 e 14 Economico! Maior que 14 Super economico! Exercício Resolvido #Programa que calcula o consumo de um automovel distancia = float(input("Qual a distancia percorrida (Km)? ")) litros = float(input("Qual a quantidade de combustivel consumida (l)? ")) consumo = distancia / litros if consumo < 8: print("Venda o carro!") elif (consumo >= 8) and (consumo <= 14): print("Economico!") else: print("Super economico!") Exercício Resolvido #Programa que calcula o consumo de um automovel distancia = float(input("Qual a distancia percorrida (Km)? ")) litros = float(input("Qual a quantidade de combustivel consumida (l)? ")) consumo = distancia / litros if consumo < 8: print("Venda o carro!") elif 8 <= consumo <= 14: print("Economico!") else: print("Super economico!") Assim também funciona MAS CUIDADO!!!!! Aprenda a usar os operadores lógicos Exercício Resolvido 2 Considere o programa a seguir que lê a categoria de um produto e determina o preço do mesmo pela tabela abaixo: Categoria Preço (R$) 1 10,00 2 18,00 3 23,00 4 26,00 1 categoria = int(input("Digite a categoria do produto: ")) 2 if categoria == 1: 3 preco = 10 4 else: 5 if categoria == 2: 6 preco = 18 7 else: 8 if categoria == 3: 9 preco = 23 10 else: 11 if categoria == 4: 12 preco = 26 13 else: 14 print("Categoria invalida!") 15 preco = 0 16 print("O preco do produto e: R$%.2f" %preco) Exercício Resolvido 2 Exercício Resolvido 2 Quais seriam as linhas executadas do programa dado, considerando que a categoria digitada fosse: Categoria Linhas executadas 1 ???? 2 ???? 3 ???? 4 ???? outras ???? Exercício Resolvido 2 Quais seriam as linhasexecutadas do programa dado, considerando que a categoria digitada fosse: Categoria Linhas executadas 1 1,2,3,16 2 1,2,4,5,6,16 3 1,2,4,5,7,8,9,16 4 1,2,4,5,7,8,10,11,12,16 outras 1,2,4,5,7,8,10,11,13,14,15,16 Atribuição Múltipla de Variáveis ● Até agora, vimos como obter do usuário um dado por linha do dispositivo de entrada padrão. ● Mas e se os dados fossem fornecidos em uma mesma linha? ● Função split(): obtém cada palavra separada (por espaços ou tabulações). Forma geral: input(“...”).split() Atribuição Múltipla de Variáveis ● Problema: descobrir se dois nomes fornecidos pelo usuário são iguais. nome1, nome2 = input("Digite 2 nomes: ").split() iguais = nome1 == nome2 if iguais: print("Os 2 nomes sao iguais.") else: print("Os 2 nomes sao diferentes.") Atribuição Múltipla de Variáveis ● Problema: descobrir se dois nomes fornecidos pelo usuário são iguais. Atribuição Múltipla de Variáveis ● Problema: descobrir se dois nomes fornecidos pelo usuário são iguais. nome1, nome2 = input("Digite 2 nomes: ").split() iguais = nome1 == nome2 if iguais: print("Os 2 nomes sao iguais.") else: print("Os 2 nomes sao diferentes.") Atribuição múltipla Atribuição Múltipla de Variáveis ● Problema: descobrir se dois nomes fornecidos pelo usuário são iguais. nome1, nome2 = input("Digite 2 nomes: ").split() iguais = nome1 == nome2 if iguais: print("Os 2 nomes sao iguais.") else: print("Os 2 nomes sao diferentes.") Variável booleana Atribuição Múltipla de Variáveis ● Problema: descobrir se dois nomes fornecidos pelo usuário são iguais. nome1, nome2 = input("Digite 2 nomes: ").split() iguais = nome1 == nome2 if iguais: print("Os 2 nomes sao iguais.") else: print("Os 2 nomes sao diferentes.") Teste condicional com variável booleana Atribuição Múltipla de Variáveis ● Com conversão de tipos ● Função map(): utilizada para converter as strings de entrada em seus tipos apropriados. ● Dois parâmetros de entrada. ● 1o: tipo do dado para o qual será feita a conversão. ● 2o: dados a serem convertidos. Atribuição Múltipla de Variáveis ● Problema: calcular a média de dois números reais. numero1, numero2 = map(float, input("Digite 2 numeros: ").split()) print("A media e: ", (numero1+numero2)/2) Exercício Resolvido 3 Um terrível assassinato aconteceu na última noite, faça um programa para ajudar os investigadores a encontrar o culpado. Seu programa deve ler do dispositivo de entrada padrão o nome de 3 suspeitos e as respostas para cinco perguntas que um determinado detetive constatou em sua investigação. As respostas para as perguntas são apenas as palavras sim ou nao. Cada dado de entrada será fornecido em uma linha diferente. O programa deve, ao final, exibir no dispositivo de saída padrão o nome do culpado pelo assassinato, segundo a regra a seguir: se o detetive respondeu positivamente (sim) a apenas duas questões, o culpado é o primeiro suspeito; entre 3 e 4 respostas positivas, o culpado é o segundo suspeito; se foram 5 respostas positivas, o culpado é o terceiro suspeito; caso contrário, seu programa deverá exibir o nome de todos os suspeitos (na ordem em que foram fornecidos). Exercício Resolvido 3 As perguntas são: 1) A vítima recebeu uma ligação a exatamente uma semana atrás dizendo “7 dias”? 2) A vítima possui cortes e queimaduras severas causadas por um sabre de luz? 3) A causa da morte da vítima foi uma severa crise de risos? 4) A vítima faleceu durante uma cerimônia de casamento realizada em um castelo medieval? 5) Partes do corpo da vítima foram encontradas dentro de uma frigideira? Exercício Resolvido 3 suspeito1, suspeito2, suspeito3 = input().split() contador_sim = 0 resposta = input()#resposta 1a. pergunta if resposta == "sim": contador_sim += 1 resposta = input()#resposta 2a. pergunta if resposta == "sim": contador_sim += 1 resposta = input()#resposta 3a. pergunta if resposta == "sim": contador_sim += 1 resposta = input()#resposta 4a. pergunta if resposta == "sim": contador_sim += 1 resposta = input()#resposta 5a. pergunta if resposta == "sim": contador_sim += 1 1/2 Exercício Resolvido 3 if contador_sim == 2: print(suspeito1) elif 3 <= contador_sim <= 4: print(suspeito2) elif contador_sim == 5: print(suspeito3) else: print(suspeito1,suspeito2,suspeito3) 2/2 Exercícios 1. Faça um programa que leia os valores X e Y (números reais, um em cada linha) que representam as coordenadas de um ponto em um plano cartesiano. Em seguida faça um dos cálculos abaixo, dependendo de qual quadrante o ponto se encontra (conforme diagrama abaixo). Q2 Q1 Q3 Q4 Exercícios ● Primeiro quadrante: calcule o quociente da divisão de X por Y. ● Segundo quadrante: calcule o produto de X por Y. ● Terceiro quadrante: calcule a soma de X e Y. ● Quarto quadrante: calcule o valor de X elevado a Y. Obs: considere que o ponto nunca estará sobre os eixos do plano cartesiano. Exercícios 2. Pedro Álvares Cabral precisa organizar as caravelas para carregarem os cavalos, as vacas e as galinhas necessárias para a viagem para as Índias. A caravela possui um limite de carga e você deverá calcular a quantidade máxima de cada tipo de animal que a caravela poderá carregar. Lembre-se que Cabral possui uma quantidade limitada de cada tipo de animal, além disso, ele também informou qual o tipo de animal que é prioritário e que tipo de informação ele precisa para poder finalizar sua tarefa. A tabela abaixo apresenta o peso de cada tipo de animal: Tipo Peso Cavalo 250 Vaca 150 Galinha 2 Exercícios ● Informações extras: ● O objetivo é colocar o mínimo de animais, dessa forma os animais de grande porte tem prioridade. ● Ao final do processo é necessário ter como informação a quantidade de cada animal que pode ser incluído na caravela. ● Entradas: limite de carga (inteiro); quantidade de cavalos disponíveis (inteiro); quantidade de vacas disponíveis (inteiro); quantidade de galinhas disponíveis (inteiro). ● Saída: quantidade de animais que podem ser incluídos em uma caravela na seguinte ordem: cavalos, vacas e galinhas. Slide 1 Slide 2 Operadores Operadores Relacionais Operadores Lógicos Expressões Slide 7 Slide 8 Slide 9 Slide 10 Estruturas Condicionais Comando Condicional Simples Comando Condicional Composto Comando if Comando if Comando if Exemplo completo Comando if-else Exemplo completo Aninhamento de if Exemplo completo Encadeamento if-else-if Encadeamento if-else-if Encadeamento if-else-if Exemplo completo Encadeamento if-else-if Exercícios Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Exercícios (Entregar na próxima aula) Slide 47 Slide 48 Slide 49
Compartilhar