Ir ao conteúdo

Posts recomendados

Postado

=>Estou com dificuldades para a solução dos cálculos da escolaridade(total analfabetos,series iniciais,..). Alguém para me ajudar ainda hoje? OBS: PROGRAMA EM VISUALG

 

Foi realizada uma pesquisa sobre alguns costumes e comportamentos que envolvem questões ambientais e econômicas dos moradores de uma cidade da Serra Gaúcha. Um pessoa (responsável) da residência vai responder o questionário. Foram coletados os seguintes dados de cada família do entrevistado : sexo do entrevistado(M-Masculino ou F-Feminino), Número de moradores da residência, renda familiar, e responda as seguintes perguntas:

Os moradores da residência possuem coleta de água da chuva? Sim ou Não.

Há separação do lixo residencial? Sim ou Não .

Qual a escolaridade da pessoa que recebe o maior salário da casa? As respostas podem ser : 1- Analfabeto  2- Serie inicial  3- Ensino Fundamental   4- Ensino Médio  5 – Ensino Superior   6- Pos Graduação 7 - outros

Todas as entradas de dados devem ser validadas.

 

Deve-se validar a entrada do sexo, as perguntas onde a resposta deve ser S-para sim e N – para não (utilizar comandos de leitura de caracteres e não scanf - usar o gets() ou getche()).

Caso o usuário digitar um valor errado, deverá aparecer na tela uma mensagem informando que esta errado e solicitar para redigitar novamente, até o usuário digitar um valor válido. Para facilitar a entrada dos dados, sempre imprima na tela orientações para o usuário saber o que deve ser digitado como entrado.  Toda vez que cadastrar  a pesquisa de uma residência, deve perguntar ao usuário se deseja cadastrar uma nova pesquisa. Assim, o programa encerra quando o usuário digitar N(Não), indicando que não deseja realizar mais nenhuma pesquisa. Ao finalizar o programa deverá ser impresso o relatório final da pesquisa com as informações solicitadas abaixo.

Faça um PROGRAMA que leia esses dados e gere como relatório:

- Total de pessoas pesquisadas ( um por casa)

- Total de residências que coletam e total que não coletam a água da chuva

- Total de residencias que separam o lixo e total que não separam.

- Total de homens pesquisados e o percentual (%)

- Total de mulheres pesquisadas e o percentual (%)

- Média dos salários(renda familiar) de todos os entrevistados ( soma todas as rendas e divide pelo número de casas pesquisadas)

- Média de moradores por residência - ( SOMA TODOS OS MORADORES E DIVIDE  PELO TOTAL DE CASAS) - não precisa ser por escolaridade.

-Calcule e imprima:

Total de pesquisados  Analfabetos:  999

Total de pesquisados  Series iniciais : 999

Total de pesquisados  Ensino Fundamental : 999

Total de pesquisados  Ensino Médio  : 999

Total de pesquisados  Ensino Superior : 999

Total de pesquisados  Pós Graduação: 999

Total de pesquisados  como Outros  : 999

Algoritmo "Trabalho"

Var
   moradores, rendafamiliar,opcao : inteiro
   T_Masculino, T_Feminino, T_Pessoas   : inteiro
   T_Aguachuva, T_Nao_Aguachuva : inteiro
   T_Lixo, T_Nao_Lixo : inteiro
   T_Analfabetos : inteiro
   T_Series_Iniciais : inteiro
   T_Ensino_Fundamental : inteiro
   T_Ensino_Medio : inteiro
   T_Ensino_Superior : inteiro
   T_Pos_Graduacao : inteiro
   T_Outros : inteiro
   T_Pesquisa : inteiro
   
   moradoresTotal, rendaFamiliarTotal : real
   Media_Salarios, Perc_Homens, Perc_Mulheres : real

   sexo, Aguachuva, pesquisa, lixo, escolaridade : caracter


