Ir ao conteúdo
  • Cadastre-se
Jhonathan Barcelos

VisualG quero saber como fazer para que os vetores sejam exibidos na aba de de de livro

Posts recomendados

algoritmo "Biblioteca"
// Função :
// Autor :
// Data : 05/02/2020
// Seção de Declarações 
var

titulo:vetor[0..2] de caractere
autor:vetor[0..2] de caractere
editora:vetor[0..2]de caractere
isbn:vetor[0..2] de caractere
sair:real
login, senha, login1, senha1, respost, empres, reserva: caractere
repet, repet1, opcao, ano, reserv: inteiro
inicio
// Seção de Comandos
escreval("biblioteca:")
escreval
escreval("Login: usuario")
escreval("Senha: senhausuario")
escreval

enquanto repet < 3 faca
escreval("-----------------------")
escreva("|Digite o login: ")
   leia(login)
escreval("-----------------------")
   escreva("Digite a senha: ")
   leia(senha)
   escreval("-----------------------")
   escreval
   se (login = "usuario") e (senha = "senhausuario") entao
      repet <- 5
   senao
      repet <- repet + 1
      escreval("-------> Login ou senha incorretos <-------")
      escreval
   fimse

fimenquanto

se (repet = 5) entao

   limpatela
   repita
   escreva("Entre com o ID da opção: ")
   escreval("| ID |         Opção           |")
   escreval("|====|=========================|")
   escreval("| #1 |    Cadastrar livro      |")
   escreval("| #2 |    Buscar livro         |")
   escreval("| #3 |    Emprestimo/devolução |")
   escreval("| #4 |    Reserva              |")
   escreval("| #5 |    Exibir acervo        |")
   escreval("| #6 |    Cadastrar Leitor     |")
   escreval("| #7 |    Trocar usuarior      |")
   escreval("| #8 |    Sair                 |")
   escreval(" ¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ")
   
   leia(opcao)
   escreval

   escolha opcao

     para i de 0 ate 2 faca
      caso 1


      se (titulo"") entao
      escreva("Digite o título do livro: ")
      leia (titulo)
      escreva("Digite o Autor: ")
      leia(autor)
      escreva("Digite o nome da Editora: ")
      leia(editorai)
      escreva("Digite o ano de lançamento: ")
      leia(ano)
      escreva("Digite o ISBN: ")
      leia(isbn)
      escreval
          limpatela
      caso 2

      escreva("Digite o título completo do livro: ")
      leia(tit)
         se (tit = titulo) entao
            escreval("Título: ", titulo)
            escreval("Autor: ", autor)
            escreval("Editora: ", editora)
            escreval("Ano:", ano)
            escreval("ISBN: ", isbn)
            escreva
         senao
            escreva("Livro não encontrado")
         fimse

      escreval

      caso 3

      escreva("Deseja realizar um empréstimo [E] ou devolução [D]? ")
      leia(respost)
      escreval
      se (respost = "E") entao
         escreva("Digite o título do livro: ")
         leia(respost)
         se (respost = titulo) entao
            empres <- titulo
            escreval("Você acaba de pegar empréstimo de um livro cujo nome é:", empres)
            escreval
         fimse
      senao
         escreva("Digite o título do livro: ")
         leia(respost)
         se (respost = titulo) entao
            escreval("Devolução efetuada com sucesso!")
            escreval
         fimse
      fimse

      caso 4
      escreva("Digite o título do livro: ")
      leia(reserva)
      se (reserva = titulo) entao
         reserv <- 1
         escreval("Reserva efetuada com sucesso!")
         escreval
      senao
         escreval("Livro não encontrado!")
         escreval
      fimse

      caso 5
      limpatela
      escreval("Confira agora, o menu de opções!")
      escreval
      escreval("| ID |         Opção           |")
      escreval("|====|=========================|")
      escreval("| #1 |    Cadastrar livro      |")
      escreval("| #2 |    Buscar livro         |")
      escreval("| #3 |    Emprestimo/devolução |")
      escreval("| #4 |    Reserva              |")
      escreval("| #5 |    Exibir acervo        |")
      escreval("| #6 |    Cadastrar Leitor     |")
      escreval("| #7 |    Trocar usuarior      |")
      escreval("| #8 |    Sair                 |")
      escreval(" ¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ")
      se (reserv = 1) entao
         escreval("Título: ", titulo, " [Reservado]")
         escreval("Autor: ", autor)
         escreval("Editora: ", editora)
         escreval("Ano:", ano)
         escreval("ISBN: ", isbn)
         escreva
      senao
         escreval("Título: ", titulo)
         escreval("Autor: ", autor)
         escreval("Editora: ", editora)
         escreval("Ano:", ano)
         escreval("ISBN: ", isbn)
         escreva
      fimse

      caso 6
      escreva("Digite o novo login: ")
      leia(login)
      escreva("Digite a nova senha: ")
      leia(senha)
      escreval

      caso 7
      enquanto repet1 < 3 faca
      escreva("Digite o login: ")
      leia(login1)
      escreva("Digite a senha: ")
      leia(senha1)
      escreval
      se (login1 = login) e (senha1 = senha) entao
         repet1 <- 5
         limpatela
         escreval("Novo login efetuado")
         escreval("Confira agora, o menu de opções!")
         escreval
         escreval("| ID |         Opção           |")
         escreval("|====|=========================|")
         escreval("| #1 |    Cadastrar livro      |")
         escreval("| #2 |    Buscar livro         |")
         escreval("| #3 |    Emprestimo/devolução |")
         escreval("| #4 |    Reserva              |")
         escreval("| #5 |    Exibir acervo        |")
         escreval("| #6 |    Cadastrar Leitor     |")
         escreval("| #7 |    Trocar usuarior      |")
         escreval("| #8 |    Sair                 |")
         escreval(" ¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ")
      senao
         repet1 <- repet1 + 1
         escreval("-------> Login ou senha incorretos <-------")
         escreval
      fimse
      fimenquanto

      fimescolha
      ate opcao = 8
      escreval("Gerenciamento de Biblioteca Encerrado")
