Ir ao conteúdo

Posts recomendados

Postado

Bom, meu professor passou um desafio valendo ponto para resolver utilizando matrizes, porém busquei modelos parecidos na internet e mesmo assim não consegui resolver.

Segue o enunciado do desafio abaixo:

Desenvolva um sistema que leia uma tabela de um campeonato de futebol com 5 times, o usuário deve entrar com o número de jogos, o número de vitórias, o número de empates e o saldo de gols de cada time. Você então deve calcular os pontos ganhos por cada time ( uma vitória vale 3 pontos, um empate vale 1 ponto e uma derrota vale 0 pontos) e no final imprimir a tabela completa (incluindo os pontos ganhos) e o nome do vencedor do campeonato.

 

Meu código utilizando o Visualg

Var
// Seção de Declarações das variáveis 
   times : Vetor[1..5] de caracter
   jogo, vitoria, empate, saldo, pts : Vetor[1..5] de inteiro
   x, l, c, soma, jogos : inteiro
   vit, emp, der : inteiro
   campeao : caracter
   matriz : Vetor[1..5,1..5] de inteiro
   
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
   para x de 1 ate 5 faca
        escreva("Digite o nome do ", x, "º time: ")
        leia(times[x])
   fimpara
   
   escreval
   Escreval("Informe o número de jogos: ")
   leia(jogos)
   
   escreval
   para x de 1 ate 5 faca
        escreva("Informe o número de vitórias do ", x, "º time: ")
        leia(vitoria[x])
   fimpara
   
   escreval
   para x de 1 ate 5 faca
        escreva("Informe o número de empates do ", x, "º time: ")
        leia(empate[x])
   fimpara
   
   escreval
   para x de 1 ate 5 faca
        escreva("Informe o saldo de gols do ", x, "º time: ")
        leia(saldo[x])
   fimpara
   
   vit <- 3
   emp <- 1
   der <- 0
   
   escreval
   para x de 1 ate 5 faca
        soma <- (vitoria[x] * 3) + (empate[x] * 1)
        pts[x] <- soma
   fimpara
   
   escreval
   escreval("A tabela do campeonato ficara de acordo como a apresentação a seguir: ")
   escreval
   escreva("TIMES JOGOS VITÓRIA EMPATE SALDO PONTOS")
   escreval
   para l de 1 ate 5 faca
        para c de 1 ate 5 faca
             para x de 1 ate 5 faca
                   matriz[l,1] <- jogo[x]
                   matriz[l,2] <- vitoria[x]
                   matriz[l,3] <- empate[x]
                   matriz[l,4] <- saldo[x]
                   matriz[l,5] <- pts[x]
             fimpara
        escreva(matriz[l,c])
        fimpara
        escreval
   fimpara

 

No final, ela ta imprimindo a matriz resultando do jogo com números iguais. Tentei de varias maneiras resolver o bug porém nao ta adiantando de nada. 

Peço dicas para a resolução do meu problema kk

Agradeço pela atenção

  • Membro VIP
Postado

Olá @Danilo Martin da Silveira.

 

1) ESTRUTURA DE FUNCIONAMENTO

Antes de qualquer coisa já achei estranho a forma como o programa funciona... acharia mais adequado se fosse dito os placares... e ai o programa iria atualizando a tabela, mas em fim...Sugiro que faça como foi pedido, e, caso deseja, depois faça outro programa recebendo os placares (teria duas versões)

 

2) USO DE VARIÁVEIS

Não faz sentido usar vetores, e depois transpor os dados para uma matriz... ou usa um, ou usa o outro (no caso deveria ser só a matriz).

 

Para efeito didático, vamos analisar como está o seu código...

 

Em 25/03/2017 às 11:38, Danilo Martin da Silveira disse:

   para l de 1 ate 5 faca
        para c de 1 ate 5 faca
             para x de 1 ate 5 faca
                   matriz[l,1] <- jogo[x]
                   matriz[l,2] <- vitoria[x]
                   matriz[l,3] <- empate[x]
                   matriz[l,4] <- saldo[x]
                   matriz[l,5] <- pts[x]
             fimpara
        escreva(matriz[l,c])
        fimpara
        escreval
   fimpara

 

 

Temos dois pontos principais ai:

a- No 3º for, você está escrevendo 5 valores numa mesma posição (sobrescrevendo... ficará só com o último).

b- Relacionado ao problema acima, você precisa reformular o tratamento da matriz... veja, l=time, c=atributo... só existem 2 parâmetros (dica: é preciso apenas 2 laços de repetição)

 

Daí você teria duas opções: ou tenta corrigir usando vetores, e depois reedita removendo eles só usando matriz... ou refaz logo usando só matrizes... (isso levando em consideração essa questão de não dever usar vetores)

 

 

No aguardo

Visitante
Este tópico está impedido de receber novas respostas.

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!