·

Engenharia Mecânica ·

Introdução à Lógica e Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Estruturas de seleção condicionais Estruturas de seleção condicionais Introdução à Lógica de Programação Processamento de Dados Introdução à Lógica de Programação Processamento de Dados Rodrigo Rocha rodrigorgsufbabr Rodrigo Rocha rodrigorgsufbabr Instituto de Computação Instituto de Computação Universidade Federal da Bahia Universidade Federal da Bahia 1 25 1 25 Estruturas de seleção As estruturas de seleção determinam com base em uma condição se certas linhas de código serão executadas ou não Em Python usamos as palavraschave if se else caso contrário e elif abreviação de else if 2 25 if Do inglês se conjunção subordinativa condicional Sintaxe if condicao bloco de código Significado o bloco de código sequência de instruções é executado somente se a condicao for verdadeira Note Depois da condição deve vir um sinal de doispontos A sequência de instruções deve estar indentada em relação à palavra if isto é deve estar mais à direita if Exemplo idade intinputDigite sua idade if idade 18 printVocê não é adulto printFavor trazer autorização do responsável printPrograma finalizado Sempre que você executar o programa ele vai pedir sua idade e ao final sempre vai escrever Programa finalizado Os dois primeiros prints no entanto só vão ser executados se você digitar um número menor que 18 O bloco de código do if é delimitado pela indentação espaços à esquerda Visualize a execução do código no Python Tutor Indentação Indentar significa inserir espaços em branco no início de uma linha de texto Você pode usar espaços ou tabs mas não misture os dois no mesmo códigofonte Python usa indentação para determinar onde começa e onde termina um bloco de código uma sequência de linhas com a mesma indentação mesmo número de espaços é um bloco de código Se você indentar seu código errado o interpretador vai emitir um IndentationError Exemplos de erros ERRADO if 1 2 printMenor ERRADO if 1 2 printMenor ERRADO if idade 18 printVocê não é adulto printFavor trazer autorização do responsável Como escrever condições Use os operadores relacionais é maior que é menor que é maior ou igual a não escrever é menor ou igual a não escrever é igual a não confundir com é diferente de 6 25 if outro exemplo Na compra de um produto dado o preço unitário e o número de unidades imprima o valor total da compra Se o número de unidades for superior a 10 o cliente ganha 5 de desconto 7 25 if outro exemplo Na compra de um produto dado o preço unitário e o número de unidades imprima o valor total da compra Se o número de unidades for superior a 10 o cliente ganha 5 de desconto preco floatinput quantidade intinput total preco quantidade if quantidade 10 total 095 printtotal 8 25 if mais um exemplo Escreva um programa que dado o ano atual o ano de nascimento da pessoa e sabendo se ela já fez aniversário no ano atual imprime a idade da pessoa Entrada ano atual ano de nascimento e a string S se já fez aniversário no ano atual ou N caso contrário 9 25 if mais um exemplo Escreva um programa que dado o ano atual o ano de nascimento da pessoa e sabendo se ela já fez aniversário no ano atual imprime a idade da pessoa Entrada ano atual ano de nascimento e a string S se já fez aniversário no ano atual ou N caso contrário Entrada anoatual intinput anonascimento intinput naofezaniversario input N Processamento idade anoatual anonascimento if naofezaniversario idade idade 1 Saída printidade 10 25 if Considere agora o seguinte programa idade intinputDigite sua idade if idade 18 printVocê é adulto if idade 18 printVocê não é adulto Note que as condições são opostas Nesse caso podemos usar a estrutura ifelse que veremos a seguir 11 25 ifelse Do inglês else significa senão caso contrário O else nunca aparece sozinho ele é parte da estrutura ifelse Sintaxe if condicao bloco1 else bloco2 Semântica se a condicao for verdadeira executa bloco1 se for falsa executa bloco2 ifelse Exemplo idade intinputDigite sua idade if idade 18 printVocê é adulto else printVocê não é adulto printFim 13 25 ifs aninhados idade intinputDigite sua idade if idade 18 printVocê é adulto else if idade 12 printVocê é adolescente else printVocê é criança printFim 14 25 ifelif Sintaxe if cond1 bloco1 elif cond2 bloco2 elif condN blocoN else o else é opcional blocoM Semântica Executa o bloco1 se a condição cond1 for verdadeira caso contrário executa bloco2 se a condição cond2 for verdadeira e assim por diante Se todas as condições cond1condN forem falsas executa blocoM OBS Nessa estrutura executase apenas o bloco de código corresponde à primeira condição verdadeira de cima pra baixo 15 25 ifelif idade intinputDigite sua idade if idade 18 printVocê é adulto elif idade 12 printVocê é adolescente else printVocê é criança printFim 16 25 ifelif Exemplo nota floatinput if nota 90 printExcelente elif nota 70 printMuito bom elif nota 50 printRazoável else printEstude mais 17 25 Expressões lógicas booleanas Expressões lógicas booleanas 18 25 18 25 Expressões lógicas As condições do if e do elseif são expressões lógicas isto é expressões que retornam verdadeiro True ou falso False tipo bool booleano Para isso podemos usar operadores relacionais e operadores lógicos 19 25 Operadores relacionais Usado para fazer comparações entre o valor de duas expressões São os seguintes é maior que é menor que é maior ou igual a não escrever é menor ou igual a não escrever é igual a não confundir com é diferente de 20 25 Operadores relacionais Exemplo x intinput if x 0 printPositivo elif x 0 printNegativo if x 2 1 printÍmpar 21 25 Operadores lógicos São usados para combinar expressões condicionais not não negação and e conjunção lógica or ou disjunção lógica A ordem de precedência é not and or Exemplo x intinput if not x 0 and x 2 1 printPositivo impar 22 25 Operadores lógicos Exemplo x y inputsplit x intx y inty if y 1 or x 0 and x 5 printOk Por causa das regras de precedência a expressão é equivalente a y 1 or x 0 and x 5 23 25 Avaliação em curtocircuito Ao computar o resultado de uma expressão lógica com operadores and e or o interpretador só avalia as subexpressões se necessário A and B se A for falso a expressão B não é avaliada pois qualquer que seja seu valor a expressão A and B é falsa A or B se A for verdadeiro a expressão B não é avaliada pois qualquer que seja seu valor a expressão A or B é verdadeira 24 25 Exemplo obrigatoriedade de votação Programa que lê a idade de uma pessoa e mostra uma mensagem indicando a possibilidade e obrigatoriedade do voto Menor de 18 anos Não vota 16 ou 17 anos Voto facultativo 18 a 69 anos Voto obrigatório 70 anos ou maior Voto facultativo idade intinput if idade 16 if idade 18 and idade 70 printVoto obrigatório else printVoto facultativo else printNão pode votar 25 25