Ir ao conteúdo
  • Cadastre-se
Visitante

VisualG Algoritmo em VisualG e linguagem C

Posts recomendados

Visitante

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)

 

  • Curtir 1

Compartilhar este post


Link para o post
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    .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  •    3
    Visitante

    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

     

    • Obrigado 1

    Compartilhar este post


    Link para o post
    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

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  •    3
    Visitante

    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);
    
    }

     

    • Obrigado 1

    Compartilhar este post


    Link para o post
    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                                                                            ;
    }

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro 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 publicações 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...

    GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

    Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

    Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

    Inscreva-se agora!