0

Fluxograma na pratica e pseudocódigo em linguagem natural

#Informática Básica #Boas práticas #Arquitetura de Sistemas
Vagner Bellacosa
Vagner Bellacosa

Mao na massa, entenda um fluxograma.


Treine logica de programação resolvendo este desafio com a solução do tiozão.



Salve jovem padawan, hoje o tiozão esta inspirado, passei por uma sabatina e pensei em vocês, muitas vezes aprendemos conceitos, treinamos em ferramentas, mas nao sabemos a sua real e pratica utilidade, com isso em mente, vamos ver uma logica bem comum no mundo dos negócios..


Vou apresentar um problema, usual no cotidiano dos CPDs Empresariais, vamos ver o conceito de BALANCE LINE e sua aplicação. Abaixo deixo o enunciado do problema e uma das possíveis soluções, nao é única e tampouco definitiva, como todos os meus artigos e um trabalho constante. A solução apresentada em estilão cobol foi usada uma logica de Alta Plataforma, bem procedural, porem es livre para deixar a sua solução a sua maneira.


O problema: gerar estatística de compra/venda por loja.



Diariamente a rede de lojas envia ao servidor central, um arquivo contendo a situação de vendas ao final do expediente, o arquivo formatado em TXT com registros consolidados Loja + Cliente + Data + Compra


O exercício é fazer o fluxograma de um programa para a geração de um arquivo TXT com o total de vendas da loja..

 

Arquivos de entrada:
  Arquivo 1: Código Loja, Nome Loja
  Arquivo 2: Código Loja, Código cliente, Data da Compra, Valor Compra.
  
Arquivo de Saída: 
  Nome Loja, Total das Compras


Ambos os arquivos deveram ser ordenados pelo código da loja, no arquivo de lojas haverá apenas um registro por loja e no arquivo de compra haver N registros de loja para N clientes Data e compra, a solução devera gerar um arquivo de saída diário, informando total de compras por loja.


O arquivo será no formato TXT contendo o código da loja e o total das compras.


Fluxograma em nível 1 (Conceito macro)



A solução foi dividida em dois blocos de processo, o primeiro destinado a ordenar os registros em ordem código de loja, pois é uma condição para um balance line perfeito.


Relembrando


Arquivo de loja 1 x 1

Arquivo de compras N X N


Pseudocódigo com logica de nível 2



Neste pequeno código traduzimos em nível 2 de detalhes, com o objetivo de auxiliar o codificador a entender o que se precisa fazer e poder codificar na sua linguagem preferida, quer experimentar? Transcreva esse código em JavaScript, Java, Python, C Sharp ou numa linguagem de sua preferencia.


Abrir Leitura Arquivo1
Abrir Leitura Arquivo2
Abrir Gravação Arquivo3

Ler Registro Arquivo1
Ler Registro Arquivo2

Continue enquanto nao for final do Arquivo1 ou Arquivo2

 Arquivo3.codigo-loja = Arquivo1.codigo-loja
 Arquivo3.total-vendas = Arquivo3.total-vendas + arquivo2.compras

 Ler Registro Arquivo2
 
 Se arquivo1.codigo-loja diferente arquivo2.codigo-loja 
    Gravar arquivo3
    Arquivo3.total-vendas = 0
 Fim-se
 
 Continue enquanto arquivo1.codigo-loja menor que arquivo2.codigo-loja 
    Ler Registro Arquivo1 
**** Verificar a necessidade de gravar loja com venda zerada
 Fim-continue

Fim-continue

Se Arquivo3.total-vendas maior que 0
  Gravar arquivo3
Fim-se

Fechar Arquivo1
Fechar Arquivo2
Fechar Arquivo3


O que é Balance Line?



O termo balance-line surgiu no ambiente mainframe e se expandiu para a area comercial, saiba que terá algum usuário solicitando a sua execução, mas o que é? Balance Line refere-se ao processo utilizado para realizar a consolidação de dados de dois ou mais arquivos de registros. Ou seja, realizar o balanceamento das informações que estão presentes nestes arquivos e verificando a existência de match, compatibilidade ou a inconsistência de registros, está verificação depende da regra de negocio a ser aplicada.


No mainframe este termo é aplicado para a verificação das informações que estão presentes em dois ou mais arquivos, com o objetivo de produzir um resultado com o balanço das informações contidas nos arquivos analisados, normalmente com resumos estatísticos de ambos os arquivos consolidados.


Sendo que o resultado produzido pelo balanço dos dados dos arquivos, pode no fim gerar um novo arquivo, ou atualização de registros na base de dados, ou um relatório gerencial, etc.


Para realizar o balanceamento das informações é primordial que os arquivos estejam com os dados ordenados, e também possuam alguma chave para comparação dos registros, um aplicativo muito util è o SORT e seus parâmetros SUM, OUTREC etc.


Performance



Um cuidado que todo DEV tem que ter em mente é a performance, programas balance line normalmente trabalham com milhares, quiçá milhões de linhas, então cuidado na logica, desvios desnecessários e variáveis alocadas erroneamente. Consomem muito recurso de CPU e memoria RAM, derrubando a performance e causando lentidão em outros aplicativos. Fique atento e cuidado ao programar.


Conclusão


No artigo de hoje apresentei um problema pratico, sua solução em fluxograma e conversão em pseudocódigo em linguagem natural, aprendemos o conceito de Balance Line e uma linha de produção em CPD Mainframe com uma ligeira apresentação sobre o aplicativo SORT.


Espero ter ajudado ate o próximo artigo.


 Mais momento jabá, para distrair, visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=JGmoevI6LXo


Bom curso a todos.


 https://www.linkedin.com/in/vagnerbellacosa/


 https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


 https://www.youtube.com/user/vagnerbellacosa

0
21

Comentários (0)

Analista Programador dinossauro IBM Mainframe

Brasil