Ir ao conteúdo
  • Cadastre-se
anonymouatour

m programa para armazenar o RG de 100 pessoas visualg

Recommended Posts

Olá alguém poderia me ajudar neste ‘programinha’.Gostaria de fazer um programa para armazenar o RG de 100 pessoas.E ele vai ter no menu as opções ;

OBSERVE ABAIXO TEM UMA PARTE DO CÓDIGO DO PROGRAMA QUE FIZ JÁ ALGUMAS COISAS!!!

 

Adicionar: realizar a pesquisa para saber se o RG existe ou não no vetor.

                   Se ele existir apenas informar que o valor se encontra e não adicione.

                   Se ele não existir verifica se o vetor está lotado antes de inserir

 

Pesquisar:  A pessoa vai escolher entre a pesquisa sequencial ou binária.

                     Se a pesquisa binaria for a escolhida só informar que o vetor deve está ordenador e deixe a pessoa escolher a ordenação antes de efetuar a pesquisa.

 

Ordenar: A pessoa vai poder escolher o método de ordenação que deseja. Tem que ser 4 metodos ; bubblesort,seleção direta,inserção direta e merge sort. QUANDO FOR APLICAR NO MENU UTILIZAR ESSES NÃO TODOS QUE ESTÃO LÁ ABAIXO!!

Se o vetor já estiver ordenado, informar a pessoa para não fazer ordenação.

 

Remover: a pessoa vai poder remover todos elementos do vetor ou apenas um.

                  No caso de remover apenas um a pessoa  vai ter que informar qual elemento a ser removido(reordene o vetor)

________________________________________________

Tela Inicial do programa:

ALGORITOMO CADASTRANDO – PROGRAMA RG

[1] Adicionar

[2] Pesquisar

[3] Ordenar

[4] Remover

[0] Sair

Opção:

_______________________________________________________________________________________

Tela do menu adicionar:

ALGORITMO – PROGRAMA RG

ADICIONAR ELEMENTO

RG [POSIÇÃO ATUAL DO VETOR]:

_______________________________________________________________________________________

Tela do menu Pesquisar:

ALGORITMO – PROGRAMA RG

PESQUISAR ELEMENTO

[1] Pesquisa Sequencial

[2] Pesquisar Binária

[0] Voltar

Opção:

______________________________________________________________________________________

Tela do menu Ordenar:

ALGORITMO – PROGRAMA RG

ORDENAR VETOR

[1] Método Bubblesort,

[2] Método Quicksort

[3] Método Heapsort

[4] Método Merge sort

[5] Método Seleção Direta

[6] Método Inserção direta

[0] Voltar

Opção:

 

CÓDIGO DO PROGRAMA QUE EU ESTAVA FAZENDO:

Algoritmo "PROGRAMINHA"
tipo
pessoa = registro
 rg: inteiro
 nome: caractere
fimregistro

Var
 func: vetor [1..100] de pessoa
 i: inteiro
 menu: inteiro


procedimento Cadastrar()
inicio
      limpatela
se (i<101) então
    escreval("CADASTRAR FUNCIONÁRIO")
    escreva("RG:")
    leia(func.rg)
    escreva("Nome:")
    leia(func.nome)
    i<- i +1
senao
  escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
fimse
fimprocedimento

procedimento Procurar()
var
 rg: inteiro
 j:inteiro

inicio
 limpatela
 escreval("BUSCAR RG DO FUNCIONÁRIO")
 escreva("Número da pesquisa")
 leia(rg)
 para j de 1 ate (i-1) faca
  se (func[j].rg = rg) então
   escreval("RG:",func[j].rg)
   escreval("NOME",func[j].nome)
  fimse
  fimpara
  leia(rg)
  fimprocedimento
  
procedimento listar
inicio
ESCREVAL ("LISTAR TODOS OS RGS")
PARA i DE 1 ATE func.rg faca
   escreval ("RG")
   escreval(func.rg)
   escreval("--------------")
   escreval(func.nome)
   escreval("--------------")
fimpara
fimprocedimento

procedimento Remover()
var rg: inteiro
     j:inteiro
inicio
escreval("APAGAR FUNCIONÁRIO")
 escreva("DIGITE O FUNCIONario que quiera removerr")
 leia(rg)
para j de 1 ate (i-1) faca
func[j].rg <-func[j].rg + 1
j <- j-1
fimpara
fimprocedimento

  inicio
   i <- 1
   repita
    limpatela
    escreval("UNICARIOCA – PROGRAMA RG")
    escreval("[1] Adicionar")
    escreval("[2] Pesquisar")
    escreval("[3] Ordenar")
    escreval("[4] Remover")
    escreval("[0] Sair")
    escreva("Opção:")
   leia(menu)
   escolha menu
    caso 0
         escreval("Desconectado")
    caso 1
         Cadastrar()
    caso 2
         Procurar()
    caso 3
         listar()
    caso 4
         remover()
  fimescolha
ate (menu=0)
fimalgoritmo 

 

Editado por Simon Viegas
Ao postar um código, favor inserir na tag CODE (botão <>)
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.  Está desenvolvendo com que programa?

Te aconselho a usar o Delphi.   Tem uma montanha de dicas nos fóruns e sua aplicação é, na verdade, bem tranquila de se fazer

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela sugestão é porque estou utilizando visualg portugol para construir este programa ai precisa ser realmente nele é uma tarefa da escola

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @anonymouatour, a minha sugestão é que tente fazer o seu algoritmo por partes, e não tudo de uma vez...

 

Primeiro faça a parte de ADICIONAR e LISTAR (somente esses). Testa, e verifica se está mais ou menos certo, aí poste seu código aqui. Após, analisaremos e daremos continuidade.

