Ir ao conteúdo
  • Cadastre-se
Rharison Lucas

Agortimo - vetor e matriz

Recommended Posts

Bom Dia Galera, estou com dificuldades em criar uma lógica para o exercicio abaixo.

 

Exer . A Secretaria do Curso Superior em Sistemas para Internet ao receber dos seus professores todos os canhotos dos diários com a média obtida por cada aluno em cada disciplina conforme abaixo.  Para efeito de informação, a secretaria precisa de um programa que analise e faça uma lista com a classificação da maior média por disciplina no semestre. Use o conceito de matriz, e vetor, se necessário para resolver esta situação. 

 

O exercicio pede para criar um sistema no qual o usuário vai digitar quantos alunos tem na classe, logo em seguida ira aparecer a parte de cadastro de alunos, onde serão cadastradas também 6 notas desse aluno (Ex. Port, Mat, Log, Alg). Após o cadastro o sistema tem que encontrar e mostrar a maior nota em cada matéria, Ex. Maior nota em Port. maior nota em Mat. e assim por diante.

 

Ate na faze de perguntar quantos alunos e cadastrar eu fiz tranquilo, mas quando  chegou na parte de mostrar as maiores notas eu nao consegui, segue abaixo o código de onde eu parei, em Portugol feito no Visulag.

 

algoritmo "semnome"
var
   aluno: vetor [1..40] de caracter
   materia: vetor [1..6] de caracter
   nota: vetor[1..6,1..40] de real
   cont, l, c, quantos: inteiro
   maior: vetor[1..7] de real
   aluno_maior: vetor[1..40] de inteiro
inicio
      materia[1] <- "Português"
      materia[2] <- "Inglês"
      materia[3] <- "Inf. Social"
      materia[4] <- "Fund."
      materia[5] <- "Matemática"
      materia[6] <- "Algoritmo"
      Escreva ("Quantos alunos tem na classe? (MÁX 40):" )
      Leia (quantos)'
      Para l <- 1 ate quantos faca
           Escreva ("Nome do aluno: ")
           Leia (aluno[l])
           Para c <- 1 ate 6 faca
                Escreva ("Média em ", materia[c],":")
                Leia (nota[l,c])
           FimPara
      Fimpara

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

 

Primeiro, tente implementar o conceito de "maior nota" separadamente. Tendo X valores, como identifico qual o maior?

 

Então, uma forma seria ter uma variável que armazena o menor valor possível, ou o primeiro valor, e vai comparando ela uma a uma com cada valor restante... se for maior, atualiza essa variável com o valor atual... no final, essa variável vai ter o maior valor.

 

Outra forma é ordenar o vetor de forma decrescente... o primeiro será o maior...

 

No aguardo

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Certo, esse é o ultimo exercicio de umas seria de 6, todos eles pediam para mostrar o maior e o menor valor dos dados digitados. Só que eram só 1 maior e nesse caso são 6 maiores, e é ai q eu me "embananei" , tentei criar um vetor para as maiores notas com 6 posições e em cada posição jogar a maior nota de cada matéria e não consegui.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rharison Lucas

 As explicações do Simon Viegas estão certas.
  para conseguir pegar a maior nota de cada matéria, é preciso organizar os numeros
no vetor em ordem crescente;   para isso pode se usar três loops para fimpara aninhados
um dentro do outro, e um exemplo desses loops você encontra no próprio visualg3, na 
pasta exemplos, abra o exemplo1, assim você saberá como fazer esses  loops.  Com isso
a maior nota estará na última posição do vetor, que neste caso é a posição 40, porque

o vetor nota vai de 1 até 40, Para isso é preciso colocar mais uma variável do tipo inteiro,

aqui coloquei q, e duas do tipo real, aí depois de organizado em ordem crescente, basta

colocar assim :
 

para c de 1 ate 6 faca                           // são 6 matérias
  para q de 1 ate 40 faca                        // e pode ter de 1 até 40 alunos
    se nota[c,q] > 0 então                       // c vai de 1 até 6 igual ao vetor nota e q vai até 40
      escreva("    ",materia[c],"  a menor nota é ",nota[c,q])
      escreval("  e a maior nota é ",nota[c,40]) // escreve a maior nota da mesma matéria
      interrompa                                 // interrompe a execução desse loop e passa para o próximo
    fimse
  fimpara
fimpara

 

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

×