Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Como colocar data no código?


Posts recomendados

Program Pzim ;
   type
    respostas=record
    resp:string;
        op:string;
        op2:string;
        op3:string;
        op4:string;
        op5:string;
        op6:string;
        cod1:string;
        cod2:string;
        nome1:string;
        nome2:string;
        End;
        
var
 produtos : array[1..10, 1..3] of string;
 funcionarios : array[1..10, 1..3] of string;
 clientes : array[1..10, 1..3] of string;
 vendas : array[1..10, 1..4] of string;
 EscUm , EscDois , EscTres , i , x , y : integer;
 respostas1:respostas;
 total:array[1..10,1..2] of real;
 tot:real;
 
Begin
 repeat
     clrscr;
     writeln('----Menu Principal----');
    writeln('[1] - Cadastros - ');
    writeln('[2] - Vendas - ');
    writeln('[3] - Relatórios - ');
    writeln('[4] - Sair - ');
    writeln('Informe a opção de seu interesse');
    readln(EscUm);
    
    case EscUm of 
                1:begin

                      clrscr;                    
                        writeln('----Menu de Cadastros----');
                        writeln('[1] - Cadastrar Cliente - ');                                                                          
                        writeln('[2] - Cadastrar Funcionário - ');
                        writeln('[3] - Cadastrar Produto - ');
                        writeln('[4] - Volta para o menu principal - ');
                        writeln('Informe a opção de seu interesse');
                        readln(EscDois);
                        
                            case EscDois of
                               1:begin
                                       //cadastrar clientes
                                    repeat    
                                    for i:=1 to 10 do
                                       begin
                                           if clientes[i,1] = '' then
                                           begin
                                               clrscr;
                                             writeln('----Cadastro clientes----');
                                             writeln('Informe o codigo do cliente');
                                             readln(clientes[i,1]);
                                             writeln('Informe o nome do cliente');
                                             readln(clientes[i,2]);
                                             writeln('Informe o telefone do cliente');
                                             readln(clientes[i,3]);
                                             break;
                                           end;
                                       
                                  end;
                                  writeln('Deseja realizar outro cadastro?[S/N]');
                                  readln(respostas1.op);
                                  until UpCase(respostas1.op) ='N';
                                    end;
                                                                            
                               2:begin
                                  //cadastrar funcionario
                                  repeat
                                    for i:=1 to 10 do
                                     begin
                                         if funcionarios[i,1] = '' then
                                         begin
                                          clrscr;
                                          writeln('----Cadastro Funcionario----');
                                          writeln('Informe o codigo do funcionário');
                                          readln(funcionarios[i,1]);
                                          writeln('Informe o nome do funcionário');
                                          readln(funcionarios[i,2]);
                                          writeln('Informe o telefone do funcionário');
                                          readln(funcionarios[i,3]);
                                          break;
                                         end;
                                     end;
                                    writeln('Deseja cadastrar outro funcionário? [S/N]');
                                    readln(respostas1.op2);
                                        until UpCase(respostas1.op2) = 'N';     
                                   end;
                                   
                                 3:begin
                                    //cadastrar produto
                                    repeat
                                    for i:=1 to 10 do
                                     begin 
                                      if produtos[i,1] = '' then
                                      begin
                                       clrscr;
                                       writeln('----Cadastro Produto----');
                                       writeln('Informe o codigo do produto');
                                          readln(produtos[i,1]);
                                          writeln('Informe o nome do produto');
                                          readln(produtos[i,2]);
                                          writeln('Informe o preço do produto');
                                          readln(total[i,1]);
                                          //readln(produtos[i,3]);
                                          break;                                          
                                      end;    
                                     end;
                                    writeln('Deseja cadastrar outro produto?[S/N]');
                                        readln(respostas1.op3); 
                                    until UpCase(respostas1.op3)= 'N'; 
                                   end;
                                 4:begin
                                
                                     end;            
                      end;
                       
                  end;
                
                2:begin
                   //vendas
                   repeat;
                  for i:=1 to 10 do
                     begin
                           if vendas[i,1] = '' then
                            begin
                               clrscr;
                               writeln('---Vendas---');
                               writeln('                      ');
                                for i:=1 to 10 do
                                    begin
                                        if produtos[i,2] <> '' then
                                            begin
                                                writeln(' Produto:',produtos[i,2],' Preço:$',total[i,1]:6:2,' codigo: ', produtos[i,1]);                                        
                                                writeln('                                 ');
                                            end;
                                                    end;
                                             writeln('                   ');              
                               writeln('Informe o codigo da venda');
                               readln(vendas[i,1]);
                               writeln('Informe o codigo do cliente');
                               readln(vendas[i,2]);
                               writeln('Informe o codigo do funcionário responsável');
                               readln(vendas[i,3]);
                               writeln('Informe o codigo do produto');
                               readln(vendas[i,4]);
                               writeln('Informe a quantidade desejada');
                               readln(total[i,2]);
                               
                               tot:= total[i,1]*total[i,2];
                               writeln('total a se pagar:$',tot:6:2);
                                   break;                
                           end;
                   end;
                       writeln('Deseja realizar outra compra? [S/N]');
                         readln(respostas1.op4); 
                       until UpCase(respostas1.op4)= 'N';
                    end;
                    
                3:begin
                
                    clrscr;                    
                        writeln('----Relatórios----');
                        writeln('[1] - Relatório por clientes - ');                                                                          
                        writeln('[2] - Relatório por funcionários - ');
                        writeln('[3] - Relatório Anual - ');
                        writeln('[4] - Relatário Mensal - ');
                        writeln('[5] - Voltar para o menu principal -');
                        writeln('Informe a opção desejada');
                        readln(EscTres);
                        
                            case EscTres of
                                    1:begin
                                            //relatorio clientes
                                        repeat    
                                            clrscr;
                                               writeln('Informe o codigo do cliente em questão');
                                               readln(respostas1.cod1);
                                                   for i:=1 to 10 do
                                                     begin
                                                         if respostas1.cod1 = vendas[i,2] then
                                                             begin 
                                                                 for x:=1 to 10 do
                                                                 begin
                                                                    if respostas1.cod1=clientes[x,1] then
                                                                    begin
                                                                    respostas1.nome1:=clientes[x,2];
                                                                    end;
                                                                 end;
                                                                 clrscr;
                                                                 writeln('                    ');
                                                                 writeln(' Nome: ',respostas1.nome1,' Produto: ', vendas[i,4] ,' Quantidade: ', vendas[i,5],' Total:R$ ',tot:6:2);
                                                                 writeln('                    ');
                                                                 writeln('Pressione enter para votar ao menu principal.....');
                                                                 readln();
                                                                 
                                                            end;
                                                     end;
                                                 break;
                                        writeln('testo fantasma , spook spook');
                                        readln(respostas1.op6);
                                        until Upcase(respostas1.op6)='S';         
                                         end;
                                    2:begin
                                            //relatorio funcionarios
                                            repeat
                                                clrscr;
                                                writeln('Informe o codigo do funcionário em questão');
                                                readln(respostas1.cod2);
                                                    for i:=1 to 10 do
                                                      begin
                                                           if respostas1.cod2 = vendas[i,3] then
                                                             begin
                                                                    for y:=1 to 10 do
                                                                    begin
                                                                       if respostas1.cod2=funcionarios[y,1] then
                                                                       begin
                                                                        respostas1.nome2:=funcionarios[y,2];
                                                                       end;
                                                                       clrscr;
                                                                       writeln('                      ');
                                                                       writeln(' Nome do Funcionário:',respostas1.nome2,' Cliente atendido:',clientes[i,2],' Produto:', vendas[i,4]);
                                                                       writeln(' Nome do produto:',produtos[i,2], ' Quantidade:', vendas[i,5]);
                                                                       writeln('                      ');
                                                                       writeln('Pressione enter , para voltar ao menu principal...');
                                                                       readln();
                                                                       break;
                                                                    end;
                                                             end;
                                                     end;
                                                    break;
                                            writeln('texto fantasma , spooky spooky');
                                            readln(respostas1.op5);
                                            until Upcase(respostas1.op5)='S';    
                                        end;
                                    3:begin
                                            //relatorio anual
                                        end;
                                    4:begin
                                            //relatorio mensal
                                        end;
                                    5:begin
                                        end;                
                          end;
                
                    end;
                4:begin
                        writeln('Deseja sair do programa? [S/N]');
                        readln(respostas1.resp);
                    end;              
    end;
            
            
 until Upcase(respostas1.resp)='S'; 
