Ir ao conteúdo
  • Cadastre-se

VisualG Tecla para encerrar o algoritmo


Posts recomendados

Pessoal olá. To tentando fazer um algoritmo no VisualG 3 para armazenar dados dos motoristas e depois apresentar as porcentagens de mulheres, de maiores de 25 anos, etc. O algoritmo que fiz está rodando normalmente só que eu preciso que quando o usuário colocar o ano de nascimento do motorista igual a zero o algoritmo se encerre e apresente os dados até ali coletados.

 

O enunciado da questão é esse :  O Departamento de Trânsito de Itajubá compilou dados de acidentes de trânsito na cidade no último ano. Para cada motorista envolvido num acidente, os seguintes dados foram registrados: ano de nascimento do motorista, sexo ('M' ou 'F'), código de registro (1 para Itajubá e 0 para outras Cidades).
Escrever um algoritmo para ler este conjunto de dados para vários motoristas (mínimo 10) e depois imprimir as seguintes estatísticas:
a) Percentagem de motoristas com menos de 25 anos
b)Percentagem de mulheres
c) Percentagem de motoristas maiores de 18 anos, mas menores de 25 anos
d) Percentagem de motoristas com registro feito fora de Itajubá.
OBS: Um ano de nascimento igual a 0 indica o fim dos dados para o algoritmo.
utilize Vetor de Registros (Use VISAULG 3)

 

** eu coloquei numero de motoristas = 3 apenas pra ficar mais fácil de testar.
 

Algoritmo "Dep. de Transito"

tipo
  transito = registro
    nascimento: inteiro
    sexo: caractere
    codigo: inteiro
  fimregistro

Var

motorista : vetor [1..3] de transito
Faixa1,Faixa2,Mulher,Homem,Itajuba, Outra, Totalcodigo: Inteiro
Pum, Pdois, Ptres, Pquatro, Pcinco, Pseis : real
x,i    : inteiro
Inicio
Escreval("DEPARTAMENTO DE TRÂNSITO DE ITAJUBÁ-MG")
Escreval ("Cadastro dos Motoristas")
para x de 1 ate 3 faca
Repita
  escreva("Ano de nascimento: ")
  leia(motorista[x].nascimento)
  ate (motorista[x].nascimento = 0) ou (motorista[x].nascimento <=1999)
  
Repita
  escreva("Sexo (M p/ Homem e F p/ Mulher): ")
  leia(motorista[x].sexo)
  ate (motorista[x].sexo = "M") ou (motorista[x].sexo = "F")
Repita
  escreva("Código da cidade (0 ou 1): ")
  leia(motorista[x].codigo)
  ate (motorista[x].codigo = 1) ou (motorista[x].codigo = 0)
  escreval(" ")
fimpara

// Verificando as faixas de idades
   Para x de 1 ate 3 Faca
           Se motorista[x].nascimento <= 1995 então
           Faixa1 <- Faixa1 + 1
           Fimse
           Se (motorista[x].nascimento > 1995) e (motorista[x].nascimento <= 1999) então
              Faixa2 <- Faixa2 + 1
           Fimse

           Se motorista[x].sexo = "F" então
           Mulher <- Mulher + 1
           Fimse
           Se motorista[x].sexo = "M" então
           Homem <- Homem + 1
           Fimse
        
           Se motorista[x].codigo = 1 então
           Itajuba <- Itajuba + 1
           Fimse
           Se motorista[x].codigo = 0 então
           Outra <- Outra + 1
           Fimse

           Totalcodigo <- Itajuba + Outra
           Pum <- (Faixa1*100)/Totalcodigo
           Pdois <- (Faixa2*100)/Totalcodigo
           Ptres <- (Mulher*100)/Totalcodigo
           Pquatro <- (Homem*100)/Totalcodigo
           Pcinco <- (Itajuba*100)/Totalcodigo
           Pseis <- (Outra*100)/Totalcodigo
   Fimpara
//   MOSTRA NA TELA
     LIMPATELA
     Escreval("Motoristas maiores de 25 anos: ", Pum:5:2, " %")
     Escreval("Motoristas entre 18 e 25 anos: ", Pdois:5:2, " %")
     Escreval("Motoristas Mulheres: ", Ptres:5:2, " %")
     //Escreval("Motoristas Homens: ", Pquatro:5:2, " %")
     //Se caso necessitasse da porcentagem de homens.
     //Escreval("Motoristas de Itajuba: ", Pcinco:5:2, " %")
     //Se caso necessitasse da porcentagem de itajuba.
     Escreval("Motoristas com registro fora de Itajubá: ", Pseis:5:2, " %")
