Jump to content
Fórum Script Brasil
  • 0

uma pequena ajuda.


Maicon_iniciante

Question

Pessoal estou com um grande problema estou fazendo um programa que localiza em espaço fisico um cd ou dvd que foi cadastrado no sistema mais no código esta dando erros que eu nunca vi alguns eram bestas e já resolvi mais outros já arrumei tu identei tudo mais nada de funcionar revisei todos os begin , end mais nada vou por o código aqui quem puder me ajudar serei grato.

Qualquer coisa se alguém conseguir me ajudar pode mandar um e-mail ou posta aqui mesmo.

Meu e-mail

program loja;
uses
  crt;
type
  Tarmario = record
  titulo : string;
  artista : string;
  nro_musica: integer;
  duplo : char;
  preço : real;
  genero : string;
  ano : integer;
  tempo : real;
  diretor : string;
  armario : char;
end;

var
 a : array [1..10] of Tarmario;
 b : array [1..10] of Tarmario;
 c : array [1..10] of Tarmario;
 d : array [1..10] of Tarmario;
 e : array [1..10] of Tarmario;
 f : array [1..10] of Tarmario;
 arq : file of Tarmario;
 nro_produto: integer;
 max_prod : integer;
procedure VerificaArquivo;
begin
  assign(arq,'c:\windows\loja.dat');
    {$I-}
   reset(arq);
    {$I+}
   if ioresult <> 0 then
   begin
       rewrite(arq);
   end;
end;

procedure GravaProdutos;
var
  cont: integer;
begin
  VerificaArquivo;
  for   cont:= 1 to nro_produto do
  begin
     write(arq,a[cont]);
     write(arq,b[cont]);
     write(arq,c[cont]);
     write(arq,d[cont]);
     write(arq,e[cont]);
     write(arq,f[cont]);
  end;
  close(arq);
end;


procedure LeProduto;
var
  cont: integer;
begin
  VerificaArquivo;
  cont := 1;
  while not eof(arq) do
  begin
     read(arq,a[cont]);
     read(arq,b[cont]);
     read(arq,c[cont]);
     read(arq,d[cont]);
     read(arq,e[cont]);
     read(arq,f[cont]);
    cont := cont + 1;
    nro_produto := nro_produto + 1;
  end;
  close(arq);
end;
procedure MenuInsereProdutocd;
var
  opcaoum: integer;
  nome_digitado : string;
