Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de programação: Tópicos preliminares (cont.) Emanuele Santos UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Objetivos • Explicar as expressões lógicas, operadores relacionais e lógicos • Saber avaliar essas expressões 2 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Expressões Lógicas • Operadores lógicos ou relacionais • Operandos são relações ou variáveis ou constantes do tipo lógico 3 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Operadores Relacionais • Utilizados em comparações entre dois valores de mesmo tipo primitivo • Valores: constantes, variáveis ou expressões aritméticas 4 Operador Função Exemplo == igual a X == Y, Z == 3 > maior que X > Y, X > 18 < menor que X < Y, X < 10 >= maior ou igual a X >= Y, X <= 32 <= menor ou igual a X <= Y, X <= 32 != diferente de X != Y, X != 56 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Operadores Relacionais • Resultado é sempre um valor lógico • Exemplo A + B == C O resultado pode ser Verdadeiro (True) ou Falso (False), dependendo dos valores de A, B e C 5 >>> A = 3 >>> B = 5 >>> C = 8 >>> A + B == C True >>> A = 4 >>> A + B == C False UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Operadores Relacionais • Exemplos • 3 * 6 == 36/2 • 15 % 4 < 19 % 6 • 3 * 5 // 4 <= 3**2 / 0.5 6 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Operadores Lógicos •Três operadores lógicos 7 Operador Função Exemplo not não (negação) not X or ou (disjunção) X > Y or X > Z and e (conjunção) X > Y and X < Z UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Tabelas-Verdade • Conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas e um conjunto de operadores lógicos 8 Operação de negaçãoOperação de negação A not A F V V F Operação de conjunção e disjunçãoOperação de conjunção e disjunçãoOperação de conjunção e disjunçãoOperação de conjunção e disjunção A B A and B A or B F F F F F V F V V F F V V V V V UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Tabelas-verdade • Exemplo -Se chover e relampejar, eu fico em casa. Quando eu fico em casa? • Quando os termos chover e relampejar forem simultaneamente verdade -Se chover ou relampejar, eu fico em casa. Quando eu fico em casa? • Somente chovendo, somente relampejando ou chovendo e relampejando. 9 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Prioridade dos operadores lógicos 10 Prioridade Operadores 1a not 2a and 3a or UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Prioridade de todos os operadores 11 Prioridade Operadores 1a parênteses mais internos 2a operadores aritméticos 3a operadores relacionais 4a operadores lógicos UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Exemplos • 2 < 5 and 15/3 == 5 • False or 20 //(18/3) != (21/3) // 2 • not True or 3**2/3 < 15 - 35 % 7 • not (5 != 10/2) or True and 2 - 5 > 5 - 2 or True • 2**4 != 4 + 2 or 2 + 3 * 5/3 % 5 < 0 12 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Exercícios 13 Forbellone, pg 25 • Determine os resultados das expressões lógicas a seguir, sabendo que A = 2, B = 7, C = 3.5, L = False: -a) B == A * C and (L or True) -b) B > A or B == A**A -c) L and B % A >= C or not A <= C -d) not L or True and sqrt(A+B) >= C -e) B /A == C or B/A != C -f) L or B**A <= C * 10 + A * B UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Comando de Atribuição • Variáveis serão do tipo de acordo com o tipo da expressão atribuída • Exemplos 14 >>> A = True >>> type(A) <class 'bool'> >>> A = 5 == 3 >>> A False >>> X = 8 + 13 % 5 >>> B = X > 10 >>> B True UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Blocos • Conjunto de ações com uma função definida • Um algoritmo pode ser visto como um bloco • Define os limites nos quais as variáveis declaradas em seu interior são conhecidas • Em python: -O número de espaços no começo da linha indica o bloco -Os blocos são construídos adicionando-se 4 espaços ao começo de cada linha 15 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Exercício • Utilizando o seguinte trecho de um programa em python, explique o que está acontecendo em cada linha e mostre o resultado de cada linha executada: 16 x = int(input(“Entre com o valor de x:”)) print(“x elevado ao cubo = ”, x**3) y = int(input(“Entre com o valor de y:”)) print(x+y) z = x/y print(z) z = z+1 x = (y+x) % 2 print(x) Baseado em Forbellone, pg 28 e 29 Estruturas de Controle: Estrutura sequencial e de seleção (condicional) UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Objetivos • Apresentar o conceito de estrutura sequencial de fluxo de execução • Explicar a aplicabilidade das estruturas de seleção (ou condicionais), suas variantes, combinações e equivalências 18 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Criação de Algoritmos • Conceitos utilizados -Bloco lógico -Entrada e saída de dados -Variáveis -Constantes -Atribuições -Expressões lógicas, relacionais e aritméticas -Outros comandos 19 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Criação de Algoritmos • Conceitos organizados em ações executadas conforme uma relação lógica (fluxo de execução) -Estruturas de controle de fluxo de execução • Sequenciação, seleção (condicional) e de repetição 20 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Estrutura sequencial • Instruções são executadas linearmente na ordem em que foram escritas -de cima para baixo -da esquerda para direita • Em python, cada instrução ocupa uma linha 21 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Estrutura sequencial • Modelo geral de algoritmo 22 x = int(input(“Entre com o valor de x:”)) print(“x elevado ao cubo = ”, x**3) y = int(input(“Entre com o valor de y:”)) print(x+y) z = x/y print(z) z = z+1 x = (y+x) % 2 print(x) UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Estrutura sequencial • Exemplo • Algoritmo que calcule a média aritmética ponderada entre quatro notas bimestrais (pesos P1 = 1, P2 = 2, P3 = 3, P4 = 4) fornecidas por um aluno (usuário). -Dados de entrada: quatro notas bimestrais (N1, N2, N3, N4) -Dados de saída: Média aritmética ponderada -Cálculo da média aritmética ponderada: • (N1 * P1 + N2 * P2 + N3 * P3 + N4 * P4)/(P1 + P2 + P3 + P4) 23 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2Estrutura sequencial 24 #inicialização dos pesos P1 = 1 P2 = 2 P3 = 3 P4 = 4 #entrada das notas N1 = float(input(“Entre com a nota 1”)) N2 = float(input(“Entre com a nota 2”)) N3 = float(input(“Entre com a nota 3”)) N4 = float(input(“Entre com a nota 4”)) #cálculo da média aritmética ponderada M = (N1*P1 + N2*P2 + N3*P3 + N4*P4)/(P1+P2+P3+P4) print(“A média aritmética ponderada é ”, M) UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Estrutura Sequencial: Exercício •Construa um algoritmo que recebe dois pontos quaisquer num plano P1(x1,y1) e P2(x2,y2) e mostra a distância d entre eles. 25 d = p (x2 � x1)2 + (y2 � y1)2 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Estruturas de seleção • Permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições (expressões lógicas ou relacionais) são ou não satisfeitas 26 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Seleção simples • Teste de uma condição antes de executar uma ação if <condição>: <comando 1> #um comando qualquer onde <condição> é uma expressão lógica que pode retornar falso ou verdadeiro se <condição> for verdadeira, <ação 1> é executada. Caso contrário, a seleção termina e os comandos no mesmo bloco do if são executados (se houver) 27 4 espaços delimitando um novo bloco UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Seleção simples 28 • Pode haver mais de um comando dentro do bloco: • Se <condição> for verdadeira, que comandos serão executados? • E se <condição> for falsa? if <condição> : comando 1 comando 2 comando 3 comando 4 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Seleção simples • Modifique o algoritmo da média aritmética ponderada de forma que mostre se o aluno foi aprovado (média superior ou igual a 7) 29 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 • Pode haver mais de um comando dentro do bloco: • Se <condição> for verdadeira, que comandos serão executados? • E se <condição> for falsa? Seleção Composta 30 if <condição> : comando 1 comando 2 comando 3 else: comando 4 comando 5 comando 6 UFC - Universidade Federal do Ceará Fundamentos de Programação - Professora Emanuele Santos - Período 2013.2 Seleção composta • Modifique o algoritmo da média aritmética ponderada de forma que mostre se o aluno foi aprovado (média superior ou igual a 7) ou reprovado. 31
Compartilhar