Ir ao conteúdo
  • Cadastre-se

VisualG Gerenciador de bovinos


Posts recomendados

João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma necessidade gerencial, ele deseja um algoritmo para calcular a quantidade de bois de cada raça; a média de peso de cada raça; o boi mais pesado e a sua raça; e, o boi mais leve e a sua raça. Para o funcionamento do algoritmo serão informados os seguintes dados, pelo gerente da fazenda:

 

Primeiramente, e somente uma vez, a quantidade total de bois;

A raça (1 ou 2) e o peso de cada boi.

Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça os resultados esperados.

 

Pessoal me ajuda ai por favor !!

até o momento conseguir até aqui, não estou sabendo calcular da forma correta no VisualG.

 

algoritmo "qtdeBois"
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)
   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1, "")
      escreva ("Raça (1 ou 2): ")
      leia(raca)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2
      fimSe
   fimPara
fimalgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Jef2022, esse código que você postou tem dedo meu aí, hem?!. 😁. Mas não tem problema... o importante é assimilar/aprender.

 

Adendo inicial: removi uma crase do enunciando. Não existe crase antes de artigo.

 

 

Vamos lá... abaixo fiz apenas 2 coisas:

 

1. inseri o enunciado no código. Ajuda a organizar e facilita a consulta na hora de implementar;

2. inseri um código para gerar automaticamente os valores para as raças. Assim, facilitando os testes e ajudando a evitar a LER 😆. Esse conceito pode ser aplicado onde achar necessário!!! (Por exemplo: na própria quantidade... sei lá, de 4 a 10... Por aí vai).

 

algoritmo "Gerenciador de bovinos"
// Disciplina  :
// Professor   :
// Autor       : Jef2022

//João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma
//necessidade gerencial, ele deseja um algoritmo para calcular:

// * a quantidade de bois de cada raça;
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

//Para o funcionamento do algoritmo serão informados os seguintes dados, pelo
//gerente da fazenda:

//Primeiramente, e somente uma vez, a quantidade total de bois;
//A raça (1 ou 2) e o peso de cada boi.
//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.

//Primeiramente, e somente uma vez, a quantidade total de bois;

//A raça (1 ou 2) e o peso de cada boi.

//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      escreva ("Raça (1 ou 2): ")
      //leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2
      fimSe
   fimPara
fimAlgoritmo

 

Exemplo:
image.png

 

Ou seja: ao informar a quantidade, o programa já gera as respostas (não precisa perder tempo redigitando a cada teste)... isso ajuda também na variação do resultados. Depois de pronto você tira (ou não).

 

 

Antes de avançarmos, segue uma dica bacana: nunca tente fazer tudo de uma vez só e tente deixar sempre teu código rodável e sem erros.
 

 

Seguindo a máxima supracitada, avançamos:


Temos:

// * a quantidade de bois de cada raça;
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.


Qual quer implementa? Precisa entender mais ou menos todo o contexto do problema... Então, desses acima, acho que o mais simples seria o primeiro. Daí vai lá e implementaria ele. Algo como:
 

...
   se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2
      fimSe
   fimPara
   
   escrevaL()
   escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1)
   escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2)


A quantidade já estaria sendo sendo calculada, né? Faltou só exibir...


Creio que só essas duas linhas acima basta. Testando:

 

image.png

 

Opa! Tem algo errado aí. Conseguiu ver?

 

Daqui em diante é contigo!!! Veja o que está errado e corrija. Finalize esse "tópico" até que fique tudo mais ou menos certo...Entenda erro no código acima (espero que já tinha identificado) OU ele se originou do que já tinha no código OU é em algo que foi implementando agora... Onde está o erro?

 

AGORA PERCERBA (feat Prof. Procópio): eu só inseri duas linhas e já foi identificado um problema, agora imagine se tentasse fazer tudo de uma só vez??? Vai lá e corrige. Testa novamente! Estando tudo certo, implementa algo novo!!! Pode ir também ir ajustando coisas "já prontas".. mas os ajustes tendem a ser bem menores fazendo aos poucos e evoluindo... (em detrimento de tentar fazer tudo de uma vez e testar de uma vez só).. #confia


