Ir ao conteúdo
  • Cadastre-se

Bruno Condado

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Reputação

10
  1. @Simon Viegas Obrigado pela ajuda, os teus comentários foram fundamentais para chegar na solução.
  2. O Problema foi Fácil de resolver, pois se uma Faixa etária retorna vazia então o contador Específico vai estar zerado, e é a partir daí que deve partir SE. Então a solução para o ponto e virgula sem dar erro é: Escreval(" ") Escreva("Menores: ") Se (CM = 0) entao Escreva(" ") Senao Para Cont de 1 ate CM - 1 faca Escreva(Menores[Cont],", ") FimPara Escreva(Menores[CM],". ") FimSe
  3. Boas achei um caminho para Retirar a Virgula Final e terminar com Ponto Final. Para Fins práticos vou colocar só o código respeitante a uma categoria no Ponto onde é feita a separação. Mas a Solução que arrumei para o caso de a faixa etária estar vazia acabou de criar um problema para o caso de a idade ser zero. Escreval(" ") Escreva("Menores: ") // Escreve a Faixa Menores: Para Cont de 1 ate CM - 1 faca // Ciclo de repetição menos o termo Final Escreva(Menores[Cont],", ") FimPara Se (Menores[Cont] = 0) entao // Para o Caso de a faixa etária estar vazia Escreva(" ") Senao Escreva(Menores[CM],".")// Vai Escrever o último termo Terminando com Ponto Final FimSe Uma ajuda para resolver a Situação em que a idade é igual a zero. Criei ela para no caso de a faixa etária estar vazia não dar erro. Mas aí ele não vai aceitar a idade Zero
  4. Boas Amigo, Deu certo, estava no caminho certo, eu até tinha tentado fazer assim, mas deu um erro e assumi que seria por conta de Menores[CM]. Assim acabei achando o caminho pelas duas Soluções. Em relação á Virgula no Final, não tem como tirar ela? O algoritmo retorna/ Menores: 2, 4, 6, - E Gostaria que ele retorna-se / Menores: 2, 4, 6. Vou estudar aqui para ver se consigo fazer essa troca. se souberes como fazer dá uma dica aí. Muito Obrigado pela ajuda
  5. Para Cont <- 1 ate 5 faca // Entrada e contagem de Idades por Faixa etária Topo() Escreva("Digite a Idade do ", Cont,"º Aluno: ") Leia(idades[Cont]) CI <- CI + 1 // Contagem Integral Se (idades[Cont] >= 0) e (idades[Cont] <= 18) entao menores[Cont] <- idades[Cont] // Armazena os menores de idade no Vetor menores CM <- CM + 1 FimSE Essa é parte do código que tentei fazer, seria após a condição se fazer um clico de repetição, criando aí menores[CM]?
  6. Consegui resolver o problema por um caminho: A Solução Passou por atribuir a todos os valores Vazios o valor de -1 na Faixa de menores (única que aceita o Zero como Idade) Dessa Forma no ciclo de repetição da Faixa de Menores consigo usar o Se para separa a idade Zero dos Espaços Vazios. Nas outras Faixas Só vai validar as opções <> de 0. var idades: vetor [1..5] de Inteiro menores: vetor [1..5] de Inteiro adulto: vetor [1..5] de Inteiro idoso: vetor [1..5] de Inteiro Cont, CI, CM, CA, CID: Inteiro Procedimento Topo() Inicio Escreval("=========================================") Escreval("| F A I X A S E T Á R I A S |") Escreval("=========================================") Escreval("| LÓGICA DE PROGRAMAÇÃO |") Escreval("=========================================") FimProcedimento inicio // Seção de Comandos CI <- 0 CM <- 0 CA <- 0 CID <- 0 Para Cont <- 1 ate 5 faca // Entrada e contagem de Idades por Faixa etária Topo() Escreva("Digite a Idade do ", Cont,"º Aluno: ") Leia(idades[Cont]) CI <- CI + 1 // Contagem Integral Se (idades[Cont] >= 0) e (idades[Cont] <= 18) entao menores[Cont] <- idades[Cont] // Armazena os menores de idade no Vetor menores CM <- CM + 1 Senao menores[Cont] <- -1 FimSE Se (idades[Cont] > 18) e (idades[cont] <= 60) entao adulto[Cont] <- idades[Cont] CA <- CA + 1 FimSE Se (idades[Cont] > 60) entao idoso[Cont] <- idades[Cont] CID <- CID + 1 FimSe LimpaTela FimPara Topo() Escreva("Menores: ") Para Cont <- 1 ate CI faca Se (menores[Cont] <> -1) entao escreva(menores[Cont],", ") FimSe FimPara Escreval(" ") Escreva("Adultos: ") Para Cont <- 1 ate CI faca Se (adulto[Cont] <> 0) entao escreva(adulto[Cont], ", ") FimSE FimPara Escreval(" ") Escreva("Idosos: ") Para Cont <- 1 ate CI faca Se (idoso [Cont] <> 0) entao Escreva(idoso[Cont], ", ") FimSE FimPara fimalgoritmo Para ficar perfeito, só falta a virgula final ser substituída por Ponto. Exemplo: no meu código vai aparecer Menores: 2, 4, 6, e eu gostaria que retorna-se Menores: 2, 4, 6. Se alguém poder ajudar fico grato. Se encontrarem outro caminho de resolução fiquem á vontade para Postar. Depois irei colocar o Código Final com o Exercício Completo.
  7. Ao Fazer o Passo a Passo reparei que ele Cita as primeiras idades da respectiva faixa, imaginando que eu introduzo, 2, 23, 67, 25 e 7 - Ele armazena CM: 2, 0, 0, 0, 7 / CA: 0, 23, 0, 25, 0/ CID: 0, 0, 67, 0, 0. Acumulando CM: 2/ CA: 2/ CID: 1 - aí ele em vez de passar os valores preenchidos passa, Menores: 2, 0, / Adulto: 0, 23, / Idoso: 0, . Acabei fazendo uma alteração Tirando os acumuladores específicos (CM, CA, CID) e usando o acumulador Geral (CI) com essa alteração ele retorna todos os valores, mas tenho o problema das casas vazias. Vou tentar inserir <> de zero, mas vai me levantar um problema na primeira faixa etária. Deixa ver se resulta!!!
  8. Boas, estou tentando resolver este problema mas estou tendo problemas para listar as idades nas respetivas faixas etárias, vou passar o Código que já tenho feito. Tentei obter numa questão similar que está num outro tópico mas estou esbarrando no mesmo problema. O problema pede 60 entradas de idades mas para testar estou colocando apenas 5 entradas de Idades. var idades: vetor [1..5] de Inteiro menores: vetor [1..5] de Inteiro adulto: vetor [1..5] de Inteiro idoso: vetor [1..5] de Inteiro Cont, CI, CM, CA, CID: Inteiro Procedimento Topo() Inicio Escreval("=========================================") Escreval("| E S T U D O DE C A S O |") Escreval("=========================================") Escreval("| LÓGICA DE PROGRAMAÇÃO |") Escreval("=========================================") FimProcedimento inicio // Seção de Comandos Para Cont <- 1 ate 5 faca // Entrada e contagem de Idades por Faixa etária Topo() Escreva("Digite a Idade do ", Cont,"º Aluno: ") Leia(idades[Cont]) CI <- CI + 1 // Contagem Integral Se (idades[Cont] >= 0) e (idades[Cont] <= 18) entao menores[Cont] <- idades[Cont] // Armazena os menores de idade no Vetor menores CM <- CM + 1 FimSE Se (idades[Cont] > 18) e (idades[cont] <= 60) entao adulto[Cont] <- idades[Cont] CA <- CA + 1 FimSE Se (idades[Cont] > 60) entao idoso[Cont] <- idades[Cont] CID <- CID + 1 FimSe LimpaTela FimPara Topo() Escreva("Menores: ") Para Cont <- 1 ate CM faca escreva(menores[Cont],", ") FimPara Escreval(" ") Escreva("Adultos: ") Para Cont <- 1 ate CA faca escreva(adulto[Cont], ", ") FimPara Escreval(" ") Escreva("Idosos: ") Para Cont <- 1 ate CID faca Escreva(idoso[Cont], ", ") FimPara fimalgoritmo Essencialmente tenho um grande problema, se introduzir todas as idades numa faixa etária, o programa retorna os valores corretamente na respectiva faixa etária. Caso introduza idades de diferentes faixas etárias, ele já bagunça tudo, retorna entradas vazias e omite as entradas corretas. Olhando o Escopo, as informações estão sendo armazenadas nos locais corretos e os contadores acumulam os valores devidos, então não sei onde esteja o erro. A Versão que estou a usar o VisalG é a 2.0. Tentei sem sucesso usar Se <> 0 e repetir o Se por idade nos ciclos (Para) das faixas etárias mas o problema repete-se. Tem ainda a questão da virgula final que gostaria de substituir por um Ponto final que também não encontrei solução. Quem poder ajudar desde já agradeço.
  9. Boas, Estou tentando Resolver o mesmo Problema e acabei esbarrando no problema de na hora de apresentar os Resultados das Faixas aparecer posições zeradas, o meu código até se assemelha com a solução apresentada. Vejam como está: algoritmo "Estudo de Caso" // Função : // Autor : // Data : 03/04/2021 // Seção de Declarações var idades: vetor [1..5] de Inteiro menores: vetor [1..5] de Inteiro adulto: vetor [1..5] de Inteiro idoso: vetor [1..5] de Inteiro Cont, CI, CM, CA, CID: Inteiro inicio // Seção de Comandos Para Cont <- 1 ate 5 faca Escreval("===========================") Escreval("| E S T U D O DE C A S O |") Escreval("===========================") Escreval("|LÓGICA DE PROGRAMAÇÃO|") Escreval("===========================") Escreva("Digite a Idade do ", cont,"º Aluno: ") Leia(idades[Cont]) CI <- CI + 1 // Contagem Integral Se (idades[Cont] >= 0) e (idades[Cont] <= 18) entao menores[Cont] <- idades[Cont]// Armazena os menores de idade no Vetor menores CM <- CM + 1 FimSE Se (idades[Cont] > 18) e (idades[Cont] <= 60) entao adulto[Cont] <- idades[cont] CA <- CA + 1 FimSE SE(idades[Cont] > 60) entao idoso[Cont] <- idades[cont] CID<-CID+1 FimSE LimpaTela FimPara Escreva("Menores: ") Para Cont <- 1 ate CM faca escreva(menores[cont],", ") FimPara Escreval(" ") Escreva("Adultos: ") Para Cont <- 1 ate CA faca escreva(adulto[cont], ", ") FimPara Escreval (" ") Escreva ("Idoso: ") Para Cont <- 1 ate CID faca Escreva(idoso[Cont], ", ") FimPara fimalgoritmo

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