·

Engenharia de Produção ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Comandos condicionais compostos pseudocódigo Apresentação Nesta Unidade de Aprendizagem estudaremos a solução de problemas através da utilização de estruturas condicionais compostas e encadeadas no desenvolvimento de algoritmos em forma de pseudocódigo Estudaremos também sua estrutura básica e a análise de aplicações práticas utilizando a ferramenta VisuAlg Bons estudos Ao final desta Unidade de Aprendizagem você deve apresentar os seguintes aprendizados Analisar algoritmos com estruturas condicionais compostas e encadeadas em pseudocódigo Identificar problemas que necessitam de comandos condicionais compostos para a solução Desenvolver algoritmos em pseudocódigo que necessitam de comandos condicionais compostos e encadeados para a solução Desafio Uma empresa do ramo metalmecânico está realizando uma pesquisa junto a transportadoras para verificar o preço do transporte de seus produtos que serão entregues a seus clientes em outros estados Ao final da pesquisa foi selecionada uma transportadora com a qual foi fechado o transporte dos produtos O cliente pode selecionar se quer a sua entrega com rastreamento ou não Assim deverá ser feita uma pergunta ao cliente Deseja rastreamento SSim e NNão Se a resposta for sim será cobrada uma taxa de R 20000 pela carga Cálculo do frete calcular o valor pelo número de peças transportadas Três variáveis influenciam o valor do frete o número de peças a região e a distância em quilômetros Até mil peças o valor será conforme a região apresentada na tabela abaixo O valor é cobrado por cada peça transportada Acima de mil peças valor normal para até mil peças o número de peças que ultrapassar mil tem desconto conforme a região Exemplo Se um cliente comprar 1200 peças as quais serão enviados à região 1 que é Sudeste Será cobrado frete da seguinte forma para as mil peças R 120 cada peça Para as 200 a mais será dado um desconto de 12 sobre o valor de R 120 pagando 1056 pelo frete de cada peça das 200 restantes Ficará 1000 12 200 1056 R 141120 de frete pelas peças transportadas A distância para o transporte deve ser informada pois para cada quilômetro é cobrado um litro de combustível que deverá ser lido ao iniciar o algoritmo Por questões de logística a empresa realiza entregas somente para as regiões Sul Sudeste e Centrooeste e cada uma possui um valor de frete com relação à quantidade de peças transportadas conforme a tabela A região deverá ser impressa na tela em forma de menu conforme abaixo Regiões para frete 1 Sul 2 Sudeste 3 Centrooeste Digite a região Desenvolva um algoritmo que efetue a leitura da distância em quilômetros do frete a quantidade de peças que serão transportadas a região em número e determine se o cliente quer rastreamento Calcule e imprima o valor final do frete Ao término devem ser exibidas as seguintes informações Taxa do rastreamento 99999 Valor do frete pelas peças 999999 Valor do frete por quilômetro 99999 Total do frete 99999 Vamos lá Agora é a sua vez de construir o algoritmo em pseudocódigo para resolver o problema do frete para a empresa Para o cálculo do frete por região devese utilizar o comando de seleção aninhadoencadeado Comando de Seleção Composta em Pseudocódigo Conteúdo do livro As estruturas de controle de seleção composta são aplicadas em situações nas quais há necessidade de execução de um comando ou um conjunto de comandos ou ainda ações distintas para a condição verdadeira e para a condição falsa Para compreender melhor a estrutura de controle de seleção composta através de pseudocódigo acompanhe um trecho da seguinte obra EDELWEISS N LIVI MAC 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 apresentadas a estrutura básica de funcionamento do comando de seleção composta e encadeadas e alguns exemplos de aplicação desenvolvidos 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 algoritmos e programação com exemplos em Pascal e C nina edelweiss maria aparecida castro livi 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 9788582601907 1 Informática 2 Algoritmos Programação I Livi Maria Aparecida Castro II Título CDU 004421 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ósGraduaçã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 102052 EdelweissIniciaiseletronicaindd ii 140514 1651 94 Algoritmos e Programação com Exemplos em Pascal e C 43 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 seentão são necessários para imprimir essas mensagens se média 6 então escreverAprovado INFORMA SE O ALUNO FOI APROVADO se média 6 então escreverReprovado 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 escreverAprovado senão escreverReprovado O fluxograma que representa esse comando mostrado na Figura 44 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 43 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 nota1nota2nota33 escrever média INFORMA MÉDIA CALCULADA Edelweiss04indd 94 120314 0903 Capítulo 4 Estruturas Condicionais e de Seleção 95 se média 6 então escreverAprovado INFORMA SE O ALUNO FOI APROVADO senão escreverReprovado INFORMA SE O ALUNO FOI REPROVADO fim 44 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 dizse 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 90 Conceito B 90 Média 75 Conceito C 75 Média 60 Conceito D Média 60 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 75 então conceito B se média 75 e média 60 então conceito C se média 6 então conceito D expressão lógica verdadeiro falso comando comando figura 44 Fluxograma do comando de seleção dupla Edelweiss04indd 95 120314 0903 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 partindose do pressuposto que eles foram corre tamente informados Algoritmo 44 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 nota1nota2nota33 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 75 então conceito B senão se média 60 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 90 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 75 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 60 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 Edelweiss04indd 96 120314 0903 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 44 que examina a média se média 9 então conceito A senão se média 75 então conceito B senão se média 60 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 Edelweiss04indd 97 120314 0903 Capítulo 4 Estruturas Condicionais e de Seleção 101 exercício 42 Dados os coeficientes de uma equação do 2 o grau calcular e informar os va lores de suas raízes Algoritmo EquaçãoSegundoGrau INFORMA OS VALORES DAS RAÍZES DE UMA EQUAÇÃO DO SEGUNDO GRAU Entradas a b c real COEFICIENTES DA EQUAÇÃO Saídas r1 r2 real RAÍZES Variável auxiliar disc real DISCRIMINANTE início lera b c ENTRADA DOS VALORES DOS COEFICIENTES DA EQUAÇÃO se a 0 então início escreverNão é equação do segundo grau escreverRaiz c b fim senão início disc sqrb 4 a c CÁLCULO DO DISCRIMINANTE se disc 0 então escreverRaízes imaginárias senão início r1 b sqrt disc 2 a r2 b sqrt disc 2 a escreverRaízes r1 r2 fim fim fim exercício 43 Processar uma venda de livros em uma livraria O cliente poderá comprar diver sas unidades de um mesmo tipo de livro O código que define o tipo do livro vendido A B C e o número de unidades desse livro são fornecidos como dados de entrada Preços Tipo A R 1000 Tipo B R 2000 Tipo C R 3000 Edelweiss04indd 101 120314 0903 102 Algoritmos e Programação com Exemplos em Pascal e C Calcular e informar o preço a pagar Caso tenham sido vendidos mais de 10 livros exibir uma mensagem informando isso A solução deste problema é mostrada em duas etapas Inicialmente é apresentado um algo ritmo em passos gerais para dar uma visão global da solução Depois cada um dos passos é detalhado dando origem ao algoritmo completo Algoritmo UmaVenda PASSOS GERAIS PROCESSA UMA VENDA DE LIVROS Entradas tipo do livro A B ou C número de livros Saídas preço a pagar mensagem indicando que foram vendidas mais de 10 unidades 1 Obter dados 2 Calcular preço de venda 3 Emitir mensagem caso necessário 4 Terminar Detalhamento do algoritmo Algoritmo UmaVenda PROCESSA UMA VENDA DE LIVROS Entradas código caractere CÓDIGO DO LIVRO numeroUnidades inteiro NR UNIDADES VENDIDAS Saídas aPagar real PREÇO A PAGAR Mensagem indicando que foram vendidas mais de 10 unidades início lercódigo numeroUnidades ENTRADA DE DADOS se código A CÁLCULO DO PREÇO DA VENDA então aPagar numeroUnidades 10 senão se código B então aPagar numeroUnidades 20 senão se código C então aPagar numeroUnidades 30 senão início CÓDIGO ESTÁ INCORRETO aPagar 0 escreverCódigo errado fim se aPagar 0 CÓDIGO ERA VÁLIDO então início escreveraPagar INFORMA VALOR A PAGAR se numeroUnidades 10 então escrever Foram vendidas mais de 10 unidades fim fim Edelweiss04indd 102 120314 0903 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 Muitas são as situações do dia a dia que permitem a aplicação dos comandos de seleção compostos sempre que é necessário desviar o fluxo de ações assim como as ações que são executadas caso seja verdadeiro ou falso o resultado da decisão Também podemos utilizar comandos aninhados ou seja quando é necessário verificar expressões sucessivas pois uma ação pode levar a outra tomada de decisão sucessivamente Assista ao vídeo para conhecer um pouco mais sobre essa estrutura e a construção das expressões lógicas e para compreender e analisar algumas soluções práticas apresentadas de aplicação dos comandos de seleção composta em forma de pseudocódigo Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Exercícios 1 Uma empresa do ramo da eletrônica precisa enviar e analisar a entrada de um valor para um dispositivo podendo tal valor ser positivo negativo ou zero Para cada entrada ele enviará um comando para o dispositivo eletrônico de controle de temperatura Se o valor digitado for zero 0 o aparelho desligará se for digitado um valor positivo o dispositivo irá aumentar a temperatura conforme o valor informado Caso o valor seja negativo diminuirá a temperatura atual O algoritmo deverá imprimir as seguintes frases Quando o número digitado é zero 0 deverá imprimir a frase O dispositivo será desligado Quando o número digitado é um 1 deverá imprimir a frase A temperatura aumentará Quando o número digitado é menos 10 10 deverá imprimir A temperatura diminuirá Analise o algoritmo apresentado abaixo para o problema proposto Realize o teste de mesa para comprovar a funcionalidade e marque a resposta correta nas alternativas a seguir 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 2 Observe o seguinte algoritmo Algoritmo Testemesa var a c i inteiro d b x real início a 12 c 2 i 3 b a a d c 3 se b d e b150 então x 8 b c b b a senão x d i c fimse Escreva Resultados b d x fimalgoritmo Quais serão os valores escritos como saída no comando de saída Escreva Resultados bdx A b150 d05 e x15 B b156 d6 e x576 C b24 d05 e x576 D b24 d05 e x15 E Nenhuma alternativa está correta 3 Observe o problema ler 3 valores reais V1 V2 e V3 Calcular a soma do quadrado dos 3 valores Se o resultado da soma for maior que 1200 calcular e imprimir a soma dos dois primeiros se não calcular e imprimir a soma dos dois últimos valores Analise aos algoritmos de comandos de seleção composta apresentadas para a resolução do problema apresentado Avalie as sentenças apresentadas com relação aos algoritmos desenvolvidos I Todos os algoritmos resolvem de forma correta o problema proposto II Os algoritmos I e III terão resultados diferentes nos seus comandos de saída III O algoritmo III apresenta o comando condicional incorreto para o problema IV Atribuindo os valores 1 2 e 3 respectivamente para V1 V2 e V3 todos os algoritmos apresentam como saída os valores soma14 e x5 Marque a alternativa correta A I B I e II C II e III D I III e IV E Todas as alternativas são falsas 4 Uma empresa têxtil que produz bermudas de praia precisa calcular o valor do prêmio para seus funcionários O funcionário receberá o saláriobase mais o valor do prêmio o qual será calculado com base na produção individual As regras foram expostas no início do ano em palestra para todos os funcionários Ao final deverão ser impressos o salário total e o valor do prêmio Regra de definição dos percentuais dos prêmios Funcionário com até um dia de atestado recebe 5 do valor da sua produção Funcionário com mais de 1 e menos de 3 dias de atestado recebe 2 do valor da sua produção Funcionário com mais de 3 dias de atestado recebe 1 do valor da sua produção O cálculo da produção será feito pela fórmula número de peças produzidas valor da peça Selecione o algoritmo que apresenta corretamente uma solução para o problema A clique aqui B clique aqui C clique aqui D clique aqui E clique aqui 5 Uma rede de hospitais do estado precisa automatizar o cálculo de diárias a serem pagas pelos clientes Como proposta de uma solução para o problema considere o algoritmo em pseudocódigo que realiza o cálculo das diárias de uma internação para a rede de hospitais O algoritmo recebe como entrada os seguintes dados número total de dias de internação tipo de quarto e se este possui telefone ou não A rede de hospitais trabalha com três tipos de quartos P quarto particular e individual S quarto semiprivativo que pode ter até duas pessoas e C quarto coletivo com no máximo quatro pessoas O cálculo do uso do telefone será cobrado por dia de internação no quarto particular tendo uma taxa fixa diária de R 1000 Analise o algoritmo abaixo como uma possível solução para o problema Algoritmo internação var tipo telefonecaractere valorteltotal contareal diasinteiro inicio Leia dias tipo se tipo P entao totaldias260 EscrevalUSOU TELEFONE SN Leia telefone se telefone S entao valortel 1000dias senao valortel 0 fimse senao se tipoS entao totaldias 140 senao se tipoC totaldias 80 senao escrevalTipo de quarto inválido fimse fimse fimse conta total valortel escrevalconta fimalgoritmo Analise as alternativas a seguir relativas ao algoritmo e assinale a alternativa correta A Se for digitado o valor 7 para a variável dias e P para a variável tipo na execução do comando leiadias tipo a variável conta armazenará ao final da execução do algoritmo o valor 98000 sem a utilização do telefone B Se for digitado o valor 10 para a variável dias e P para a variável tipo e S para telefone na execução do comando leiadias tipo e leiatelefone a variável conta armazenará ao final da execução do algoritmo o valor 270000 C Se for atribuído o valor Z para a leitura da variável telefone e não N o total da conta dará errado pois o valor calculado afetará a conta do hospital D A taxa de telefone somente será cobrada para o quarto particular e terá o valor final na variável valortel de 1000 para toda a internação no hospital E Se for digitado o valor 10 para a variável dias e C para a variável tipo e S para telefone na execução do comando leiadias tipo e leiatelefone a variável conta armazenará ao final da execução do algoritmo o valor 270000 Na prática Acidente de trabalho Enquadramento do grau de risco Uma empresa arca com diversos encargos mensais os quais estão muito além do valor do salário de seus funcionários e o valor do depósito do FGTS Um dos encargos para as empresas é a alíquota referente ao risco de acidente do trabalho RAT que varia conforme o grau de risco da empresa e cujo destino é a cobertura de acidentes de trabalho Como calcular a alíquota sobre o grau de risco de acidente do trabalho A tabela abaixo apresenta um exemplo de alíquota conforme o grau de risco de cada empresa A tabela completa de todas as áreas econômicas e o grau de risco pode ser consultada no site da Previdência Vamos desenvolver um algoritmo para determinar e imprimir a alíquota sobre o risco de acidente do trabalho RAT para as empresas Como são três alíquotas a forma mais correta seria utilizar um comando condicional dentro do outroou seja encadeado conforme o algoritmo acima Outra solução seria utilizar três comandos condicionais simples DICA um algoritmo pode ser representado por várias soluções mas se analisar as duas apresentadas acima a melhor solução em relação à performance seria a primeira solução Serão executados menos testes em um volume grande de execuções do algoritmo Saiba Para ampliar o seu conhecimento a respeito desse assunto veja abaixo as sugestões do professor Desvio condicional composto SEENTÃOSENÃO Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Desvio condicional aninhado SEENTÃOSENÃOSE Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Comando de desvio condicional Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar