Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegostf

[Resolvido] Pesquisando em Vetores!

Recommended Posts

Pessoal!

alguem poderia me ajudar, nao estou conseguindo elaborar meus exercicios de pesquisa em Vetores!

 

Segue o Exercicio!

 

A partir de 2 Vetores: um contendo numero de matricula de um aluno e outro, na mesma posição,contendo as Medias Finais,em orden descrescente,dos 100 alunos de uma turma,montar um algoritmo para imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) proviamente indicado!

 

tentei fazer:

 

 

aluno:vetor[1..100]de inteiro
media:vetor[1..10]de inteiro
i,iniciu,aux1,aux2:inteiro
primeira,ultima,metade:inteiro
achou: logico

PARA i DE 1 ATE 100 FACA
escreva ("Digite a matricula do aluno")
leia (aluno[i])
escreva ("Digite a media Final")
leia (media[i])
FIMPARA

PARA iniciu DE 1 ATE 99 FACA
	   PARA i DE iniciu +1 ATE 100 FACA
			  SE media[iniciu] < media[i] ENTAO
			  aux1 <- media[iniciu]
			  aux2 <- aluno[iniciu]
			  media[iniciu] <- media[i]
			  aluno[iniciu] <- aluno[i]
			  media[i] <- aux1
			  aluno[i] <- aux2
			  FIMSE
		FIMPARA
FIMPARA


escreva ("Digite a Media necessaria, Para saber quem esta aprovado ou reprovado!")

primeira <- 1
ultima <- 100
achou <- FALSO
travei nesta parte galera eu consigo montar para pesquisar 1 ou mais numeros em Vetor!

mais para Digitar um Numero "Media" e fazer ele verificar dentro do vetor pra saber se a nota de cada pessoa e menor ou maior que a media Aleatoria que digitei ja complica minha cabeça!!

 

Alguem poderia me ajudar?

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui entender nada do que você falou...

 

alunos = []
medias = []

for i in xrange(0,100):
 print "Digite a matricula:"
 alunos[i] = int(raw_input())
 print "Digite a media:"
 medias[i] = float(raw_input())


print "Digite a nota minima de aprovacao:"
aprovacao = float(raw_input())

for i in xrange(0,100):
  if medias[i] >= aprovacao:
   print alunos[i]

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrss!!

entao, vo tenta explicar melhor!!

tenho que montar 2 vetores, um contande 100 Codigo de matricula do aluno "No caso pode ser o nome do aluno") e outro vetor contende as medias Final de cada um!!

Depois Ordenar o Vetor pelas Medias finais em Orden Decrescente!

e por ultimo Mandar a pessoa Digitar um numero no teclado Explomplo "8" que sera a media minima de aprovação!

e fazer a pesquisa dentro do vetor para saber quem esta aprovado e reprovado!

pela nota que digitei comparando com a media final!

e imprimir 100 nome de alunos e na frete se foi aprovado ou reprovado!!

Entendeu melhor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode ordenar o vetor de médias. Leia o enunciado de novo:

 

A partir de 2 Vetores: um contendo numero de matricula de um aluno e outro, na mesma posição,contendo as Medias Finais,em orden descrescente,dos 100 alunos de uma turma,montar um algoritmo para imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) proviamente indicado!

 

Se Marcos teve média 50 e for o primeiro da lista de médias, você vai indexar com o mesmo valor os dois vetores e vai associar a média errada. O vetor de médias tem que ser fornecido em ordem decrescente.

 

Veja lá o código. A parte que não entendi foi essa coisa que você escreveu:

 

travei nesta parte galera eu consigo montar para pesquisar 1 ou mais numeros em Vetor!

mais para Digitar um Numero "Media" e fazer ele verificar dentro do vetor pra saber se a nota de cada pessoa e menor ou maior que a media Aleatoria que digitei ja complica minha cabeça!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode ordenar o vetor de médias. Leia o enunciado de novo:

 

A partir de 2 Vetores: um contendo numero de matricula de um aluno e outro, na mesma posição,contendo as Medias Finais,em orden descrescente,dos 100 alunos de uma turma,montar um algoritmo para imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) proviamente indicado!

 

Se Marcos teve média 50 e for o primeiro da lista de médias, você vai indexar com o mesmo valor os dois vetores e vai associar a média errada. O vetor de médias tem que ser fornecido em ordem decrescente.

 

Veja lá o código. A parte que não entendi foi essa coisa que você escreveu:

 

travei nesta parte galera eu consigo montar para pesquisar 1 ou mais numeros em Vetor!

mais para Digitar um Numero "Media" e fazer ele verificar dentro do vetor pra saber se a nota de cada pessoa e menor ou maior que a media Aleatoria que digitei ja complica minha cabeça!!

 

 

 

a sim!

Nao sei foi isso que você tentou dizer mais assim!!

 

 

PARA iniciu DE 1 ATE 99 FACA

PARA i DE iniciu +1 ATE 100 FACA

SE media[iniciu] < media ENTAO //Se media 1º posiçao > que 2º posiçao

aux1 <- media[iniciu] //aux1 Recebe Media 1°posição

aux2 <- aluno[iniciu] // e criei essa aux 2 para passar o nome do Aluno junto, para nao ficar Errado!

