Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blacksaint

[Resolvido] Portugol<- colocar % em uma pesquisa

Recommended Posts

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

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

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:

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.