Ir ao conteúdo
  • Cadastre-se

Occam Gates

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Occam Gates

  1. 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.

     

  2. Citação:

    Spoiler
    7 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
  3. 😃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.

    • Curtir 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!