Ir ao conteúdo
  • Cadastre-se

Portugol Teste de Lógica de Programação


Posts recomendados

Galera, boa tarde, todo bom? to fazendo EAD de Analise e Desenvolvimento de sistema. 
E me deparei com esse exercício, logo na 2º semana de aula. 
___
 

Percebemos o quão importante é você estar ciente de como é o funcionamento dos comandos em lógica de programação. Cada comando possui um propósito e com ele podemos perceber qual é o melhor comando para realizar determinada atividade. Neste sentido, analisemos o caso problematizador abaixo:

O IBGE (Instituto Brasileiro de Geografia e Estatística) desejou realizar uma estatística nas cidades pertencentes ao estado do Paraná, verificando dados sobre acidentes de trânsito. Neste estudo, precisava-se obter alguns dados, que podemos verificar abaixo:

- código da cidade;
- número de veículos de passeio;
- número de acidentes de trânsito com vítimas.
Desejava-se saber ainda:

- qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem;
- qual a média de veículos nas cidades juntas;
- qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio.

Analisando, assim, o nosso caso problematizador, você, aluno(a), deverá realizar um algoritmo que resolva este problema.
___

Alguem consegue me ajudar a entender a questão, pfv? 
 

Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Link para o comentário
Compartilhar em outros sites

Claro,  entendo sim... inclusive minha intenção não era obter resposta, e sim entender a questão mesmo... acabei recorrendo a alguns amigos também pelo whats, e com ajuda do SITE Portugol, obtive essa ideia: 

programa {
    funcao inicio() {
        inteiro codigo_menor_cidade = 0
        inteiro codigo_maior_cidade = 0
        real indice_menor_cidade = 0
        real indice_maior_cidade = 0
        real media_de_veiculos_cidades = 0
        real media_de_acidentes_menor_2000 = 0
        inteiro numero_cidades = 0
        inteiro numero_cidades_veiculos_menor_200 = 0
        
        inteiro continuar_a_pedir_dados = 1
        
        enquanto(continuar_a_pedir_dados==1){
            escreva("Insira o Codigo da Cidade Diferente de 0: ")
            inteiro codigo_digitado
            leia(codigo_digitado)
            
            escreva("Insira numero veiculos de passeio: ")
            inteiro veiculos_digitado
            leia(veiculos_digitado)
            
            escreva("Insira numero acidentes: ")
            inteiro acidentes_digitado
            leia(acidentes_digitado)
            
            media_de_veiculos_cidades += veiculos_digitado
            numero_cidades += 1
            
            se (acidentes_digitado < indice_menor_cidade ou indice_menor_cidade == 0){
                codigo_menor_cidade = codigo_digitado
                indice_menor_cidade = acidentes_digitado
            }
            se (acidentes_digitado > indice_maior_cidade ou indice_maior_cidade == 0){
                codigo_maior_cidade = codigo_digitado
                indice_maior_cidade = acidentes_digitado
                
            }
            
            se(veiculos_digitado<2000){
                media_de_acidentes_menor_2000 += veiculos_digitado
                numero_cidades_veiculos_menor_200 +=1
            }
            
            escreva("Para continuar digite 1: ")
            leia(continuar_a_pedir_dados)
        }
        
        media_de_veiculos_cidades = media_de_veiculos_cidades / numero_cidades
        media_de_acidentes_menor_2000 =  media_de_acidentes_menor_2000 / numero_cidades_veiculos_menor_200
        
        escreva("\nCodigo menor cidade: ", codigo_menor_cidade)
        escreva("\nCodigo maior cidade: ", codigo_maior_cidade)
        escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades)
        escreva("\nMedia de Veiculos Menor 2000: ", media_de_acidentes_menor_2000)
    }
}

____________

Assim posso mandar, ter alguma resposta, dica, comentário? 

Obrigado desde já, e desculpe se pareceu querer a resposta. 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Gabriel Brunelli, acho que basicamente só precisaria não usar a variável que recebe a média como também a variável que recebe a soma, ou seja: não deveria misturar as coisas. Outro pequeno detelhe está na inicialização das variáveis reais...

 

Ficaria algo assim:

 

