Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 9 – Estrutura Condicional Computação I - aula 9 - 2014/1 2 Estrutura Condicional ● Estrutura utilizada em situações na qual o programa deve TOMAR DECISÕES. Se (condição) Então Conjunto de comandos se a condição for verdadeira Senão Conjunto de comandos se a condição for falsa Computação I - 2014/1 - aula 9 3 Problema: Faça um algoritmo para jogar o jogo da velha. Tabuleiro : 1 2 3 4 5 6 7 8 9 - Jogue(n) : Jogar na posição n. - posição(n): Retorna se a posição n está vazia ou não. - Faça2 : Retorna 5 se a posição 5 estiver vazia. Caso contrário, retorna qualquer uma das seguintes posições que esteja vazia: 2,4,6 ou 8. - Ganha(p) : verdade se o jogador p puder vencer fazendo uma jogada. Retorna a posição na qual p ganharia. Computação I - 2014/1 - aula 9 4 Problema: Faça um algoritmo para jogar o jogo da velha. Movimentos : X para jogadas ímpares e O para jogadas pares. Jogada = 1 : jogue(1) Jogada = 2 : Se posição(5) = vazia então jogue(5) c.c. jogue(1) Jogada = 3 : Se posição(9) = vazia então jogue(9) c.c. jogue(3) Jogada = 4 : Se ganha(X) então jogue(ganha(X)) {bloque vitória adv} c.c. jogue(faça2) Jogada = 5 : Se ganha(X) então jogue(ganha(X)) {vença} c.c. se ganha(O) então jogue(ganha(O)) c.c. se posição(7) = vazia então jogue(7) c.c. jogue(3) Jogada = 6 : Se ganha(O) então jogue(ganha(O)) c.c. se ganha(X) então jogue(ganha(X)), c.c. jogue(faça2) Jogada = 7 , 9 : Se ganha(X) então jogue(ganha(X)) c.c. se ganha(O) então jogue(ganha(O)); c.c. jogue em qualquer posição vazia. Jogada = 8 : Se ganha(O) então jogue(ganha(O)) c.c. se ganha(X) então jogue(ganha(X)); c.c. jogue em qualquer posição vazia. Computação I - aula 9 - 2014/1 5 Expressões Booleanas ● A condição a ser testada numa estrutura condicional é chamada de Expressão Booleana. ● Uma expressão booleana retorna como resultado de sua avaliação os valores: verdadeiro (True) ou falso (False). ● Uma expressão booleana pode ser composta por variáveis booleanas, operadores relacionais e operadores lógicos. Computação I - aula 9 - 2014/1 6 Variáveis Booleanas ● Algumas variáveis apresentam somente dois valores possíveis: False ou True. ● Tais variáveis são ditas booleanas. Se (x) Então Conjunto de comandos se a variável x for verdadeira Senão Conjunto de comandos se a variável x for falsa Computação I - aula 9 - 2014/1 7 Operadores Relacionais • Realizam testes e retornam um valor booleano: • x == y: testa se x e y são iguais. • x != y: testa se x e y são diferentes. • x < y: testa se x é menor do que y. • x <= y: testa se x é menor ou igual a y. • x > y: testa se x é maior do que y. • x >= y: testa se x é maior ou igual a y. Computação I - aula 9 - 2014/1 8 Operadores Relacionais • Exemplos de condições: Se (x == 5) Então Conjunto de comandos se a expressão x==5 for verdadeira Senão Conjunto de comandos se a expressão x==5 for falsa • Se (x+1 >= y-2) ... • Se (nome != “Pedro”) ... • Se (frase.find(“parte”) > -1) ... Computação I - aula 9 - 2014/1 9 Operadores Lógicos • Operadores: not (negação), and (e), or (ou) • x and y: verdadeiro se, e somente se x e y forem ambos verdadeiros. • x or y: falso se, e somente se x e y forem ambos falsos. • not x: falso se x for verdadeiro, e verdadeiro se x for falso. • Observe que x e y podem ser variáveis booleanas ou podem ser expressões booleanas compostas de operadores relacionais e operadores lógicos. Computação I - aula 9 - 2014/1 10 Operadores Lógicos • Exemplos: Se (x > 5 and nome != “Pedro”) Então Conjunto de comandos se a condição for verdadeira Senão Conjunto de comandos se a condição for falsa • Se (x <= 7 and y > 2 or y == 3) ... • Se (not x>2) ... Computação I - aula 9 - 2014/1 11 Precedência • Observe as condições abaixo: • Se (x <= 7 and y > 2 or y == 3) ... • Se (y > 2 or y == 3 and x <= 7 ) ... • Supondo que x = 10 e y = 5, as duas condições retornam o mesmo valor booleano? Computação I - aula 9 - 2014/1 12 Precedência • Ordem de Precedência: not, and, or. F V F • Se (10 <= 7 and 5 > 2 or 5 == 3) ... F and V = F F or F = F V F F • Se (5 > 2 or 5 == 3 and 10 <= 7 ) ... F and F = F V or F = V 13 Expressões Booleanas ● Tabela Verdade Computação I - aula 9 - 2014/1 14 Expressões Booleanas ● Exercício 1 Construa a tabela-verdade para as seguintes expressões: 1- (p and q) and not(p or q) 2- not(p and not q) or q 3- (X + Y > Z) or (Nome != “Maria”) and 1==2 4- (Nome == “Jorge”) and False or (Z =< X +10) Computação I - aula 9 - 2014/1 15 Estrutura Condicional Simples Se (condição) Então Conjunto de comandos se a condição for verdadeira ● Só se preocupa em executar um conjunto de comandos se a condição for verdadeira. Não faz nada se a condição for falsa. Computação I - aula 9 - 2014/1 16 Estrutura Condicional Simples ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 17 Estrutura Condicional Simples ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 18 Estrutura Condicional Simples ● Um erro muito comum a ser evitado é utilizar o operador de atribuição em vez do operador de teste de igualdade. Computação I - aula 9 - 2014/1 19 Estrutura Condicional Simples ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 Quantos testes foram feitos? Podemos simplificar o código ? Como ? 20 Estrutura Condicional Composta Se (condição) Então Conjunto de comandos se a condição for verdadeira Senão Conjunto de comandos se a condição for falsa Computação I - aula 9 - 2014/1 21 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 22 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 Comandos 1 Comandos 2 23 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero.Computação I - aula 9 - 2014/1 Comandos 1 Comandos 2 24 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 25 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 Quantos testes foram feitos? Podemos simplificar o código ? Como ? 26 Estrutura Condicional Composta ● Exemplo: Faça uma função que dado um número inteiro X, determina se ele é positivo, negativo ou zero. Computação I - aula 9 - 2014/1 27 Estrutura Condicional Composta - elif Computação I - aula 9 - 2014/1 28 Estrutura Condicional Exercícios: 1) Faça uma função que receba como entrada o código de uma mercadoria e o preço e retorne como saída o preço final da mercadoria, sendo que se o código for '00' um desconto de 10% no preço deve ser aplicado. Computação I - aula 9 - 2014/1 29 Estrutura Condicional Exercícios: 1) Faça uma função que receba como entrada o código de uma mercadoria e o preço e retorne como saída o preço final da mercadoria, sendo que se o código for '00' um desconto de 10% no preço deve ser aplicado. Computação I - aula 9 - 2014/1 30 Estrutura Condicional Exercícios: 2) Faça uma função que receba como entrada dois números e retorne o maior deles. Os valores são, por definição, diferentes entre si. Computação I - aula 9 - 2014/1 31 Estrutura Condicional Exercícios: 2) Faça uma função que receba como entrada dois números e retorne o maior deles. Os valores são, por definição, diferentes entre si. Computação I - aula 9 - 2014/1 ou 32 Estrutura Condicional Exercícios: 3) Faça uma função que receba como entrada dois números e retorne o maior deles. Caso os números sejam iguais, retorne “Os números são iguais”. Computação I - aula 9 - 2014/1 33 Estrutura Condicional 3) Faça uma função que receba como entrada dois números e retorne o maior deles. Caso os números sejam iguais, retorne “Os números são iguais”. Computação I - aula 9 - 2014/1 ou 34 Estrutura Condicional Exercícios: 4) Faça uma função que receba como entrada três números e retorne o maior deles. Caso os números sejam iguais, retorne “Os números são iguais”. Computação I - aula 9 - 2014/1 35 Estrutura Condicional Exercícios: 4) Faça uma função que receba como entrada três números e retorne o maior deles. Caso os números sejam iguais, retorne “Os números são iguais”. Computação I - aula 9 - 2014/1 36 Estrutura Condicional Exercícios: 5) Uma faculdade atribui menções aos alunos conforme a faixa de notas que tenha atingido: 9,0 a 10: S (superior) 7,0 a 8,9: MS (médio superior) 5,0 a 6,9: M (médio) 0,0 a 4,9: MI (médio inferior) . Faça uma função que dada a nota retorna a menção. Caso a nota não esteja entre 0 e 10, retornar mensagem de “nota inválida”. Computação I - aula 9 - 2014/1 37 Estrutura Condicional Exercícios: 5) Resposta com testes desnecessários: Computação I - aula 9 - 2014/1 38 Estrutura Condicional Exercícios: 5) Resposta com menos testes e if/else: Computação I - aula 9 - 2014/1 39 Estrutura Condicional Exercícios: 5) Resposta com menos testes e com elif: Computação I - aula 9 - 2014/1 40 Aula 9 – Estrutura Condicional Computação I - aula 9 - 2014/1
Compartilhar