End.

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Simon Viegas disse:

@KXSY, como assim "colocar datas"? Poderia dar exemplos do que você quer fazer?

Só funciona no delphi e freepascal.

Program DataEHora;
uses
    Crt, SysUtils;
    
begin
    writeln('Hora atual:', TimeToStr(Time));
    writeln('Data atual:', DateToStr(Date));
    readln;
end.

Pelo o que eu entendi ela (@Juju122 ) quer colocar a data na hora de registrar uma venda, até onde eu usei o PascalZim ele não tem nenhuma função para fazer isso.

Link para o comentário
Compartilhar em outros sites

@Juju122 kkk então vai ter que ser na mão mesmo!

@Juju122 Você deveria organizar melhor o código, ele está meio criptográfico.

Uma organização melhor seria assim.

Spoiler

Program Vendas;
uses
    Crt, SysUtils;
    
const
    Q_FUNCIONARIOS = 10;
    Q_PRODUTOS = 10;
    Q_CLIENTES = 5;
    
type
    TPessoa = record
        codigo:string[10];
        nome:string[40];
        telefone:string[15];
    end;
    
    TProduto = record
        codigo:string[10];
        nome:string[40];
        preco:real;
    end;
    
    
var
    Clientes: array[1..Q_CLIENTES] of TPessoa;
    Funcionarios: array[1..Q_FUNCIONARIOS] of TPessoa;
    Produtos: array[1..Q_CLIENTES] of TProduto;
    opções, cont, quantidade_clientes, quantidade_funcionarios, quantidade_produtos: integer;
    