/*
Percebemos o quão importante é você estar ciente de como é o funcionamento dos comandos em
lógica de programação. Cada comando possui um propósito e com ele podemos perceber qual é
o melhor comando para realizar determinada atividade. Neste sentido, analisemoso caso
problematizador abaixo: 

O IBGE (Instituto Brasileiro de Geografia e Estatística) desejou realizar uma estatística1
nas cidades pertencentes ao estado do Paraná, verificando dados sobre acidentes de
trânsito. Neste estudo, precisava-se obter alguns dados, que podemos verificar abaixo:

- código da cidade;
- número de veículos de passeio;
- número de acidentes de trânsito com vítimas.
Desejava-se saber ainda:

- qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem;
- qual a média de veículos nas cidades juntas;
- qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio.

Analisando, assim, o nosso caso problematizador, você, aluno(a), deverá realizar um 
algoritmo que resolva este problema.
*/

programa {
    funcao inicio() {
        inteiro codigo_menor_cidade = 0
        inteiro codigo_maior_cidade = 0
        //real indice_menor_cidade = 0
        inteiro indice_menor_cidade = 0
        //real indice_maior_cidade = 0
        inteiro indice_maior_cidade = 0        
        inteiro soma_geral_de_veiculos = 0 //NOVO
        //real media_de_veiculos_cidades = 0
        real media_de_veiculos_cidades = 0.0                
        inteiro soma_acidentes_menor_2000 = 0 //NOVO
        //real media_de_acidentes_menor_2000 = 0
        real media_de_acidentes_menor_2000 = 0.0
        inteiro numero_cidades = 0
        inteiro numero_cidades_veiculos_menor_200 = 0       
        inteiro continuar_a_pedir_dados = 1
        
        enquanto(continuar_a_pedir_dados == 1) {
            escreva("Insira o Codigo da Cidade diferente de 0: ")
            inteiro codigo_digitado
            leia(codigo_digitado)
            
            escreva("Insira numero veiculos de passeio: ")
            inteiro veiculos_digitado
            leia(veiculos_digitado)
            
            //escreva("Insira numero acidentes: ")
            escreva("Insira número de acidentes de trânsito com vítimas: ")
            inteiro acidentes_digitado
            leia(acidentes_digitado)

            
            /*media_de_veiculos_cidades += veiculos_digitado*/
            soma_geral_de_veiculos += veiculos_digitado
            numero_cidades += 1            
            se (acidentes_digitado < indice_menor_cidade ou indice_menor_cidade == 0) {
                codigo_menor_cidade = codigo_digitado
                indice_menor_cidade = acidentes_digitado
            }
            se (acidentes_digitado > indice_maior_cidade ou indice_maior_cidade == 0) {
                codigo_maior_cidade = codigo_digitado
                indice_maior_cidade = acidentes_digitado
            }            
            se (veiculos_digitado<2000) {
                //media_de_acidentes_menor_2000 += veiculos_digitado
                soma_acidentes_menor_2000 += veiculos_digitado
                numero_cidades_veiculos_menor_200 +=1
            }
            
            escreva("Para continuar digite 1: ")
            leia(continuar_a_pedir_dados)
        }
        
        media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades
        media_de_acidentes_menor_2000 =  soma_acidentes_menor_2000 / numero_cidades_veiculos_menor_200
        
        escreva("\nCodigo menor cidade: ", codigo_menor_cidade)
        escreva("\nCodigo maior cidade: ", codigo_maior_cidade)
        escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades)
        escreva("\nMedia de Veiculos Menor 2000: ", media_de_acidentes_menor_2000)
    }
}

 

Link para o comentário
Compartilhar em outros sites

@Simon Viegas, ainda está faltando um pedaço da resolução do algoritmo, não é?

 

- qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem;

 

Para isso, creio que faltaram algumas funções e a linha de comando que deve "puxar" esses dados que foram digitados pelo usuário.

 

Não manjo muito de programação, mas senti falta dessa resolução.

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

17 minutos atrás, Simon Viegas disse:

 

Melhor: tente você implementar e poste aqui... se tiver dúvidas em alguma parte é só perguntar.

Hahahahahahha, não sou habilidoso com programação, minha parte é técnica somente.

Mas vou tentar o desafio.

 

