Ir para conteúdo
Fórum Script Brasil
  • 0

uma pequena ajuda.


Maicon_iniciante

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...