Baixe o app para aproveitar ainda mais
Prévia do material em texto
Plano de Aula: Condições compostas INTRODUÇÃO A PROGRAMAÇÃO - CCT0672 Título Condições compostas Número de Aulas por Semana Número de Semana de Aula 8 Tema Estrutura de decisão - condições compostas Objetivos O aluno deverá ser capaz de: · Utilizar os operadores lógicos para tratar condições compostas em estruturas de decisão. · Discernir sobre quais algoritmos estão sujeitos ao uso desse comando alternativo. · Resolver exercícios que necessitem do uso de estruturas de decisão com condições compostas. · Utilizar comandos de uma linguagem de programação para implementação de algoritmos, na forma de programas de computador (Laboratório). Estrutura do Conteúdo Conteúdos: Desenvolver: · Apresentação dos operadores lógicos (e, ou e não). · Apresentação do comando se utilizando operadores lógicos, para tratar condições compostas. · Resolução de exercícios com estrutura de decisão com condições compostas. · Apresentação de comandos da linguagem de programação, correspondentes aos comandos utilizados nos algoritmos. · Desenvolvimento de programas com a linguagem de programação. Conceitos: 1. Operadores Lógicos Existem situações onde é necessário utilizar mais do que uma condição em um único comando se. Nessas situações é necessário utilizar algum operador para “ligar” essas duas condições e dar sentido ao teste lógico que está sendo realizado. Esse operador recebe o nome de Operador Lógico. Esses operadores vieram diretamente da Álgebra Booleana (criada por George Boole no século XIX). Nos algoritmos são utilizados três operadores lógicos: e, ou e não. 2. Operador Lógico e O operador lógico e segue o seguinte conceito: uma afirmação, composta por várias afirmações intermediárias, só será verdadeira se TODAS as afirmações intermediárias forem verdadeiras. No caso dos algoritmos não existem afirmações, mas sim condições a serem testadas e que podem ter como resposta “sim” ou “não”. A idéia é a mesma: uma condição, composta por várias condições, só será verdadeira se TODAS as condições forem verdadeiras. A partir disso é possível criar uma tabela (conhecida como Tabela Verdade): Condição1 Condição2 Condição Composta:Condição1 e Condição2 N N N N S N S N N S S S Obs: A regra é a mesma quando houver mais do que duas condições. Para exemplificar, vejamos a situação onde é necessário descobrir se um determinado valor está dentro de uma faixa de valores entre 0 e 100: Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão6.jpg se (VALOR >= 0) então se (VALOR <= 100) então escreva (“Valor dentro da faixa”); senão escreva (“Valor fora da faixa”); fim_se senão escreva (“Valor fora da faixa”); fim_se Observe que temos somente duas opções de mensagem para apresentar e para que uma delas seja apresentada (mensagem “Valor dentro da faixa”), as duas condições devem ser verdadeiras. Para a outra mensagem (“Valor fora da faixa”), qualquer condição que seja falsa, serve para que ela seja apresentada. Isso é exatamente o que apresenta a Tabela Verdade do operador lógico e. Sendo assim, essa mesma estrutura de decisão poderia ser feita da seguinte forma. Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão7.jpg se (VALOR >= 0 e VALOR <= 100) escreva (“Valor dentro da faixa”); senão escreva (“Valor fora da faixa”); fim_se 3. Operador Lógico ou O operador lógico ou segue o seguinte conceito: uma afirmação, composta por várias afirmações intermediárias, só será falsa se TODAS as afirmações intermediárias forem falsas. No caso dos algoritmos: uma condição, composta por várias condições, só será falsa se TODAS as condições forem falsas. A partir disso é possível criar uma tabela (conhecida como Tabela Verdade): Condição1 Condição2 Condição Composta:Condição1 ou Condição2 N N N N S S S N S S S S Obs: A regra é a mesma quando houver mais do que duas condições. Para exemplificar, vejamos a situação onde é necessário descobrir se uma determinada pessoa mora no estado de “SP” ou no estado “RJ”: Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão8.jpg se (ESTADO = “SP”) então escreva (“É paulista ou carioca”); senão se (ESTADO = “RJ”) então escreva (“É paulista ou carioca”); senão escreva (“Não é paulista, nem carioca”); fim_se fim_se Observe que temos somente duas opções de mensagem para apresentar e para que uma delas seja apresentada (mensagem “Não é paulista, nem carioca”), as duas condições devem ser falsas. Para a outra mensagem (“É paulista ou carioca”), qualquer condição que seja verdadeira, serve para que ela seja apresentada. Isso é exatamente o que apresenta a Tabela Verdade do operador lógico ou. Sendo assim, essa mesma estrutura de decisão poderia ser feita da seguinte forma. Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão9.jpg se (ESTADO = “SP” ou ESTADO = “RJ”) então escreva (“É paulista ou carioca”); senão escreva (“Não é paulista, nem carioca”); fim_se 4. Operador Lógico não O operador lógico não segue o seguinte conceito: uma afirmação verdadeira se torna falsa com o uso desse operador. No caso dos algoritmos: uma condição será considerada falsa, caso for verdadeira. E vice-versa. Isso é utilizado quando necessitamos “inverter” a lógica, ou seja, mantemos a condição testada, mas necessitamos que o tratamento dado a ela pelo algoritmo seja o inverso do que normalmente seria (em relação a ser verdadeira ou falsa). A partir disso é possível criar uma tabela (conhecida como Tabela Verdade): Condição1 Condição Composta:não Condição1 N S S N Para exemplificar, vejamos a situação onde é necessário apresentar uma mensagem de boas vindas para as pessoas que forem de qualquer estado, menos para aquelas que forem de “SP”. Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão10.jpg se (ESTADO < > “SP”) então escreva (“Seja bem vindo!”); fim_se Observe que o comando se testa uma condição de desigualdade. Algumas pessoas não estão acostumadas a trabalhar com esse tipo de pergunta, portanto é possível trabalhar com igualdade, apenas invertendo a lógica. Para isso, temos de usar o operador lógico não. Isso é exatamente o que apresenta a Tabela Verdade do operador lógico não. Sendo assim, essa mesma estrutura de decisão poderia ser feita da seguinte forma. Fluxograma Pseudocódigo Figura: arquivo anexo Fluxo_Decisão11.jpg se (não ESTADO = “SP”) então escreva (“Seja bem vindo!”); fim_se Obs: O que pode ser percebido é que o uso dos operadores lógicos é opcional. O seu uso auxiliará a simplificar o algoritmo (menor número de comandos), o que é bastante interessante, mas não influenciará no resultado final gerado pelo algoritmo. 5. Comandos da Linguagem de Programação Abaixo uma tabela de correspondência de comandos: Comando Pseudocódigo Comando Linguagem C++ a) Operadores Lógicos: Operador e se (VALOR >= 0 e VALOR <= 100) então escreva (“Valor dentro da faixa”); senão escreva (“Valor fora da faixa”); fim_se && if (VALOR >= 0 && VALOR <= 100) { cout << “Valor dentro da faixa”; } else { cout << “Valor fora da faixa”; } Operador ou se (ESTADO = “SP” ou ESTADO = “RJ”) então escreva (“É paulista ou carioca”); senão escreva (“Não é paulista, nem carioca”); fim_se | | if (ESTADO = = ‘S’ || ESTADO = = ‘R’) { cout << “É paulista ou carioca”; } else { cout << “Não é paulista, nem carioca”; } Obs: ‘S’ corresponde a“SP” e ‘R’ corresponde a “RJ” Operador não se (não ESTADO = “SP”) então escreva (“Seja bem vindo!”); fim_se ! if (!(ESTADO = = ‘S’)) { cout << “Seja bem vindo!”; } Obs: ‘S’ corresponde a “SP” Aplicação Prática Teórica Lista de exercícios Arquivo Lista de Exercícios V.doc
Compartilhar