Sempre fiz meus algoritmos em .BAT lendo umas coisinhas a respeito desse programa citado PORTUGOL, vi que seus comandos não são tão confusos e que tenho que entender como encaixar cada um deles na forma que necessito.

Vou tentar.

 

Hahahahahahaha, mas não garanto nada. Agora se não tiver o conhecimento necessário para conseguir, tu sana a curiosidade, ok?

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

1 hora atrás, pmrvarnaldo disse:

Sempre fiz meus algoritmos em .BAT

Sempre pensei em batch, como sendo armar uma bomba sempre tem aquela chance de explodir na sua cara.

 

1 hora atrás, pmrvarnaldo disse:

Hahahahahahaha, mas não garanto nada. Agora se não tiver o conhecimento necessário para conseguir, tu sana a curiosidade, ok?

Tenha fé em você mesmo (ou em deus que funciona do mesmo jeito) e mostre para nós que você, e capaz (fiquei com curiosidade de ver o seu também agora).

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

@Simon Viegas, não obtive muito sucesso, até apareceu escrito o resultado, errado, mas estava lá na resposta, e como "chamar a cidade" do menor e do maior acidente, nem ideia de como fazer... Hahahahahaha

 

Segue meu desastroso algoritmo:

programa {
    funcao inicio() {
        inteiro codigo_menor_cidade = 0
        inteiro codigo_maior_cidade = 0
        real indice_menor_cidade = 0
        real indice_maior_cidade = 0        
        inteiro soma_geral_de_veiculos = 0
        real media_de_veiculos_cidades = 0
        inteiro soma_acidentes_menor_2000 = 0
        real media_de_acidentes_menor_2000 = 0
        inteiro numero_cidades = 0
        inteiro numero_cidades_veiculos_menor_200 = 0       
        inteiro continuar_a_pedir_dados = 1
        inteiro maior_indice_acidentes = 0
        inteiro menor_indice_acidentes = 0
        
        enquanto(continuar_a_pedir_dados == 1) {
            escreva("Insira o Codigo da Cidade diferente de 0: ")
            inteiro codigo_digitado
            leia(codigo_digitado)
            
            escreva("Insira numero veiculos de passeio: ")
            inteiro veiculos_digitado
            leia(veiculos_digitado)
            
            escreva("Insira número de acidentes de trânsito com vítimas: ")
            inteiro acidentes_digitado
            leia(acidentes_digitado)
            menor_indice_acidentes = acidentes_digitado
            maior_indice_acidentes = acidentes_digitado

            
            /*media_de_veiculos_cidades += veiculos_digitado*/
            soma_geral_de_veiculos += veiculos_digitado
            numero_cidades += 1            
            se (acidentes_digitado < indice_menor_cidade ou indice_menor_cidade == 0) {
                codigo_menor_cidade = codigo_digitado
                indice_menor_cidade = acidentes_digitado
            }
            se (acidentes_digitado > indice_maior_cidade ou indice_maior_cidade == 0) {
                codigo_maior_cidade = codigo_digitado
                indice_maior_cidade = acidentes_digitado
            }            
            se (veiculos_digitado<2000) {
                //media_de_acidentes_menor_2000 += veiculos_digitado
                soma_acidentes_menor_2000 += veiculos_digitado
                numero_cidades_veiculos_menor_200 +=1
            }
            se (acidentes_digitado < menor_indice_acidentes ou menor_indice_acidentes == 0){
                numero_cidades = codigo_digitado
                menor_indice_acidentes = acidentes_digitado
            }
            se (acidentes_digitado > maior_indice_acidentes ou maior_indice_acidentes == 0){
                numero_cidades = codigo_digitado
                maior_indice_acidentes = acidentes_digitado
            }
            
            escreva("Para continuar digite 1 ou outro valor para finalizar: ")
            leia(continuar_a_pedir_dados)
        }

       media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades
        media_de_acidentes_menor_2000 =  soma_acidentes_menor_2000 / numero_cidades_veiculos_menor_200
        
        escreva("\nMenor índice de acidentes: ", menor_indice_acidentes)
        escreva("\nMaior índice de acidentes: ", maior_indice_acidentes)
        escreva("\nCodigo menor cidade: ", codigo_menor_cidade)
        escreva("\nCodigo maior cidade: ", codigo_maior_cidade)
        escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades)
        escreva("\nMedia de Veiculos Menor 2000: ", media_de_acidentes_menor_2000)
    }
}

 