begin
    quantidade_clientes:= 0;
    quantidade_funcionarios:= 0;
    quantidade_produtos:= 0;
    repeat
        (* Menu Principal *)
        clrscr;
        writeln('----Menu Principal----');
        writeln('[1] - Cadastros - ');
        writeln('[2] - Vendas - ');
        writeln('[3] - Relatórios - ');
        writeln('[4] - Sair - ');
        writeln('Informe a opção de seu interesse');
        readln(opções);
        case opções of
            1:begin
                (* Cadastra Clientes *)
                repeat
                    if quantidade_clientes < Q_CLIENTES then
                    begin
                        clrscr;
                        writeln('----Cadastro clientes----');
                        writeln('Informe o codigo do cliente');
                        readln(Clientes[quantidade_clientes].codigo);
                        writeln('Informe o nome do cliente');
                        readln(Clientes[quantidade_clientes].nome);
                        writeln('Informe o telefone do cliente');
                        readln(Clientes[quantidade_clientes].telefone);
                        inc(quantidade_clientes);
                    end
                    else
                        for cont:=1 to Q_CLIENTES do
                        begin
                            writeln('Codigo do cliente:', Clientes[cont].codigo);
                            writeln('Nome do cliente:', Clientes[cont].nome);
                            writeln('telefone do cliente:', Clientes[cont].telefone);
                        end;
                    writeln('Deseja continuar cadastrando 1\para sim 2\para nao:');
                    readln(opções);
                until opções <> 1;
            end;
        end;
    until (opções <= 1) OR (opções >= 3);
end.
    

 

Só fiz um pedaço para você ter uma ideia de como seria.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sobre:

2 horas atrás, KXSY disse:
3 horas atrás, Simon Viegas disse:

@KXSY, como assim "colocar datas"? Poderia dar exemplos do que você quer fazer?

data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

Só funciona no Delphi e Freepascal.

 

[...]


Pelo o que eu entendi ela (@Juju122) quer colocar a data na hora de registrar uma venda, até onde eu usei o PascalZim ele não tem nenhuma função para fazer isso.

 

@KXSY, você estaria misturando "conseguir pegar a data e hora do sistema" com "inserir data e hora no registro". Uma coisa é uma coisa, outra coisa é outra coisa. Veja:

 

2 horas atrás, Juju122 disse:

@Simon Viegas Tipo, eu quero colocar datas pra fazer relatório mensal e anual, ver o que foi comprado em cada mês, a quantidade , cada funcionário que fez a venda, entende? 

 