No aguardo.
 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Então, o programa mais ou menos ficaria assim:

 

algoritmo "qtdeBois"
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      escreva ("Raça (1 ou 2): ")
      leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2

         se (raca = 2) então
            qtdRaca2 <- qtdRaca2+2
            escrevaL()
            escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1)
            escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2)
         fimSe
      fimSe
   fimPara
fimAlgoritmo

 

Tem matérias pra facilitar o meu conhecimento, porque preciso aprender isso, e o algoritmo é o básico pra aprender demais programações.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, Jef2022 disse:

Então, o programa mais ou menos ficaria assim:

 

Se foi uma pergunta, não, não seria... tua tentativa foi boa, mas não me parece correta ainda. Você está indo bem!

 

1. como diríamos aqui na Bahia: "pai, adiante teu lado! Utilize a parada de gerar números". (Falo mais abaixo.)

2. você testou o código que você implementou? (Lembre-se do item 1 para ajudar nessa questão!). (Falo mais abaixo também.)

 

 

Sobre:

1 hora atrás, Jef2022 disse:

Tem matérias pra facilitar o meu conhecimento, porque preciso aprender isso, e o algoritmo é o básico pra aprender demais programações.


Em relação aos materiais eu não sei ajudar muito, rs. Aguardar que alguém indique algum... 😉

 

Pelo que observei até aqui, você já tem alguma bagagem, precisaria ter só mais um pouco de atenção.

 

 

Veja:

2 horas atrás, Simon Viegas disse:

AGORA PERCERBA (feat Prof. Procópio): eu só inseri duas linhas e já foi identificado um problema, agora imagine se tentasse fazer tudo de uma só vez??? Vai lá e corrige. Testa novamente! Estando tudo certo, implementa algo novo!!! Pode ir também ir ajustando coisas "já prontas".. mas os ajustes tendem a ser bem menores fazendo aos poucos e evoluindo... (em detrimento de tentar fazer tudo de uma vez e testar de uma vez só).. #confia

 

Ou seja: eu já te adiantei que existia um problema, correto? Mas qual era o problema? Não citei de proposito... para exercitar.

 

Já fica outra dica: PRIMEIRO se entender o problema, DEPOIS se procurar uma solução.

 

Parece óbvio né? Mas o tempo todo, no dia a dia, ocorre o contrário. Assimile isso: como nós vamos encontrar uma solução para um problema do qual não sabemos qual é o problema? Foque inicialmente no entendimento do problema!!! Isso é para o dia a dia mesmo... claro que na prática querer se aprofundar tanto... vai do contexto.

 

 

Vamos testar o teu código. Inseri 5 como a quantidade e preenchi (na mão, já que você se recusou a segui minha dica de gerar números aleatórios 😞.):
 

image.png

 

 

Dá uma olhada lá no enunciado. Tem isso:

 

13 horas atrás, Jef2022 disse:

Primeiramente, e somente uma vez, a quantidade total de bois;


Só aqui, no teu novo código, já criaria uma inconformidade... Percebe? Mas não se preocupe. Isso é comum (não confundi com normal, que significa outra coisa). Vamos a cada dia desenvolvimento isso: ATENÇÃO AO QUE FOI PROPOSTO. Quando vamos mais amadurecendo, vamos percebendo que a falta de atenção é beeem comum mesmo. Em fim...

 

Vamos lá... vou tomar meu código como base.

 

algoritmo "Gerenciador de bovinos"
// Disciplina  :
// Professor   :
// Autor       : Jef2022

//João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma
//necessidade gerencial, ele deseja um algoritmo para calcular:

// * a quantidade de bois de cada raça;
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

//Para o funcionamento do algoritmo serão informados os seguintes dados, pelo
//gerente da fazenda:

//Primeiramente, e somente uma vez, a quantidade total de bois;
//A raça (1 ou 2) e o peso de cada boi.
//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.

//Primeiramente, e somente uma vez, a quantidade total de bois;

//A raça (1 ou 2) e o peso de cada boi.

