Jump to content

Detectar a posição dum elemento num vectores


Chuckytah
 Share

Recommended Posts

Boa noite! :)

Olá, já comecei a dar vectores  😄 lol mas já me deparo com uma duvida... como faço um algoritmo que após a introdução dos n elementos do vector, me corra esses elementos e que após introduzido o valor x ele me diga em que posição se encontra no vector.

é algo assim deste género?:

Algoritmo "ex_vector"

1.[Declaração de variaveis]
vector[1..10] : numerico inteiro
i, x : numericos inteiros

2.[inicialização das variaveis]
x<-0
Para i<-1 ate 10 fazer
        vector[i]<-0
FimPara.

3.[Leitura da variavel x]
Escrever('Introduza um número:')
Ler(x)

4.[Calculo e impressão]
Para i<-1 ate 10 fazer
       Se vector[i]=x então 
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
       FimSe
FimPara

5.[Terminar]
Sair.

Gostava de saber o que tenho mal,lol e o k n preciso de modificar.Muito obrigada. 👍

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Pareceu-me tudo correcto, porque dizes que esta mal?

EDIT:

Será que te esqueceste de colocar os "[]" no vector ? Tipo:

2.[inicialização das variaveis]
x<-0
Para i<-1 ate 10 fazer
        vector<-0
FimPara.

Não deverias ter em vez de teres só "vector", deverias ter "vector[ i ] "

e aqui também:

4.[Calculo e impressão]
Para i<-1 ate 10 fazer
       Se vector=x então
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
       FimSe
FimPara

Será que  é isto?

Cumps

Link to comment
Share on other sites

Alem do que o Nugun respondeu (de facto deveria ser vector(i) (ou vector[ i ], dependendo da notação)) tens um outro problema.

Repara, tu estás a ler o valor para a variável X, percorres todo o vector à procura desse valor (como o vector está todo a zero, não encontras), e paras.

Ou seja, tu vais estar sempre a procurar um número num vector só com 0s.

Não quererás adicionar dois passos?

1º: Colocar tudo dentro de um grande ciclo. Desde a leitura, até à pesquisa, de modo a poderes ler e pesquisar mais do que um valor.

2º: Caso o valor não tenha sido encontrado, adiciona-lo na primeira posição livre do vector.

Se for isto que pretendes, faz as alterações que dissemos e diz que nós ajudamos no que for possível.

Link to comment
Share on other sites

Pareceu-me tudo correcto, porque dizes que esta mal?

EDIT:

Será que te esqueceste de colocar os "[]" no vector ? Tipo:

2.[inicialização das variaveis]
x<-0
Para i<-1 ate 10 fazer
        vector<-0
FimPara.

Não deverias ter em vez de teres só "vector", deverias ter "vector[ i ] "

e aqui também:

4.[Calculo e impressão]
Para i<-1 ate 10 fazer
       Se vector=x então
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
       FimSe
FimPara

Será que  é isto?

Cumps

sim, lol esqueci-me lol foi mesmo distracção eu sei que tem de ter 👍 obrigada

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Algoritmo "ex_vector"

1.[Declaração de variaveis]
vector[1..10] : numerico inteiro
i, x : numericos inteiros

2.[inicialização das variaveis]
x<-0
Para i<-1 ate 10 fazer
        vector[i]<-0
FimPara.

3.[Leitura da variavel x]
Escrever('Introduza um número:')
Ler(x)

4.[Calculo e impressão]
Para i<-1 ate 10 fazer
Inicio
       Escrever('Insira um valor:')
       Ler (vector[i])
       Se vector[i]=x então 
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
       FimSe
FimPara

5.[Terminar]

Sair.

bem é assim, axo eu. Pois, lol à bocado todas os indices do vector corrrespondiam a elementos com o nr 0, pois, mas o objectivo é introduxir valores para cada indice e depois ver s algum é igual a x. então age ta correcto n é? ^^

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Algoritmo "ex_vector"

1.[Declaração de variaveis]

vector[1..10] : numerico inteiro

i, x : numericos inteiros

2.[inicialização das variaveis]

x<-0

Para i<-1 ate 10 fazer

        vector [ i ] <-0

FimPara.

3.[Leitura da variavel x]

Escrever('Introduza um número:')

Ler(x)

4.[Calculo e impressão]

Para i<-1 ate 10 fazer

Inicio

      Escrever('Insira um valor:')

      Ler (vector [ i ] )

      Se vector [ i ] =x então

                Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')

      FimSe

FimPara

5.[Terminar]

Sair.

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Mas como o Warrior continuas a ter o vector só com zeros!

Repara:

Para i<-1 ate 10 fazer
        vector [ i ] <-0
FimPara.

Cumps

aí é so a inicialização, mas depois com isto:

4.[Calculo e impressão]

Para i<-1 ate 10 fazer

Inicio

      Escrever('Insira um valor:')

      Ler (vector [ i ] )

      Se vector [ i ] =x então

                Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')

      FimSe

FimPara

vou atribuir valores aos indices do vector, n é?

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Pois.... esquece la isso, não reparei nessa parte  ?

Penso que já esta correcto  ;)

Cumps

não há problema. lol vou imprimir entao ^^ bigada

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Não devias ler primeiro todos os valores do vector com um Para, e depois noutro Para procurar pelo valor? É que neste momento estás a ler um valor e a comparar, depois lês outro valor e comparas...

No 1º Para devias pedir logo os valores do vector, em vez de lá pores 0. Depois pedias x como estás a fazer e no 2ª Para era percorrer as posições do vector como fizeste no código anterior que aí puseste.

Desaparecido.

Link to comment
Share on other sites

Bem afinal não está bem falta coisas...

