Introdução à Lógica de Programação (cont.) Luis Otavio Alvares Adaptado de slides das profas. Vania Bogorny, Patrícia Jaques e Mônica Py 1 Operadores Lógica de programação – Usados para incrementar, decrementar, comparar e avaliar dados, que são operações básicas em processamento de dados. – Tipos: • Aritméticos (+, -, *, /, ** ou ^) – Resultados numéricos • Relacionais (>, <, >=, <=, =, <> ou #) – Resultados lógicos (V ou F) • Lógicos (e, ou, não) – Combinam resultados lógicos Precedência dos operadores 2 Lógica de programação • Operadores relacionais são muito usados quando temos que tomar decisões nos algoritmos. Com eles fazemos testes, comparações, que resultam em valores lógicos (verdadeiro ou falso): Exemplo: tendo duas variáveis, A = 5 e B = 3: 3 Exercícios 6) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo, informe se as expressões são verdadeiras ou falsas. 7) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B –A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( ) 4 Lógica de programação • Operadores lógicos combinam resultados lógicos, gerando novos valores lógicos (verdadeiro ou falso). A “tabela-verdade” abaixo mostra todos os valores possíveis de se obter com oper. lógicos: T = Verdad. F = Falso AND = E OR = OU NOT = NÃO 5 Lógica de programação • Combinando operadores relacionais e operadores lógicos criamos operações lógicas, que produzirão resultados lógicos (verdadeiro ou falso). Por exemplo, se A = 5, B = 8 e C = 1: – – – – – – (A = B) E (B > C) (A <> B) OU (B < C) NÃO (A > B) (A < B) E (B > C) (A >= B) OU (B = C) NÃO (A <= B) é é é é é é falso (f e v) verdadeiro (v ou f) verdadeiro (não f) verdadeiro (v e v) falso (f ou f) falso (não v) • São usadas em decisões nos algoritmos... 6 Exercícios 8. Considere a seguinte atribuição de valores para as variáveis: A=3, B=4, C=8. Avalie as expressões a seguir indicando o resultado final: verdadeiro ou falso. 1) 2) 3) 4) 5) 6) 7) 8) 9) A A A A A B A A C >3EC=8 <> 2 OU B <= 5 = 3 OU B >= 2 E C = 8 = 3 E NÃO B <= 4 E C = 8 <> 8 OU B = 4 E C > 2 > A E C <> A > B OU B < 5 <> B E B = C > 2 OU A < B 10) A > B OU B > A E C <> B ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ( ) 7 Exercícios 9) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas. a) (A > C) AND (C <= D) ( ) b) (A+B) > 10 OR ((A+B) = (C+D)) ( ) c) (A>=C) AND (D >= C) ( ) 8 Decisão em algoritmos • Os algoritmos vistos até agora eram sequenciais, isto é, todas as operações eram realizadas em sequência. • Muitos problemas reais exigem a tomada de decisão no algoritmo, com mais de um caminho sendo possível de ser seguido. 9 Lógica de programação • ESTRUTURAS DE DECISÃO – Comandos de decisão ou desvio fazem parte das técnicas de programação, para construir estruturas de algoritmos que não são totalmente seqüenciais. – Com as instruções de desvio pode-se fazer com que o algoritmo proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. – As principais estruturas de decisão são: • SE...ENTÃO • SE...ENTÃO...SENÃO • CASO FOR...ENTÃO 10 SE ... ENTÃO ... Lógica de programação - Formato: • Se <condição> então <ações> • Significado: Se a <condição> resultar em verdadeiro, então executar as <ações>. Senão, simplesmente ignorar as <ações> e seguir para a próxima instrução no algoritmo. • Usada para decidir se um conjunto de ações opcionais deve ser executado ou não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo. 11 Lógica de programação • Exemplo da estrutura SE...ENTÃO: “Avisar se um número lido é negativo.” – PSEUDOCÓDIGO: Ler N Se (N < 0) então exibir “É negativo!” INÍCIO – FLUXOGRAMA: Ler N CONDIÇÃO: Poderá ser V ou F, dependendo do valor de N, que foi lido antes. N<0 Sim Mostra: “É negativo!” Não FIM 12 SE ... ENTÃO ...SENÃO... Lógica de programação - Formato: Se <condição> então <ações 1> senão <ações 2> • Significado: Se a <condição> resultar em verdadeiro, então executar <ações 1>. Senão, ignorar <ações 1> e executar <ações 2>. • Usada para decidir entre duas alternativas de ações. • Um dos dois conjuntos de ações será executado e o outro não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo. • O valor do dado ou do resultado anterior será testado na condição, determinando qual conjunto de ações será executado. 13 Lógica de programação • Exemplo da estrutura SE...ENTÃO...SENÃO: “Mostrar a diferença entre 2 números quaisquer.” – PSEUDOCÓDIGO: Ler N1 Ler N2 Se (N1 > N2) então DIF = N1 - N2 senão DIF = N2 - N1 Mostrar DIF – O que acontece se os dois números forem iguais? – O que acontece se um ou os dois números forem negativos? 14 Lógica de programação INÍCIO – FLUXOGRAMA: N1 N2 DIF = N2 - N1 Não N1 > N2 Sim DIF = N1 - N2 DIF FIM 15 Exercícios • Faça um algoritmo que leia um número e mostre o número lido e uma mensagem indicando se este número é par ou ímpar e se é positivo ou negativo. 16 Exercício • Escrever um algoritmo para ler dois números. Imprimir os dois números. Se os números forem iguais imprimir a mensagem: “Números iguais” e encerrar a execução; caso contrário, imprimir o de maior valor, acompanhando pela mensagem “é o maior número”. 17 Exercício • Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias: – Infantil : 5 a 10 anos; – Juvenil : 11 a 17 anos; – Sênior: 18 anos ou mais. • Faça um algoritmo que leia duas notas obtidas por um aluno na disciplina de Cálculo, o número de aulas ministradas e o número de aulas assistidas por este aluno nesta disciplina. Calcule e mostre a média final deste aluno e diga se ele foi aprovado ou reprovado. Considere que para um aluno ser aprovado ele deve obter média final igual ou maior a 6 e ter no mínimo 75% de freqüência. 18 • Desenvolva um algoritmo que efetue a leitura de três valores correspondentes ao tamanho dos lados de um triângulo, considerando lados como: A, B e C. O algoritmo deverá verificar se os lados fornecidos formam realmente um triângulo. Se for esta condição verdadeira, deverá ser indicado qual tipo de triângulo foi formado: isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou eqüilátero (todos os lados são iguais). 19