Como corrigir para funcionar o menor e maior índice de acidentes e mostrar qual a cidade do menor e maior índice de acidentes?

Link para o comentário
Compartilhar em outros sites

@Simon Viegas, consegui acertar o algoritmo inteiro, as respostas estão saindo corretamente... Gostei do desafio. Mais um aprendizado, vou seguir estudando, gostei mesmo, muito obrigado a ti e ao @KXSY pela motivação.

Inclusive corrigi alguns outros erros que encontrei nas linhas de comando. vou marcar no código as correções que fiz.

programa {
    funcao inicio() {
        inteiro codigo_menor_cidade = 0
        inteiro codigo_maior_cidade = 0
        inteiro codigo_menos_acidente = 0
        inteiro codigo_mais_acidente = 0
        real indice_menor_cidade = 0
        real indice_maior_cidade = 0
        inteiro soma_geral_de_veiculos = 0
        real media_de_veiculos_cidades = 0
        inteiro soma_acidentes_menor_2000 = 0
        real media_de_acidentes_menor_2000 = 0
        inteiro numero_cidades = 0

        /aqui na variável abaixo, apenas inclui mais um zero, ela indicava apenas 200/
        inteiro numero_cidades_veiculos_menor_2000 = 0       
        inteiro continuar_a_pedir_dados = 1
        inteiro maior_indice_acidentes = 0
        inteiro menor_indice_acidentes = 0
        
        enquanto(continuar_a_pedir_dados == 1) {
            escreva("Insira o Codigo da Cidade diferente de 0: ")
            inteiro codigo_digitado
            leia(codigo_digitado)
            
            escreva("Insira numero veiculos de passeio: ")
            inteiro veiculos_digitado
            leia(veiculos_digitado)
            
            escreva("Insira número de acidentes de trânsito com vítimas: ")
            inteiro acidentes_digitado
            leia(acidentes_digitado)
                        
            soma_geral_de_veiculos += veiculos_digitado
            numero_cidades += 1            
            se (acidentes_digitado < indice_menor_cidade ou indice_menor_cidade == 0) {
                codigo_menor_cidade = codigo_digitado
                indice_menor_cidade = acidentes_digitado
            }
            se (acidentes_digitado > indice_maior_cidade ou indice_maior_cidade == 0) {
                codigo_maior_cidade = codigo_digitado
                indice_maior_cidade = acidentes_digitado
            }            
            se (veiculos_digitado<2000) {

                /aqui abaixo o errinho mais grave, a resposta estava saindo a média de veículos total, troquei a variável veículos_digitado pela acidentes_digitado e foi resolvido, agora a resposta sai exatamente a média de acidentes  ocorridos nas cidades com menos de 2000 veículos de passeio./
                soma_acidentes_menor_2000 += acidentes_digitado
                numero_cidades_veiculos_menor_2000 +=1
            }
            se (acidentes_digitado < menor_indice_acidentes ou menor_indice_acidentes == 0){
                codigo_menos_acidente = codigo_digitado
                menor_indice_acidentes = acidentes_digitado
            }
            se (acidentes_digitado > maior_indice_acidentes ou maior_indice_acidentes == 0){
                codigo_mais_acidente = codigo_digitado
                maior_indice_acidentes = acidentes_digitado
            }
            
            escreva("Para continuar digite 1 ou outro valor para finalizar: ")
            leia(continuar_a_pedir_dados)
        }

       media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades
        media_de_acidentes_menor_2000 =  soma_acidentes_menor_2000 / numero_cidades_veiculos_menor_2000
        
        escreva("\nMenor índice de acidentes: ", menor_indice_acidentes)
        escreva("\nCidade com menos acidentes: ", codigo_menor_cidade)
        escreva("\nMaior índice de acidentes: ", maior_indice_acidentes)
        escreva("\nCidade com mais acidentes: ", codigo_maior_cidade)
        escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades)
        escreva("\nMedia de acidentes em cidades com menos de 2000 veiculos de passeio: ", media_de_acidentes_menor_2000)
    }
}

 