Algoritmo "ex1_vector"

Este algoritmo, após a insersão de um valor x, corre os índices todos de um vector com 10 elementos, e se existir algum desses elementos igual a x, ele determina e imprime a sua posição.

1.[Declaração de variáveis]

vector[1..10] : numérico inteiro

i, x : numéricos inteiros

2.[inicialização das variáveis]

x<-0

Para i<-1 ate 10 fazer

        vector [ i ] <-0

FimPara.

3.[Leitura de variáveis]

Para i<-1 ate 10 fazer

Inicio

      Escrever('Insira um valor:')

      Ler (vector [ i ] )

Fim

Escrever('Introduza um número:')

Ler(x)

4.[Pesquisa através do vector para determinar se existe algum elemento igual a x]

i<-1

Enquanto vector[ i ] < > x fazer

Se vector [ i ] = x então

                Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')

Senão

Escrever(‘Não existe nenhum elemento igual a’,x)

FimSe

i<-i+1

FimEnquanto.

5.[Terminar]

Sair.

pf vejam se tenho erros e digam^^

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Só duas coisas: Uma coisa:

4.[Pesquisa através do vector para determinar se existe algum elemento igual a x]

i<-1

Enquanto vector[ i ] < > x fazer

Se vector [ i ] = x então

                Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')

Senão

Escrever(‘Não existe nenhum elemento igual a’,x)

FimSe

i<-i+1

FimEnquanto.

Não percebi nada disto...

Talvez seja necessário criar uma flag com valor false e depois:

Para i<-1 ate 10 fazer
       Se vector [ i ] =x então
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
                 flag = true
       FimSe
FimPara

Senão flag
     Escrever(‘Não existe nenhum elemento igual a’,x)
FimSenão

[iGNORAR]

3.[Leitura de variáveis]

Para i<-1 ate 10 fazer

Inicio

      Escrever('Insira um valor:')

      Ler (vector [ i ] )

Fim

Escrever('Introduza um número:')

Ler(x)

Bem, não há necessidade desta última instrução:

Escrever('Introduza um número:')
Ler(x)

Normalmente o primeiro índice dos vectores é 0, por isso seria mais:

Para i<-0 ate 10 fazer
Inicio
       Escrever('Insira um valor:')
       Ler (vector [ i ] )
Fim

Ou se não:

Para i<-1 ate 11 fazer
Inicio
       Escrever('Insira um valor:')
       Ler (vector [ i ] )
Fim

Dependendo da linguagem e de como queres fazer, agora temos de tirar todo o aproveito do ciclo para.

[/iGNORAR]

Isto é uma sugestão...

Cumpr. bk@ero  ;)

Link to comment
Share on other sites

Bem, não há necessidade desta última instrução:

Escrever('Introduza um número:')
Ler(x)

O x que está a ser lido é o valor a procurar em seguida no array. Há necessidade, devia era estar numa outra secção do algoritmo.

Normalmente o primeiro índice dos vectores é 0, por isso seria mais:

Para i<-0 ate 10 fazer
...

Ou se não:

Para i<-1 ate 11 fazer
...

O array está definido como

vector[1..10] : numérico inteiro

por isso terá mesmo que ser

Para i<-1 ate 10

Quanto à parte da flag, concordo plenamente, senão é repetidamente escrita a mensagem a dizer que o número não existe no array até que seja encontrado, e nesse caso sai do Enquanto sem dizer que encontrou o número. E se o valor nao estiver no array, nunca sai do Enquanto... o que é grave.

Desaparecido.

Link to comment
Share on other sites

Não percebi nada disto...

Talvez seja necessário criar uma flag com valor false e depois:

Para i<-1 ate 10 fazer
       Se vector [ i ] =x então
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
                 flag = true
       FimSe
FimPara

Senão flag
     Escrever(Não existe nenhum elemento igual a,x)
FimSenão

... :S o k é uma flag :S n faço a minima... lol por isso lol, concluindo n percebi o codigo... para ja n kero fazer o programa em nenhum tipo d linguagem de programação, é só mesmo o algoritmo... mas obrigado, lol e ja agora o k é uma "flag"?

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Uma flag é uma variável de controlo que só toma dois valores, true ou false.

Eu dei uma sugestão de criares uma flag com valor por default false que indicava se existe ou não existe o elemento X no vector.

Se não detectasses nada, então o valor da flag mantinha-se inalterado, ou seja, false.

Comecemos pela primeira parte:

Para i<-1 ate 10 fazer
       Se vector [ i ] =x então
                 Escrever ('0 valor',x,'encontrava-se na',i,'ªposição')
                 flag = true
       FimSe
FimPara

É fazer o varrimento do vector, e sempre que encontrar valores iguais->escreve na consola o que encontrou e poe a flag a true (existe o elemento X no vector).

Se não encontrar nada igual, não faz nada.

E esta instrução:

Senão flag
     Escrever(‘Não existe nenhum elemento igual a’,x)
FimSenão

É por outras palavras é feita esta questão à flag:

  Foi encontrado algum valor de X ?

A flag responde com o seu valor false ou true

Se a flag estiver false, então ele escreve a mensagem de que não foi encontrado nenhum valor.

Se for true, não faz nada.

Espero ter esclarecido...

Cumpr. bk@ero  :P

Link to comment
Share on other sites

Uma pergunta um pouco à parte...

Uma flag é uma variável de controlo que só toma dois valores, true ou false.

Eu pensava que uma flag podia tomar vários valores, por exemplo o comando Dir da linha de comandos podemos utilizar várias letras depois do comando para especificarmos preferências como por exemplo as letras O e P. Isto são flags ou argumentos ou o que são?

Cumps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.