LordGargamel 0 Denunciar post Postado Setembro 8, 2016 Tem esse algoritmo aqui, que eu preciso fazer usando repita: A equipe de natação da Longelândia que participará das Olimpíadas do Rio 2016 conta com diversos atletas, distribuídos em 6 categorias, conforme a tabela abaixo. Faça um algoritmo em pseudocódigo que leia a idade de cada um destes membros e informe em qual categoria ele está classificado. Ao final seu programa deverá informar também qual o percentual de atletas que estão na categoria INFANTIL A. A entrada de dados encerrará quando for digitada uma idade negativa. mirim-ate 4 anos infantil a- entre 5 e 7 anos infantil b- entre 8 e 10 anos juvenil a- entre 11 e 13 anos juvenil b- entre 14 e 17 anos adulto- de 18 anos em diante Tentei fazer incluindo o enquanto, pra não considerar qualquer número negativo, mas deu loop infinito por algum motivo que eu não tenho noção. Por causa disso, eu fiz uma mini gambiarra que vocês vão entender no último escreval do algoritmo, e mesmo assim não ta dando certo, aparece "invalid floating point operation". Segue o código: algoritmo "ex04" // Função : // Autor : // Data : 07/09/2016 // Seção de Declarações var conttotal,continfa,idade:inteiro inicio conttotal<-0 continfa<-0 repita escreval("Digite a idade de um membro: ") leia(idade) se idade<=4 entao escreval("Esse membro está classificado na categoria MIRIM.") conttotal<-conttotal+1 fimse se (idade>=5) e (idade<=7) entao escreval("Esse membro está classificado na categoria INFANTIL A.") conttotal<-conttotal+1 continfa<-continfa+1 fimse se (idade>=8) e (idade<=10) entao escreval("Esse membro está classificado na categoria INFANTIL B.") conttotal<-conttotal+1 fimse se (idade>=11) e (idade<=13) entao escreval("Esse membro está classificado na categoria JUVENIL A.") conttotal<-conttotal+1 fimse se (idade>=14) e (idade<=17) entao escreval("Esse membro está classificado na categoria JUVENIL B.") conttotal<-conttotal+1 fimse se idade>=18 entao escreval("Esse membro está classificado na categoria ADULTO.") conttotal<-conttotal+1 fimse ate idade<0 escreval("O percentual de atletas que estão na categoria INFANTIL A, correspondem à ",(continfa/contotal-1)*100,"%.") fimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
LordGargamel 0 Denunciar post Postado Setembro 8, 2016 Pra quem não entendeu a fuleiragem que eu fiz, foi tentar subtrair -1, pra desconsiderar a ultima entrada de dados do contador normal, pois ele para após digitar número negativo. O esperado era somente aparecer a categoria na tela, mas não iria influenciar no percentual final dos atletas do infantil a. Compartilhar este post Link para o post Compartilhar em outros sites
snowstormdelivery 19 Denunciar post Postado Setembro 9, 2016 Você colocou a subtração para desconsiderar a última contagem, que é quando o usuário digita um número negativo, pois, não existem pessoas com idades negativas, certo?A expressão "(continfa/contotal-1)*100" teria como finalidade retirar 1 do contador total, mas esta está errada, por isso estás a obter valores incorretos.Você já deve ter uma noção de prioridade dos operadores aritméticos, pois, usou parênteses para separar a divisão da multiplicação. As prioridades são as seguintes: Tabela retirada do livro de Bruno Tonet. Como vê na tabela, o algoritmo irá calcular primeiro a divisão "continfa/contotal" e depois sim, subtrair 1. Para resolver isso deves usar mais parênteses onde queres fazer subtração (contotal-1). A expressão correta seria esta: (continfa / (contotal-1)) * 100.Ps: não entendi se este era realmente seu problema, mas vi que estava errado e tentei ensinar a prioridade dos operadores aritméticos. Caso seja outro o problema, nos informe. Compartilhar este post Link para o post Compartilhar em outros sites