Baixe o app para aproveitar ainda mais
Prévia do material em texto
Comandos condicionais simples (pseudocódigo) APRESENTAÇÃO O nosso dia a dia exige que tomemos diversas decisões e, conforme a decisão tomada, devemos realizar uma ação. De forma análoga em algoritmos, precisamos desviar o fluxo de execução de comandos, diferenciando as ações executadas conforme resultado da tomada de decisão. Nesta Unidade de Aprendizagem, estudaremos as estruturas condicionais simples, sua estrutura básica, as aplicações e a análise de exemplos em pseudocódigo utilizando a ferramenta VisuAlg. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Analisar algoritmos com estruturas condicionais simples em pseudocódigo.• 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 pseudocódigo. • DESAFIO Uma empresa de venda de eletrodomésticos está buscando um programador para auxiliar na construção de um programa para calcular a comissão dos vendedores da loja. O funcionário recebe um valor fixo de salário e, conforme o valor de venda mensal que deve ser lido pelo algoritmo, ele recebe também uma comissão calculada sobre o valor de venda mensal. A comissão do funcionário é calculada da seguinte forma: - Funcionários que vendem de R$ 55.000,00 até R$ 100.000,00 por mês recebem uma comissão de 2% sobre o valor total da venda. - Funcionários que vendem menos de R$ 55.000,00 recebem uma comissão fixa de R$ 100,00. - Funcionários que vendem mais de R$ 100.000,00 por mês recebem R$ 5.000,00 fixos de comissão. Para o cálculo da comissão, os comandos de seleção simples devem ser utilizados. Para os funcionários que recebem um valor de comissão, deverá ser impresso o valor do salário final (salário + comissão) e uma mensagem de saída no formato A comissão é de xxxx. Aos que não recebem comissão, a frase de comissão não deve aparecer, e sim somente o valor do salário normal. Desenvolva um algoritmo em pseudocódigo que faça a leitura do salário-base e do valor de venda de um funcionário, calcule e imprima o valor da comissão e o salário final do funcionário. Para o desenvolvimento do algoritmo, utilize a Ferramenta Visualg para desenvolver e testar a sua funcionalidade. Dica: Após criar e executar seu algoritmo no VisuAlg, verificando se o mesmo está funcionando corretamente, salve-o como no formato de texto (com a extenção .txt) e envie. Arquivo –> Salvar como –> Arquivo texto (.txt). INFOGRÁFICO Confira o esquema a seguir, que mostra os principais temas que serão abordados nesta Unidade. CONTEÚDO DO LIVRO As estruturas de controle de seleção simples são aplicadas em situações nas quais há necessidade de execução de um conjunto de comandos ou ações após o resultado da análise de uma determinada condição ser verdadeira. Pare melhor compreender a estrutura de controle de seleção simples através de pseudocódigo, 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. Porto Alegre: Bookman, 2014. 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 pseudocódigo. 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 interesse prioritário é o ensino de Linguagensde 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 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/14 09:0312/03/14 09:03 DICA DO PROFESSOR O ponto-chave de um comando de seleção simples é a construção correta da expressão lógica, pois é ela que determina se um comando ou um conjunto de comandos será ou não executado. As expressões lógicas podem ser simples ou compostas, dependendo da necessidade do problema. Assista ao vídeo para conhecer um poucomais sobre essa estrutura e a construção das expressões lógicas e, também, para compreender e analisar algumas soluções práticas apresentadas de aplicação dos comandos de seleção simples em forma de pseudocódigo. Conteúdo interativo disponível na plataforma de ensino! EXERCÍCIOS 1) Considerando os valores para as variáveis cont=20; vinicial =12; n=1 e p=4, analise e teste os trechos condicionais dos algoritmos nas sentenças a seguir: Conteúdo interativo disponível na plataforma de ensino! Pode-se afirmar que: A) Apenas os trechos condicionais I e II escrevem "Verdadeiro". B) Apenas o trecho condicional III escreve "Verdadeiro". C) Apenas o trecho condicional I escreve "Falso". D) Todos os trechos condicionais escrevem "Falso". E) Todos os trechos condicionais escrevem "Verdadeiro". 2) Dado o problema: Ler dois valores L1 e L2 que representam os lados de um retângulo. Verifique se os lados podem formar um retângulo, sabendo que, para formar um retângulo, os dois lados devem ser diferentes. Caso possa formar um retângulo, exiba a mensagem “Forma um retângulo”. Analise as alternativas de comandos de seleção simples apresentadas: Selecione quais comandos de seleção simples com a expressão lógica apresentada atendem a solução do problema. A) Alternativa I. B) Alternativa II. C) Alternativas II e III. D) Alternativas I e III. E) Alternativas I, II e III. Dado o algoritmo em pseudocódigo que testa se um número é negativo, positivo ou zero. 3) Marque a alternativa correta. A) Funciona corretamente para qualquer valor. B) Funciona somente para números maiores que zero. C) Funciona para números menores ou iguais a zero. D) Funciona para números maiores ou iguais a zero. E) Funciona para números diferentes de zero. 4) Dado o algoritmo em pseudocódigo: Selecione a alternativa que preenche corretamente a expressão lógica do comando de controle simples. A) diferenca >18 B) diferenca < 18 C) diferenca <= 18 D) diferenca <> 18 E) diferenca >=18 Dado o algoritmo.5) Realize o teste do algoritmo com os valores de entrada para a=22, b=3 e c=9. O valor impresso da variável x ao término do algoritmo será: A) 0 (zero) B) 1452 C) 9 D) 15 E) 22 NA PRÁTICA FINANCIAMENTO BANCÁRIO PESSOAL Um cidadão brasileiro procurou sua agência bancária para buscar um financiamento para viajar de férias com a família. Conversando com o gerente do banco, o cidadão descobriu que a instituição tem diversas regras para conceder um financiamento pessoal e que possui inúmeras variáveis que influenciam o valor que poderá ser financiado, assim como as taxas de juros e a forma de pagamento. As regras que determinam o valor do financiamento são determinadas conforme o valor do salário líquido. O valor do financiamento não pode ultrapassar 4 vezes o valor do salário líquido. Se ultrapassar o valor liberado, deverá mostrar a seguinte mensagem “Financiamento não concedido”. Cálculo da taxa de juros (regras): - Somente poderá calcular o valor do juro se o valor solicitado do financiamento for autorizado. - A taxa de juros que será cobrada é influenciada pelo tempo de permanência no seu emprego (os juros são de 2% ao mês, mas, se estiver há mais de três anos na empresa onde trabalha, ganha um desconto de 0,05% na taxa de juros). Cálculo do número de parcelas (regras): - O número de parcelas somente poderá ser calculado se o valor do financiamento for autorizado. - Depende do valor a financiar. O número de parcelas normal é de 3, mas se o valor a financiar é maior que R$ 5.000,00, o valor será parcelado em 6 vezes. Vamos auxiliar o cidadão a simular o financiamento? Vamos desenvolver um algoritmo em pseudocódigo que receba os valores do salário líquido do cidadão, o tempo de empresa e o valor que pretende financiar no banco. Calcule o valor da parcela e imprima as seguintes informações, caso consiga o financiamento. - valor financiado - total a ser pago pelo financiamento - valor em R$ do juro a ser pago pelo financiamento - número de parcelas - valor de cada parcela A seguir, apresentamos uma solução para o problema. Lembrando: é possível termos variações entre as soluções. Essa é uma solução bem detalhada do problema. Algoritmo "financiamento_pessoal" var sal, valor, juros, valor_juro, total, valor_parcela: real anos, parcela:inteiro inicio Escreva("Digite o seu salário liquído: ") Leia(sal) Escreva("Digite o tempo de empresa ( em anos completos): ") Leia(anos) Escreva("Digite o valor do financiamento desejado: ") Leia(valor) se (valor <= 4 * sal) entao juros <- 2/100 se(anos>3) entao // testa se está a mais de 3 anos na empresa juros <- juros - (0.5/100) fimse valor_juro <- valor * juros // calcula os juros do financiamento total <- valor_juro + valor // acrescenta os juros ao valor financiado parcela <- 3 // parcela recebe 3 se (valor >5000) entao // testa se pode parcelar em 6 vezes, se valor for > 5000 parcela <- 6 fimse valor_parcela <- total / parcela // calcula o valor de cada parcela // imprime as saídas Escreval("Valor do financiamento = ", valor) Escreval("Total do finaciamento com juros = ", total) Escreval("Valor em R$ do juro = ", valor_juro) Escreval("Numero de parcelas = ", parcela) Escreval("Valor da parcela = ", valor_parcela) fimse se(valor > 4* sal) entao escreval("Financiamento não concedido!!!") fimse fimalgoritmo No exemplo acima, foi utilizado comando de seleção simples e, dentro dele, mais dois comandos de seleção simples, para atender a todas as regras propostas pelo problema. SAIBA + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Comando de desvio condicional. Conteúdo interativo disponível na plataforma de ensino! Lógica de Programação. Conteúdo interativo disponível na plataforma de ensino! Operadores. Conteúdo interativo disponível na plataforma de ensino!
Compartilhar