Obs.: se fizer o adicionar e listar e já quiser adiantar para outra parte, pode sem problemas, o que não pode é tentar seguir em frente sem antes deixar essa parte "inicial" sem está funcionando corretamente. (é mais fácil corrigir no início e seguir em frente, do que tentar fazer tudo de uma vez e tentar corrigir também tudo de uma vez)

 

PS: de antemão já adianto que você está utilizando a variável i para duas finalidades diferentes: tanto para armazenar o total de cadastros já feitos, tanto para percorrer um para, ou seja, ao executar o para, irá perder o valor de antes!!!

RESUMINDO: utilize outra variável para armazenar o total já cadastrado (ex.: total, cont etc), e deixe o i (e j) exclusivamente para "auxiliar nos para".

 

Obs.: por convenção, o i, j, k... são usados para esse fim mesmo (no para). Evite usar eles para outra coisa.

Obs2.: veja, é apenas uma CONVENÇÃO. Você poderia usar qualquer outro nome de variável no para! ou mesmo usar o i para outra coisa... mas recomendo "seguir o padrão".

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, vou fazer essas duas partes e quando terminar posto aqui muito obrigado e um grande abraço

adicionado 16 minutos depois

segue o codigo meu amigo testei aqui está funcionando normalmente  

 

Algoritmo "PROGRAMINHA"
tipo
pessoa = registro
 rg: inteiro
 nome: caractere
fimregistro
Var
 func: vetor [1..100] de pessoa
 i: inteiro
 menu: inteiro
procedimento Adicionar()
inicio
limpatela
se (i<101) então
    escreval(" FUNCIONÁRIO")
    escreva("RG:")
    leia(func.rg)
    escreva("Nome:")
    leia(func.nome)
    i<- i +1
senao
  escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
fimse
fimprocedimento
procedimento Pesquisar()
var
 rg: inteiro
 j:inteiro
inicio
 limpatela
 escreval("BUSCAR RG DO FUNCIONÁRIO")
 escreva("Número da pesquisa")
 leia(rg)
 para j de 1 ate (i-1) faca
  se (func[j].rg = rg) então
   escreval("RG:",func[j].rg)
   escreval("NOME",func[j].nome)
  fimse
  fimpara
  leia(rg)
  fimprocedimento
inicio
   i <- 1
   repita
    limpatela
    escreval("UNICARIOCA – PROGRAMA RG")
    escreval("[1] Adicionar")
    escreval("[2] Pesquisar")
    escreva("Opção:")
   leia(menu)
   escolha menu
    caso 0
         escreval("Desconectado")
    caso 1
         Adicionar()
    caso 2
         Pesquisar()
 fimescolha
ate (menu=0)
fimalgoritmo
adicionado 18 minutos depois

Estou utilizando esta versão essa https://sourceforge.Net/projects/visualg30/

adicionado 20 minutos depois

Só não armazena outros valores só ta pegando um também

Editado por DiF
Botão CODE <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Veja o comentário lá no código:

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg: inteiro
    nome: caractere
  fimRegistro
var
  func:vetor[1..100] de pessoa
  i   :inteiro
  menu:inteiro

procedimento Adicionar()
  inicio
  limpaTela
  se (i<101) então
    escreval(" FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func[i].rg) //aqui faltou o [i]
    escreva("Nome: ")
    leia(func[i].nome) //aqui faltou o [i]
    i<-i+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    rg :inteiro
    j  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa")
  leia(rg)
  para j de 1 ate (i-1) faca
    se (func[j].rg = rg) então
      escreval("RG:",func[j].rg)
      escreval("NOME",func[j].nome)
    fimSe
  fimPara
  leia(rg)
  fimProcedimento
INICIO
i <- 1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 0
    escreval("Desconectado")
  caso 1
     Adicionar()
  caso 2
     Pesquisar()
  fimescolha
ate (menu=0)
fimAlgoritmo


 

Aproveite e siga a orientação:

21 horas atrás, Simon Viegas disse:

Obs.: por convenção, o i, j, k... são usados para esse fim mesmo (no para). Evite usar eles para outra coisa.

Ou seja, troque a nomenclatura de desse i para qualquer outra coisa (ex.: total)!!! Desse modo, inclusive, já daria para usar o i lá no outro procedimento (em vez de j).

 

Outro ponto:

Eu sugeri fazer o procedimento para LISTAR, mas você fez para PESQUISAR :). São coisas diferentes*! Tente fazer esse procedimento para listar logo, (mesmo que não faça parte dos requisitos!!! depois você remove!) pois ele vai servir para verificar se o vetor está armazenando corretamente. Será muito útil principalmente na hora de verificar se ordenou corretamente ou não.

 

 

RESUMINDO (sugestões):

- Troque o i para total; (ou outro nome sugestivo para a sua função no programa)

- Faça o procedimento para listar; (utilize por exemplo a opção de menu "9");

- Faça testes e deixe o ADICIONAR e LISTAR funcionando direitinho. Deixa o PESQUISAR também funcionado.

- Posta aqui o código atual e onde está com dúvidas nele (ou apenas para revisarmos). E parte para "imaginar" como vai fazer para REMOVER.

 

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok desculpa vi agora vou ver e depois te mostro obgd

adicionado 37 minutos depois

tentei fazer o listar mas não está funcionando e troquei ja o i por total como você disse

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg: inteiro
    nome: caractere
  fimRegistro
var
  func:vetor[1..100] de pessoa
  total   :inteiro
  menu:inteiro
