Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo em VisualG e linguagem C


Visitante

Posts recomendados

Olá boa noite,

Alguém poderia me ajudar a desenvolver um algoritmo nas condições dessa questão:

 

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 e programa em C 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 Estrutura no Programa C e Vetor de Registros no Algoritmo (Use VISAULG 3)

 

Link para o comentário
Compartilhar em outros sites

@Bruna Isabelly     na linguagem  c  você cria os vetores e depois usa um loop do / while para ir pegando os dados e colocando nos vetores ., assim até que se digite zero na opção de ano de nascimento , e depois que passar desse loop , use  um loop for para percorre os vetores e fazer os cálculos e imprimir os resultados na tela , mas não posso te dar um código proto pois é contra as regras do fórum , então faça seu código e poste aqui para vermos como está e em que podemos ajudar    .

Link para o comentário
Compartilhar em outros sites

eu fiz esse, mas  o algoritmo não para quando digita 0 em ano do motorista e também os percentos dão sempre 0% ou 100%, o que devo mudar?

//Nome: Bruna Isabelly Pereira da Silva
//Curso: Matematica - Bacharelado
//Universidade Federal de Itajubá - UNIFEI-MG

algoritmo "Exercício 3"
var //Declarando as Variaveis
ano:inteiro
qtotal:inteiro
qmenor25:inteiro
q18a25:inteiro
qm:inteiro
qnaoitj: inteiro
regist:inteiro
sexo:caracter
outro: caracter
idade:inteiro

inicio

   qtotal<-0    //Quantidade total
   qmenor25<-0  //Quantidade de menores de 25 anos
   q18a25<-0    //Qunatidade de pessoas entre 18 a 25 anos
   qm<-0        //Quantidade de mulheres
   qnaoitj<-0   //Quantidade de pessoas que não são de Itajubá
   regist<-0    //Registro da cidade Itajubá ou Outra cidade
   idade<-0     //Idade do motorista
   repita
      escreva("Qual o ano de nascimento do motorista? ")
      leia(ano)
      escreva("Qual o sexo do motorista [M/F]? ")
      leia(sexo)
      escreva("Informe o código de registro [1 - Itajubá / 0 - Outra ciade]: ")
      leia(regist)
      qtotal<-qtotal+1
      se(idade<25)entao
         qmenor25<-qmenor25+1
         se(idade>18)entao
            q18a25<-q18a25+1
         fimse
      fimse
      se(sexo="F")entao
         qm<-qm+1
      fimse
      se(regist=0)entao
         qnaoitj<-qnaoitj+1
      fimse
      escreva("Outro acidente? [S/N]: ")
      leia(outro)
   ate ((outro="N")ou(outro="n"))
   escreval("Percentagem de motoristas menor de 25 anos: ",qmenor25*100/qtotal," %")
   escreval("Percentagem de mulheres: ",qm*100/qtotal," %")
   escreval("Percentagem de motoristas entre 18 e 25 anos: ",q18a25*100/qtotal," %")
   escreval("Percentagem de motoristas com registro realizado fora de Itajubá: ",qnaoitj*100/qtotal," %")

fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

@Bruna Isabelly      seu código está bom , e com algumas modificações poderia ser assim  :

algoritmo "Exercício 3"
//Nome: Bruna Isabelly Pereira da Silva
//Curso: Matematica - Bacharelado
//Universidade Federal de Itajubá - UNIFEI-MG
tipo
  detran = registro
    ano_nasc : inteiro
    cod_reg  : inteiro
    sexo     : caractere
  fimregistro
var //Declarando as Variaveis
  dados                : vetor[0..10] de detran
  q_total,i,ano        : inteiro
  reg_fora,q_menor25   : real
  q_mulheres,q_18_a_24 : real
  // as variaves aqui são globais e inicializadas com valor zero
inicio
  repita
    escreva("Qual o ano de nascimento do motorista ? -: ")
    leia(ano)
    se ano <> 0 entao
      dados[q_total].ano_nasc := ano
      repita
        escreva("Qual o sexo do motorista [ M / F ] ? ----: ")
        leia(dados[q_total].sexo)
      ate (dados[q_total].sexo = "m") ou (dados[q_total].sexo = "f")
      escreval("Informe o código de registro")
      repita
        escreval(" [ 1 ] - Itajubá")
        escreva (" [ 0 ] - Outra cidade -------------------: ")
        leia(dados[q_total].cod_reg)
      ate (dados[q_total].cod_reg = 0 ) ou (dados[q_total].cod_reg = 1 )
      q_total := q_total + 1
    fimse
  ate (q_total = 10) e (ano = 0)
  para i de 0 ate q_total-1 faca
    se dados[i].sexo = "f" entao
      q_mulheres := q_mulheres + 1
    fimse
    se (2019 - dados[i].ano_nasc) < 25 entao
      q_menor25 := q_menor25 + 1
    fimse
    se ((2019 - dados[i].ano_nasc)) > 18 entao
      se ((2019 - dados[i].ano_nasc)) < 25 entao
        q_18_a_24 := q_18_a_24 + 1
      fimse
    fimse
    se dados[i].cod_reg = 0 entao
      reg_fora := reg_fora + 1
    fimse
  fimpara
  escreval
  escreval("-------------------------------------------------------------")
  escreval
  escreval("Percentagem de motoristas menor de 25 anos: ",q_menor25*100/q_total:2:2," %")
  escreval("Percentagem de mulheres: ",q_mulheres*100/q_total:2:2," %")
  escreval("Percentagem de motoristas entre 18 e 25 anos: ",q_18_a_24*100/q_total:2:2," %")
  escreval("Percentagem de motoristas com registro realizado fora de Itajubá: ",reg_fora*100/q_total:2:2 ," %")
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

