Chuckytah Posted November 6, 2006 at 07:35 PM Report #62488 Posted November 6, 2006 at 07:35 PM 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*^^*
NuGuN Posted November 6, 2006 at 07:40 PM Report #62494 Posted November 6, 2006 at 07:40 PM 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
Warrior Posted November 6, 2006 at 07:47 PM Report #62495 Posted November 6, 2006 at 07:47 PM 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.
Chuckytah Posted November 6, 2006 at 08:55 PM Author Report #62529 Posted November 6, 2006 at 08:55 PM 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*^^*
Chuckytah Posted November 6, 2006 at 08:58 PM Author Report #62531 Posted November 6, 2006 at 08:58 PM 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*^^*
Chuckytah Posted November 6, 2006 at 08:59 PM Author Report #62532 Posted November 6, 2006 at 08:59 PM :S ? não entendo porque não fica vector... eu escrevi mas n ficou :S *^^*<3@Chuckytuh@<3*^^*
Chuckytah Posted November 6, 2006 at 09:00 PM Author Report #62533 Posted November 6, 2006 at 09:00 PM ahh lol vector [ i ] , tinha de ter esparços :S XD *^^*<3@Chuckytuh@<3*^^*
Chuckytah Posted November 6, 2006 at 09:01 PM Author Report #62534 Posted November 6, 2006 at 09:01 PM 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*^^*
NuGuN Posted November 6, 2006 at 09:02 PM Report #62536 Posted November 6, 2006 at 09:02 PM Mas como o Warrior continuas a ter o vector só com zeros! Repara: Para i<-1 ate 10 fazer vector [ i ] <-0 FimPara. Cumps
Chuckytah Posted November 6, 2006 at 09:33 PM Author Report #62543 Posted November 6, 2006 at 09:33 PM 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*^^*
NuGuN Posted November 6, 2006 at 09:43 PM Report #62545 Posted November 6, 2006 at 09:43 PM Pois.... esquece la isso, não reparei nessa parte ? Penso que já esta correcto 😉 Cumps
Chuckytah Posted November 6, 2006 at 09:55 PM Author Report #62552 Posted November 6, 2006 at 09:55 PM 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*^^*
TheDark Posted November 6, 2006 at 11:43 PM Report #62586 Posted November 6, 2006 at 11:43 PM 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.
Chuckytah Posted November 7, 2006 at 04:31 PM Author Report #62684 Posted November 7, 2006 at 04:31 PM 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*^^*
brink@ero Posted November 7, 2006 at 10:55 PM Report #62813 Posted November 7, 2006 at 10:55 PM 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 😉
TheDark Posted November 8, 2006 at 12:00 AM Report #62842 Posted November 8, 2006 at 12:00 AM 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.
brink@ero Posted November 8, 2006 at 12:07 AM Report #62844 Posted November 8, 2006 at 12:07 AM LOL Esquece a minha 2.ª nota... pensei que estavas a escrever o 10.º elemento no vector... dá... estás é ler a variável X... Cumpr. bk@ero 😉
Chuckytah Posted November 8, 2006 at 04:48 PM Author Report #62952 Posted November 8, 2006 at 04:48 PM 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*^^*
brink@ero Posted November 8, 2006 at 07:45 PM Report #63006 Posted November 8, 2006 at 07:45 PM 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 😛
NuGuN Posted November 8, 2006 at 07:50 PM Report #63008 Posted November 8, 2006 at 07:50 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now