Fimalgoritmo

 

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

@Thiago Biagioni   para o programa terminar quando digitar zero  você coloca um se que verifica se for diferente de zero ele continua e senão ele termina exibindo as mensagens ,  então substitui o para por enquanto e coloquei esse se que verifica, então seu código com algumas modificações ficou assim :

Algoritmo "Dep. de Transito"
tipo
  transito = registro
    nascimento: inteiro
    sexo      : caractere
    codigo    : inteiro
  fimregistro
Var
motorista : vetor [1..3] de transito
Faixa1,Faixa2,Mulher,Homem,Itajuba, Outra, Totalcodigo: Inteiro
Pum, Pdois, Ptres, Pquatro, Pcinco, Pseis : real
x,i    : inteiro
Inicio
  Escreval("DEPARTAMENTO DE TRÂNSITO DE ITAJUBÁ-MG")
  Escreval ("Cadastro dos Motoristas")
  enquanto x < 3 faca
    x := x+1
    escreva("Ano de nascimento   ou zero para Terminar : ")
    leia(motorista[x].nascimento)
    se motorista[x].nascimento <> 0 ENTÃO
      //ate (motorista[x].nascimento = 0) ou (motorista[x].nascimento <=1999)

      Repita
        escreva("Sexo (M p/ Homem e F p/ Mulher): ")
        leia(motorista[x].sexo)
      ate (motorista[x].sexo = "M") ou (motorista[x].sexo = "F")
      Repita
        escreva("Código da cidade (0 ou 1): ")
        leia(motorista[x].codigo)
      ate (motorista[x].codigo = 1) ou (motorista[x].codigo = 0)
      escreval(" ")
    senao
      x := 4
    fimse
  fimenquanto
  // Verificando as faixas de idades
  Para x de 1 ate 3 Faca
    Se motorista[x].nascimento <= 1995 então
      Faixa1 <- Faixa1 + 1
    Fimse
    Se (motorista[x].nascimento > 1995) e (motorista[x].nascimento <= 1999) ENTÃO
      Faixa2 <- Faixa2 + 1
    Fimse
    Se motorista[x].sexo = "F" ENTÃO
      Mulher <- Mulher + 1
    Fimse
    Se motorista[x].sexo = "M" ENTÃO
      Homem <- Homem + 1
    Fimse

    Se motorista[x].codigo = 1 ENTÃO
      Itajuba <- Itajuba + 1
    Fimse
    Se motorista[x].codigo = 0 ENTÃO
      Outra <- Outra + 1
    Fimse
    Totalcodigo <- Itajuba + Outra
    Pum <- (Faixa1*100)/Totalcodigo
    Pdois <- (Faixa2*100)/Totalcodigo
    Ptres <- (Mulher*100)/Totalcodigo
    Pquatro <- (Homem*100)/Totalcodigo
    Pcinco <- (Itajuba*100)/Totalcodigo
    Pseis <- (Outra*100)/Totalcodigo
  Fimpara
//   MOSTRA NA TELA
  LIMPATELA
  Escreval("Motoristas maiores de 25 anos: ", Pum:5:2, " %")
  Escreval("Motoristas entre 18 e 25 anos: ", Pdois:5:2, " %")
  Escreval("Motoristas Mulheres: ", Ptres:5:2, " %")
  //Escreval("Motoristas Homens: ", Pquatro:5:2, " %")
  //Se caso necessitasse da porcentagem de homens.
  //Escreval("Motoristas de Itajuba: ", Pcinco:5:2, " %")
  //Se caso necessitasse da porcentagem de itajuba.
  Escreval("Motoristas com registro fora de Itajubá: ", Pseis:5:2, " %")
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Thiago Biagioni.

 

2 horas atrás, Thiago Biagioni disse:

Eu ainda nao consegui executar da maneira como queria

 

Vide:

Em 18/11/2017 às 20:00, Simon Viegas disse:

Caso não, posta o código e onde está com dúvidas.

 

 

 

 

2 horas atrás, Thiago Biagioni disse:

@devair1010 fiz com o enquanto mas ele conta a data de nascimento=0 na hora dos cálculos

Preciso do seu código para analisar... em relação ao do @devair1010, parte do "problema" está na "//Verificando as faixas de idades", pois este está sempre usando "3" como "total de cadastros".

 

Poste seu código atual, que a partir dele tentamos analisar.

 

 

No aguardo.

 

 

No aguardo.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!