fimse


 
fimalgoritmo
adicionado 7 minutos depois

gente minha duvida é, quero armazenar os livros e exibir eles quando pedirem pra buscar ele

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jhonathan Barcelos, o uso de arquivos no VisualG é bastante limitado. Pelo que vi, resumidamente, funciona assim:

- tanto para ler do arquivo, tanto para escrever nele, usam-se o leia();

- se o arquivo tiver dados, você apenas vai ler, ou seja: cada leia() vai ficar lendo a próxima linha do arquivo até não ter mais linhas. Daí vai passar a ler do teclado;

- caso o arquivo não exista, o VisualG vai criar o arquivo, e cada leia() vai ficar escrevendo no arquivo. Acho que não tem como parar... vai ficar usando o arquivo mesmo até fechar o programa.

 

Ou algo bem próximo disto.

 

RESUMINDO: esqueça o uso de arquivos no VisualG.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já no Pascal ("pai" do VisualG), dá para usar de boa. A sintaxe é bem semelhante ao do VisualG, apenas é em inglês.

 

Segue um exemplificação:

program Biblioteca;
// { Função:           }
// { Autor :           }
// { Data  : 05/02/2020}
uses
  CRT;
var
  titulos  :array[0..2] of string;
  autores  :array[0..2] of string;
  editoras :array[0..2] of string;
  anos     :array[0..2] of integer;
  isbns    :array[0..2] of string;

  totalLivros :integer;
  login, senha :string;
  tentativas :integer;
  autenticado :boolean;
  opcao :char;
  i :integer;
BEGIN
totalLivros := 0;
tentativas := 0;
autenticado := true;
while (tentativas < 3) and (autenticado = false) do
  begin
  writeln('');
  writeln('** Biblioteca **');
  writeln('');
  writeln('-----------------------');
  write  ('|Login: ');
  readln(login);
  writeln('-----------------------');
  write  ('|Senha: ');
  readln(senha);
  writeln('-----------------------');
  writeln;
  if (login = 'usuario') and (senha = 'senhausuario') then
    autenticado := true
  else
    begin
    tentativas := tentativas + 1;
    writeln('-------> Login ou senha incorretos <-------');
    writeln;
    readln;
    end;
  end;
  
if (autenticado = false) then
  exit;

