blacksaint 0 Denunciar post Postado Abril 3, 2011 pessoal tenho este código aqui ele roda direitinho até o //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) segue: var Opiniao:caracter Total,SomaId,OpA,OpB,OpC,OpD,OpE,Idade:inteiro totala, totalb, totalc, totald, totale:inteiro PercA, PercB, PercC, PercD, PercE, MediaId:real inicio // Seção de Comandos escreval("Responda o questionário: ") Idade<- 1 Enquanto (Idade > 0) faca escreva("Digite a sua idade: ") leia(Idade) se(Idade > 0)entao escreva("Digite a sua opnião: ") leia(Opiniao) se(opiniao = "A")entao OpA<- totala +1 somaId<- somaId + Idade senao se(opiniao ="B")entao OpB<- totalb +1 somaId<- somaId + Idade senao se(Opiniao = "C")entao OpC<- totalc +1 somaId<- somaId + Idade senao se(Opiniao = "D")entao OpD<- totald +1 somaId<- somaId + Idade senao se(Opiniao ="E")entao OpE<- totale +1 somaId<- somaId + Idade fimse fimse fimse fimse fimse senao escreval("Idade inexistente") fimse fimenquanto // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) PercA<- totala/(OpA+OpB+OpC+OpD+OpE) escreval("A % de pessoas que responderam A: ", percA) //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "A" PercB<- totalb/(OpA+OpB+OpC+OpD+OpE) escreval("A % de pessoas que responderam B: ", percB) //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "B" PercC<- totalc/(OpA+OpB+OpC+OpD+OpE) escreval("A % de pessoas que responderam C: ", PercC) //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "C" PercD<- totald/(OpA+OpB+OpC+OpD+OpE) escreval("A % de pessoas que responderam D: ", PercD) //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "D" PercE<- totale/(OpA+OpB+OpC+OpD+OpE) escreva("A % de pessoas que responderam E: ", PercE) //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "E" fimalgoritmo O problema é que não sei como fazer para caso 3 pessoas respondam a letra C por exemplo, como dividir a % para as outras letras? E caso uma ou mais letras a % seja de 0% como deixar 100% dividido só nas que forem respondidas? exemplo: A: teve 1 (20%) B: teve 1 (20%) C: teve 1 (20%) D: teve 1 (20%) E: teve 1 (20%) Total: 100% outro: A: teve 2 pessoas (50%) B: teve 0 (0%) C: teve 0 (0%) D: teve 0 (0%) E: teve 2 pessoas (50%) Total: 100% Não preciso imprimir na tela o total de 100%, mas preciso printar quanto de % deu para cada uma... me matei a tarde toda e não consigo... se puderem me dar uma luz agradeço Compartilhar este post Link para o post Compartilhar em outros sites
LCS 0 Denunciar post Postado Abril 3, 2011 mesma questão do usuário algoritmo nepester , trata-se de um problema com matemática. sugiro que você procure estudar alguns fundamentos matemáticos. A formula para o seu calculo é (total_de_votos_recebidos_pela_letra_C / Total_de_votos_geral) * 100 , faça o calculo para cada opção de votação, assim o sistema mostrará sempre a porcentagem que cada opção recebeu. Eu não li seu algoritmo pois existem muitas condições e nenhum comentário, assim fica difícil analisar o mesmo. Espero que não me compreenda mal igual o algoritimo napester , quando disse que ele precisa estudar as bases da matemática para se tornar um programador melhor. Abcx, LCS Compartilhar este post Link para o post Compartilhar em outros sites
blacksaint 0 Denunciar post Postado Abril 3, 2011 mesma questão do usuário algoritmo nepester , trata-se de um problema com matemática. sugiro que você procure estudar alguns fundamentos matemáticos. A formula para o seu calculo é (total_de_votos_recebidos_pela_letra_C / Total_de_votos_geral) * 100 , faça o calculo para cada opção de votação, assim o sistema mostrará sempre a porcentagem que cada opção recebeu. Eu não li seu algoritmo pois existem muitas condições e nenhum comentário, assim fica difícil analisar o mesmo. Espero que não me compreenda mal igual o algoritimo napester , quando disse que ele precisa estudar as bases da matemática para se tornar um programador melhor. Abcx, LCS LCS vlw eu dei uma lida por ai e consegui veja, é parecido com o que me falou acima: var Opiniao:caracter Total,SomaId,OpA,OpB,OpC,OpD,OpE,Idade:inteiro totala, totalb, totalc, totald, totale:inteiro PercA, PercB, PercC, PercD, PercE, MediaId:real inicio // Seção de Comandos escreval("Responda o questionário: ") totala<- 0 totalb<- 0 totalc<- 0 totald<- 0 totale<- 0 Idade<- 1 Enquanto (Idade > 0) faca escreva("Digite a sua idade: ") leia(Idade) se(Idade > 0)entao escreva("Digite a sua opnião: ") leia(Opiniao) se(opiniao = "A")entao OpA<- OpA +1 somaId<- somaId + Idade senao se(opiniao ="B")entao OpB<- OpB +1 somaId<- somaId + Idade senao se(Opiniao = "C")entao OpC<- OpC +1 somaId<- somaId + Idade senao se(Opiniao = "D")entao OpD<- OpD +1 somaId<- somaId + Idade senao se(Opiniao ="E")entao OpE<- OpE +1 somaId<- somaId + Idade fimse fimse fimse fimse fimse senao escreval("Idade inexistente") fimse fimenquanto // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) PercA<- 100*(OpA / total) escreval("A % de pessoas que responderam A: ", percA,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "A" PercB<- 100*(OpB / total) escreval("A % de pessoas que responderam B: ", percB,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "B" PercC<- 100*(OpC / total) escreval("A % de pessoas que responderam C: ", PercC,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "C" PercD<- 100*(OpD / total) escreval("A % de pessoas que responderam D: ", PercD,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "D" PercE<- 100*(OpE / total) escreva("A % de pessoas que responderam E: ", PercE,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "E" fimalgoritmo veja a resposta final como eu queria: Obs: Não coloquei o enunciado aqui, por que descobri que pessoas da minha classe, procuram pelo google, de acordo com o enunciado, é mole? como as variaveis: totala, totalb, totalc, totald, totale:inteiro eram testes, eliminei elas: var Opiniao:caracter Total,SomaId,OpA,OpB,OpC,OpD,OpE,Idade:inteiro PercA, PercB, PercC, PercD, PercE, MediaId:real inicio // Seção de Comandos escreval("Responda o questionário: ") Idade<- 1 Enquanto (Idade > 0) faca escreva("Digite a sua idade: ") leia(Idade) se(Idade > 0)entao escreva("Digite a sua opnião: ") leia(Opiniao) se(opiniao = "A")entao OpA<- OpA +1 somaId<- somaId + Idade senao se(opiniao ="B")entao OpB<- OpB +1 somaId<- somaId + Idade senao se(Opiniao = "C")entao OpC<- OpC +1 somaId<- somaId + Idade senao se(Opiniao = "D")entao OpD<- OpD +1 somaId<- somaId + Idade senao se(Opiniao ="E")entao OpE<- OpE +1 somaId<- somaId + Idade fimse fimse fimse fimse fimse senao escreval("Idade inexistente") fimse fimenquanto // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) PercA<- 100*(OpA / total) escreval("A % de pessoas que responderam A: ", percA,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "A" PercB<- 100*(OpB / total) escreval("A % de pessoas que responderam B: ", percB,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "B" PercC<- 100*(OpC / total) escreval("A % de pessoas que responderam C: ", PercC,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "C" PercD<- 100*(OpD / total) escreval("A % de pessoas que responderam D: ", PercD,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "D" PercE<- 100*(OpE / total) escreva("A % de pessoas que responderam E: ", PercE,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "E" fimalgoritmo Início da execução Responda o questionário: Digite a sua idade: 24 Digite a sua opnião: a Digite a sua idade: 31 Digite a sua opnião: c Digite a sua idade: 12 Digite a sua opnião: e Digite a sua idade: -1 Idade inexistente O total de pessoas que responderam a pesquisa: 3 A média da idade das pessoas que responderam a pesquisa é: 22.3333333333333 A % de pessoas que responderam A: 33.3333333333333% A % de pessoas que responderam B: 0% A % de pessoas que responderam C: 33.3333333333333% A % de pessoas que responderam D: 0% A % de pessoas que responderam E: 33.3333333333333% Fim da execução. Compartilhar este post Link para o post Compartilhar em outros sites
LCS 0 Denunciar post Postado Abril 3, 2011 Porque você esta fazendo a média das idades com base na soma das opções votadas? O correto seria usar a variável total / pela variável somaid; E para dar somente uma limpada no visual, que tal você botar uma linha entre cada grupo de votação? ou seja ao invés disso: Digite sua idade: 24 Digite a sua opinião:c Digite sua idade: 24 Digite a sua opinião:c Faça assim Digite sua idade: 24 Digite a sua opinião:c --------------------- // bote essa linha entre os dois. Digite sua idade: 24 Digite a sua opinião:c E se você usar a variável idade como escape, você induzirá o sistema ao erro. ou seja irá aparecer idade inexistente para depois sair do loop. Use outra variável de controle. Compartilhar este post Link para o post Compartilhar em outros sites
blacksaint 0 Denunciar post Postado Abril 3, 2011 Porque você esta fazendo a média das idades com base na soma das opções votadas? O correto seria usar a variável total / pela variável somaid; E para dar somente uma limpada no visual, que tal você botar uma linha entre cada grupo de votação? ou seja ao invés disso: Digite sua idade: 24 Digite a sua opinião:c Digite sua idade: 24 Digite a sua opinião:c Faça assim Digite sua idade: 24 Digite a sua opinião:c --------------------- // bote essa linha entre os dois. Digite sua idade: 24 Digite a sua opinião:c E se você usar a variável idade como escape, você induzirá o sistema ao erro. ou seja irá aparecer idade inexistente para depois sair do loop. Use outra variável de controle. LCS agradeço, vou ver sobre o que você disse total / pela variável somaid; mas quanto ao "idade inexistente" é exatamente o que o professor quer (se o usuário der uma idade inválida, o loop acaba, ou seja, acaba a pesquisa). vlw ______________________________ media: eu tentei da forma que você falou total/somaid e ficou assim: algoritmo "semnome" // Função : // Autor : // Data : 2/4/2011 // Seção de Declarações var Opiniao:caracter Total,SomaId,OpA,OpB,OpC,OpD,OpE,Idade:inteiro PercA, PercB, PercC, PercD, PercE, MediaId:real inicio // Seção de Comandos escreval("Responda o questionário: ") Idade<- 0 Enquanto (Idade >= 0) faca escreva("Digite a sua idade: ") leia(Idade) se(Idade > 0)entao escreva("Digite a sua opnião: ") leia(Opiniao) se(opiniao = "A")entao OpA<- OpA +1 somaId<- somaId + Idade senao se(opiniao ="B")entao OpB<- OpB +1 somaId<- somaId + Idade senao se(Opiniao = "C")entao OpC<- OpC +1 somaId<- somaId + Idade senao se(Opiniao = "D")entao OpD<- OpD +1 somaId<- somaId + Idade senao se(Opiniao ="E")entao OpE<- OpE +1 somaId<- somaId + Idade fimse fimse fimse fimse fimse senao escreval("Idade inexistente") fimse fimenquanto // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<- Total/somaId escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) PercA<- 100*(OpA / total) escreval("A % de pessoas que responderam A: ", percA,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "A" PercB<- 100*(OpB / total) escreval("A % de pessoas que responderam B: ", percB,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "B" PercC<- 100*(OpC / total) escreval("A % de pessoas que responderam C: ", PercC,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "C" PercD<- 100*(OpD / total) escreval("A % de pessoas que responderam D: ", PercD,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "D" PercE<- 100*(OpE / total) escreva("A % de pessoas que responderam E: ", PercE,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "E" fimalgoritmo saida: Início da execução Responda o questionário: Digite a sua idade: 25 Digite a sua opnião: A Digite a sua idade: 31 Digite a sua opnião: B Digite a sua idade: 24 Digite a sua opnião: D Digite a sua idade: 29 Digite a sua opnião: E Digite a sua idade: -2 Idade inexistente O total de pessoas que responderam a pesquisa: 4 A média da idade das pessoas que responderam a pesquisa é: 0.036697247706422 A % de pessoas que responderam A: 25% A % de pessoas que responderam B: 25% A % de pessoas que responderam C: 0% A % de pessoas que responderam D: 25% A % de pessoas que responderam E: 25% Fim da execução. A média ficou errada? da forma que estava MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) veja como fica: Início da execução Responda o questionário: Digite a sua idade: 25 Digite a sua opnião: A Digite a sua idade: 31 Digite a sua opnião: B Digite a sua idade: 24 Digite a sua opnião: D Digite a sua idade: 29 Digite a sua opnião: E Digite a sua idade: -2 Idade inexistente O total de pessoas que responderam a pesquisa: 4 A média da idade das pessoas que responderam a pesquisa é: 27.25 A % de pessoas que responderam A: 25% A % de pessoas que responderam B: 25% A % de pessoas que responderam C: 0% A % de pessoas que responderam D: 25% A % de pessoas que responderam E: 25% Fim da execução. ou errei alguma coisa? Porque você esta fazendo a média das idades com base na soma das opções votadas? O correto seria usar a variável total / pela variável somaid; E para dar somente uma limpada no visual, que tal você botar uma linha entre cada grupo de votação? ou seja ao invés disso: Digite sua idade: 24 Digite a sua opinião:c Digite sua idade: 24 Digite a sua opinião:c Faça assim Digite sua idade: 24 Digite a sua opinião:c --------------------- // bote essa linha entre os dois. Digite sua idade: 24 Digite a sua opinião:c E se você usar a variável idade como escape, você induzirá o sistema ao erro. ou seja irá aparecer idade inexistente para depois sair do loop. Use outra variável de controle. LCS agradeço, vou ver sobre o que você disse total / pela variável somaid; mas quanto ao "idade inexistente" é exatamente o que o professor quer (se o usuário der uma idade inválida, o loop acaba, ou seja, acaba a pesquisa). vlw ______________________________ media: eu tentei da forma que você falou total/somaid e ficou assim: algoritmo "semnome" // Função : // Autor : // Data : 2/4/2011 // Seção de Declarações var Opiniao:caracter Total,SomaId,OpA,OpB,OpC,OpD,OpE,Idade:inteiro PercA, PercB, PercC, PercD, PercE, MediaId:real inicio // Seção de Comandos escreval("Responda o questionário: ") Idade<- 0 Enquanto (Idade >= 0) faca escreva("Digite a sua idade: ") leia(Idade) se(Idade > 0)entao escreva("Digite a sua opnião: ") leia(Opiniao) se(opiniao = "A")entao OpA<- OpA +1 somaId<- somaId + Idade senao se(opiniao ="B")entao OpB<- OpB +1 somaId<- somaId + Idade senao se(Opiniao = "C")entao OpC<- OpC +1 somaId<- somaId + Idade senao se(Opiniao = "D")entao OpD<- OpD +1 somaId<- somaId + Idade senao se(Opiniao ="E")entao OpE<- OpE +1 somaId<- somaId + Idade fimse fimse fimse fimse fimse senao escreval("Idade inexistente") fimse fimenquanto // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<- Total/somaId escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) PercA<- 100*(OpA / total) escreval("A % de pessoas que responderam A: ", percA,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "A" PercB<- 100*(OpB / total) escreval("A % de pessoas que responderam B: ", percB,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "B" PercC<- 100*(OpC / total) escreval("A % de pessoas que responderam C: ", PercC,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "C" PercD<- 100*(OpD / total) escreval("A % de pessoas que responderam D: ", PercD,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "D" PercE<- 100*(OpE / total) escreva("A % de pessoas que responderam E: ", PercE,"%") //PORCENTAGEM DE PESSOAS QUE RESPONDERAM "E" fimalgoritmo saida: Início da execução Responda o questionário: Digite a sua idade: 25 Digite a sua opnião: A Digite a sua idade: 31 Digite a sua opnião: B Digite a sua idade: 24 Digite a sua opnião: D Digite a sua idade: 29 Digite a sua opnião: E Digite a sua idade: -2 Idade inexistente O total de pessoas que responderam a pesquisa: 4 A média da idade das pessoas que responderam a pesquisa é: 0.036697247706422 A % de pessoas que responderam A: 25% A % de pessoas que responderam B: 25% A % de pessoas que responderam C: 0% A % de pessoas que responderam D: 25% A % de pessoas que responderam E: 25% Fim da execução. A média ficou errada? da forma que estava MediaId<-(somaId/(OpA+OpB+OpC+OpD+OpE)) veja como fica: Início da execução Responda o questionário: Digite a sua idade: 25 Digite a sua opnião: A Digite a sua idade: 31 Digite a sua opnião: B Digite a sua idade: 24 Digite a sua opnião: D Digite a sua idade: 29 Digite a sua opnião: E Digite a sua idade: -2 Idade inexistente O total de pessoas que responderam a pesquisa: 4 A média da idade das pessoas que responderam a pesquisa é: 27.25 A % de pessoas que responderam A: 25% A % de pessoas que responderam B: 25% A % de pessoas que responderam C: 0% A % de pessoas que responderam D: 25% A % de pessoas que responderam E: 25% Fim da execução. ou errei alguma coisa? errei mesmo, e já achei, e ficou certinho assim: // TOTAL DE PESSOAS QUE RESPONDERAM A PESQUISA Total<-(OpA+OpB+OpC+OpD+OpE) escreval("O total de pessoas que responderam a pesquisa: ", Total) //MÉDIA DA IDADE DAS PESSOAS QUE RESPONDERAM MediaId<-somaId/ Total escreval("A média da idade das pessoas que responderam a pesquisa é: ", MediaId) Saída: Início da execução Responda o questionário: Digite a sua idade: 24 Digite a sua opnião: a Digite a sua idade: 35 Digite a sua opnião: b Digite a sua idade: 45 Digite a sua opnião: c Digite a sua idade: -3 Idade inexistente O total de pessoas que responderam a pesquisa: 3 A média da idade das pessoas que responderam a pesquisa é: 34.6666666666667 A % de pessoas que responderam A: 33.3333333333333% A % de pessoas que responderam B: 33.3333333333333% A % de pessoas que responderam C: 33.3333333333333% A % de pessoas que responderam D: 0% A % de pessoas que responderam E: 0% Fim da execução. LCS obrigadão por essa ajuda... vlw mais uma vez Compartilhar este post Link para o post Compartilhar em outros sites
LCS 0 Denunciar post Postado Abril 3, 2011 Eu inverti as proporções da divisão... foi malzz.. mais agora tah certinho.. Compartilhar este post Link para o post Compartilhar em outros sites