begin
  writeln('DIGITE A OPÇÃO:');
  writeln('- 1 CADASTRAR NO ARMARIO (A) -');
  writeln('- 2 CADASTRAR NO ARMARIO (B) -');
  writeln('- 3 CADASTRAR NO ARMARIO (C) -');
  writeln('- 4 PARA SAIR                -');
  read(opcaoum);
  while opcaoum <> 4 do
   begin
    case opcaoum of
      1:begin
          writeln(nro_produto +1, '|',max_prod);
          write('  DIGITE O TITULO DO CD OU ENTER PARA SAIR:');
          readln(nome_digitado);
          while (nro_produto < max_prod) and (nome_digitado <> '') do
          begin
           nro_produto := nro_produto + 1;
           a[nro_produto].titulo := nome_digitado;
           write('DIGITE A BANDA OU O CANTOR:');
           readln(a[nro_produto].artista);
           write('NUMERO DE MUSICAS:');
           readln(a[nro_produto].nro_musica);
           write('CD DUPLO ?:');
           readln(a[nro_produto].duplo);
           write('PREÇO:');
           readln(a[nro_produto].preço);
           write('DIGITE O ARMARIO:');
           readln(a[nro_produto].armario);
          end;
        end;

     2:begin
        writeln(nro_produto +1, '/',max_prod);
        writeln('---------------------------------------');
        write('  DIGITE O TITULO DO CD OU ENTER PARA SAIR:');
        readln(nome_digitado);
        while (nro_produto < max_prod) and (nome_digitado <> '') do
        begin
          nro_produto := nro_produto + 1;
          b[nro_produto].titulo := nome_digitado;
          write('DIGITE A BANDA OU O CANTOR:');
          readln(b[nro_produto].artista);
          write('NUMERO DE MUSICAS:');
          readln(b[nro_produto].nro_musica);
          write('CD DUPLO ?:');
          readln(b[nro_produto].duplo);
          write('PREÇO:');
          readln(b[nro_produto].preço);
          write('DIGITE O ARMARIO:');
          readln(b[nro_produto].armario);
        end;
       end;
     3:begin
        writeln(nro_produto +1, '/',max_prod);
        writeln('---------------------------------------);
        write('  DIGITE O TITULO DO CD OU ENTER PARA SAIR:');
        readln(nome_digitado);
        while (nro_produto < max_prod) and (nome_digitado <> '') do
        begin
          nro_produto := nro_produto + 1;
          c[nro_produto].titulo := nome_digitado;
          write('DIGITE A BANDA OU O CANTOR:');
          readln(c[nro_produto].artista);
          write('NUMERO DE MUSICAS:');
          readln(c[nro_produto].nro_musica);
          write('CD DUPLO ?:');
          readln(c[nro_produto].duplo);
          write('PREÇO:');
          readln(c[nro_produto].preço);
          write('DIGITE O ARMARIO:');
          readln(c[nro_produto].armario);
        end;
       end;
       writeln('--------------------------------------------');
       writeln(nro_produto +1, '/',max_prod);
       writeln('DIGITE A OPÇÃO:');
       writeln('- 1 CADASTRAR NO ARMARIO (A) -');
       writeln('- 2 CADASTRAR NO ARMARIO (B) -');
       writeln('- 3 CADASTRAR NO ARMARIO (C) -');
       writeln('- 4 PARA SAIR                -');
       read(opcaoum);
  end;
 end;
procedure MenuInsereProdutodvd;
var
  opcao2: string;
  nome_digitado1 : string;
begin
  writeln('DIGITE A OPÇÃO:');
  writeln('- 1 CADASTRAR NO ARMARIO (D) -');
  writeln('- 2 CADASTRAR NO ARMARIO (E) -');
  writeln('- 3 CADASTRAR NO ARMARIO (F) -');
  writeln('- 4 PARA SAIR                -');
  read(opcao1);
  while (opcao1 <> 3) do
   begin
    case opcao1 of
    1:begin
       writeln(nro_produto +1, '/',max_prod);
       writeln('---------------------------------------);
       write('  DIGITE O TITULO DO DVD OU ENTER PARA SAIR:');
       readln(nome_digitado1);
       while (nro_produto < max_prod) and (nome_digitado1 <> '') do
       begin
         nro_produto := nro_produto + 1;
         d[nro_produto].titulo := nome_digitado;
         write('DIGITE O GENERO DO FILME:');
         readln(d[nro_produto].genero);
         write('TEMPO DE FILME:');
         readln(d[nro_produto].tempo);
         write('DVD DUPLO ?:');
         readln(d[nro_produto].duplo);
         write('DIRETOR:');
         readln(d[nro_produto].direto);
         write('PREÇO:');
         readln(d[nro_produto].preço);
         write('DIGITE O ARMARIO:');
         readln(d[nro_produto].armario);
       end;
      end;
    2:begin
       writeln(nro_produto +1, '/',max_prod);
       writeln('---------------------------------------);
       write('  DIGITE O TITULO DO DVD OU ENTER PARA SAIR:');
       readln(nome_digitado);
       while (nro_produto < max_prod) and (nome_digitado <> '') do
       begin
         nro_produto := nro_produto + 1;
         e[nro_produto].titulo := nome_digitado;
         write('DIGITE O GENERO DO FILME:');
         readln(e[nro_produto].genero);
         write('TEMPO DE FILME:');
         readln(e[nro_produto].tempo);
         write('DVD DUPLO ?:');
         readln(e[nro_produto].duplo);
         write('DIRETOR:');
         readln(e[nro_produto].direto);
         write('PREÇO:');
         readln(e[nro_produto].preço);
         write('DIGITE O ARMARIO:');
         readln(e[nro_produto].armario);
       end;
      end;
    3:begin
       writeln(nro_produto +1, '/',max_prod);
       writeln('---------------------------------------);
       write('  DIGITE O TITULO DO DVD OU ENTER PARA SAIR:');
       readln(nome_digitado);
       while (nro_produto < max_prod) and (nome_digitado <> '') do
       begin
         nro_produto := nro_produto + 1;
         f[nro_produto].titulo := nome_digitado;
         write('DIGITE O GENERO DO FILME:');
         readln(f[nro_produto].genero);
         write('TEMPO DE FILME:');
         readln(f[nro_produto].tempo);
         write('DVD DUPLO ?:');
         readln(f[nro_produto].duplo);
         write('DIRETOR:');
         readln(f[nro_produto].direto);
         write('PREÇO:');
         readln(f[nro_produto].preço);
         write('DIGITE O ARMARIO:');
         readln(f[nro_produto].armario);
       end;
      end;
      writeln('DIGITE A OPÇÃO:');
      writeln('- 1 CADASTRAR NO ARMARIO (A) -');
      writeln('- 2 CADASTRAR NO ARMARIO (B) -');
      writeln('- 3 CADASTRAR NO ARMARIO (C) -');
      writeln('- 4 PARA SAIR                -');
      read(opcao1);
  end;
end;

procedure Listaroduto;
var
  cont: integer;
  opcao2:integer;
  i : integer;
begin
  writeln('DIGITE A OPÇÃO PARA LISTAR O PRODUTO:');
  writeln('- 1 PARA CD  -');
  writeln('- 2 PARA DVD -');
  writeln('- 3 PARA SAIR-');
  read(opcao2);
  while (opcao2 <> 3) do
   begin
    case opcao2 of
     1: begin
          writeln('- 1 PARA ARMARIO (A) -');
          writeln('- 2 PARA ARMARIO (B) -');
          writeln('- 3 PARA ARMARIO (C) -');
          writeln('- 4 PARA SAIR        -');
          read(opcao2);
        end;
          while (opcao2 <> 4) do
           begin
            case opcao2 of
            1: begin
                for 1 := 1 to max_prod do
                begin
                 writeln('ARMARIO (A)');
                 writeln('TITULO:',a[nro_produto].titulo);
                 writeln('BANDA|CANTOR:',a[nro_produto].artista);
                 writeln('NUMERO DE MUSICAS:',a[nro_produto].nro_musica);
                 writeln('DUPLO ?:',a[nro_produto].duplo);
                 writeln('PREÇO:',a[nro_produto].preço);
                 writeln('ARMARIO:',a[nro_produto].armario);
                end;
               end;
            2: begin
                for 1 := 1 to max_prod do
                begin
                 writeln('ARMARIO (B)');
                 writeln('TITULO:',b[nro_produto].titulo);
                 writeln('BANDA|CANTOR:',b[nro_produto].artista);
                 writeln('NUMERO DE MUSICAS:',b[nro_produto].nro_musica);
                 writeln('DUPLO ?:',b[nro_produto].duplo);
                 writeln('PREÇO:',b[nro_produto].preço);
                 writeln('ARMARIO:',b[nro_produto].armario);
                end;
               end;
            3: begin
                for 1 := 1 to max_prod do
                begin
                 writeln('ARMARIO (C)');
                 writeln('TITULO:',c[nro_produto].titulo);
                 writeln('BANDA|CANTOR:',c[nro_produto].artista);
                 writeln('NUMERO DE MUSICAS:',c[nro_produto].nro_musica);
                 writeln('DUPLO ?:',c[nro_produto].duplo);
                 writeln('PREÇO:',c[nro_produto].preço);
                 writeln('ARMARIO:',c[nro_produto].armario);
                end;
               end;
                writeln('- 1 PARA ARMARIO (A) -');
                writeln('- 2 PARA ARMARIO (B) -');
                writeln('- 3 PARA ARMARIO (C) -');
                writeln('- 4 PARA SAIR        -');
                read(opcao2);
           end;

          writeln('DIGITE A OPÇÃO PARA LISTAR O PRODUTO:');
          writeln('- 1 PARA CD  -');
          writeln('- 2 PARA DVD -');
          writeln('- 3 PARA SAIR-');
          read(opcao2);
     2: begin
          writeln('- 1 PARA ARMARIO (D) -');
          writeln('- 2 PARA ARMARIO (E) -');
          writeln('- 3 PARA ARMARIO (F) -');
          writeln('- 4 PARA SAIR        -');
          read(opcao2);
        end;
          while (opcao2 <> 4) do
           begin
            case opcao2 of
            1: begin
                writeln('ARMARIO (D)');
                writeln('TITULO:',d[nro_produto].titulo);
                writeln('DIRETOR:',d[nro_produto].diretor);
                writeln('GENERO:',d[nro_produto].genero);
                writeln('TEMPO:',d[nro_produto].tempo);
                writeln('PREÇO:',d[nro_produto].preço);
                writeln('ARMARIO:',d[nro_produto].armario);
               end;
            2: begin
                writeln('ARMARIO (E)');
                writeln('TITULO:',e[nro_produto].titulo);
                writeln('DIRETO:',e[nro_produto].diretor);
                writeln('GENERO:',e[nro_produto].genero);
                writeln('TEMPO:',e[nro_produto].tempo);
                writeln('PREÇO:',e[nro_produto].preço);
                writeln('ARMARIO:',e[nro_produto].armario);
               end;
            3: begin
                writeln('ARMARIO (F)');
                writeln('TITULO:',f[nro_produto].titulo);
                writeln('DIRETOR:',f[nro_produto].diretor);
                writeln('GENERO:',f[nro_produto].genero);
                writeln('TEMPO:',f[nro_produto].tempo);
                writeln('PREÇO:',f[nro_produto].preço);
                writeln('ARMARIO:',f[nro_produto].armario);
               end;
            writeln('- 1 PARA ARMARIO (D) -');
            writeln('- 2 PARA ARMARIO (D) -');
            writeln('- 3 PARA ARMARIO (F) -');
            writeln('- 4 PARA SAIR        -');
            read(opcao2);
          end;
           writeln('DIGITE A OPÇÃO PARA LISTAR O PRODUTO:');
           writeln('- 1 PARA CD  -');
           writeln('- 2 PARA DVD -');
           writeln('- 3 PARA SAIR-');
           read(opcao2);
  end;
end;
procedure listapesquisacd;
var
 pesquisa:string;
 linha:integer;
 opcao2:integer;
begin
 writeln('DIGITE A OPÇÃO PARA LISTAR A PESQUISA:');
 writeln('- 1 PARA CD  -');
 writeln('- 2 PARA DVD -');
 writeln('- 3 PARA SAIR-');
 read(opcao2);
 while opcao2 <> 3 do
  begin
   case opcao2 of
    1: begin
        writeln('PESQUISA DE CD:');
        write('DIGITE O NOME PARA PESQUISAR OU ENTER PARA SAIR:');
        read(pesquisa);
       while (nome_digitado <> '') do
        begin
         for linha := 1 to max_prod do
         if pesquisa = a[linha].titulo then
          begin
           writeln('ARMARIO (A)');
           writeln('TITULO:',a[linha].titulo);
           writeln('BANDA|CANTOR:',a[linha].artista);
           writeln('NUMERO DE MUSICAS:',a[linha].nro_musica);
           writeln('DUPLO ?:',a[linha].duplo);
           writeln('PREÇO:',a[linha].preço);
           writeln('ARMARIO:',a[linha].armario);
           else
            writeln('NOME NÃO ENCONTRADO');
            readkey;
         end;
         if pesquisa = b.[linha].titulo then
         begin
          writeln('ARMARIO (B)');
          writeln('TITULO:',b[linha].titulo);
          writeln('BANDA|CANTOR:',b[linha].artista);
          writeln('NUMERO DE MUSICAS:',b[linha].nro_musica);
          writeln('DUPLO ?:',b[linha].duplo);
          writeln('PREÇO:',b[linha].preço);
          writeln('ARMARIO:',b[linha].armario);
          else
           writeln('NOME NÃO ENCONTRADO');
           readkey;
         end;
         if pesquisa = c[linha].titulo then
         begin
          writeln('ARMARIO (C)');
          writeln('TITULO:',c[linha].titulo);
          writeln('BANDA|CANTOR:',c[linha].artista);
          writeln('NUMERO DE MUSICAS:',c[linha].nro_musica);
          writeln('DUPLO ?:',c[linha].duplo);
          writeln('PREÇO:',c[linha].preço);
          writeln('ARMARIO:',c[linha].armario);
          else
           writeln('NOME NÃO ENCONTRADO');
         end;
        end;
        writeln('PESQUISA DE CD:');
        write('DIGITE O NOME PARA PESQUISAR OU ENTER PARA SAIR:');
        read(pesquisa);
       end;
  end;
 end;
    2:begin
        writeln('PESQUISA DE DVD:');
        write('DIGITE O NOME PARA PESQUISAR OU ENTER PARA SAIR:');
        read(pesquisa);
        while (nome_digitado <> '') do
         for linha := 1 to max_prod do
          if pesquisa = d[linha].titulo then
          begin
           writeln('ARMARIO (D)');
           writeln('TITULO:',d[linha].titulo);
           writeln('DIRETOR:',d[linha].diretor);
           writeln('GENERO:',d[linha].genero);
           writeln('TEMPO:',d[linha].tempo);
           writeln('PREÇO:',d[linha].preço);
           writeln('ARMARIO:',d[linha].armario);
           else
            writeln('NOME NÃO ENCONTRADO');
          end;
          if pesquisa = e[linha].titulo then
          begin
           writeln('ARMARIO (E)');
           writeln('TITULO:',e[linha].titulo);
           writeln('DIRETOR:',e[linha].diretor);
           writeln('GENERO:',e[linha].genero);
           writeln('TEMPO:',e[linha].tempo);
           writeln('PREÇO:',e[linha].preço);
           writeln('ARMARIO:',e[linha].armario);
           else
            writeln('NOME NÃO ENCONTRADO');
          end;
          if pesquisa = f[linha].titutlo then
          begin
           writeln('ARMARIO (F)');
           writeln('TITULO:',f[linha].titulo);
           writeln('DIRETOR:',f[linha].diretor);
           writeln('GENERO:',f[linha].genero);
           writeln('TEMPO:',f[linha].tempo);
           writeln('PREÇO:',f[linha].preço);
           writeln('ARMARIO:',f[linha].armario);
           else
            writeln('NOME NÃO ENCONTRADO');
          end;
         end;
         writeln('PESQUISA DE DVD:');
         write('DIGITE O NOME PARA PESQUISAR OU ENTER PARA SAIR:');
         read(pesquisa);
        end;
      end;
end;
begin
  max_prod : = 10


end.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Maicon_iniciante, basicamente seus problemas estão nos CASES.

Observe por exemplo na sua procedure MenuInsereProdutocd, mais especificamente quando a opção é 3. Veja que este código:

...
       writeln('--------------------------------------------');
       writeln(nro_produto +1, '/',max_prod);
       writeln('DIGITE A OPÇÃO:');
       writeln('- 1 CADASTRAR NO ARMARIO (A) -');
       writeln('- 2 CADASTRAR NO ARMARIO (B) -');
       writeln('- 3 CADASTRAR NO ARMARIO (C) -');
       writeln('- 4 PARA SAIR                -');
       read(opcaoum);
...

deveria estar após o END do CASE, mas está após o END terminador do bloco referente a opção 3.

Como você fez alguns CTRL+C/CTRL+V, acabou replicando o problema para outras procedures.

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...