Ir ao conteúdo

Posts recomendados

Postado

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 

 

  • Curtir 1
Postado

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
  • Membro VIP
Postado

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
Postado

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

  • Curtir 1
  • Membro VIP
Postado

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
Postado

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

 

  • Curtir 1
Postado

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 

 

  • Curtir 1
Postado

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.

  • Curtir 1
  • Membro VIP
Postado

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.

 

 

  • Curtir 1
Postado

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

  • Curtir 1
Postado

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

 

  • Curtir 1
  • Membro VIP
Postado

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
Postado

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
Postado

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

  • Curtir 1
Postado

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
 

 

  • Curtir 1
Postado

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
  • Membro VIP
Postado

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
Postado

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
Postado
//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
Postado

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
Visitante
Este tópico está impedido de receber novas respostas.

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!