UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores Lógica para a Programação - 1º semestre Prof. André Moraes 7 AULA 03 Comandos e Estruturas de Controle Na criação de algoritmos é comum utilizar conceitos de bloco lógico, entrada e saída de dados, constantes, atribuições, expressões lógicas, aritméticas, bem como comandos que traduzam estes conceitos de forma a representar o conjunto de ações. Para que este conjunto de ações se torne viável, deve existir uma perfeita relação lógica intrínseca ao modo pela qual essas ações são executadas, ao modo pelo qual é regido o fluxo de execução do algoritmo.Através das estruturas básicas de controle do fluxo de execução, sequenciação, seleção, repetição e da combinação delas, é possível criar algoritmos para solucionar diversos problemas. 7.1 ESTRUTURA SEQUENCIAL 7.2 ESTRUTURAS DE SELEÇÃO Uma estrutura de seleção permite que seja escolhido um grupo de ações (bloco) a ser executado quando determinadas condições representadas por expressões lógicas ou relacionais, são ou não satisfeitas. Na condição das estruturas condicionais são utilizados os operadores relacionais (<, >, =, < =, > =, < >) para as comparações, observando suas características particulares. Em Python, os comandos IF, else, e elif (else IF) criam as condições. Em termos simples, a instrução IF do Python seleciona ações para executar. Ela é a principal ferramenta de linguagem e representa grande parte da lógica que um programa em Python possui. Na teoria, temos 3 tipos de seleção: seleção simples, seleção composta e seleção encadeada. • A seleção simples é quando temos uma condição simples antes de executar uma ação: • A seleção composta é quando temos situações em que duas alternativas dependem de uma mesma condição, uma onde a condição pode ser verdadeira e outra onde a condição pode ser falsa. • A seleção encadeada é quando necessitamos agrupar várias seleções formando uma série de testes. Normalmente utilizada quando existe um grande conjunto de possibilidades ou combinações de situações. P á g | 19 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Corresponde ao fato de eu o conjunto de ações primitivas será executado em uma sequência linear de cima para baixo e da esquerda para a direita, isto é, na mesma ordem em que foram escritas. Normalmente é utilizado o ; (ponto e vírgula) para convencionar que após encontrar esse item no código a próxima linha deverá ser executada no algoritmo. UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores 7.2.1 EXEMPLO 1 – SELEÇÃO SIMPLES Seja o seguinte programa: Salve como temperatura.py 7.2.2 EXEMPLO 2 –SELEÇÃO COMPOSTA Notas de alunos: Criar um programa que capture 3 notas do semestre e calcule a média e a situação final do aluno. Para a média abaixo de 7 será reprovado e do contrário aprovado. Seja o código abaixo: Salve o arquivo com o nome notas.py Visualização do resultado: Este algoritmo é bastante simples, pois realiza diretamente o cálculo das médias do aluno e implementa um If para podermos decidir sobre qual será o resultado final de suas notas. P á g | 20 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Visualização do resultado: UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores Quando precisamos de mais testes para incorporar mais condições, podemos utilizar o mesmo comando IF encadeado para podermos abranger mais situações. Vejamos no exemplo: 7.2.3 EXEMPLO 3 – SELEÇÃO ENCADEADA ‐ NOTAS DE ALUNOS: Salve o arquivo como notas_encadeadas.py Visualização do resultado: 7.3 OPERADORES LÓGICOS Juntamente com o uso de estruturas de seleção, podemos ainda utilizar os operadores lógicos para podermos ampliar a avaliação das condições que são testadas. Por exemplo, se quiséssemos avaliar duas condições ao mesmo tempo no comando If e imprimir algo na tela do usuário não teríamos como fazer isto de forma prática sem os operadores lógicos. Normalmente, os operadores lógicos mais utilizados são: • And – operador que une duas condições e retorna verdadeiro quando as duas forem verdadeiras • Or – operador que une duas condições e retorna verdadeiro quando pelo menos uma condição for verdadeira • Not - inverte o resultado de uma expressão lógica P á g | 21 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Será incluída agora a condição extra de quando o aluno pode estar em exame. Podemos implementar isto com o IF encadeado: UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores Podemos combinar estes operadores em um programa com as estruturas de seleção que vimos anteriormente. O resultado serão programas capazes de avaliar várias condições simultaneamente. Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 7.3.1 EXEMPLO 4 – UTILIZANDO OPERADORES LÓGICOS COM ESTRUTURAS DE SELEÇÃO Salve o arquivo como medias_operadores.py P á g | 22 UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores 7.3.2 EXEMPLO 5 – DETERMINANDO O TRIÂNGULO Dados três valores A, B e C, verificar se eles podem ser os comprimentos dos lados de uma triângulo e, se forem, verificar se compõem um triângulo eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo. Dados de entrada: três lados de um suposto triângulo (A, B, C). Dados de saída: enviar as mensagens de: não compõem um triângulo, triângulo eqüilátero, triângulo isósceles, triângulo escaleno. INFORMAÇÕES: O que é um triângulo? Figura geométrica de três lados, em que cada um é menor do que a soma dos outros dois. O que é um triângulo eqüilátero? Um triângulo com três lados iguais. O que é um triângulo isósceles? Um triângulo com dois lados iguais. Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. O que é um triângulo escaleno? Um triângulo com todos os lados diferentes. MONTAGEM LÓGICA EM EXPRESSÕES: É triângulo: (A < B + C) e (B < A + C) e (C < A + B). É eqüilátero: (A = B) e (B = C) É isósceles: (A = B) ou (A = C) ou (B = C) É escaleno: (A <> B) e (B <> C) Seja o exemplo: P á g | 23 UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores Testando o algoritmo: • Neste exemplo fizemos uso de operadores lógicos and, or para poder adaptar as condições que foram descritas • Este exemplo ilustra mais um tipo de algoritmo utilizando a seleção encadeada, onde precisamos de vários testes aninhados um em seguida do outro. • Note que este algoritmo é complexo pelo ponto de vista de elaboração, pois não seria muito fácil elaborar todo o pensamento lógico para os testes do tipo de triângulo. Isto é desenvolvido pelo programador ao longo do tempo. 7.3.3 EXEMPLO 6 – SE SENÃO SE Vamos supor que em determinado algoritmo uma variável x possa assumir apenas quatro valores, sendo eles v1, v2, v3, v4, e que exista um comando diferente que será executado para cada valor armazenado em X. Dados 4 valores, elaborar um algoritmo para ler a altura de uma pessoa e retornar as mensagens referentes à sua altura e de acordo com a tabela abaixo: Altura Classificação <=1.50 Muito baixo <= 1.65 Baixo <=1.79 Normal >1.79 Alto Salve o arquivo como alturas.py P á g | 24 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. OBSERVAÇÕES: UC – Lógica de Programação Docente: André Luiz Silva de Moraes 1º sem – Redes de Computadores Visualizando o resultado: OBSERVAÇÕES: Aqui novamente fizemos pequenos testes encadeados um após o outro. • Note que os testes e as mensagens são totalmente personalizáveis, você pode criar qualquer mensagem que desejar passar ao usuário. • Dependendo da altura fornecida teremos resultados diferentes. EXERCÍCIOS: 1) Altere o algoritmo utilizado no exemplo 4 (Média de alunos) para que o programa peça primeiro o número de faltas. Caso o número de faltas for maior que o permitido (18) o programa deverá emitir uma mensagem de alerta informando que o mesmo está reprovado por faltas. Caso contrário o programa deverá seguir seu curso solicitando as notas do aluno e realizando os cálculos da média. 2) Tendo como dados de entra a altura e o sexo de uma pessoa, construa um algoritmo que calcule o seu peso ideal, utilizando as seguintes fórmulas: a. Para homens (72.7 * h) – 58 b. Para mulheres (62.1 * h) – 44.7 3) Construa um algoritmo que leia a o ano de nascimento de uma pessoa, calcule e mostre sua idade e, também, verifique e mostre se ele já tem idade para votar (16 anos ou mais) e para conseguir a Carteira de Habilitação (18 anos ou mais) P á g | 25 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 7.4 •