//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      escreva ("Raça (1 ou 2): ")
      //leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2
      fimSe
   fimPara
fimAlgoritmo

 


Agora para implementar o:
 

2 horas atrás, Simon Viegas disse:
// * a quantidade de bois de cada raça;

 

Deixei o código assim:

algoritmo "Gerenciador de bovinos"
// Disciplina  :
// Professor   :
// Autor       : Jef2022

//João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma
//necessidade gerencial, ele deseja um algoritmo para calcular:

// * a quantidade de bois de cada raça;
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

//Para o funcionamento do algoritmo serão informados os seguintes dados, pelo
//gerente da fazenda:

//Primeiramente, e somente uma vez, a quantidade total de bois;
//A raça (1 ou 2) e o peso de cada boi.
//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.

//Primeiramente, e somente uma vez, a quantidade total de bois;

//A raça (1 ou 2) e o peso de cada boi.

//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      escreva ("Raça (1 ou 2): ")
      //leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+2
      fimSe
   fimPara
   
   escrevaL()
   escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1)
   escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1)
fimAlgoritmo

 

(Só adicionei essas três último linhas antes do fimAlgoritmo e após o fimPara.

 

Resultado de teste:

 

image.png

 

Volta a pergunta: o que está errado aqui? Oras! se adicionei 3 (três) bovinos, como o resultado deu 5 (cinco) no total? Retomando: é focar no problema!!! (Que seria o resultado do teste.)

 

Depois de ter entendido o problema (que foi reduzido apenas a uma coisinha, já que estou usando a [1] dica de implementar apenas uma pequena coisa em vez do programa todo de uma vez)... Como resolvo esse pepininho?

 

Hum! depois de testar algumas vezes (que é bem rápido, já que eu já [2] implementei o recurso de gerar as respostas), vi que o resultado da raça 2 está saindo com o valor duplicado!! Por que será?

 

image.png

 


Oh! Lá! Por que a raça 2 teria peso 2? Não faz sentido, né?. Simplesmente alterar para +1, ou seja, cada vez que for a raça 2, vou lá a "adiciono mais 1 na quantidade de raça 2". Pronto!!! Identificou e corrigiu o bug!
 

 

Novo teste após corrigido:

image.png

 

Agora bateu! Esse problema em específico estaria resolvido!

 

 

RESUMINDO:

Pegue esse código abaixo:

 

algoritmo "Gerenciador de bovinos"
// Disciplina  :
// Professor   :
// Autor       : Jef2022

//João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma
//necessidade gerencial, ele deseja um algoritmo para calcular:

// * a quantidade de bois de cada raça; [Implementado]
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

//Para o funcionamento do algoritmo serão informados os seguintes dados, pelo
//gerente da fazenda:

//Primeiramente, e somente uma vez, a quantidade total de bois;
//A raça (1 ou 2) e o peso de cada boi.
//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.

//Primeiramente, e somente uma vez, a quantidade total de bois;

//A raça (1 ou 2) e o peso de cada boi.

//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      escreva ("Raça (1 ou 2): ")
      //leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)

      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+1
      fimSe
   fimPara
   
   escrevaL()
   escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1)
   escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1)
fimAlgoritmo

 


E implemente o próximo passo: 

2 horas atrás, Simon Viegas disse:
// * a quantidade de bois de cada raça; [Implementado]
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

 

Pegue o segundo! O da média.

 

 

 

 

DAQUI EM DIANTE JÁ TEM MAIS SPOILER

 

Qual seria agora o novo problema?


Diríamos de cara por aqui:

"Venha cá, meu rei... o que raios é uma média?"

 

Você sabe? Tem certeza? Lembre-se: foque no problema. Não tente supor!!! Entender de fato...

Ao pesquisar um pouco, verás que tem uma várias tipos de médias... mas qual média é essa que esse cidadão quer? Uma resposta seria: "Sei não, mermão. Quem souber morre". kkkkkkkkkk

 

