Baixe o app para aproveitar ainda mais
Prévia do material em texto
Comandos condicionais compostos (fluxograma) APRESENTAÇÃO Na construção de programas utilizando comandos de seleção duplos ou compostos, as duas alternativas dependem da mesma condição, uma da condição verdadeira e outra da condição falsa, aumentando, dessa forma, a flexibilidade e o grau de complexidade dos algoritmos. Nesta Unidade de Aprendizagem, estudaremos a solução de problemas através da utilização de comandos de seleção compostos ou duplos no desenvolvimento de algoritmos em forma de fluxograma, assim como sua estrutura básica de funcionamento e análise de aplicações práticas. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Analisar algoritmos com comandos condicionais duplos ou compostos em fluxograma.• Desenvolver algoritmos em fluxograma que precisam, para a sua solução, de comandos condicionais duplos ou compostos. • Compreender a estrutura básica de um comando de seleção duplo ou composto em fluxograma. • DESAFIO Uma escola particular de segundo grau está desenvolvendo um projeto de benefícios para captar novos alunos e beneficiar famílias com rendas mais baixas. Atualmente, o valor anual para um aluno fica em torno de R$ 10.000,00. Dado o valor normal da mensalidade, será atribuído um benefício com desconto desse valor aplicado a famílias que atendem aos seguintes critérios: Junto às empresas do setor comercial do município, a direção da escola conseguiu uma bolsa de estudos que será oferecida em forma de gratuidade para alunos carentes. A bolsa será oferecida às famílias da seguinte forma: O valor da bolsa será descontado do valor da mensalidade. Para o recebimento dos valores de desconto e de bolsa, um dos familiares deverá desenvolver trabalho voluntário junto à comunidade escolar. Para cada R$ 10,00 recebido, o representante da família (que poderá ser qualquer pessoa maior de idade) deverá trabalhar uma hora durante o ano vigente da matrícula. Calcule o total de horas que a família deverá trabalhar junto à comunidade escolar, desenvolvendo atividades de limpeza, concerto, eventos, entre outras atividades que ficam a critério da necessidade da comunidade escolar e das habilidades da família. Vamos desenvolver um algoritmo para auxiliar a escola a calcular o valor da mensalidade para os alunos e a quantidade de horas voluntárias? Desenvolva um algoritmo em fluxograma que receba os dados de entrada (o valor da mensalidade deverá ser lido, pois sempre sofre reajustes) necessários para resolver o problema, calcule e imprima: - o valor de desconto da mensalidade - o valor da bolsa de estudos - o valor final da mensalidade - o total de horas de trabalho voluntário INFOGRÁFICO Acompanhe o esquema com os comandos de seleção composta em fluxograma. CONTEÚDO DO LIVRO As estruturas de controle de seleção composta são aplicadas em situações em que duas alternativas dependem da mesma expressão lógica, uma da condição verdadeira (então) e a outra da condição falsa (senão). Para compreender melhor a estrutura de controle de seleção composta através de fluxograma, acompanhe um trecho da seguinte obra: Algoritmos e programação com exemplos em Pascal e C - Vol. 23. O livro serve como base para esta Unidade de Aprendizagem. s é r ie liv ro s d id á tic o s in fo r m á tic a u fr g s 23 s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s volume 3 Linguagens Formais e Autômatos, 6.ed., de Paulo Blauth Menezes volume 4 Projeto de Banco de Dados, 6.ed., de Carlos Alberto Heuser volume 5 Teoria da Computação: Máquinas Universais e Computabilidade, 3.ed, de Tiarajú Asmuz Diverio e Paulo Blauth Menezes volume 6 Arquitetura de Computadores Pessoais, 2.ed., de Raul Fernando Weber volume 7 Concepção de Circuitos Integrados, 2.ed., de Ricardo Augusto da Luz Reis e cols. volume 8 Fundamentos de Arquitetura de Computadores, 4.ed., de Raul Fernando Weber volume 10 Tabelas: Organização e Pesquisa, de Clesio Saraiva dos Santos e Paulo Alberto de Azeredo volume 11 Sistemas Operacionais, 4.ed., de Rômulo Silva de Oliveira, Alexandre da Silva Carissimi e Simão Sirineo Toscani volume 12 Teoria das Categorias para Ciência da Computação, 2.ed., de Paulo Blauth Menezes e Edward Hermann Haeusler volume 13 Complexidade de Algoritmos, 3.ed., de Laira Vieira Toscani e Paulo A. S. Veloso volume 16 Matemática Discreta para Computação e Informática, 4.ed., de Paulo Blauth Menezes volume 18 Estruturas de Dados, de Nina Edelweiss e Renata Galante volume 19 Aprendendo Matemática Discreta com Exercícios, de Paulo Blauth Menezes, Laira Vieira Toscani e Javier García López volume 20 Redes de Computadores, de Alexandre da Silva Carissimi, Juergen Rochol e Lisandro Zambenedetti Granville volume 21 Introdução à Abstração de Dados, de Daltro José Nunes volume 22 Comunicação de Dados, de Juergen Rochol COMPUTAÇÃO www.grupoa.com.br A Bookman é um dos selos editoriais do Grupo A Educação, empresa que oferece soluções em conteúdo, tecnologia e serviços para a educação acadêmica e profissional. algoritmos e programação com exemplos em Pascal e C nina edelweiss maria aparecida castro livi Material didático para professores Visite www.grupoa.com.br nina edelweiss maria aparecida castro livi l i v r o s d i s p o n í v e i s algoritm os e program ação com exem plos em P ascal e C 23 edelw eiss livi 23 algoritmos e programação com exemplos em Pascal e C Aprender programação não é uma tarefa simples. Requer um entendimento perfeito do problema, a análise de como solucioná-lo e a escolha da forma de implementação da solução. algoritmos e programação apresenta o processo de construção de algoritmos e de programas, enfatizando as etapas de abstração, organização, análise e crítica na busca de soluções eficientes. Os elementos de um programa são introduzidos pouco a pouco ao longo do texto, inicialmente apresentados em pseudolinguagem e, em seguida, exemplificados nas linguagens de programação Pascal e C. Este é um livro-texto para disciplinas iniciais de programação de duração de um semestre. Pode ser utilizado sobretudo em cursos de bacharelado e licenciatura em ciência da computação, análise de sistemas e engenharia da computação. E22a Edelweiss, Nina. Algoritmos e programação com exemplos em Pascal e C [recurso eletrônico] / Nina Edelweiss, Maria Aparecida Castro Livi. – Dados eletrônicos. – Porto Alegre : Bookman, 2014. Editado também como livro impresso em 2014. ISBN 978-85-8260-190-7 1. Informática. 2. Algoritmos – Programação. I. Livi, Maria Aparecida Castro. II. Título. CDU 004.421 as autoras Nina Edelweiss é engenheira eletricista e doutora em Ciência da Computação pela Uni- versidade Federal do Rio Grande do Sul. Durante muitos anos, lecionou em cursos de Enge- nharia e de Ciência da Computação na UFRGS, na UFSC e na PUCRS. Foi, ainda, orientadora do Programa de Pós-Graduação em Ciência da Computação da UFRGS. É coautora de três livros, tendo publicado diversos artigos em periódicos e em anais de congressos nacionais e internacionais. Participou de diversos projetos de pesquisa financiados por agências de fomento como CNPq e FAPERGS, desenvolvendo pesquisas nas áreas de bancos de dados e desenvolvimento de software. Maria Aparecida Castro Livi é licenciada e bacharel em Letras, e mestre em Ciência da Computação pela Universidade Federal do Rio Grande do Sul. Desenvolveu sua carreira pro- fissional na UFRGS, onde foi programadora e analista de sistema, antes de ingressar na carreira docente. Ministrou por vários anos a disciplina de Algoritmos e Programação para alunos dos cursos de Engenharia da Computação e Ciência da Computação. Sua área de interesse prioritário é o ensino de Linguagens de Programação, tanto de forma presencial quanto a distância. Catalogação na publicação: Ana Paula M.Magnus – CRB 10/2052 Edelweiss_Iniciais_eletronica.indd iiEdelweiss_Iniciais_eletronica.indd ii 14/05/14 16:5114/05/14 16:51 94 Algoritmos e Programação com Exemplos em Pascal e C 4.3 comando de seleção dupla Supondo que, além de informar a média das três notas do aluno, também se queira que o programa informe se ele foi aprovado (quando a média for igual ou superior a 6) ou repro- vado (média inferior a 6). Dois comandos, se-então, são necessários para imprimir essas mensagens: se média ≥ 6 então escrever('Aprovado') {INFORMA SE O ALUNO FOI APROVADO} se média < 6 então escrever('Reprovado') {INFORMA SE O ALUNO FOI REPROVADO} Os dois comandos implementam ações mutuamente exclusivas e dependem da avaliação de uma mesma condição, sendo uma das ações associada ao resultado verdadeiro e outra ao resultado falso. Para evitar a repetição da comparação, pode ser utilizado um comando de seleção dupla que, a partir do resultado da avaliação de uma condição, seleciona um de dois comandos para ser executado. Sua sintaxe é: se <expressão lógica> então <comando> senão <comando> Somente um comando pode ser definido em cada uma das cláusulas então e senão. Esse comando pode ser simples ou composto, como no caso do comando de seleção simples. O exemplo anterior, resolvido através de dois comandos de seleção simples, equivale ao seguinte comando de seleção dupla: se média ≥ 6 então escrever('Aprovado') senão escrever('Reprovado') O fluxograma que representa esse comando, mostrado na Figura 4.4, mostra claramente que o fluxo do programa passa por apenas um dos dois comandos, o qual é selecionado pelo resultado da expressão lógica. O algoritmo que calcula a média de três notas e informa se o aluno foi aprovado ou reprova- do é o seguinte: Algoritmo 4.3 – Média4 {INFORMA A MÉDIA DO ALUNO E SE FOI APROVADO OU REPROVADO} Entradas: nota1, nota2, nota3 (real) Saídas: média (real) {Informação de aprovado ou reprovado} início ler (nota1, nota2, nota3) {ENTRADA DAS 3 NOTAS} média ← (nota1+nota2+nota3)/3 escrever (média) {INFORMA MÉDIA CALCULADA} Edelweiss_04.indd 94Edelweiss_04.indd 94 12/03/14 09:0312/03/14 09:03 Capítulo 4 Estruturas Condicionais e de Seleção 95 se média ≥ 6 então escrever('Aprovado') {INFORMA SE O ALUNO FOI APROVADO} senão escrever('Reprovado') {INFORMA SE O ALUNO FOI REPROVADO} fim 4.4 comandos de seleção aninhados Conforme visto, somente um comando pode ser utilizado nas cláusulas então e senão, mas não há restrição quanto ao tipo de comando. Pode, inclusive, ser usado um novo comando de seleção – simples ou dupla. Nesse caso, diz-se que os comandos de seleção estão aninhados ou encadeados. Estendendo um pouco mais a aplicação de apoio a um professor, suponha que se queira ob- ter o conceito do aluno com base na sua média, de acordo com a seguinte conversão: Conceito A: Média ≥ 9,0 Conceito B: 9,0 > Média ≥ 7,5 Conceito C: 7,5 > Média ≥ 6,0 Conceito D: Média < 6,0 A solução pode ser implementada através de uma sequência de comandos condicionais (op- ção 1): se média ≥ 9 então conceito ← 'A' se (média < 9) e (média ≥ 7,5) então conceito ← 'B' se (média < 7,5) e (média ≥ 6,0) então conceito ← 'C' se (média < 6) então conceito ← 'D' <expressão lógica> verdadeirofalso <comando><comando> figura 4.4 Fluxograma do comando de seleção dupla. Edelweiss_04.indd 95Edelweiss_04.indd 95 12/03/14 09:0312/03/14 09:03 96 Algoritmos e Programação com Exemplos em Pascal e C Nessa sequência de comandos, somente uma das condições será verdadeira e, apesar disso, todas as condições serão sempre avaliadas, desnecessariamente. Para evitar isso, o algorit- mo a seguir calcula a média e o conceito, utilizando comandos de seleção dupla aninhados (opção 2). Note que, uma vez encontrada uma condição verdadeira, as que estão após ela, na cláusula senão, não são mais avaliadas. Cabe ressaltar que, nessa solução, não foi feita a análise da validade dos dados de entrada, partindo-se do pressuposto que eles foram corre- tamente informados. Algoritmo 4.4 – MédiaConceito1 {INFORMA A MÉDIA E O CONCEITO DE UM ALUNO} Entradas: nota1, nota2, nota3 (real) Saídas: média (real) conceito (caractere) início ler (nota1, nota2, nota3) {ENTRADA DAS 3 NOTAS} média ← (nota1+nota2+nota3)/3 {CÁLCULO DA MÉDIA} escrever (média) {INFORMA MÉDIA CALCULADA} se média ≥ 9 {CÁLCULO DO CONCEITO} então conceito ← 'A' senão se média ≥ 7,5 então conceito ← 'B' senão se média ≥ 6,0 então conceito ← 'C' senão conceito ← 'D' {MÉDIA < 6} escrever (conceito) {INFORMA CONCEITO} fim Nesse algoritmo, o trecho de programa que calcula o conceito corresponde a um único co- mando de seleção dupla. Se a média for igual ou superior a 9,0, o conceito “A” é atribuído ao aluno e a execução desse comando termina. No caso dessa condição não ser verdadeira, então é avaliada a segunda condição, que verifica se a média é igual ou superior a 7,5. Se essa condição for verdadeira, o aluno recebe o conceito “B” e o comando é concluído. Se não for verdadeira, então a média é novamente analisada, dessa vez verificando se é maior ou igual a 6,0. Finalmente, independentemente da condição ser verdadeira ou falsa, o comando é encerrado com a atribuição do conceito “C” (expressão verdadeira) ou “D” (expressão falsa). A compreensão do funcionamento dos comandos de seleção aninhados é bem mais clara do que a da sequência de comandos condicionais (opção 1). Além disso, a segunda opção de re- presentação realiza menos comparações do que a primeira, o que diminui o tempo de execução. uso de indentação para delimitar comandos aninhados. A pseudolinguagem utilizada neste livro faz uso da indentação para mostrar visualmente o escopo de cada um dos coman- Edelweiss_04.indd 96Edelweiss_04.indd 96 12/03/14 09:0312/03/14 09:03 Capítulo 4 Estruturas Condicionais e de Seleção 97 dos de seleção aninhados. Sem a indentação, é bem mais difícil visualizar o funcionamento dos comandos aninhados, como pode ser observado na reescrita do trecho do Algoritmo 4.4 que examina a média: se média ≥ 9 então conceito ← 'A' senão se média ≥ 7,5 então conceito ← 'B' senão se média ≥ 6,0 então conceito ← 'C' senão conceito ← 'D' {MÉDIA < 6} Contudo, a indentação por si só não garante a correção do código e pode até mesmo masca- rar erros se não corresponder à sintaxe do código utilizado. No trecho a seguir, no comando de seleção dupla, o comando da cláusula então é um comando condicional. A indentação utilizada faz crer que a cláusula senão pertence ao comando mais externo, quando, pela sin- taxe, ela pertence ao mais interno: se nota1 = 10 {COMANDO DE SELEÇÃO DUPLA} então se média > 9 {COMANDO CONDICIONAL} então escrever ('Parabéns pela boa média!') senão escrever ('A primeira nota não é 10! ') A indentação que reflete a sintaxe do que está escrito é: se nota1 = 10 {COMANDO SELEÇÃO DUPLA TRATADO COMO CONDICIONAL} então se média > 9 {COMANDO CONDICIONAL TRATADO COMO SELEÇÃO DUPLA} então escrever ('Parabéns pela boa média!') senão escrever ('A primeira nota não é 10!') Da forma como está o trecho, independentemente da indentação utilizada, se a Nota1 forne- cida for 10 e a média não for superior a 9, será produzida a mensagem ‘A primeira nota não é 10!’, que claramente está incorreta. Nesse caso, o problema pode ser corrigido através do uso dos delimitadores de um comando composto, para indicar que somente a cláusula então faz parte do comando que testa a condição “se média > 9”: se nota1 = 10 {COMANDO DE SELEÇÃO DUPLA} então início {COMANDO COMPOSTO} se média > 9 {COMANDO CONDICIONAL} então escrever ('Parabéns pela boa média! ) fim senão escrever ('A primeira nota não é 10!') Edelweiss_04.indd 97Edelweiss_04.indd 97 12/03/14 09:0312/03/14 09:03 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem.Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra. DICA DO PROFESSOR Com a aplicação de comandos de seleção compostos, aumentamos o grau de complexidade e flexibilidade dos nossos algoritmos. Com a sua utilização, é possível diferenciar a execução de um comando ou um conjunto de comandos, se determinada condição é verdadeira, e também executar outro comando ou conjunto de comandos quando o resultado da condição for falso, permitindo, dessa forma, a execução diferenciada de comandos em ambas as situações. Assista ao vídeo para conhecer um pouco mais sobre a estrutura de comandos de seleção composta e para compreender, analisar e testar algumas soluções práticas apresentadas em forma de fluxograma. Conteúdo interativo disponível na plataforma de ensino! v EXERCÍCIOS 1) Considerando os valores para as variáveis k=9, p=5 e x=6. Analise as expressões lógicas e aplique o teste de mesa dos trechos condicionais compostos dos fluxogramas nas sentenças a seguir: A) Apenas a opção III escreve "Verdadeiro". B) Apenas as opções I e II escrevem "Verdadeiro". C) Apenas a opção I escreve "Falso". D) Todos as opções escrevem "Falso". E) Todos as opções escrevem "Verdadeiro". 2) Dado o problema: Ler três valores L1, L2 e L3 que representam os lados de um triângulo. Verifique se os lados formam um triângulo equilátero, sabendo que, para formar um triângulo equilátero, é preciso ter os três lados iguais. Caso possa ser formado um triângulo equilátero, exiba a mensagem “Forma um triângulo equilátero”; caso contrário, exiba a mensagem “Não forma um triângulo equilátero”. Analise e avalie os fluxogramas abaixo. É correto o fluxograma que se apresenta em: , A) Fluxograma I. B) Fluxograma II. C) Fluxograma III. D) Todas as alternativas estão corretas. E) Nenhuma alternativa correta. Dado o fluxograma que recebe três valores de entrada, L1, L2 e L3, que representam os lados de um triângulo. Para que seja formado um triângulo isóscele, ele necessita ter o comprimento de dois lados iguais. Os três lados não podem iguais para que o triângulo não se torne equilátero. Analise o fluxograma abaixo. 3) Selecione a alternativa que representa corretamente a expressão lógica para o problema apresentado. , A) ((L1=L2) ou (L1=L3) ou (L2=L3)). B) ((L1=L2) ou (L1=L3) ou (L2=L3)) e ((L1=L2) e L2=L3). C) ((L1=L2) e (L1=L3) e (L2=L3)). D) ((L1=L2) ou (L1=L3) ou (L2=L3)) e nao((L1=L2) e (L2=L3 )). E) (L1=L2) ou (L2=L3). Dado o algoritmo em fluxograma, 4) Realize o teste de mesa para o algoritmo em fluxograma apresentado acima para os valores de n sendo 3 e 6. Selecione a alternativa que preenche corretamente com o valor de x ao término do algoritmo, com os valores 3 e 6, respectivamente. A) x = 9 e x = 72. B) x = 12 e x = 48. C) x = 9 e x = 48. D) x = 12 e x = 72. E) Nenhuma alternativa está correta. 5) Com relação a estruturas condicionais estudadas, qual o comando de decisão que pode executar vários comandos se uma determinada expressão lógica for falsa? A) Comando de seleção simples. B) Comando de seleção simples com comando composto. C) Comando de seleção composta. D) Comando de seleção composta com comando composto. E) Estrutura sequencial. NA PRÁTICA TAXA DE ÁGUA E ESGOTO Os comandos condicionais compostos são muito utilizados no nosso dia a dia e são aplicados em situações em que duas alternativas dependem da mesma expressão lógica, uma da condição verdadeira (então) e a outra da condição falsa (senão), podendo, dessa forma, determinar ações diferentes dependendo do resultado da análise da expressão lógica. Se for verdadeiro, vai executar um conjunto de ações; se for falso, executará outro conjunto de ações, conforme exemplo de fluxograma apresentado abaixo. No fluxograma acima, pode-se perceber que as ações para a condição “Está frio?” são diferentes para o verdadeiro e para o falso. Outro exemplo que sentimos no nosso bolso durante todos os meses é o pagamento da conta de água e esgoto. Levando como case de estudo um município da região sul do Brasil por meio de informações do Serviço Social Autônomo Municipal de Água e Esgoto (SAMAE ), o município possui pagamentos diferenciados de consumidores em situação de vulnerabilidade social, o que é denominado Tarifa Social de Água e Esgoto, que prevê descontos diferenciados de até 60% para os consumidores. O programa tem por objetivo auxiliar as pessoas de baixa renda e diminuir os registros clandestinos. As famílias que se enquadram nessa categoria devem possuir: Renda familiar – até três salários mínimos ou meio salário mínimo por pessoa/mês. Aposentados, pensionista e pessoas com deficiência e residem sozinhas – até um salário mínimo. Após a comprovação de enquadramento nesses critérios, o consumidor deverá encaminhar ao SAMAE a solicitação de Tarifa Social, juntamente com o comprovante emitido pela Fundação de Ação Social (FAS). O desconto referente à taxa é de 60% para até 10 m³ de água consumidos. É necessário comprovar a cada dois anos, junto ao SAMAE, a regularidade da inscrição no Cadastro Único da FAS. Para essa condição, utilizaremos o comando de seleção composto. Como entrada para o cálculo da taxa, necessitamos do consumo em m3 da residência e se ela está cadastrada em situação de vulnerabilidade social. Veja uma proposta de fluxograma para o problema: Vários municípios e estados regulamentam a tarifa social e possuem descontos diferenciados entre as faixas de consumo. A taxa social é um projeto do governo para reduzir as ligações clandestinas e intensificar o uso racional da água. SAIBA MAIS Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Lógica de Programação - Desvio Condicional Composto Vídeo sobre Lógica de Programação - Desvio Condicional Composto (SE...ENTÃO...SENÃO) (If Then Else) - Controle de Decisão Conteúdo interativo disponível na plataforma de ensino!
Compartilhar