Occam Gates
-
Posts
4 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Occam Gates
-
-
algoritmo "busca sequencial " var j,k, vb : inteiro v : vetor[1..20] de inteiro v1: vetor [1..20] de inteiro achou : logico RESP: logico ENTER:caractere procedimento preenchevetor var j : inteiro inicio para j de 1 ate 20 faca v[j] <- randi(200) escreval(j:10,v[j]:10) fimpara fimprocedimento inicio RESP:= verdadeiro enquanto RESP = verdadeiro faca preenchevetor escreva("Entre com o valor de busca (ESC termina) :") leia(vb) j <- 1 repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate (achou=verdadeiro) ou (j>20) se achou entao escreval("Achei ", vb , " na posição ", j) senao repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate(achou > 0) ou (j>20) escreval(" o valor ", vb , "repetiu na posição ", j) fimse escreva ("Pressione ENTER para continuar") leia(ENTER) fimenquanto fimalgoritmo
Saudações meu amigo Simon Viegas, voltei com o código ainda em construção, inclusive tentei fazer o solicitado no post #2, mas estamos quase lá ! Observe que acrescentei o repita dessa vez com "achou >0" como forma de tentar encontrar ocorrências, mas nada ainda.Desde já obrigado.
-
Citação:
Spoiler7 horas atrás, Simon Viegas disse:Olá.
1#
Mantenha o código indentado. No Visualg o comando CTRL+G pode ajudar.
Ex.:
algoritmo "busca sequencial " var j,k, vb : inteiro v : vetor[1..20] de inteiro v1: vetor [1..20] de inteiro achou : logico RESP: logico procedimento preenchevetor var j : inteiro inicio para j de 1 ate 20 faca v[j] <- randi(200) escreval(j:10,v[j]:10) fimpara fimprocedimento inicio RESP:= verdadeiro enquanto RESP = verdadeiro faca preenchevetor escreva("Entre com o valor de busca (ESC termina) :") leia(vb) j <- 1 repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate (achou=verdadeiro) ou (j>20) se achou entao escreval("Achei ", vb , " na posição ", j) senao se ( v[j] = vb) entao escreval(" Valor: ", vb , " repetiu na posição ", j) senao escreval("Nao achei.") fimse fimse fimenquanto fimalgoritmo
2#
Vou tentar dar um pontapé inicial...
No código abaixo deixei apenas o trecho que "inicialmente tenta encontrar uma posição igual no vetor ou chegar ao fim. Se encontrar um igual, exibe a informação adequada":
algoritmo "busca sequencial " var j,k, vb : inteiro v : vetor[1..20] de inteiro v1: vetor [1..20] de inteiro achou : logico RESP: logico ENTER:caractere procedimento preenchevetor var j : inteiro inicio para j de 1 ate 20 faca v[j] <- randi(200) escreval(j:10,v[j]:10) fimpara fimprocedimento inicio RESP:= verdadeiro enquanto RESP = verdadeiro faca preenchevetor escreva("Entre com o valor de busca (ESC termina) :") leia(vb) j <- 1 repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate (achou=verdadeiro) ou (j>20) se achou entao escreval("Achei ", vb , " na posição ", j) {senao} { se ( v[j] = vb) entao} { escreval(" Valor: ", vb , " repetiu na posição ", j)} { senao} { escreval("Nao achei.")} { fimse} fimse escreva ("Pressione ENTER para continuar") leia(ENTER) fimenquanto fimalgoritmo
Insira isso tudo dentro de outro repita. Este vai terminar também quando j>20, ou seja, vai procurar procurar novamente... até que chegue ao fim do vetor. Entende?
Então, isso não é "uma" solução pronta. Verás por exemplo que vai ficar encontrando o mesmo número toda hora.. isso vai acontecer porque o j estará com o mesmo valor. Daí é com você.
Tente entender a proposta e vá tentando corrigir.
Obs.: nesse momento não se preocupe se é um número repetido ou não. Apenas faça que exiba todas as ocorrências de um mesmo número no vetor, ou seja, se tiver 3 números iguais, deve exibir que achou 3 vezes. Mais pra frente pensa nessa questão se é repetido.
Qualquer dúvida é só perguntar.
No aguardo.
Ao tempo que agradeço a interação, deixo meu entendimento após sua excelente explicação.
Fiz o que me disse, Inclusive acrescentei o vetor de modo que achou > 1,
como forma de tentar fazer com que o vetor pudesse encontrar as ocorrências, mas não consegui.algoritmo "busca sequencial " var j,k, vb : inteiro v : vetor[1..20] de inteiro v1: vetor [1..20] de inteiro achou : logico RESP: logico ENTER:caractere procedimento preenchevetor var j : inteiro inicio para j de 1 ate 20 faca v[j] <- randi(200) escreval(j:10,v[j]:10) fimpara fimprocedimento inicio RESP:= verdadeiro enquanto RESP = verdadeiro faca preenchevetor escreva("Entre com o valor de busca (ESC termina) :") leia(vb) j <- 1 repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate (achou=verdadeiro) ou (j>20) se achou entao escreval("Achei ", vb , " na posição ", j) senao repita se ( v[j] = vb) achou <- verdadeiro ate (achou > 1) ou (j>20) escreval(" Valor: ", vb , " repetiu na posição ", j)} senao} escreval("Nao achei.")} fimse fimse escreva ("Pressione ENTER para continuar") leia(ENTER) fimenquanto fimalgoritmo
-
Saudações galera, sou novo em programação e gostaria de suas valiosa dicas com relação a seguinte questão:
Faça um programa que efetue a busca do tipo sequencial por um valor em um vetor de 200 posições, sabendo que o mesmo valor pode ocorrer mais de uma vez no vetor. O programa deve imprimir o número de ocorrências do valor de busca, caso ocorram.
Obs. (O programa deve ser desenvolvido por meio da ferramenta Visualg)
Comecei fazendo a questão, porém o mesmo não consegue identificar os valores repetidos no vetor. Por gentileza onde estou errando ?
Segue o código do programa:
algoritmo "busca sequencial " var j,k, vb : inteiro v : vetor[1..20] de inteiro v1: vetor [1..20] de inteiro achou : logico RESP: logico procedimento preenchevetor var j : inteiro inicio para j de 1 ate 20 faca v[j] <- randi(200) escreval(j:10,v[j]:10) fimpara fimprocedimento inicio RESP:= verdadeiro enquanto RESP = verdadeiro faca preenchevetor escreva("Entre com o valor de busca (ESC termina) :") leia(vb) j <- 1 repita se v[j] = vb entao achou <- verdadeiro senao j <- j+1 fimse ate (achou=verdadeiro) ou (j>20) se achou entao escreval("Achei ", vb , " na posição ", j) senao se ( v[j] = vb) entao escreval(" Valor: ", vb , " repetiu na posição ", j) senao escreval("Nao achei.") fimse fimse fimenquanto fimalgoritmo
No mais só tenho a agradecer.
- 1
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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
Programa de busca (sequencial) em vetor inclusive identificar repetições
em Programação - iniciantes
Postado
Amigo agradeço, confesso que fiquei perdido na questão. Agradeço a você com sua excelente metodologia. (mas é assim mesmo, com os erros só temos a melhorar nosso aprendizado)...És um ótimo professor - parabéns.