Oi, eu antes de você me mandar esse algoritmo eu tinha feito um em linguagem c baseado no meu algorítimo, você poderia dar uma olhada e ver como faço para deixar parecido com o seu, com o vetor de registro e o veto de 0 a 10.

// Bibliotecas
#include <stdio.h>
#include <stdlib.h>

//variaveis

int main() {

    int ano,q_total=0,q_menor25=0,q_18a25=0,q_m=0,q_nao_itj=0,regist=0, idade=0;
    char sexo,outro;
//Programa

while (outro!='N')||(outro!='n')
{
    printf("\n Qual o ano de nascimento do motorista? ");
    scanf("%d",ano);
    printf("\n Qual o sexo do motorista [M/F]? ");
    scanf("%c",sexo);
    printf("\n Informe o código de registro [1 - Itajubá / 0 - Outra ciade]: ");
    scanf("%d",regist);

    q_total=q_total+1;

    if (idade<25)then
        {
            q_menor25=q_menor25+1;
                if (idade>18)then
                    {
                        q_18a25=q_18a25+1;
                    }
                end
            }
    end
    if(sexo=='F')||(sexo=='f')then
        {
            q_m=q_m+1;
        }
    end
    if(regist==0)then
        {
            q_nao_itj=q_nao_itj+1;
        }
    end
    printf("\n Outro acidente[S/N]? ");
    scanf("%c",outro);

}
    printf("Percentagem de motoristas menor de 25 anos: %f ",q_menor25*100/q_total);
    printf("Percentagem de mulheres: %f ",q_m*100/q_total);
    printf("Percentagem de motoristas entre 18 e 25 anos: %f ",q_18a25*100/q_total);
    printf("Percentagem de motoristas com registro realizado fora de Itajubá: %f ",q_nao_itj*100/q_total);

}

 

Link para o comentário
Compartilhar em outros sites

@Bruna Isabelly    ficou bom ,  esses then não tem no c , e seu código poderia ser assim :

// Bibliotecas
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
//variaveis
struct empresa {
    int  a_nasc;
    int  regist;
    char sexo  ;
};
struct empresa ficha[10];
int main(){
    int ano,q_total=0,q_menor25=0,q_19_a_24=0,
        q_m=0,q_nao_itj=0,regist=0,idade,a_at;
    char sexo,outro,data[9],a_atual[5]       ;
    _strdate(data                           );
    a_atual[0] =  '2'                        ;
    a_atual[1] = '0'                         ;
    a_atual[2] = data[6]                     ;
    a_atual[3] = data[7]                     ;
    a_atual[4] = '\0'                        ;/* sinaliza o final da string */
    a_at=atoi(a_atual                       );
    printf("\t\t     Ano Atual -> %d\n",a_at);
    //Programa
    while( q_total < 10 && ano != 0 ){
        do{
            printf("\n Qual o ano de nascimento do motorista ? -: ");
            scanf("%d",&ano);
        }while(ano > a_at);
        if( ano != 0 ){
            ficha[q_total].a_nasc = ano;
            do{
                printf(" Qual o sexo do motorista [ M / F ] ? ----: ");
                fflush(stdin);
                scanf("%c",&ficha[q_total].sexo);
            }while(toupper(ficha[q_total].sexo) != 'M' && toupper(ficha[q_total].sexo) != 'F' );
            printf(" Informe o c%cdigo de registro\n",162);
            do{
                printf(" [ 1 ] - Itajub%c\n [ 0 ] - Outra cidade --------------------: ",160);
                fflush(stdin);
                scanf("%d",&ficha[q_total].regist);
            }while( ficha[q_total].regist != 0 && ficha[q_total].regist != 1 );

            idade = ( a_at - ano );
            if(idade < 25){
                q_menor25++;
                if(idade > 18){
                    q_19_a_24++;
                }
            }
            if(toupper(ficha[q_total].sexo) == 'F'){
                q_m++;
            }
            if( ficha[q_total].regist == 0 ){
                q_nao_itj++;
            }
            q_total++;
        }
    }
    printf("\n\n------------------------------------------------------------------\n\n");
    printf("Percentagem de motoristas menor de 25 anos -----------------------: %.2f\n" ,
           (float)q_menor25 * 100 / q_total                                            );
    printf("Percentagem de mulheres ------------------------------------------: %.2f\n" ,
           (float)q_m * 100 / q_total                                                  );
    printf("Percentagem de motoristas entre 18 e 25 anos ---------------------: %.2f\n" ,
           (float)q_19_a_24 * 100 / q_total                                            );
    printf("Percentagem de motoristas com registro realizado fora de Itajub%c -: %.2f\n",
           160,(float)q_nao_itj * 100 / q_total                                        );
    printf("\n------------------------------------------------------------------\n\n\n");
    return 0                                                                            ;
}

 

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