Baixe o app para aproveitar ainda mais
Prévia do material em texto
Comandos condicionais simples (fluxograma) APRESENTAÇÃO Na construção de programas, muitas vezes é necessário desviar o fluxo de execução e executar somente determinados blocos de comandos se uma determinada condição for atendida.Nesta Unidade de Aprendizagem, estudaremos a solução de problemas através da utilização de estruturas condicionais simples no desenvolvimento de algoritmos em forma de fluxograma. Veremos também sua estrutura básica e a análise de aplicações práticas. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Analisar algoritmos com estruturas condicionais simples em fluxograma.• Identificar problemas que necessitam de comandos condicionais simples para a sua solução. • Resolver problemas através da aplicação de comandos condicionais simples em fluxograma. • DESAFIO Um aluno de determinada instituição de ensino superior particular deseja realizar o cálculo do valor da mensalidade do seu curso de Engenharia para o próximo ano. Para a resolução do problema, leve em consideração as seguintes informações: - a instituição aplicará um reajuste ao final do ano, o qual deverá ser informado para o algoritmo; - cada turno é composto por quatro créditos, assim, a entrada deve ser em créditos e não em turnos que o aluno pretende estudar. Não são aceitos créditos quebrados, somente inteiros; - para calcular o valor da parcela, o algoritmo necessita como entrada a quantidade de parcelas que o aluno deseja para o semestre. - A instituição quer estimular financeiramente o aluno a matricular-se em mais créditos, criando uma nova regra para o próximo ano. Alunos que efetuarem matrícula entre 14 e 24 créditos receberão um desconto de 18% no valor total da mensalidade. Considerando as informações apresentadas, desenvolva um algoritmo em fluxograma que receba os dados de entrada necessários, calcule o reajuste e o valor da parcela e exiba ao final as seguintes informações: - o valor total antigo do semestre; - o valor total da mensalidade nova com o reajuste do semestre; - o valor somente do aumento do semestre (reajuste); - o total de créditos cursados; - o número de parcelas. - o valor de cada parcela (do valor reajustado). Poderá ser utilizado qualquer software para construir o fluxograma (DIA, PowerPoint, editor de texto, visio...), ou pode ser desenvolvido manualmente. Muitos são os softwares para desenvolver os fluxogramas, mas a maioria são pagos. Software DIA para Windows. Baixe aqui INFOGRÁFICO http://download.cnet.com/Dia/3001-2075_4-10833704.html?hlndr=1 CONTEÚDO DO LIVRO As estruturas de controle permitem testar uma condição (expressão lógica) antes de executar uma instrução, ou conjunto de instruções, desviando o fluxo de execução do programa. Assim, a execução de determinada ação está atrelada ao resultado da condição analisada, quebrando a linearidade de execução do programa. Para compreender melhor a estrutura de controle de seleção simples através de fluxograma, acompanhe um trecho da seguinte obra: EDELWEISS, N.; LIVI, M.A.C. Algoritmos e programação com exemplos em Pascal e C - Vol. 23. Série Livros Didáticos Informática UFRGS. O livro servirá como base para esta Unidade de Aprendizagem. No capítulo selecionado, serão apresentados a estrutura básica de funcionamento do comando de seleção simples e alguns exemplos desenvolvidos em fluxograma. Boa leitura. 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 interesseprioritá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 ■ ■ Neste capítulo, são apresentados os comandos de seleção simples, dupla e múltipla. São analisadas, ainda, as possibilidades de aninhamento de comandos e o conceito de comando composto. estruturas condicionais capítulo 4 e de seleção Edelweiss_04.indd 89Edelweiss_04.indd 89 12/03/14 09:0312/03/14 09:03 90 Algoritmos e Programação com Exemplos em Pascal e C Os algoritmos que solucionam os problemas apresentados até o momento são puramente sequenciais: todas as instruções são executadas na ordem em que foram definidas, uma após a outra, sem exceção. Este capítulo introduz uma nova classe de problemas, na qual uma ou mais ações podem ou não ser executadas, dependendo da avaliação prévia de condições. Para resolver esses problemas são apresentados três novos comandos que possibilitam a alteração do fluxo sequencial de execução de um programa. No capítulo anterior, foi resolvido o problema do cálculo da média aritmética de três notas de um aluno em uma disciplina. Estendendo essa aplicação, o professor que utiliza esse pro- grama quer que, além da média das notas obtidas na disciplina, seja informado se o aluno foi aprovado (no caso de sua média ser igual ou superior a 6). Essa informação não pode ser obtida somente com o conjunto de comandos do Capítulo 3, uma vez que requer a análise de uma condição e a execução de uma ação somente se a condição analisada for verdadeira. Outra possibilidade é fornecer não apenas a informação de aprovação, mas também a de reprovação. Nesse caso, também condicionada ao conteúdo da média calculada, ocorre a execução de apenas uma de duas ações mutuamente exclusivas: se a média for maior ou igual a 6, o programa informa que o aluno foi aprovado; caso contrário, se a média for inferior a 6, informa que o aluno foi reprovado. Seguindo adiante nesse raciocínio, pode-se escrever um trecho de programa em que, depen- dendo da média obtida, também é informado o conceito correspondente à média calculada. Aqui, diferentes faixas de valor de uma mesma informação desencadeiam ações diferentes, também mutuamente exclusivas, isto é, a execução de uma ou mais instruções específicas está associada ao valor da informação. Os comandos que solucionam esses problemas são apresentados neste capítulo. 4.1 comando de seleção simples Um comando de seleção simples, também chamado de comando condicional, permite que a execução de um trecho do programa dependa do fato de uma condição ser verdadeira, isto é, vincula a execução de um ou mais comandos ao resultado obtido na avaliação de uma expressão lógica (também denominada expressão condicional). O comando de seleção sim- ples é sempre composto por uma condição e um comando. A condição é expressa por uma expressão lógica, cuja avaliação produz um resultado verdadeiro ou falso. A sintaxe de um comando de seleção simples é: se <expressão lógica> então <comando> Observe que o comando somente é executado se o resultado da expressão lógica for verda- deiro; se o resultado for falso, nada é executado. Por meio do comando de seleção simples pode-se, por exemplo, condicionar a exibição da infor- mação de que um aluno foi aprovado somente para o caso de sua média ser igual ou superior a 6: Edelweiss_04.indd 90Edelweiss_04.indd 90 12/03/14 09:0312/03/14 09:03 Capítulo 4 Estruturas Condicionais e de Seleção 91 se média ≥ 6 então escrever('Aprovado') A execução do comando escrever ocorre apenas quando a condição for verdadeira, ou seja, quando o conteúdo da média for igual ou superior a 6. Nada é executado se a média for inferior a 6. A Figura 4.1 representa o fluxograma de um comando de seleção simples. Um novo tipo de bloco, com formato de losango, é utilizado para representar a realização de um teste, escre- vendo-se dentro desse bloco a expressão lógica a ser avaliada. Esse bloco tem duas saídas, uma para o caso da expressão ser avaliada como verdadeira, e outra para quando o resultado da avaliação da expressão for falso. As informações que correspondem a cada saída devem estar claramente identificadas. O fluxograma mostra com clareza que nada é executado no caso do resultado da avaliação da expressão ser falso. <expressão lógica> verdadeiro falso <comando> figura 4.1 Fluxograma de um comando de seleção simples. O algoritmo a seguir informa, além da média de um aluno, se ele foi aprovado: Algoritmo 4.1 – Média2 {INFORMA A MÉDIA DAS 3 NOTAS DE UM ALUNO E SE ELE FOI APROVADO} Entradas: nota1, nota2, nota3 (real) Saídas: média (real) {Informação de aprovado} início ler (nota1, nota2, nota3) {ENTRADA DAS 3 NOTAS} média ←(nota1 + nota2 + nota3)/3 escrever (média) {INFORMA MÉDIA CALCULADA} se média ≥ 6 então escrever('Aprovado') {INFORMA SE ALUNO FOI APROVADO} fim Edelweiss_04.indd 91Edelweiss_04.indd 91 12/03/14 09:0312/03/14 09:03 92 Algoritmos e Programação com Exemplos em Pascal e C A Figura 4.2 apresenta o fluxograma relativo a esse algoritmo. ENTRADA nota1, nota2, nota3 SAÍDA média início fim ( nota1 + nota2 + nota3 ) média 3 média 6 falso verdadeiro SAÍDA ‘Aprovado’ figura 4.2 Fluxograma de um exemplo com comando de seleção simples. 4.2 comando composto Na sintaxe do comando de seleção simples nota-se que somente um comando pode ser exe- cutado caso a condição seja verdadeira. Mas o que fazer quando se quer executar vários co- mandos condicionados à avaliação de uma mesma expressão lógica? Por exemplo, supondo que, na aplicação anterior, se queira saber a média somente no caso das três notas lidas serem iguais ou superiores a 6, então a média deve ser calculada e informada somente se a condição for verdadeira. Para que isso seja possível, é necessário que dois comandos, o de cálculo da média e o de saída dessa média, sejam executados quando a condição for verdadeira. Como a sintaxe do comando de seleção simples exige a execução de um único comando, faz-se necessária a de- finição de um novo tipo de comando, denominado comando composto. Na pseudolinguagem aqui utilizada, um comando composto é delimitado pelas palavras re- servadas início e fim. Sintaticamente, trata-se de um único comando. Quaisquer comandos podem ser incluídos dentro de um comando composto. Algumas linguagens de programação permitem, inclusive, a definição de novas variáveis dentro de um comando composto, as quais são alocadas na memória apenas no momento em que inicia a execução desse coman- Edelweiss_04.indd 92Edelweiss_04.indd 92 12/03/14 09:0312/03/14 09:03 Capítulo 4 Estruturas Condicionais e de Seleção 93 do e são liberadas no término da execução do comando. Contudo, essa possibilidade não será considerada neste livro. O problema proposto no início desta seção pode ser resolvido com a utilização desse novo recurso, conforme mostrado no Algoritmo Média3: Algoritmo 4.2 – Média3 {INFORMA MÉDIA DO ALUNO SOMENTE SE SUAS 3 NOTAS FOREM IGUAIS OU SUPE- RIORES A 6} Entradas: nota1, nota2, nota3 (real) Saídas: média (real) {Informação de aprovado} início ler (nota1, nota2, nota3) {ENTRADA DAS 3 NOTAS} se (nota1 ≥ 6) e (nota2 ≥ 6) e (nota3 ≥ 6) então início {COMANDO COMPOSTO} média ← (nota1 + nota2 + nota3) / 3 {CALCULA MÉDIA} escrever (média) {INFORMA MÉDIA} fim fim O fluxograma desse algoritmo, apresentado na Figura 4.3, mostra com clareza que o conjunto de comandos pode não ser executado, dependendo do resultado da condição. ENTRADA nota1, nota2, nota3 início nota1 6 e nota2 6 e nota3 6 falso verdadeiro ( nota1 + nota2 + nota3 ) média 3 SAÍDA média fim figura 4.3 Fluxograma de comando de seleção simples com comando composto. Edelweiss_04.indd 93Edelweiss_04.indd 93 12/03/1409: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 Até o momento, os valores de entrada ou os comandos do algoritmos não importavam, o fluxo de execução era sempre único, ou seja, as instruções a serem executadas eram sempre as mesmas. A partir da aplicação das estruturas de controle, será possível desenvolver algoritmos com um maior grau de complexidade e flexibilidade, desviando o seu fluxo de execução. Assista ao vídeo para conhecer um pouco mais sobre essa estrutura, além de compreender e analisar algumas soluções práticas apresentadas de aplicação dos comandos de seleção simples em forma de fluxograma. Conteúdo interativo disponível na plataforma de ensino! EXERCÍCIOS 1) Considerando-se que a=2, b=6, c= 7 e d= 3, informe se as expressões lógicas apresentadas abaixo são V (Verdadeiras) ou F (Falsas). I - ( a <= b+3 ) e ( c = b ) II – (( a+2 ) >10 ) ou (a + b) = (b+a) III - não (a = c) e (d = a) A) V-V-V B) V-F-V C) V-V-F D) F-V-F E) F-F-F 2) Dada a seguinte situação: leia um número inteiro e verifique se é par. Se for par, deverá imprimir a seguinte mensagem: “O número xx é par”. Analise os fluxogramas apresentados nas alternativas abaixo: A) Apenas o fluxograma III está correto. B) Apenas os fluxogramas II e III estão corretos. C) Apenas os fluxogramas I e III estão corretos. D) Apenas o fluxograma I está correto. E) Os fluxogramas I, II, III e IV estão corretos. Observe o fluxograma:3) Selecione a alternativa que preenche corretamente a expressão lógica do comando de controle simples no fluxograma apresentado. A) (num >0) e (num <1) B) num > 0 C) num < 0 D) num = 0 E) (num >0 ) ou ( num <1) Após a execução do algoritmo em fluxograma:4) Em C estará armazenado o valor falso se, originalmente: A) A > B B) A <= B C) A >= B D) A < B E) A = B Com relação às estruturas de controle e as características do comando de seleção 5) simples, analise as afirmativas a seguir. I – O comando de seleção simples é também conhecido por comando condicional. II – As estruturas de controle executam todos os comandos um após o outro de forma linear. III – Em um comando de seleção simples, a execução de um trecho de programa está vinculada ao fato de uma condição ser verdadeira. É correto o que se afirma em: A) Apenas I. B) Apenas I e III. C) Apenas I e II. D) Apenas III. E) I, II e III. NA PRÁTICA Tomada de decisão no nosso cotidiano: Ao acordar e nos preparamos para sair ao trabalho, realizamos uma série de ações até ficarmos prontos, como: • Tomar banho • Pentear o cabelo • Vestir camisa • Vestir casaco • Calçar os sapatos ... Mas, se pararmos para pensar um pouco, o nosso mundo não é tão perfeito, ou “certinho”, sem dúvidas ou qualquer tipo de variação. Você já imaginou executar os passos acima todos os dias? Imagine se a temperatura estiver 38 graus no dia! Você vai suar muito durante o trabalho! Dessa forma, se pensarmos no nosso dia a dia, podemos verificar que, já ao levantarmos, uma das nossas primeiras ações é verificar como está o tempo e decidir como iremos nos vestir para ir ao trabalho. • Esse é o nosso mundo, com muitas dúvidas e muitas variações no dia a dia, as quais exigem tomadas de decisão • - Poderíamos solucionar o problema apresentado acima da seguinte forma: • Tomar banho • Pentear o cabelo • Vestir camisa • Vestir calça • Se estiver frio, vestir casaco • Calçar os sapatos ... O comando de vestir casaco já está no nosso algoritmo. Somente agora sua execução está atrelada ao resultado do teste (se estiver muito frio) ser verdadeiro. Se o resultado for falso, é porque está quente, e o casaco não será usado. Analise a solução em fluxograma apresentada abaixo. Vamos criar um fluxograma para demonstrar o comando condicional simples? Mas, se pararmos para pensar um pouco, o nosso mundo não é tão perfeito, ou “certinho”, sem dúvidas ou qualquer tipo de variação. Você já imaginou executar os passos acima todos os dias? Imagine se a temperatura estiver 38 graus no dia! O comando de decisão simples nos faz pensar computacionalmente as nossas atividades diárias, que muitas vezes executamos de forma automática: - Que produtos comprar no mercado? Tem dinheiro? Está de carro? Vários são os fatores que envolvem a tomada de decisão. - O que comer? Está com fome? O que deseja comer? - Onde comer? Quanto de dinheiro tem para gastar? • Chegamos ao final do dia exaustos de tanto testar e executar os comandos condicionais no nosso cotidiano • SAIBA + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Software DIA para desenvolver diagramas e fluxogramas Conteúdo interativo disponível na plataforma de ensino! Tutorial ferramenta DIA Conteúdo interativo disponível na plataforma de ensino!
Compartilhar