sempreslack
(usa Slackware)
Enviado em 28/09/2016 - 11:48h
tiuvi escreveu:
Da uma ajuda ai galera estou tentando fazer e está dando erro
Escreva um algoritmo que leia o nome, idade e sexo de pessoas finalizando a digitação quando o nome for igual a espaço. Mostrar o total de pessoas digitadas, o percentual de homens e de mulheres.
Algoritmo " 3 "
var
nome , sexo : caractere
idade , qtd , totalh , totalm : inteiro
pctm , pcth : real
inicio
qtd <- 0
totalh <- 0
totalm <- 0
escreva( " Digite o nome, caso queira encerrar o algoritmo clique na barra de espaço " )
leia ( nome )
enquanto ( nome <> " " )faca
escreva ( " Digite o sexo " )
leia ( sexo )
escreva ( " Digite a idade " )
leia ( idade )
qtd <- qtd + 1
se ( sexo = " masculino " )entao
totalh <- totalh + 1
se ( sexo = " feminino " )entao
totalm <- totalm + 1
fimse
fimse
escreva( "Digite o nome " )
leia( nome )
fimenquanto
se ( totalm > 0 ) ou ( totalh > 0 )entao
pctm <- ( qtd - totalh ) * 100
pcth <- ( qtd - totalm ) * 100
escreva ( " O total de pessoas é " , qtd , ". O percentual de pessoas do sexo masculino é " , pcth ,". O percentual de pessoas do sexo feminino é " , pctm )
fimse
se ( totalm = 0 ) ou ( totalh = 0 ) entao
escreva ( " Não foram digitadas informações " )
fimse
fimalgoritmo
bem cara, pelo que eu to endo aqui tem 3 erros. O primeiro está aqui:
enquanto ( nome <> " " )faca
escreva ( " Digite o sexo " )
leia ( sexo )
escreva ( " Digite a idade " )
leia ( idade )
qtd <- qtd + 1
se ( sexo = " masculino " )entao
totalh <- totalh + 1
se ( sexo = " feminino " )entao
totalm <- totalm + 1
fimse
fimse
escreva( "Digite o nome " )
leia( nome )
fimenquanto
O erro está na colocação de um dos fimse. Da forma como você escreveu, a quantidade de mulheres depende da quantidade de homens, ou seja, se dentro de outro se. O correto aqui seria:
se ( sexo = " masculino " )entao
totalh <- totalh + 1
fimse
se ( sexo = " feminino " )entao
totalm <- totalm + 1
fimse
O segundo erro é mais simples, mas dificil de achar. Ele está aqui:
se ( sexo = " masculino " )entao
se ( sexo = " feminino " )entao
O correto seria assim:
se (sexo = "masculino")entao
se ( sexo = "feminino")entao
Pois é, o problema aqui é só questão de espaço. "masculino" é diferente de " masculino " e "feminino" é diferente de " feminino "
O terceiro erro é um erro de matemática
O correto, pelo que entendi que você quer seria:
pctm <- (totalh/qtd) * 100
pcth <- (totalm/qtd) * 100