procedimento Adicionar()
  inicio
  limpaTela
  se (total<101) então
    escreval(" FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func[total].rg) //aqui faltou o
    escreva("Nome: ")
    leia(func[total].nome) //aqui faltou o 
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento
procedimento Pesquisar()
  var
    rg :inteiro
    j  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa")
  leia(rg)
  para total de 1 ate (j-1) faca
    se (func[j].rg = rg) então
      escreval("RG:",func[j].rg)
      escreval("NOME",func[j].nome)
    fimSe
  fimPara
  leia(rg)
  fimProcedimento
  
  
  
procedimento Listar
inicio
ESCREVAL ("LISTAR TODOS OS RGS")
PARA total DE 1 ATE func[total].rg faca
   escreval ("RG")
   escreval(func[total].rg)
   escreval("--------------")
   escreval(func[total].nome)
   escreval("--------------")
fimpara
fimprocedimento
INICIO
total <- 1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 0
    escreval("Desconectado")
  caso 1
     Adicionar()
  caso 2
     Pesquisar()
  caso 3
     Listar()
  fimescolha
ate (menu=0)
fimAlgoritmo

 

Editado por DiF
Botão CODE <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei ja colocar a pesquisa sequencial buscar mas apresenta erros olista q n conseguir fazer 

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg: inteiro
    nome: caractere
  fimRegistro
var
  func:vetor[1..100] de pessoa
  i   :inteiro
  menu:inteiro
  x:inteiro
  elemento:inteiro
  

procedimento Adicionar()
  inicio
  limpaTela
  se (i<101) então
    escreval(" FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func.rg)
    escreva("Nome: ")
    leia(func.nome)
    i<-i+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    rg :inteiro
    j  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa")
  leia(rg)
  para j de 1 ate (i-1) faca
    se (func[j].rg = rg) então
      escreval("RG:",func[j].rg)
      escreval("NOME",func[j].nome)
    fimSe
  fimPara
  leia(rg)
  fimProcedimento
  


funcao Buscar(x:inteiro):inteiro
var retorna:inteiro
inicio
retorna <- -1
para i de 1 ate 100 faca
se(func[j].rg = x )então
retorna <- i
para i de 1 ate 100 faca
   escreva("RG",i,":")
leia(func[j].rg)
fimpara
 repita
   escreval("buscar eleento")
   leia(x)
   elemento <- Buscar(x)
   se(elemento >0) então
   escreval("elemento",elemento)
   senao
   escreval("elemento n encontradokkk")
   fimse
   ate (elemento = -1)
fimse
fimpara
retorne retorna
fimfuncao


INICIO
i <- 1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3]Buscar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 0
    escreval("Desconectado")
  caso 1
     Adicionar()
  caso 2
     Pesquisar()
  caso 3
     Buscar(x)
  fimescolha
ate (menu=0)
fimAlgoritmo 

 

Editado por Simon Viegas
Ao postar um código, favor inserir na tag CODE (botão <>)
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei em que base está fazendo isso, mas por exemplo, no Delphi, se você usar palavras chave do programa, como nomes de procedures ou variáveis, dá pau mesmo.

Editado por malepobox
Outra resposta
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @anonymouatour.

 

Abaixo, dei uma reorganizada no seu código.

 

Spoiler

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg  :inteiro
    nome:caractere
  fimRegistro
var
  func    :vetor[1..100] de pessoa
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro

procedimento Adicionar()
  inicio
  limpaTela
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func[total].rg)
    escreva("Nome: ")
    leia(func[total].nome)
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func[i].rg = rg) então
      escreval("RG  :",func[i].rg)
      escreval("NOME:",func[i].nome)
    fimSe
  fimPara
  leia(rg) //para que esse comando? [Simon.Viegas]
  fimProcedimento

//Não mexi na função, apenas identei [Simon.Viegas]
funcao Buscar(x:inteiro):inteiro
  var
    retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate 100 faca
    se(func[j].rg = x )então
      retorna <- i
      para i de 1 ate 100 faca
        escreva("RG",i,":")
        leia(func[j].rg)
      fimPara
      repita
        escreval("buscar eleento")
        leia(x)
        elemento <- Buscar(x)
        se(elemento >0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  fimFuncao

INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Buscar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Buscar(x)
  fimEscolha
ate (menu=0)
fimAlgoritmo

 

Minhas sugestões:

 

1) Insira o procedimento para LISTAR. Esse procedimento apenas irá mostrar o RG e NOME de todos os cadastros. Ele vai servi para testar se os dados estão sendo cadastrados ou não. Insira essa opção como 9, lá no menu principal;

Vai ficar assim:

 

Em 17/10/2016 às 09:44, anonymouatour disse:

Tela Inicial do programa:

ALGORITOMO CADASTRANDO – PROGRAMA RG

[1] Adicionar

[2] Pesquisar (em breve)

[3] Ordenar   (em breve)

[4] Remover  (em breve)

[9] Listar        obs.: apenas para teste

[0] Sair

Opção:

 

2) Após ADICIONAR, e LISTAR estarem funcionando como deseja, teste a função Pesquisar. Lembrando que caso não encontre o cadastro desejado, deverá exibir uma informação, algo como "Cadastro não encontrado";

O menu do Pesquisar ficará mais ou menos assim:

 

Em 17/10/2016 às 09:44, anonymouatour disse:

Tela do menu Pesquisar:

ALGORITMO – PROGRAMA RG

PESQUISAR ELEMENTO

[1] Pesquisa Sequencial

[2] Pesquisar Binária  (em breve)

[0] Voltar

Opção:

Essa pesquisa sequencial é a que você já fez... está quase pronto!! (antes você precisar revisar o ADICIONAR e LISTAR, após revisa essa pesquisa sequencial.

 

3) Implemente um dos métodos de ordenação, sugiro o BubbleSort primeiro.

Em 17/10/2016 às 09:44, anonymouatour disse:

Tela do menu Ordenar:

ALGORITMO – PROGRAMA RG

ORDENAR VETOR

[1] Método Bubblesort,

[2] Método Quicksort (em breve)

[3] Método Heapsort (em breve)

[4] Método Merge sort (em breve)

[5] Método Seleção Direta (em breve)

[6] Método Inserção direta (em breve)

[0] Voltar

Opção:

 

 

No aguardo.

 

 

Editado por Simon Viegas
Inserir tag SPOILER no código
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

conseguir colocar o listar mas so o listar....  o buscar n funciona dar erro que n encontrou a funcao buscar..e sobe esses menus eu n tenho ideia de como vou fazer eles 

 

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg  :inteiro
    nome:caractere
  fimRegistro
var
  func    :vetor[1..100] de pessoa
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro

procedimento Adicionar()
  inicio
  limpaTela
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func[total].rg)
    escreva("Nome: ")
    leia(func[total].nome)
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func.rg = rg) então
      escreval("RG  :",func.rg)
      escreval("NOME:",func.nome)
    fimSe
  fimPara
  leia(rg) //para que esse comando? se eu tirar ele n vai mostrar o rg[Simon.Viegas]
  fimProcedimento

//Não mexi na função, apenas identei a função n estou conseguindo retornar ela abaixo la no case dar erro[Simon.Viegas]
funcao Buscar(x:inteiro):inteiro
  var
   retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate total faca
    se(func[total].rg = x )então
      retorna <- total
      para total de 1 ate 100 faca
        escreva("RG",total,":")
        leia(func[total].rg)
      fimPara
      repita
        escreval("buscar eleento")
        leia(x)
        elemento <- Buscar(x)
        se(elemento >0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  fimFuncao

procedimento Listar
var
rg:inteiro
i:inteiro

inicio
escreval ("LISTAR..........")
para i DE 1 ate total faca
   escreval (" RG  ", "    ")
   escreval (i, " ", func.rg, " ", func.nome)
fimpara
leia(rg)
fimprocedimento

INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Buscar")
  escreval("[4] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Buscar(x)
     caso 4
        Listar()

  fimEscolha
ate (menu=0)
fimAlgoritmo

 

 

adicionado 3 minutos depois

no caso a pesquisa binaria meu professor vai fala sexta feira sobre ela  por enquanto é até a sequencial ai eu posto aqui dps no forum  , além dos outros metodos ele n disse ainda ai estou indo por etapas pra entregar certinho abs

Editado por Simon Viegas
anonymouatour, por favor, ao postar um código utilizar a tag CODE, fica no botão <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok  vou fazer isto no sábado que tenho mais tempo livre ai eu posto aqui assim que terminar e já aproveitar para inserir depois a binaria que meu professor vai passar hj

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

pronto já concluir tudo que voce pediu segue abaixo o codigo funcionando

Algoritmo "PROGRAMINHA"
tipo
  pessoa = registro
    rg  :inteiro
    nome:caractere
  fimRegistro
var
  func    :vetor[1..100] de pessoa
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro

procedimento Adicionar()
  inicio
  limpaTela
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  : ")
    leia(func[total].rg)
    escreva("Nome: ")
    leia(func[total].nome)
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
   rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func.rg = rg) então
      escreval("RG  :",func.rg)
      escreval("NOME:",func.nome)
      senao
      escreval("cadastro não encontrado")
    fimSe
  fimPara
  leia(rg) //para que esse comando? se eu tirar ele n vai mostrar o rg e o nome[Simon.Viegas]
  fimProcedimento


procedimento Listar
var
rg:inteiro
i:inteiro

inicio
escreval ("LISTAR..........")
para i de 1 ate (total-1) faca
   escreval (" RG  ", "    ")
   escreval (i, " ", func.rg, " ", func.nome)
fimpara
leia(rg)
fimprocedimento

INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Listar()
   fimEscolha
ate (menu=0)
fimAlgoritmo

 

Editado por Simon Viegas
Ao postar um código, utilize a tag CODE (Botão <>)
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @anonymouatour.

 

16 horas atrás, anonymouatour disse:

pronto já concluir tudo que voce pediu segue abaixo o codigo funcionando

 

Está quase lá, mas ainda não está como solicitado. Falta corrigir a lista dos menus, veja que nem a opção "0" está listada no seu código... e fazer alguns testes também.

 

RESUMINDO:

Baseando lá na postagem:

- Refaça o menu de opções principal (o seu está incompleto) e faça o menu do PESQUISAR e menu do ORDENAR, que ainda não existem;

- Altere o total de cadastros possível de 100 para 5 (no vetor e no código) e faça testes tentado cadastrar mais de 5. (dica para agilizar: tente com dados 11, 22, 33 etc, tanto para o nome tanto para o RG);

- Insira o método de ordenação Bubblesort;

- Insira o método de pesquisa Binário;

- Vá fazendo outros ajustes que achar necessário.

 

***

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

então é nisso que  não estou conseguindo fazer  criar a  Tela do menu Pesquisar:

adicionado 1 minuto depois

dar uma explicação pra ve se consigo pegar e conseguir fazer mais ou menos

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tirei o registro meu professor disse q n precisava fazer ai agr está  em vetor agr.mas eu estou fazendo menu já conseguir fazer ele mas quando vou abrir o programa tipo abre o menu ai escolho adicionar ai ele pede pra inserir no caso o rg;; quando insiro o rg << ele abre o menu que tem a opção adicionar novamente e voltar.

mesma coisa da pesquisa veja como está bugado faz o teste e eu coloquei nos menus tipo outras opções na parte que está  fimescolha ate (menu=2)  no caso o 2 seria aopçao de voltar porque o 0 está como opção de sair segue abaixo o codigo e também a funcao buscar n está funcionando meu professor disse q ta rodando la no dele mais aqui n roda de jeito nenhum segue abaixo o codigo do programa

 

Algoritmo "PROGRAMINHA"

var
  func    :vetor[1..100] de inteiro
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro

procedimento Adicionar()   //funcionando
 inicio
 limpaTela

  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  :   ")
    leia(func[total])
    total<-total+1

  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 1
   Adicionar()
  fimEscolha
ate (menu=2)

fimProcedimento

procedimento Pesquisar()  //funcionando
  var
    rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func= rg) então
      escreval("RG  :",func)
    senao
     escreval("não encontrado")
    fimSe
  fimPara
  leia(rg) //para que esse comando? se eu tirar ele n vai mostrar o rg[Simon.Viegas]
  total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG ")
  escreval("PESQUISAR ELEMENTO")
  escreval("[1] Pesquisa Sequencial")
  escreval("[2] Pesquisa Binária")
  escreval("[3] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
 caso 1
    Buscar(x)
  fimEscolha
ate (menu=3)
fimProcedimento

//Não mexi na função, apenas identei a função n estou conseguindo retornar ela abaixo la no case dar erro[Simon.Viegas]
funcao Buscar(x:inteiro):inteiro
  var
      retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate (total-1) faca
    se(func[total] = x )então
      retorna <- total
      para total de 1 ate 100 faca
        escreva("RG",total)
        leia(func[total])
      fimPara
      repita
        escreval("buscar eleemnto")
        leia(x)
        elemento <- Buscar(x)
        se(elemento >0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  fimFuncao

procedimento Listar
var
rg:inteiro
i:inteiro

inicio
escreval ("LISTAR..........")
para i DE 1 ate (total-1) faca
   escreval (" RG  ", "    ")
   escreval (i, " ", func)
fimpara
leia(rg)
fimprocedimento

INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Buscar")
  escreval("[4] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Buscar(x)
     caso 4
        Listar()

  fimEscolha
ate (menu=0)
fimAlgoritmo


 

adicionado 1 minuto depois

eu já tenho codigo da busca binaria mas n da pra fazer com esse programa  sem funcionar

adicionado 1 minuto depois

estou testatno também com numeros menores como você disse pra ve se ta pegando realmente está rodando legal

Editado por Simon Viegas
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já implementei a buscabinaria e a sequencial mas está dando error e continua mesmo problema que citei em cima olha o codigo

 

Algoritmo "PROGRAMINHA"
var
  func    :vetor[1..100] de inteiro
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro
  j:inteiro

procedimento Adicionar()   //funcionando
 inicio
 limpaTela
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  :   ")
    leia(func[total])
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 1
   Adicionar()
  fimEscolha
ate (menu=2)
fimProcedimento
procedimento Pesquisar()  //funcionando
  var
    rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func= rg) então
      escreval("RG  :",func)
    senao
     escreval("não encontrado")
    fimSe
  fimPara
  leia(rg) //para que esse comando? se eu tirar ele n vai mostrar o rg[Simon.Viegas]
  total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG ")
  escreval("PESQUISAR ELEMENTO")
  escreval("[1] Pesquisa Sequencial")
  escreval("[2] Pesquisa Binária")
  escreval("[3] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
 caso 1
    Buscar(x)
 caso 2
  BuscaBinaria(x,n)
  fimEscolha
ate (menu=3)
fimProcedimento
//Não mexi na função, apenas identei a função n estou conseguindo retornar ela abaixo la no case dar erro[Simon.Viegas]
funcao Buscar(x:inteiro):inteiro
  var
      retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate (total-1) faca
    se(func[total] = x )então
      retorna <- total
      para total de 1 ate 100 faca
        escreva("RG",total)
        leia(func[total])
      fimPara
      repita
        escreval("buscar eleemnto")
        leia(x)
        elemento <- Buscar(x)
        se(elemento >0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  fimFuncao
  

funcao BuscaBinaria (x,n:inteiro):inteiro
var retorna,min,max,meio:inteiro
retorna <- -1
 min <-1
 max <- n
 enquanto (min <=max) faca
 meio <- (min +max) \ 2
 se (func[j] = x) então
 retorna <-meio
 interrompa
 senao
 se(func[meio] < x)então
 min <-meio +1
 senao
 max <-meio -1
 fimse
 fimse
 fimenquanto
 retorne retorna
escreval("vetor ordenado")
para j de 1 ate (total-1) faca
escreva("vetor",j)
leia(func[j])
fimpara
repita
escreva("buscar elemento")
leia(elemento)
elemento <- BuscaBinaria(elemento,10)
se (elemento >= 0)então
escreval("elemento na posição!",elemento)
senao
 escreval("elemento n encontrado")
 fimse
 ate(elemento = -1)
 fimfuncao
  
  
  
procedimento Listar
var
rg:inteiro
i:inteiro
inicio
escreval ("LISTAR..........")
para i DE 1 ate (total-1) faca
   escreval (" RG  ", "    ")
   escreval (i, " ", func)
fimpara
leia(rg)
fimprocedimento
INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Buscar")
  escreval("[4] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Buscar(x)
     caso 4
        Listar()
     caso 5
      BuscaBinaria(x,n)
  fimEscolha
ate (menu=0)
fimAlgoritmo
 

 

Editado por DiF
Botão CODE <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algoritmo "PROGRAMINHA"
var
  func    :vetor[1..100] de inteiro
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro
  j:inteiro

procedimento Adicionar()   //funcionando
 inicio
 limpaTela
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  :   ")
    leia(func[total])
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 1
   Adicionar()
  fimEscolha
ate (menu=2)
fimProcedimento
procedimento Pesquisar()  //funcionando
  var
    rg :inteiro
    i  :inteiro
  inicio
  limpaTela
  escreval("BUSCAR RG DO FUNCIONÁRIO")
  escreva("Número da pesquisa: ")
  leia(rg)
  para i de 1 ate (total-1) faca
    se (func= rg) então
      escreval("RG  :",func)
    senao
     escreval("não encontrado")
    fimSe
  fimPara
  leia(rg) //para que esse comando? se eu tirar ele n vai mostrar o rg[Simon.Viegas]
  total<-1
repita
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG ")
  escreval("PESQUISAR ELEMENTO")
  escreval("[1] Pesquisa Sequencial")
  escreval("[2] Pesquisa Binária")
  escreval("[3] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
 caso 1
    Buscar(x)
 caso 2
  BuscaBinaria(x,n)
  fimEscolha
ate (menu=3)
fimProcedimento
//Não mexi na função, apenas identei a função n estou conseguindo retornar ela abaixo la no case dar erro[Simon.Viegas]
funcao Buscar(x:inteiro):inteiro
  var
      retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate (total-1) faca
    se(func[total] = x )então
      retorna <- total
      para total de 1 ate 100 faca
        escreva("RG",total)
        leia(func[total])
      fimPara
      repita
        escreval("buscar eleemnto")
        leia(x)
        elemento <- Buscar(x)
        se(elemento >0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  fimFuncao
  

funcao BuscaBinaria (x,n:inteiro):inteiro
var retorna,min,max,meio:inteiro
retorna <- -1
 min <-1
 max <- n
 enquanto (min <=max) faca
 meio <- (min +max) \ 2
 se (func[j] = x) então
 retorna <-meio
 interrompa
 senao
 se(func[meio] < x)então
 min <-meio +1
 senao
 max <-meio -1
 fimse
 fimse
 fimenquanto
 retorne retorna
escreval("vetor ordenado")
para j de 1 ate (total-1) faca
escreva("vetor",j)
leia(func[j])
fimpara
repita
escreva("buscar elemento")
leia(elemento)
elemento <- BuscaBinaria(elemento,10)
se (elemento >= 0)então
escreval("elemento na posição!",elemento)
senao
 escreval("elemento n encontrado")
 fimse
 ate(elemento = -1)
 fimfuncao
  
  
  
procedimento Listar
var
rg:inteiro
i:inteiro
inicio
escreval ("LISTAR..........")
para i DE 1 ate (total-1) faca
   escreval (" RG  ", "    ")
   escreval (i, " ", func)
fimpara
leia(rg)
fimprocedimento
INICIO
total<-1
repita
  limpaTela
  escreval("UNICARIOCA – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Pesquisar")
  escreval("[3] Buscar")
  escreval("[4] Listar")
  escreva("Opção:")
  leia(menu)
  escolha menu
     caso 0
       escreval("Desconectado")
     caso 1
        Adicionar()
     caso 2
        Pesquisar()
     caso 3
        Buscar(x)
     caso 4
        Listar()
     caso 5
      BuscaBinaria(x,n)
  fimEscolha
ate (menu=0)
fimAlgoritmo

 

adicionado 0 minutos depois

nem sabia disso foi mal kkkkk

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

No seu código, você está executando a leitura e só depois está exibindo o menu ou tela correspondente...

Por exemplo:

 

2 horas atrás, anonymouatour disse:

Algoritmo "PROGRAMINHA"
var
  func    :vetor[1..100] de inteiro
  {i       :inteiro} //substituido por total [Simon.Viegas]
  total   :inteiro
  menu    :inteiro
  x       :inteiro
  elemento:inteiro
  j:inteiro

procedimento Adicionar()   //funcionando
 inicio
 limpaTela
  //AQUI VOCÊ ESTÁ CADASTRANDO UM FUNCIONARIO
  se (total<101) então
    escreval("FUNCIONÁRIO")
    escreva("RG  :   ")
    leia(func[total])
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
  fimSe
total<-1
repita
  //AQUI VOCÊ ESTA EXIBINDO MENU           
  limpaTela
  escreval("ALGORITMO – PROGRAMA RG")
  escreval("[1] Adicionar")
  escreval("[2] Voltar")
  escreva("Opção:")
  leia(menu)
  escolha menu
  caso 1
   Adicionar()
  fimEscolha
ate (menu=2)

 

 

Veja, o Menu (ou tela) deve vir antes da leitura, ou melhor, a leitura só será feita se for escolhida a opção de adicionar...

 

 

Abaixo tentei dar uma reorganizada no código, veja:

Algoritmo "PROGRAMINHA"
//Obs.: Alterado o total de 100 para 3, para assim facilitar os testes!
//Após, voltar para 100 (lembrar de ajustar o código para o novo valor).
var
  func    :vetor[1..3] de inteiro //armazena os RG dos funcionários
  total   :inteiro                //total de funcionários cadatados
  menu    :inteiro              //usado no menu principal

procedimento aguardarENTER()
  var
    aux :caractere //usado para auxiliar para "pausar antes de continuar"
  inicio
  escreva ("Pressione ENTER para continuar")
  leia(aux) //leitura de variável apenas para aproveitar que precisa aguardar um ENTER
  fimProcedimento

procedimento Adicionar()
  inicio
  limpaTela
  se (total<=3) então
    escreval("ALGORITMO – PROGRAMA RG")
    escreval("ADICIONAR ELEMENTO")
    escreva ("RG [",TOTAL,"]:")
    leia(func[total])
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
    aguardarENTER
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    subMenu :inteiro //usado no menu local
  inicio
  limpaTela
  repita
    escreval(" ALGORITMO – PROGRAMA RG")
    escreval("PESQUISAR ELEMENTO")
    escreval("[1] Pesquisa Sequencial")
    escreval("[2] Pesquisar Binária")
    escreval("[0] Voltar")
    escreval("Opção:")
    leia(subMenu)
    escolha subMenu
      caso 1
        PesquisaSequencial()
      caso 2
        escreval("EM CONSTRUÇÃO")
        {PesquisaBinaria(x,n)} //EM CONSTRUÇÂO
    fimEscolha
  ate (subMenu=0)
fimProcedimento

procedimento PesquisaSequencial()
  var
    rg :inteiro
    i  :inteiro
  inicio





  escreval("EM CONSTRUÇÃO")
  aguardarENTER
fimProcedimento

procedimento Listar
  var
    i :inteiro
  inicio
  escreval ("LISTAR..........")
  para i de 1 ate (total-1) faca
    escreval("Cadastro",i," RG:",func[i])
  fimPara
  aguardarENTER
fimProcedimento
  
  

INICIO
total<-1 //inicializa o total de cadastros
repita
  limpaTela
  escreval("ALGORITOMO CADASTRANDO – PROGRAMA RG")
  escreval("[1] Adicionar                       ")
  escreval("[2] Pesquisar                       ")
  escreval("[3] Ordenar  (em breve)             ")
  escreval("[4] Remover  (em breve)             ")
  escreval("[9] Listar   obs.: apenas para teste")
  escreval("[0] Sair                            ")
  escreval("")
  escreva ("Opção:")
  leia(menu)
  escolha menu
    caso 0
      escreval("Desconectado")
    caso 1
      Adicionar()
    caso 2
      Pesquisar()
    caso 3
      {Ordenar()} //em construção
    caso 4
      {Remover()} //em construção
    caso 9
      Listar() //procedimento provisório. Utilizado para testes
  fimEscolha
ate (menu=0)
fimAlgoritmo

Veja que a ideia é tentar seguir mais ou menos o que está sendo pedido... tentei deixar de uma forma mais simples possível.

 

Minha sugestão é que faça diversos testes, vê se precisa ajustar alguma coisa para o seu gosto, vê se precisa melhor algo e por ai vai...

 

Após, termine de implementar a PesquisaSequencial(). Use seu código como base. Vá fazendo testes e ajustes até o código ficar bom o suficiente para inserir outra coisa (como a PesquisaBinaria).


 

 

No aguardo.

adicionado 8 minutos depois

PS: para facilitar os testes, utilize valores simples, como 1, 2 e 3.. ou 111, 222 e 333... o foco inicial é cadastrar qualquer coisa. Quando tiver mais ou menos pronto... testes com outros valores, ex.: 075357643, 5647952156 e 165498236 e vê como se comporta.

adicionado 16 minutos depois

PS2: Veja que ao escolher o menu 2, do Pesquisar(), o programa vai lá para e começa a executar o que está no procedimento... dentro do Pesquisar(), ao executar o PesquisaSequencial(), o programa vai para lá e começa a executar o que está lá dentro!!! Ao terminar, ou seja, ao executar o fimProcedimento do PesquisaSequencial(), o programa volta exatamente para onde o PesquisaSequencial() foi chamado e executará a próxima instrução, que é ir para o fimEscolha e verificará o ate do repite do Pesquisar()... e assim por diante. Experimente ir pressionando F8 no VisuAlg e ir acompanhando a linha azul no programa.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow cara vls mesmo agora estou conseguindo desenvolver melhor e está ajudando meu aprendizado mas eu estou fazendo com funcao olha o codigo da função da PesquisaSequencial

 

funcao PesquisaSequencial(x:inteiro):inteiro
 var
 retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate (total-1) faca
    se(func[total] = x )então
      retorna <- total
      para total de 1 ate 3 faca
        escreva("RG....",total)
        leia(func[total])
      fimPara
      repita
        escreval("buscar eleemento")
        leia(x)
        elemento <- PesquisaSequencial(x)
        se(elemento > 0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)
    fimSe
  fimPara
  retorne retorna
  aguardarENTER
  fimFuncao

e o inicio do algoritmo

 

Algoritmo "PROGRAMINHA"
//Obs.: Alterado o total de 100 para 3, para assim facilitar os testes!
//Após, voltar para 100 (lembrar de ajustar o código para o novo valor).
var
  func    :vetor[1..3] de inteiro //armazena os RG dos funcionários
               //total de funcionários cadatados
  menu    :inteiro             //usado no menu principal
  elemento, x, total:inteiro

estou tentando rodar mas diz que a variavel PesquisaSequencial não pode ser encontrado n entendo porque ja tentei varias formas e ainda apresenta o erro com procedimento n sei mt bem transferir esse codigo de funcao para procedimento até tentei mas n deu certo 

adicionado 2 minutos depois

fora isto os menus ficaram show de bola alternando tranquilamente...  pior q meu professor já passou o insert e o buble e ainda estou parado na sequencial e binaria 

adicionado 11 minutos depois

http://imgur.com/a/o5z9X

adicionado 12 minutos depois

Link do erro que aparece

adicionado 18 minutos depois

olha como tentei fazer com procedimento 

 

procedimento PesquisaSequencial()
 var
 elemento, x, i:inteiro
 retorna:inteiro
  inicio
  retorna <- -1
  para i de 1 ate 3 faca
    se(func[total] = x )então
      retorna <- total
      fimse
      fimpara
      //retorne retorna
       escreva(retorna)
      repita
        escreval("buscar eleemento")
        leia(x)
        elemento <- PesquisaSequencial
        se(elemento > 0) então
          escreval("elemento",elemento)
        senao
          escreval("elemento n encontradokkk")
        fimSe
      ate (elemento = -1)

    aguardarENTER
  fimprocedimento

 

adicionado 33 minutos depois

agora com procedimento ja começa aparece algumas coisas mas ainda encontra com bug eu digito o elemento as vezes aparece encontrado as vezes n olha o codigo com procedimento

 

 

procedimento PesquisaSequencial()
 var
 elemento, x, i:inteiro
 retorna:inteiro
  inicio
  //retorna <- -1
  para i de 1 ate (total-1) faca
    se(func[total] = x )então
      retorna <- total
      fimse
      fimpara
      //retorne retorna
      // escreva(retorna)
      repita

        escreval("buscar eleemento")
        leia(x)
        elemento <- x
        se(elemento > 0) então
          escreval("elemento econtrando",elemento)
        senao
          escreval("elemento não encontradokkk")
        fimSe
      ate (elemento = -1)

    aguardarENTER
  fimprocedimento

 

adicionado 34 minutos depois

esse ultimo codigo ta pegando mas n o desejavel que é para aparecer encontrado ou n 

adicionado 43 minutos depois

mas meu professor recomendou a fazer com função 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
//arrumei melhor o codigo mas parece q ele n reconhece os valores digitados no adicionar 
procedimento PesquisaSequencial()
 var
 elemento:inteiro
 rg:inteiro
 i:inteiro
 retorna:inteiro
  inicio
 retorna <- 1
  para i de 1 ate 3) faca
    se(func[i] = rg )então
      retorna <- i   //chave encontrada
      escreval(retorna)
      fimse
      fimpara
      repita
      escreval("Digite o elemento")
        leia(rg)
        elemento <- rg
        se(elemento > 0) então
          escreval("elemento econtrando",elemento)
        senao
          escreval("elemento não encontradokkk")
        fimSe
      ate (elemento = -1)
 aguardarENTER
  fimprocedimento

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei a pesquisa sequencial com funcao agora está pelo menos aparecendo buscar o elemento mas n sai disso  aparece td hora buscar elemento ai coloco ai aparece de novo n sai disso segue o codigo com a pesquisa

 

Algoritmo "PROGRAMINHA"
//Obs.: Alterado o total de 100 para 3, para assim facilitar os testes!
//Após, voltar para 100 (lembrar de ajustar o código para o novo valor).
var
  func    :vetor[1..3] de inteiro //armazena os RG dos funcionários
  elemento,rg,i:inteiro
  total   :inteiro                //total de funcionários cadatados
  menu    :inteiro              //usado no menu principal

procedimento aguardarENTER()
  var
    aux :caractere //usado para auxiliar para "pausar antes de continuar"
  inicio
  escreva ("Pressione ENTER para continuar")
  leia(aux) //leitura de variável apenas para aproveitar que precisa aguardar um ENTER
  fimProcedimento

procedimento Adicionar()
  inicio
  limpaTela
  se (total<=3) então
    escreval("ALGORITMO – PROGRAMA RG")
    escreval("ADICIONAR ELEMENTO")
    escreva ("RG [",TOTAL,"]:")
    leia(func[total])
    total<-total+1
  senao
    escreval("NÃO PODE MAIS CADASTRAR NENHUM FUNCIONÁRIO!")
    aguardarENTER
  fimSe
fimProcedimento

procedimento Pesquisar()
  var
    subMenu :inteiro //usado no menu local
  inicio
  limpaTela
  repita
    escreval(" ALGORITMO – PROGRAMA RG")
    escreval("PESQUISAR ELEMENTO")
    escreval("[1] Pesquisa Sequencial")
    escreval("[2] Pesquisar Binária")
    escreval("[0] Voltar")
    escreval("Opção:")
    leia(subMenu)
    escolha subMenu
      caso 1
        escreval("a pesquisa é",PesquisaSequencial(rg))
      caso 2
        escreval("EM CONSTRUÇÃO")
        {PesquisaBinaria(x,n)} //EM CONSTRUÇÂO
    fimEscolha
  ate (subMenu=0)
fimProcedimento

FUNCAO PesquisaSequencial(rg:inteiro):inteiro
  var
    retorna :inteiro
inicio
retorna<- -1
para i de 1 ate (total-1) faca
se(func[i] = rg )então
retorna <- i
fimse
fimpara
retorne retorna

 repita
   escreval("buscar eleento")
   leia(rg)
   elemento <- PesquisaSequencial(rg)
   se(elemento >0) então
   escreval("elemento",elemento)
   senao
   escreval("elemento n encontradokkk")
   fimse
   ate (elemento = -1)


 // escreval("EM CONSTRUÇÃO")
  aguardarENTER
fimFUNCAO

procedimento Listar
  var
    i :inteiro
  inicio
  escreval ("LISTAR..........")
  para i de 1 ate (total-1) faca
    escreval("Cadastro",i," RG:",func[i])
  fimPara
  aguardarENTER
fimProcedimento



INICIO
total<-1 //inicializa o total de cadastros
repita
  limpaTela
  escreval("ALGORITOMO CADASTRANDO – PROGRAMA RG")
  escreval("[1] Adicionar                       ")
  escreval("[2] Pesquisar                       ")
  escreval("[3] Ordenar  (em breve)             ")
  escreval("[4] Remover  (em breve)             ")
  escreval("[9] Listar   obs.: apenas para teste")
  escreval("[0] Sair                            ")
  escreval("")
  escreva ("Opção:")
  leia(menu)
  escolha menu
    caso 0
      escreval("Desconectado")
    caso 1
      Adicionar()
    caso 2
      Pesquisar()
    caso 3
      {Ordenar()} //em construção
    caso 4
      {Remover()} //em construção
    caso 9
      Listar() //procedimento provisório. Utilizado para testes
  fimEscolha
ate (menu=0)
fimAlgoritmo

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×