media[iniciu] <- media //media 1º posiçao recebe Media 2ºposição

aluno[iniciu] <- aluno //Aluno 1º posição recebe aluno 2º posição

media <- aux1 // media 2º posição recebe aux1

aluno <- aux2 // aluno 2º posição recebe aux2

FIMSE

FIMPARA

FIMPARA

 

 

Ou seja A nota e o Aluno Caminham Juntos nao tem como dar errado!!

esta parte de Ordenação Crescente ou Decrescente!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

"A partir desses dois vetores..." => as pré-condições já estão atendidas => O vetor de notas e de alunos já está ordenado => você não tem que ordenar nada.

 

 

Estruturas:

2 Vetores: Um contendo o número de matrícula de um aluno e outro com as médias finais.

 

Pré-condições:

- O vetor das médias finais está ordenado em ordem decrescente.

- Através do mesmo indice você indexa as posições corretas do aluno e sua média nos vetores.

 

Objetivo do algoritmo:

 

imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) previamente indicado

 

 

De novo: "A partir de dois vetores" e em seguida são dadas as propriedades dos vetores. Não precisa ordenar. Arranca fora essa ordenação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"A partir desses dois vetores..." => as pré-condições já estão atendidas => O vetor de notas e de alunos já está ordenado => você não tem que ordenar nada.

 

 

Estruturas:

2 Vetores: Um contendo o número de matrícula de um aluno e outro com as médias finais.

 

Pré-condições:

- O vetor das médias finais está ordenado em ordem decrescente.

- Através do mesmo indice você indexa as posições corretas do aluno e sua média nos vetores.

 

Objetivo do algoritmo:

 

imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) previamente indicado

 

 

De novo: "A partir de dois vetores" e em seguida são dadas as propriedades dos vetores. Não precisa ordenar. Arranca fora essa ordenação.

 

 

A sim!

 

entao vamos supor que os vetores ja estariam com os nomes e as notas

 

(eu Diminui o vetor pra dar pra fazer aki!)

aluno:vetor[1..5]de caractere
nota:vetor[1..5]de inteiro
aprovado:vetor[1..5]de caracere
i,nlido:inteiro

aluno[1] <- joao
aluno[2] <- maria
aluno[3] <- joana
aluno[4] <- ciclano
aluno[5] <- fulano

nota[1] <- 10
nota[2] <- 8
nota[3] <- 6
nota[4] <- 2
nota[5] <- 0

Suponhando que esses valores ja estarim no Vetor!

 

escreva ("Digite a nota minima para aprovação")
leia (nlido)

PARA i DE 1 ATE 5 FACA
Se (nlido >= nota[i]) ENTAO
aprovado[i] <-" Aprovado"
SENAO
aprovado[i] <- "REPROVADO"
FIMPARA


PARA i DE 1 ATE 5 FACA
escreva (aluno[i],aprovado[i])
FIMPARA

Poderia ser feita desta forma?

correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Lê de novo:

 

,montar um algoritmo para imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) proviamente indicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Lê de novo:

 

,montar um algoritmo para imprimir os codigos dos alunos que obtiveram nota media Superior a um Valor (Aleatorio) proviamente indicado.

 

Nossa ta osso resolver isso kakakaka

mais uma tentativa, to tentando fazer do jeito q intendi :wacko:

 

 

 

aluno[1] <- "joao"
aluno[2] <- "maria"
aluno[3] <- "joana"
aluno[4] <- "ciclano"
aluno[5] <- "fulano"

nota[1] <- 10
nota[2] <- 8
nota[3] <- 6
nota[4] <- 2
nota[5] <- 0



escreval ("Digite a nota minima para aprovação ")
leia (nlido)

PARA i DE 1 ATE 5 FACA
Se (nlido >= nota[i]) ENTAO
aprovado[i] <- aluno[i]
FIMSE
FIMPARA


escreval ("Alunos Aprovados: ")
PARA i DE 1 ATE 5 FACA
escreval (aprovado[i])
FIMPARA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também está errado.

Se nlido = 8, você imprime os que reprovaram.

Não precisa de vetor de aprovados. Simplesmente jogue na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também está errado.

Se nlido = 8, você imprime os que reprovaram.

Não precisa de vetor de aprovados. Simplesmente jogue na tela.

 

Putz agora sim....

eu estava colocando errado nesta parte!

"Se nlido >= nota"

por isso estava aparecendo so os reprovados!!

agora que me dei conta

que tinha q ser sinal de < "menor"

 

 

 

var
aluno:vetor[1..5]de caractere
nota:vetor[1..5]de inteiro
i,nlido:inteiro

inicio
aluno[1] <- "joao"
aluno[2] <- "maria"
aluno[3] <- "joana"
aluno[4] <- "ciclano"
aluno[5] <- "fulano"

nota[1] <- 10
nota[2] <- 8
nota[3] <- 6
nota[4] <- 2
nota[5] <- 0



escreval ("Digite a nota minima para aprovação ")
leia (nlido)

escreval ("Alunos aprovados")
PARA i DE 1 ATE 5 FACA
Se (nlido <= nota[i]) ENTAO
escreval (aluno[i])
FIMSE
FIMPARA

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.