while (opcao <> '0') do
  begin
  ClrScr;
  writeln('| ID |         Opção           |');
  writeln('|====|=========================|');
  writeln('| #1 |    Cadastrar livro      |');
  writeln('| #2 |    Buscar livro         |');
  writeln('| #3 |    Emprestimo/devolução |');
  writeln('| #4 |    Reserva              |');
  writeln('| #5 |    Exibir acervo        |');
  writeln('| #6 |    Cadastrar Leitor     |');
  writeln('| #7 |    Trocar usuarior      |');
  writeln('|    |                         |');
  writeln('| #0 |    Sair                 |');
  writeln(' ==== ========================= ');
  writeln('');
  write  ('==> ');
  readln(opcao);
  
  case opcao of
    '1' :begin
         write('Título : ');
         readln(titulos[totalLivros]);
         write('Autor  : ');
         readln(autores[totalLivros]);
         write('Editora: ');
         readln(editoras[totalLivros]);
         write('Ano de lançamento: ');
         readln(anos[totalLivros]);
         write('ISBN: ');
         readln(isbns[totalLivros]);
         writeln;
         totalLivros := totalLivros + 1;
         ClrScr;
         end;
         
    '5' :begin
         for i := 0 to totalLivros-1 do
           begin
           writeln('LIVRO ', i+1);
           writeln('');
           writeln('Título  : ', titulos[i]);
           writeln('Autor   : ', titulos[i]);
           writeln('Editora : ', titulos[i]);
           writeln('Ano     : ', anos[i]);
           writeln('ISBN    : ', isbns[i]);
           readln;
           end;
         end;
    end; //fim case
  end;
END.

 

É praticamente igual...

 

Mas aqui as coisas funcionam, como o tão útil uso de registros:

program Biblioteca;
// { Função:           }
// { Autor :           }
// { Data  : 05/02/2020}
uses
  CRT;
var
  regLivros :array [0..2] of record
                               titulo :string;
                               autor  :string;
                               editor :string;
                               ano    :integer;
                               isbn   :string;
                             end;

  totalLivros :integer;
  
  credencial :record
                login :string;
                senha :string;
              end;
  
  tentativas :integer;
  autenticado :boolean;
  opcao :char;
  i :integer;
BEGIN
totalLivros := 0;
tentativas := 0;
autenticado := true;
while (tentativas < 3) and (autenticado = false) do
  begin
  writeln('');
  writeln('** Biblioteca **');
  writeln('');
  writeln('-----------------------');
  write  ('|Login: ');
  readln(credencial.login);
  writeln('-----------------------');
  write  ('|Senha: ');
  readln(credencial.senha);
  writeln('-----------------------');
  writeln;
  if (credencial.login = 'usuario') and (credencial.senha = 'senhausuario') then
    autenticado := true
  else
    begin
    tentativas := tentativas + 1;
    writeln('-------> Login ou senha incorretos <-------');
    writeln;
    readln;
    end;
  end;
  
if (autenticado = false) then
  exit;

while (opcao <> '0') do
  begin
  ClrScr;
  writeln('| ID |         Opção           |');
  writeln('|====|=========================|');
  writeln('| #1 |    Cadastrar livro      |');
  writeln('| #2 |    Buscar livro         |');
  writeln('| #3 |    Emprestimo/devolução |');
  writeln('| #4 |    Reserva              |');
  writeln('| #5 |    Exibir acervo        |');
  writeln('| #6 |    Cadastrar Leitor     |');
  writeln('| #7 |    Trocar usuarior      |');
  writeln('|    |                         |');
  writeln('| #0 |    Sair                 |');
  writeln(' ==== ========================= ');
  writeln('');
  write  ('==> ');
  readln(opcao);
  
  case opcao of
    '1' :begin
         write('Título : ');
         readln(regLivros[totalLivros].titulo);
         write('Autor  : ');
         readln(regLivros[totalLivros].autor);
         write('Editora: ');
         readln(regLivros[totalLivros].editor);
         write('Ano de lançamento: ');
         readln(regLivros[totalLivros].ano);
         write('ISBN: ');
         readln(regLivros[totalLivros].isbn);
         writeln;
         totalLivros := totalLivros + 1;
         ClrScr;
         end;
         
    '5' :begin
         for i := 0 to totalLivros-1 do
           begin
           writeln('LIVRO ', i+1);
           writeln('');
           writeln('Título  : ', regLivros[i].titulo);
           writeln('Autor   : ', regLivros[i].autor);
           writeln('Editora : ', regLivros[i].editor);
           writeln('Ano     : ', regLivros[i].ano);
           writeln('ISBN    : ', regLivros[i].isbn);
           readln;
           end;
         end;
    end; //fim case
  end;
END.

 

No caso aí, um vetor de registros. Daria também fazer algo assim:

var
  regLivros :array [0..2] of record
                               titulo   :string;
                               autores  :array [0..5] of string;
                               editores :array [0..5] of string;
                               ano      :integer;
                               isbn     :string;
                             end;

 

Acessando com algo como:

regLivros[i].autores[j]

 

 

