Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img546.imageshack.us/img546/1465/perc.jpg&key=6e93a1bf8b83704cbf586d4ccf3469558b297ca84253f475cdbd17e4cda65d9d" alt="perc.jpg" />
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.
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.
>
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
Eu inverti as proporções da divisão... foi malzz.. mais agora tah certinho..
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