Mas falando sério, pelo mais comum do dia a dia, e pelo contexto do problema, deve ser uma tal de "Média Aritmética Simples". Se não lembra dela, basta pesquisar também! Mas é isso: se atente ao problema! Não adiantaria nada fazer com outro tipo de média sendo que ele (quem propôs o enunciado) quer. (O que adiantaria trazer um hambúrguer super bem feito se o cliente pediu um cachorro-quente?)

 

Vou tentar adiantar o lado:

 

Se quer a média de peso (o problema), então fica implícito que vou ter que de alguma forma ter acesso aos pesos:
 

algoritmo "Gerenciador de bovinos"
// Disciplina  :
// Professor   :
// Autor       : Jef2022

//João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma
//necessidade gerencial, ele deseja um algoritmo para calcular:

// * a quantidade de bois de cada raça;
// * a média de peso de cada raça;
// * o boi mais pesado e sua raça;
// * e, o boi mais leve e a sua raça.

//Para o funcionamento do algoritmo serão informados os seguintes dados, pelo
//gerente da fazenda:

//Primeiramente, e somente uma vez, a quantidade total de bois;
//A raça (1 ou 2) e o peso de cada boi.
//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.

//Primeiramente, e somente uma vez, a quantidade total de bois;

//A raça (1 ou 2) e o peso de cada boi.

//Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça
//os resultados esperados.
var
   qtdTotal: inteiro
   qtdRaca1, qtdRaca2: inteiro
   raca: inteiro
   peso: real
   i: inteiro
inicio
   escreva ("Quantidade de bovinos: ")
   leia(qtdTotal)

   escrevaL("")
   escrevaL("")
   escrevaL("Informe a raça e o peso de cada boi")

   para i de 1 ate qtdTotal faca
      escrevaL("")
      escrevaL("Dados do bovino ", i:1)
      
      escreva ("Raça (1 ou 2): ")
      //leia(raca)
      raca <- RandI(2) + 1
      escreval(raca:1)
      
      escreva ("Peso (em KG): ")
      //leia(peso)
      peso <- RandI(200) + 400 //de 400 a 600kg
      escreval(peso:1)
      
      se (raca = 1) então
         qtdRaca1 <- qtdRaca1+1
      fimSe
      se (raca = 2) então
         qtdRaca2 <- qtdRaca2+1
      fimSe
   fimPara
   
   escrevaL()
   escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1)
   escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1)
fimAlgoritmo

 

Observe que tudo é/deve ser simples e coerente. Como quero ler o peso, e já sabia como ler a raça,  basicamente copiei um e adaptei para o outro... simples assim.

 

Esse código acima só mudou isso: passei a ler o peso de cada bovino.

 

Se for seguir minha sugestão, sua missão seria:

- Copie e cole esse código acima. Sem alterar nada, teste o funcionamento e entenda cada linha de código. Se tiver dúvidas sobre qualquer coisa, tente entender... se persistir, pode perguntar aqui no tópico.

- Pesquise na internet "como se calcular uma média aritmética simples". Se já sabe, não tem problema, pesquise mesmo assim. Absorva mais e ao ponto de saber calcular de cabeça ou no papel.

- Depois de entender sobre a tal média, só depois, pesquise "Como calcular uma média aritmética no VisualG", ou algo do tipo... Isso é importante. Mais um vez: o que vai adiantar calcular tentar calcular uma média no VisualG se eventualmente nem saber o que é uma média? Mesmo que acerte uma resposta correta, seria por sorte! Mais pra frente verás que tem coisas que você não precisa dominar, mas aqui sim! Aprender sobre médias faz parte do exercício. O código é só um pretexto.

- Implemente a parte do cálculo das média.

- Implemente a parte que exibe essas médias que foram calculadas. 

 

 ADENDO: não tente fazer nada mais além disso. Foque apenas em uma coisa. A anterior (da quantidade) já foi resolvida. Agora foca nesse próximo passo. 

 

ADENDO 2: claro que se identificar algum probleminha em alguma outra parte, já para para resolver, mas aí vai passar a forca APENAS nesse probleminha... de modo que tudo fica liso.. rodando como desejado!!! Mas sempre deve ficar assim... é só ir fazendo aos poucos.

 

No aguardo.

image.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...