Quando tiver utilizando funções e procedimentos, no Pascal também dá para passar vetores por parâmetro; dá para usar cores diferentes para o texto e fundo... dá para posicionar o "cursor" onde quiser... veja um exemplo deste último:

 

while (tentativas < 3) and (autenticado = false) do
  begin
  ClrScr;
  writeln('');
  writeln('** Biblioteca **');
  writeln('');
  writeln('-----------------------');
  writeln('|Login: ');  
  writeln('-----------------------');
  writeln('|Senha: ');
  GotoXY(9, 5);
  readln(credencial.login);
  GotoXY(9, 7);
  readln(credencial.senha);
  writeln('-----------------------');
  writeln;

Tela:

tela pascal.gif

 

Como como os texto do login e senha já estão escritos... fica mais com uma cara de formulário..

 

Por aí vai.

 

 

 

No caso, temos algumas opções:

- continuar no VisualG, dando uma revisada no teu código... dar uma aprimorada no algoritmo... (mas esquecendo do uso de arquivos);

- ir para ao Pascal e começar a implementar por lá. Se tiver interesse, poderia iniciar pelo PascalZim;

- ir para outra linguagem popular como o C.... Nesse caso, muda um pouquinho as estruturas, mas dá para pegar de boa também.

- outra opção...

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas entao é por que eu to numa missão de ajuda um amigo, ele ta usando o visualg, teria quer ser naquela linguagem. voce conseguiria por esse codigo no visualg  ?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 horas atrás, Jhonathan Barcelos disse:

@Simon Viegas entao é por que eu to numa missão de ajuda um amigo, ele ta usando o visualg, teria quer ser naquela linguagem. voce conseguiria por esse codigo no visualg  ?

 

O segredo é NÃO fazer muito coisa ao mesmo tempo. Vá fazendo parte por parte e sempre testando.

 

Segue um exemplo de esboço inicial:

algoritmo "Biblioteca"
// Função:
// Autor :
// Data  : 05/02/2020
var
   vetTitulo  :vetor[1..3] de caractere
   vetAutor   :vetor[1..3] de caractere
   vetEditora :vetor[1..3] de caractere
   vetISBN    :vetor[0..2] de caractere

   opcao :caractere
   i :inteiro
inicio
   opcao <- "0"
   enquanto (opcao <> "8") faca
      LimpaTela()
      escreval("| ID |         Opção           |")
      escreval("|====|=========================|")
      escreval("| #1 |    Cadastrar livro      |")
      escreval("| #2 |    Buscar livro         |")
      escreval("| #3 |    Emprestimo/devolução |")
      escreval("| #4 |    Reserva              |")
      escreval("| #5 |    Exibir acervo        |")
      escreval("| #6 |    Cadastrar Leitor     |")
      escreval("| #7 |    Trocar usuarior      |")
      escreval("| #8 |    Sair                 |")
      escreval(" ¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ")
      escreva ("Entre com o ID da opção: ")
      leia(opcao)
      escreval("")
      escolha opcao
      caso "1"
         para i de 1 ate 3 faca
            LimpaTela()
            escreva("Digite o título do livro: ")
            leia (vetTitulo[i])
            escreva("Digite o Autor: ")
            leia(vetAutor[i])
            escreva("Digite o nome da Editora: ")
            leia(vetEditor[i])
            escreva("Digite o ano de lançamento: ")
            leia(vetAno[i])
            escreva("Digite o ISBN: ")
            leia(vetISBN[i])

         fimPara
      caso "2"
        escreval("Em construção"

         
      fimEscolha
   fimEnquanto



fimalgoritmo

 

Ajuste este código para inicialmente ler todos os dados do livro corretamente (vê se tem erros e também completar o restante). Obs.: para testar não precisa ficar cadastrando dados reais... vai colocando 1, 1, 1, 1, 1... 2, 2, 2, 2, 2,.. etc. Ou qualquer coisa aleatória... quando tiver já tudo feito para esta parte, pode fazer alguns testes com dados mais próximos do real para ver como fica (mas não precisa testar sempre com reais).

 

Após, implemente a opção 5 para exibir todos os livros, desta forma já testando se está cadastrando corretamente. Depois implementa outro item... por aí vai...

 

Apenas NÃO tente fazer tudo de uma vez!

 

Caso tenha dúvidas, posta o código completo e em qual parte está com dificuldades.

 

  • 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

×
×
  • Criar novo...

Eletrônica

PROMOÇÃO DE QUARENTENA

Aproveite o isolamento social para aprender eletrônica!
De R$ 39,90 por apenas R$ 19,90
Só até as 23h59min desta sexta-feira 10/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!