Inicio

   repita
      Escreval("Informe o numero de moradores da casa : ")
      Leia(moradores)
      Escreval("Informe a renda familiar:")
      Leia(rendafamiliar)

      repita
         Escreval("Digite o sexo do entrevistado(a) M/F : ")
         Leia(sexo)
         se ((sexo <> "M") e (sexo <> "F")) entao
            Escreval("Sexo incorreto, redigite M (masculino) ou F (feminino)")
         fimse
         Se (sexo = "M") entao
            T_Masculino <- T_Masculino
         senao
            Se (sexo ="F") entao
               T_Feminino <- T_Feminino
            fimse
         fimse
      ate (( sexo = "M") ou (sexo = "F"))

      repita
         Escreval("Residencia possui coleta de agua da chuva? S/N ")
         Leia(Aguachuva)
         Se ((Aguachuva <> "S") e (Aguachuva <> "N")) entao
            Escreval("Comando incorreto. Digite S (SIM) ou N (NAO) ")
         fimse
         Se (Aguachuva = "S") entao
            T_Aguachuva <- T_Aguachuva + 1
         Senao
            Se (Aguachuva = "N") entao
               T_Nao_Aguachuva <- T_Nao_Aguachuva +1
            fimse
         fimse
      ate ((Aguachuva = "S") ou (Aguachuva = "N"))


      repita
         Escreval("Ha separacão de lixo? S/N ")
         Leia(lixo)
         Se ((lixo <> "S") e (lixo <> "N")) entao
            Escreval ("Comando incorreto. Digite S (SIM) ou N (NAO) ")
         fimse
         Se (lixo = "S") entao
            T_Lixo <- T_Lixo + 1
         senao
            Se (lixo = "N") entao
               T_Nao_lixo <- T_Nao_lixo + 1
            fimse
         fimse
      ate ((lixo = "S") ou (lixo = "N"))

      T_Analfabetos <- 0
      T_Series_Iniciais <- 0
      T_Ensino_Fundamental <- 0
      T_Ensino_Medio <- 0
      T_Ensino_Superior <- 0
      T_Pos_Graduacao <- 0
      T_Outros <- 0
      Escreval("Tabela da escolaridade:")
      Escreval("1-Analfabeto")
      Escreval("2-Serie Inicial")
      Escreval("3-Ensino Fundamental")
      Escreval("4-Ensino Medio")
      Escreval("5-Ensino Superior")
      Escreval("6-Pos Graduacao")
      Escreval("7-Outros")
      Escreval("Informe a escolaridade da pessoa que recebe o maior salario :")
      Leia(escolaridade)
      escolha(opcao)

      caso 1
         T_Analfabetos <- T_Analfabetos + 1
      caso 2
         T_Series_Iniciais <- T_Series_Iniciais + 1
      caso 3
         T_Ensino_Fundamental <- T_Ensino_Fundamental + 1
      caso 4
         T_Ensino_Medio <- T_Ensino_Medio + 1
      caso 5
         T_Ensino_Superior <- T_Ensino_Superior + 1
      caso 6
         T_Pos_Graduacao <- T_Pos_Graduacao + 1
      caso 7
         T_Outros <- T_Outros + 1
      fimescolha
      repita
         Escreval ("Deseja continuar cadastrando pessoas? S/N")
         Leia (pesquisa)
         Se ((pesquisa <> "S") e (pesquisa <> "N")) entao
            Escreval ("Comando incorreto. Digite S (SIM) ou N (NAO) ")
         fimse
      ate ((pesquisa = "S") ou (pesquisa = "N"))

      T_Pessoas <- T_Pessoas + 1
      moradoresTotal <- moradoresTotal + moradores
      rendaFamiliarTotal <- (rendaFamiliarTotal + rendafamiliar)/T_Pessoas
      Media_Salarios <- (rendaFamiliarTotal /T_Pessoas)*100
      
   ate (pesquisa = "N"))

   Perc_Homens <- (T_Masculino /T_Pessoas )*100
   Perc_Mulheres <- (T_Feminino /T_Pessoas)*100
   T_Feminino <- T_Feminino + 1
   T_Masculino <- T_Masculino + 1

   Escreval("Total de pessoas  pesquisadas :" , T_Pessoas)
   Escreval("Total de residencias que coletam agua da chuva : " , T_Aguachuva)
   Escreval("Total de residencias que nao coletam agua da chuva :" , T_Nao_Aguachuva)
   Escreval("Total de residencias que separam o lixo : " , T_Lixo)
   Escreval("Total de residencias que nao separam o lixo : " , T_Nao_Lixo)
   Escreval("Total de homens pesquisados e a percentagem :" , T_Masculino , " - " , Perc_Homens ,"%")
   Escreval("Total de mulheres pesquisadas e a percentagem :" , T_Feminino , " - " , Perc_Mulheres ,"%" )
   Escreval("Media dos salarios dos entrevistados :" , Media_Salarios)
   Escreval("Media de moradores por residencia pela escolaridade :" , moradoresTotal)

   Escreval("Total de pesquisados  Analfabetos : " , T_Analfabetos)
   Escreval("Total de pesquisados  Series iniciais : " , T_Series_Iniciais)
   Escreval("Total de pesquisados  Ensino Fundamental : " , T_Ensino_Fundamental)
   Escreval("Total de pesquisados  Ensino Médio  : " , T_Ensino_Medio)
   Escreval("Total de pesquisados  Ensino Superior : " , T_Ensino_Superior)
   Escreval("Total de pesquisados  Pós Graduação : " , T_Pos_Graduacao)
   Escreval("Total de pesquisados  como Outros  : " , T_Outros)

Fimalgoritmo

 

  • Membro VIP
Postado
9 horas atrás, Danrlei Kemper disse:

=>Estou com dificuldades para a solução dos cálculos da escolaridade (total analfabetos, series iniciais,..). Alguém para me ajudar ainda hoje? OBS: PROGRAMA EM VISUALG

 

O problema deve ser porque está lendo pela variável escolaridade, mas está utilizando a variável opcao para selecionar a categoria... Vide:

 

9 horas atrás, Danrlei Kemper disse:

Escreval("Informe a escolaridade da pessoa que recebe o maior salario :")
      Leia(escolaridade)
      escolha(opcao)

      caso 1
         T_Analfabetos <- T_Analfabetos + 1
      caso 2
         T_Series_Iniciais <- T_Series_Iniciais + 1
      caso 3
         T_Ensino_Fundamental <- T_Ensino_Fundamental + 1
      caso 4
         T_Ensino_Medio <- T_Ensino_Medio + 1
      caso 5
         T_Ensino_Superior <- T_Ensino_Superior + 1
      caso 6
         T_Pos_Graduacao <- T_Pos_Graduacao + 1
      caso 7
         T_Outros <- T_Outros + 1
      fimescolha

 

adicionado 12 minutos depois

ADENDO:

Tem algo no mínimo curioso acontecendo... esse código está muito semelhante ao código contido no tópico abaixo:

Pela semelhança (que é bem grande, inclusive tiveram a mesma dúvida), é bem provável que OU um copiou do outro, OU ambos copiaram de um terceiro. Concordam? ou a base do programa foi dada pronta e só precisaram ajustar algumas partes?

 

Em fim, sugiro que, caso não tenha sido uma grande coincidência, evitem esse tipo de situação... é melhor cada um criar o teu próprio algoritmo com as tuas próprias características. Uma boa dica é refazer o algoritmo do zero... utilizando um próprio jeito de programar.

 

Obs.: não é uma acusação propriamente dita, mas apenas uma dica para evitar possíveis questionamentos do "professor", por exemplo.

 

Att
 

  • Membro VIP
Postado
10 horas atrás, Danrlei Kemper disse:

@Simon Viegas desenvolvemos o algoritmo juntos( jacksoon e eu)e por isso estamos com a mesma dúvida. 

 

Perfeito!

 

 

****

Nesse teu código alguns probleminhas, exemplo:

 

Neste trecho abaixo está "coletando o sexo e contabilizando de acordo com a resposta":

 

Em 17/05/2020 às 22:01, Danrlei Kemper disse:

      repita
         Escreval("Digite o sexo do entrevistado(a) M/F : ")
         Leia(sexo)
         se ((sexo <> "M") e (sexo <> "F")) entao
            Escreval("Sexo incorreto, redigite M (masculino) ou F (feminino)")
         fimse
         Se (sexo = "M") entao
            T_Masculino <- T_Masculino
         senao
            Se (sexo ="F") entao
               T_Feminino <- T_Feminino
            fimse
         fimse
      ate (( sexo = "M") ou (sexo = "F"))

 

Mas, após ver se é "M" ou "F", você está atribuindo as variáveis o próprio valor, ou seja: se lá tiver 0, vai receber 0 novamente (não está alterando algo). Poderia fazer como o teu colega:

 

Em 16/05/2020 às 15:13, Jacksoon disse:

      repita
         Escreval("Digite o sexo do entrevistado(a) M/F : ")
         Leia(sexo)
         se ((sexo <> "M") e (sexo <> "F")) entao
            Escreval("Sexo incorreto, redigite M (masculino) ou F (feminino)")
         fimse
         Se (sexo = "M") entao
            T_Masculino <- T_Masculino + 1
         senao
            Se (sexo ="F") entao
               T_Feminino <- T_Feminino + 1
            fimse
         fimse
      ate (( sexo = "M") ou (sexo = "F"))

 

Ou seja: o "total de masculino será a quantidade atual mais 1". Se tinha 0, vai passar a ficar com 1. Se tinha 1, vai ficar com 2... etc.

 

Outro ponto relacionado está com problemas, aqui:

 

Em 17/05/2020 às 22:01, Danrlei Kemper disse:

   ate (pesquisa = "N"))

   Perc_Homens <- (T_Masculino /T_Pessoas )*100
   Perc_Mulheres <- (T_Feminino /T_Pessoas)*100
   T_Feminino <- T_Feminino + 1
   T_Masculino <- T_Masculino + 1

 

Veja: essa primeira linha seria algo como "fim da coleta da dados". Daí, é calculado as percentagens, OK..., mas após está atualizando o "total de feminino" e o "total de masculino". Essa atualização não faz sentido, pois só deve atualizar a "quantidade de cada gênero" lá naquele trecho mais acima... Para corrigir, basta remover essas duas últimas linhas (e corrigir o trecho de código como citado mais acima).

 

 

@Danrlei Kemper, será um código só para os 2, ou "cada um vai fazer o seu código"? por favor, nos informe isso, pois, se for um código só, poderíamos unificar e tratarmos juntos em apenas um tópico. Já caso seja um código de cada um (algo como "apenas houve um ajuda mútua em algumas partes"), aí podemos tratar em tópicos diferentes. Cada um vai tendo as suas próprias dificuldades e vai tratando aos poucos.

 

 

De um modo geral:

  • Atualize o teu código o máximo possível e tente identificar os problemas. Daí informe onde está com dúvidas ou se já terminou 100%;
  • Informe se vai ser um código para cada um (independentes) ou se vai ser apenas um código (trabalho em grupo).

 

No aguardo.

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...