Link para o comentário
Compartilhar em outros sites

Em 16/05/2019 às 17:51, Gabriel Brunelli disse:

Galera, boa tarde, todo bom? to fazendo EAD de Analise e Desenvolvimento de sistema. 
E me deparei com esse exercício, logo na 2º semana de aula. 
___
 

Percebemos o quão importante é você estar ciente de como é o funcionamento dos comandos em lógica de programação. Cada comando possui um propósito e com ele podemos perceber qual é o melhor comando para realizar determinada atividade. Neste sentido, analisemos o caso problematizador abaixo:

O IBGE (Instituto Brasileiro de Geografia e Estatística) desejou realizar uma estatística nas cidades pertencentes ao estado do Paraná, verificando dados sobre acidentes de trânsito. Neste estudo, precisava-se obter alguns dados, que podemos verificar abaixo:

- código da cidade;
- número de veículos de passeio;
- número de acidentes de trânsito com vítimas.
Desejava-se saber ainda:

- qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem;
- qual a média de veículos nas cidades juntas;
- qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio.

Analisando, assim, o nosso caso problematizador, você, aluno(a), deverá realizar um algoritmo que resolva este problema.
___

Alguem consegue me ajudar a entender a questão, pfv? 
 

Olá, Gabriel beleza.

Eu também sou aluno da mesma universidade. Faço Sistema para internet. E também recebi atividade igual sua.

Gostaria saber se deu certo a resposta. Professor(a) aprovou?

Prazo entregar é agora dia 5, meu demorou aparecer vídeo e e-book, problema sistema. Corrigiu esta semana e pior prazo responder atividade estar curto.

Preciso muito sua ajuda, se posso copiar sua formula. Sou péssimo lógica programação.

Aguardo resposta.

 

Marielso Araujo

Deficiente Auditivo

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...
  • 2 anos depois...

Resolvi essa questão usando Python 3

 

continuar = ' '

codmenorcidade = codmaiorcidade = somacidades = cidadesveiculosmenor2000 = 0

indicemenorcidade = indicemaiorcidade = 0

somaveiculos = somaacidentesmenor2000 = 0

codmaisacidentes = codmenosacidente = 0

mediaacidentesmenor200 = mediaacidentes = mediatotalveiculos = 0

maiorindicecidade = menorindicecidade = menorindiceacidentes = maiorindiceacidentes = 0

 

while True:

          codcidade = int(input("Informe o código da cidade: "))

          nvp = int(input("Quantos veículos de passeio existem na cidade? "))

          natv = int(input("Informe o N° de acidentes de trânsito com vítimas: "))

          continuar = str(input('Quer continuar? [S/N] ')).upper().strip()[0]

          somaveiculos += nvp somacidades += 1

 

          if natv < menorindicecidade or menorindicecidade == 0:

                 codmenorcidade = codcidade

                 menorindicecidade = natv

 

          if natv > maiorindicecidade or maiorindicecidade == 0:

                codmaiorcidade = codcidade

                maiorindicecidade = natv

 

          if nvp < 2000:

                somaacidentesmenor2000 += natv

                cidadesveiculosmenor2000 += 1

 

          if natv < menorindiceacidentes or menorindiceacidentes == 0:

                codmenosacidente = codcidade

                menorindiceacidentes = natv

 

          if natv > maiorindiceacidentes or maiorindiceacidentes == 0:

                codmaisacidentes = codcidade

                maiorindiceacidentes = natv

 

          if continuar == 'N':

                break

 

mediaacidentesmenor2000 = somaacidentesmenor2000 / cidadesveiculosmenor2000

mediatotalveiculos = somaveiculos / somacidades

 

print(f'A média de veículos nas cidades juntas é: {mediatotalveiculos:.2f}.')

print(f'O maior índice de acidentes de trânsito é: {maiorindiceacidentes}, e pertence a cidade: {codmaiorcidade}.')

print(f'O menor índice de acidentes de trânsito é: {menorindiceacidentes}, e pertence a cidade: {codmenorcidade}.')

print(f'A média de acidentes de trânsito das cidades com menos de 2000 veículos é: {mediaacidentesmenor2000:.2f}.')

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