Como já observado por vocês, o que se queria é o registro de algo, não a origem desse algo... Pegar ou não a hora do SO seria uma forma de automatizar e organizar o processo. Mas, como já citado, poderia simplesmente digitar manualmente... ou pensar em outras formas...

 

 

 

@Juju122, uma boa forma para achar uma solução de um problema é saber qual é o problema. Para esclarecermos melhor o que se quer/precisa poste o enunciado completo

 

 

 

Como demonstração... por exemplo, se quer de alguma forma registrar a data e hora, seguindo o que já foi implementado, poderia ser algo assim:

 

O cadastro de venda está assim:

 

16 horas atrás, Juju122 disse:


var
  vendas : array[1..10, 1..4] of string;

 

 

Estaria armazenando, respectivamente, os seguintes dados: Código da venda, Código do cliente, Código do Funcionário Responsável e Código do Produto. Bastaria inserir mais um campo para Data e Hora da Venda:

 

var
  vendas : array[1..10, 1..5] of string;


Pronto... aí leria a data pelo console em forma de string mesmo. Exemplo:

 

writeln('                   ');              
writeln('Informe o codigo da venda');
readln(vendas[i,1]);
writeln('Informe o codigo do cliente');
readln(vendas[i,2]);
writeln('Informe o codigo do funcionário responsável');
readln(vendas[i,3]);
writeln('Informe o codigo do produto');
readln(vendas[i,4]);
writeln('Informe a data e hora da venda');
writeln('  Formato: dd/mm/aaaa hh:mm');
readln(vendas[i,5]);
writeln('Informe a quantidade desejada');
readln(total[i,2]);

 

 

Depois teria que, de alguma forma, separar esses dados e fazer os tratamentos desejados... iria funcionar... mas já adianto que esse exemplo não seria uma boa estratégia... foi apenas para demonstrar mesmo..

 

 

Acho que seria melhor reformular a estrutura do código... no teu, você está utilizando registros para armazenar "opções", mas utilizar matriz para armazenar os cadastros... tá meio estranho..

 

Para reanalisar melhor seria bom ter o enunciado completo... ver quais são os requisitos impostos e quais as limitações...

 

De um modo geral, um exemplo poderia ser algo assim:

 

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas em alguns compiladores (Não necessário no Pzim)
program Pzim ;
uses
  CRT; //Carregar o ReadKey(), ClrScr(), TextColor() etc (Não necessário no PZim)
type
  t_Venda = record
              codVenda: string;
              codFuncionario: string;
              codProduto: string; 
              dataVenda: string;
            end;
            
var
  vendas: array[1..10] of t_Venda;
  totalVendas: byte; 
begin
totalVendas := totalVendas+1;

writeln(' CADASTRO DE VENDA ');
writeln('');
write  ('Código da Venda       : ');
readln(vendas[totalVendas].codVenda);
write  ('Código do Cliente     : ');
readln(vendas[totalVendas].codFuncionario);
write  ('Código do Fúncionário : ');
readln(vendas[totalVendas].codFuncionario);
write  ('Código do Produto     : ');
readln(vendas[totalVendas].codProduto);
write  ('Data da venda         : ');
readln(vendas[totalVendas].dataVenda);

writeln;
writeln(' DADOS DA VENDA ');
writeln('Código da Venda       : ', vendas[totalVendas].codVenda:1);
writeln('Código do Cliente     : ', vendas[totalVendas].codFuncionario:1
);
writeln('Código do Fúncionário : ', vendas[totalVendas].codFuncionario:1);
writeln('Código do Produto     : ', vendas[totalVendas].codProduto:1);
writeln('Data da venda         : ', vendas[totalVendas].dataVenda:1);

ReadKey();

end.

 

 

 

image.png

 

 

Isso para cada tipo de registro... reformular toda a estrutura.

 

Outra coisa.. em relação ao relatório, seria bom ter uma persistência de dados... ficaria complicado ter que ficar efetuando cadastros...

 

RESUMINDO:

De um modo geral, deixe essa questão do relatório para depois... primeiro precisa reformular para cadastrar corretamente os dados.

 

Poste o enunciado completo. Daí, vemos o que realmente está sendo solicitado e a partir daí sim parar para ver como pode reformular o código.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...