Logo Hardware.com.br
SpecialForcesBR
SpecialForce... Tô em todas Registrado
1K Mensagens 66 Curtidas

Vetor - portugol

#1 Por SpecialForce... 03/05/2013 - 11:34
Questão:Leia um vetor de 5 posições e em seguida um valor X qualquer. Seu programa devera fazer
uma busca do valor de X no vetor lido e informar a posição em que foi encontrado ou se não
foi encontrado.

algoritmo "semnome"
// Função :
// Autor :
// Data : 03/05/2013
// Seção de Declarações
var
i:inteiro
valor:vetor[1..5] de real
x:real
inicio
para i de 1 ate 5 faca
escreval("Digite um valor para o",i,"° vetor&quot
leia(valor[i])
fimpara
escreval("digite um valor que deseja procurar&quot
leia(x)
para i de 1 ate 5 faca
se x=valor[i] entao
escreval ("A posição é",i)
fimse
se x<>valor[i] entao
escreval("Valor nao encontrado nessa posição&quot
fimse
fimpara


Ele está repetindo todos os slots ate achar o numero...Preciso que ele diga em uma linha só onde tal valor esta localizado, e nao informar em 4 linhas que nao foi achado,e só em 1 dizer que foi encontrado
ripongao
ripongao Veterano Registrado
755 Mensagens 94 Curtidas
#2 Por ripongao
03/05/2013 - 16:19
SpecialForcesBR disse:

[CODE=rich]algoritmo "semnome"
...
leia(x)
para i de 1 ate 5 faca
se x=valor[i] entao
escreval ("A posição é",i)
fimse
se x<>valor[i] entao
SE i = 5
escreval("Valor nao encontrado na lista")
FIMSE

fimse
fimpara[/CODE]

Pensei nessa pequena modificação, a lógica pode ser reduzida drasticamente usando o "enquanto".
Desliguei-me do fórum. Conta canelada.
ripongao
ripongao Veterano Registrado
755 Mensagens 94 Curtidas
#4 Por ripongao
03/05/2013 - 19:17
SpecialForcesBr
A solução feita por mim é errônea, pois se o usuário digitar um valor que esta na lista pode aparecer ambas as mensagens. Regras do fórum.
Sugiro que se você elabore novamente sua rotina, fique procurando para ver se encontra o número na lista, e caso encontre, ative a variável "encontrei" inicialmente zerada para a posição do dado. Após o término do "para faça", veja "se" a variável "encontrei" esta zerada, caso sim, mostre a mensagem de não encontrado, caso não, mostre a posição.
Desliguei-me do fórum. Conta canelada.
SpecialForcesBR
SpecialForce... Tô em todas Registrado
1K Mensagens 66 Curtidas
#5 Por SpecialForce...
05/05/2013 - 15:59
Henry-Keys disse:
Boa noite SpecialForcesBr

Bom de visualG muita coisa esqueci, mas, queria recomendar o seguinte:Idente o seu código, assim você não vai se perder facilmente na hora de saber que qual se, enquanto, etc pertence um comando.
http://pt.wikipedia.org/wiki/Identa%C3%A7%C3%A3o

Abraços.

Obrigado!
O visualg possui um botão para corrigir a identação automaticamente.

ripongao disse:
SpecialForcesBr
A solução feita por mim é errônea, pois se o usuário digitar um valor que esta na lista pode aparecer ambas as mensagens. Regras do fórum.
Sugiro que se você elabore novamente sua rotina, fique procurando para ver se encontra o número na lista, e caso encontre, ative a variável "encontrei" inicialmente zerada para a posição do dado. Após o término do "para faça", veja "se" a variável "encontrei" esta zerada, caso sim, mostre a mensagem de não encontrado, caso não, mostre a posição.



Tentei , tentei e modifiquei, mas ainda nao consegui...
BRASIL!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal