sábado, 17 de dezembro de 2016

Trabalhando com arquivos - Parte 2.3 - Código leitura/escrita no mesmo arquivo

Olá!

Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
  1. Declarações básicas
  2. Código básico
    1. Código leitura arquivo
    2. Código escrita arquivo
    3. Código leitura/escrita no mesmo arquivo
  3. Código intermediário:
    1. Balance-Line conceito
    2. Balance-Line código
Neste post é abordado os comandos e uma lógica de processamento simples para realizar a leitura e gravação de dados em um arquivo. Lembrando, que na parte 1 desse assunto foi apresentado as declarações básicas que devem ser feitas para executar uma rotina COBOL com arquivos.

O fluxo de processamento consiste em quatro passos: abrir o arquivo em modo de leitura e escrita, ler os dados do arquivo, gravar os dados (sobrescrever as informações do registro) no arquivo, e por fim encerrar o uso do arquivo (fechar o arquivo).


    1 - Abrir o arquivo em modo de leitura e escrita

Quando a abertura de um arquivo é feita no modo de leitura e escrita, significa que as informações do arquivo podem ser manipuladas pelo código COBOL e depois atualizadas no arquivo, ou seja, os dados lidos do arquivo podem ser alterados por informações do banco de dados, variáveis, cálculos, etc; enfim, os dados são manipulados pelo programa COBOL e atualizados no arquivo.

A sintaxe do comando para abrir o arquivo em modo de leitura e escrita, é:
OPEN I-O nome-logico-arquivo.

Exemplo: OPEN I-O ARQUIVO-TESTE.



    2 - Ler os dados no arquivo

Com o comando READ, mesmo procedimento da parte 2.1, é realizado a leitura dos registros do arquivo. Sintaxe:
READ nome-logico-arquivo.

Exemplo: READ ARQUIVO-TESTE.



    3 - Gravar os dados no arquivo

Após ter feito a leitura do registro do arquivo com o comando READ. Usamos o comando REWRITE para realizar a gravação dos novos dados sobre o registro atual do arquivo. Sintaxe:
REWRITE nome-do-item-de-grupo-do-layout-do-arquivo.

      * -- Descricao do arquivo de entrada e saida
       FD ARQUIVO-TESTE.
      *
      * Layout do arquivo: ARQUIVO-TESTE
       01 ARQUIVO-TESTE-REG.
           03 ARQ-TEST-NM-PSS           PIC  X(020).
           03 ARQ-TEST-NM-PSS-SNM       PIC  X(040).
           03 ARQ-TEST-DT-PSS-NSC       PIC  X(010).

Exemplo: REWRITE ARQUIVO-TESTE-REG.



    4 - Encerrar o uso do arquivo

Com o fim da leitura e escrita dos dados no arquivo, é uma boa prática executar o comando CLOSE para fechar o arquivo (encerrar a sessão). Caso, algum arquivo aberto não seja fechado com este comando, então após a execução completa do programa todos arquivos ainda abertos serão fechados. Sintaxe:
CLOSE nome-logico-arquivo.

Exemplo: CLOSE ARQUIVO-TESTE.

  • Exemplo prático de programa
Então com os comandos Open I-O, ReWrite e Close, podemos criar um fluxo simples e eficaz para ler as informações de um arquivo, e sobrescrever o registro do arquivo com novas informações.

Veja a parte do código que contém o fluxo para realizar a leitura e atualização dos dados de um arquivo:
cobol ler e escrever arquivo - felipe barbosa ferreira

Neste programa de exemplo está sendo realizada a leitura de dois registros do arquivo, e alterando a data de nascimento do segundo registro para 99/99/9999. 

Ao ter adicionado comandos displays no programa de exemplo, temos a seguinte resposta após a sua execução:

Abaixo está apresentado o antes e depois dos dados do arquivo para a execução do código de exemplo:

Felipe  Barbosa Ferreira    19/02/1992
Ana     Vieira              12/07/1988
Joao    Santos              03/05/1995
Aline   Silva               14/08/1985

Maira   Dantas              27/12/1976


Felipe  Barbosa Ferreira    19/02/1992
Ana     Vieira              99/99/9999
Joao    Santos              03/05/1995
Aline   Silva               14/08/1985
Maira   Dantas              27/12/1976


Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!

domingo, 11 de dezembro de 2016

Trabalhando com arquivos - Parte 2.2 - Código escrita arquivo

Olá!

Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
  1. Declarações básicas
  2. Código básico
    1. Código leitura arquivo
    2. Código escrita arquivo
    3. Código leitura/escrita no mesmo arquivo
  3. Código intermediário:
    1. Balance-Line conceito
    2. Balance-Line código
Neste post é abordado os comandos e uma lógica de processamento simples para realizar a gravação de dados em um arquivo. Lembrando, que na parte 1 desse assunto foi apresentado as declarações básicas que devem ser feitas para executar uma rotina COBOL com arquivos.

O fluxo de processamento consiste em três passos: abrir o arquivo em modo de escrita, gravar os dados  (registro) no arquivo e encerrar o uso do arquivo (fechar o arquivo).


    1 - Abrir o arquivo em modo de escrita

Quando a abertura de um arquivo é feita modo de escrita, significa que as informações trabalhadas pelo código COBOL podem ser transmitidas para dentro do arquivo, ou seja, os dados (informações do banco de dados, variáveis, cálculos, etc.) manipulados pelo programa COBOL podem ser gravados em um arquivo.

A sintaxe do comando para abrir o arquivo em modo de escrita, é :
OPEN OUTPUT nome-logico-arquivo.

Exemplo: OPEN OUTPUT ARQUIVO-SAIDA.


    2 - Gravar os dados no arquivo

Após ter feito a abertura do arquivo com OPEN OUTPUT, o arquivo está pronto receber informações do programa COBOL. E com o comando WRITE é realizado a gravação dos dados no arquivo. Sintaxe:
WRITE nome-do-item-de-grupo-do-layout-do-arquivo.

      * -- Descricao do arquivo de saida
       FD ARQUIVO-SAIDA.
      *
      * Layout do arquivo: ARQUIVO-SAIDA
       01 ARQUIVO-SAIDA-REG.
           03 ARQ-SAID-NM-PSS           PIC  X(020).

           03 ARQ-SAID-DT-PSS-NSC       PIC  X(010).

Exemplo: WRITE ARQUIVO-SAIDA-REG.



    3 - Encerrar o uso do arquivo

Com o fim da escrita dos dados no arquivo, é uma boa prática executar o comando CLOSE para fechar o arquivo (encerrar a sessão). Caso, algum arquivo aberto não seja fechado com este comando, então após a execução completa do programa todos arquivos ainda abertos serão fechados. Sintaxe:
CLOSE nome-logico-arquivo.

Exemplo: CLOSE ARQUIVO-SAIDA.

  • Exemplo prático de programa
Então com os comandos Open Input, Write e Close, podemos criar um fluxo simples e eficaz para a escrita de dados em um arquivo sequencial.

Veja a parte do código que contém o fluxo para realizar a gravação dos dados no arquivo:
FELIPE BARBOSA FERREIRA - FLUXO GRAVACAO ARQUIVO

Sendo que deste modo, se o arquivo já possuir informações, estas serão sobrepostas pela gravação dos dados do programa COBOL. Neste exemplo o arquivo está sendo gravado com as informações de pessoas e cada registro possui os dados dispostos da seguinte forma: o nome com no máximo 20 caracteres;  data de nascimento no formato dd/mm/aaaa.

Abaixo está apresentado os dados que foram gravados no arquivo de saída pela execução do código de exemplo arquivo-saida.txt, que contém 3 registros:

Felipe Barbosa      19/02/1992
Ana Vieira          02/04/1988
Joao Santos         03/05/1995


Também, há o comando OPEN EXTEND que permite a gravação de dados em um arquivo que já possua informações, ou seja, quando realizado a abertura de um arquivo no modo EXTEND é possivel adicionar dados após as informações contidas no arquivo.

Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!

sábado, 12 de novembro de 2016

Trabalhando com arquivos - Parte 2.1 - Código leitura arquivo

Olá!

Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
  1. Declarações básicas
  2. Código básico
    1. Código leitura arquivo
    2. Código escrita arquivo
    3. Código leitura/escrita no mesmo arquivo
  3. Código intermediário:
    1. Balance-Line conceito
    2. Balance-Line código
Neste post é abordado os comandos e uma lógica de processamento simples para realizar a leitura dos dados de um arquivo. Lembrando, que na parte 1 desse assunto foi apresentado as declarações básicas que devem ser feitas para executar uma rotina COBOL com arquivos.

O fluxo de processamento consiste em três passos: abrir o arquivo em modo de leitura, ler o registro do arquivo e encerrar o uso do arquivo (fechar o arquivo). De modo que o passo de ler o registro do arquivo deve estar em um laço de repetição.


    1 - Abrir o arquivo em modo de leitura

Quando a abertura de um arquivo é feita modo de leitura, significa que as informações que estão contidas no arquivo serão passadas para o COBOL, ou seja, os dados do arquivo serão lidos e manipulados pelo programa COBOL.

A sintaxe do comando para abrir o arquivo em modo de leitura, é :
OPEN INPUT nome-logico-arquivo.

Exemplo: OPEN INPUT ARQUIVO-ENTRADA.


    2 - Ler os dados do arquivo

Após ter feito a abertura do arquivo com OPEN INPUT, o arquivo está pronto para ser lido. E com o comando READ é que é feita a leitura dos dados do arquivo. Sintaxe:
READ nome-logico-arquivo.

Exemplo: READ ARQUIVO-ENTRADA.



    3 - Encerrar o uso do arquivo


Com o fim da leitura ou processamento dos dados do arquivo, é uma boa prática executar o comando CLOSE para fechar o arquivo (encerrar a sessão). Caso, algum arquivo aberto não seja fechado com este comando, então após a execução completa do programa todos arquivos ainda abertos serão fechados. Sintaxe:
CLOSE nome-logico-arquivo.

Exemplo: CLOSE ARQUIVO-ENTRADA.



  • Exemplo prático de programa
Então com os comando Open Input, Read e Close, podemos criar um fluxo simples e eficaz para a leitura de um arquivo sequencial.

Considerando que o arquivo a ser lido contem as informações de pessoas e cada registro possui os dados dispostos da seguinte forma: o nome com no máximo 20 caracteres; sobrenome com no máximo 40 caracteres; data de nascimento no formato dd/mm/aaaa. Abaixo está apresentado os dados de exemplo do arquivo-entrada.txt, que contem 5 registros:

Felipe   Barbosa Ferreira         19/02/1992
Ana      Vieira                   02/04/1988
Joao     Santos                   03/05/1995
Aline    Silva                    14/08/1985
Maira    Dantas                   27/12/1976

Assim o layout deste arquivo é:


      * -- Descricao do arquivo de entrada
       FD ARQUIVO-ENTRADA.
      *
      * Layout do arquivo: ARQUIVO-ENTRADA
       01 ARQUIVO-ENTRADA-REG.
           03 ARQ-ENTD-NM-PSS           PIC  X(020).
           03 ARQ-ENTD-NM-PSS-SNM       PIC  X(040).
           03 ARQ-ENTD-DT-PSS-NSC       PIC  X(010).

E o laço de repetição para ler os registros do arquivo:

      * -- Loop para ler os registros do arquivo
           PERFORM UNTIL FIM-ARQ
               PERFORM 100000-LER-ARQUIVO-ENTRADA
      *
      * --     Mostra o conteudo lido
               DISPLAY 'Registro.......: ' QT-REG-LER-ARQ-ENTD
               DISPLAY 'Nome...........: ' ARQ-ENTD-NM-PSS
               DISPLAY 'Sobrenome......: ' ARQ-ENTD-NM-PSS-SNM
               DISPLAY 'Data nascimento: ' ARQ-ENTD-DT-PSS-NSC
               DISPLAY '.'
           END-PERFORM.

Neste caso quando, o programa tentar ler o sexto registro será retornado file status igual a 10, indicando fim de arquivo, pois o sexto registro não existe. Deste modo FIM-ARQ se torna verdadeiro e o laço de repetição de leitura termina. E por fim o arquivo é encerrado.

Ver o código completo do programa de exemplo

O resultado da execução da rotina, é:

Registro.......: 000000001
Nome...........: Felipe
Sobrenome......: Barbosa Ferreira
Data nascimento: 19/02/1992
.
Registro.......: 000000002
Nome...........: Ana
Sobrenome......: Vieira
Data nascimento: 02/04/1988
.
Registro.......: 000000003
Nome...........: Joao
Sobrenome......: Santos
Data nascimento: 03/05/1995
.
Registro.......: 000000004
Nome...........: Aline
Sobrenome......: Silva
Data nascimento: 14/08/1985
.
Registro.......: 000000005
Nome...........: Maira
Sobrenome......: Dantas
Data nascimento: 27/12/1976

Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!

sábado, 5 de novembro de 2016

Trabalhando com arquivos - Parte 1 - Declarações básicas

Olá!

Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
  1. Declarações básicas
  2. Código básico
    1. Código leitura arquivo
    2. Código escrita arquivo
    3. Código leitura/escrita no mesmo arquivo
  3. Código intermediário:
    1. Balance-Line conceito
    2. Balance-Line código
As declarações básicas que devem ser realizadas para trabalhar com arquivos no COBOL, são feitas em três sections: INPUT-OUTPUT; FILE LOCAL-STORAGE. Conforme abaixo:

  • INPUT-OUTPUT
Definição do nome do arquivo lógico para o endereço do arquivo físico, O nome lógico do arquivo é o que será usado no código do programa. 

A sintaxe do código:
      *
       FILE-CONTROL.
      *
      * -- Arquivo de leitura
              SELECT nome-arquivo-logico
               ASSIGN endereco-do-arquivo-fisico
                   FILE STATUS IS variavel-do-status-do-arquivo.

Uma boa prática é definir nome lógico do arquivo conforme seu nome físico, exemplo:
      *
       FILE-CONTROL.
      *
      * -- Arquivo de leitura
              SELECT ARQUIVO-ENTRADA
               ASSIGN 'C:\workspace\arquivo-entrada.txt'
                   FILE STATUS IS IN-FILE-EST-ARQ-ENTD.
  • FILE
Descrição do tipo de arquivo e registro. As declarações do tipo de arquivo são opcionais e são feitas na FD (file description) para maiores detalhes destas declarações veja aqui.

A descrição do registro do arquivo ou também como conhecida de layout do arquivo, é definido logo após a FD do arquivo, contendo exatamente as informações que estão no arquivo. Ou seja, se no arquivo haver por exemplo um nome com o tamanho de 20 bytes e o sobrenome com também 20 bytes de tamanho, o registro do arquivo possui o tamanho de 40 bytes. Assim a representação no COBOL é uma variável nome e sobrenome com o formato de PIC X(020) cada uma.

Abaixo veja o exemplo de layout para o arquivo-entrada.txt
      *
      * -- Descricao do arquivo de entrada
       FD ARQUIVO-ENTRADA.
      *
      * Layout do arquivo: ARQUIVO-ENTRADA
       01 ARQUIVO-ENTRADA-REG.
           03 ARQ-ENTD-NM-PSS           PIC  X(020).
           03 ARQ-ENTD-NM-PSS-SNM       PIC  X(040).
           03 ARQ-ENTD-DT-PSS-NSC       PIC  X(010).

Note que o nome na FD é o nome do arquivo lógico, deste modo está FD está referenciando o arquivo-entrada.txt. E também podemos visualizar que cada registro deste arquivo possui o nome da pessoa com 20 bytes, o sobrenome com 40 bytes, e a data de nascimento com 10 bytes.

  • LOCAL-STORAGE
Nesta section é realizada a declaração da variável para armazenar o status das operações (leitura, escrita, etc.) realizadas no arquivo é feita conforme:
      *
      * -- Declaracao de file-status do arquivo: ARQUIVO-ENTRADA
       01 IN-FILE-EST-ARQ-ENTD          PIC  X(002) VALUE SPACES.

A variável possui o formato de PIC X(002), pois os códigos retornados destas operações não são superior a este formato. Veja a tabela de códigos aqui.

Com as declarações feitas acima já é possível realizar operações no arquivo-entrada.txt. Estas operações serão demonstradas nos próximos posts.

Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!

sábado, 8 de outubro de 2016

XML Generate

Olá!

Neste post será apresentado uma das formas de gerar uma string no formato de XML. O comando utilizado é o XML GENERATE, que possui a sintaxe para uso muito simples, veja abaixo:


XML GENERATE variável-A
        FROM variável-B
    COUNT IN variável-C
ON EXCEPTION expressão
END-XML.

Onde:
  • variável-A: é a variável que armazena a resposta/string gerada pela execução do comando.
  • variável-B: variável que contém as informações para gerar a string no formato de XML.
  • variável-C: após a execução do comando irá conter o número total de caracteres da resposta/string gerada, ou seja, possui o tamanho da string gerada em XML.
  • expressão: em caso de erro na geração da string para XML será acionado uma exceção, a expressão é o comando que será executado em caso de erro.
Segue abaixo um exemplo de código COBOL para gerar uma string no formato de XML com os dados de uma pessoa.

Declaração das variáveis:
xml generate - felipe barbosa ferreira

Código:
xml generate - felipe barbosa ferreira

Neste código de exemplo temos a seguinte relação:

variável-AGDA-TX-FMT-XML
variável-BIdentificacaoPessoa
variável-CGDA-TOTAL-CHAR-XML
expressãoPERFORM 999001-ERRO-01

Assim, ao executar o código de exemplo o resultado é:
GDA-TOTAL-CHAR-XML = 136
GDA-TX-FMT-XML = <IdentificacaoPessoa><Codigo>1</Codigo><Nome>Felipe</Nome><Sobrenome>Barbosa Ferreira</Sobrenome><Idade>23</Idade></IdentificacaoPessoa>


Para melhor visualização do resultado da execução do código de exemplo, segue abaixo a string gerada no formato de XML endentada:

<IdentificacaoPessoa>
    <Codigo>1</Codigo>
    <Nome>Felipe</Nome>
    <Sobrenome>Barbosa Ferreira</Sobrenome>
    <Idade>23</Idade>
</IdentificacaoPessoa>

Note que facilmente é gerado uma string no formato de XML. Sendo, uma grande vantagem de utilizar o XML GENERATE é que espaços em brancos a direita e zeros a esquerda são descartados automaticamente do resultado final.

Também, que neste exemplo em caso de erro será acionado o parágrafo de erro 01, por meio do comando PERFORM 999001-ERRO-01.

O  XML GENERATE possui outros comandos opcionais que facilitam a criação de strings xmls mais elaboradas, veja na página da IBM (clique aqui).

Em um post anterior foi demonstrado como extrair o conteúdo de uma string que estejam no formato de XML, veja em Unstring XML COBOL.

Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA
Até o próximo post!

quinta-feira, 29 de setembro de 2016

Calcular a quantidade máxima de OCCURS

Olá!

Em programas que possuem lista de registros na área de dados de comunicação (entrada/saída de dados do programa), onde a quantidade de ocorrências da lista tem que ser determinada para aproveitar todo o espaço da área de dados. Ou seja, se as variáveis que não estão na lista ocupam 20 % do espaço da área de dados, os outros 80% podem ser ocupados com os dados da lista.

Assim, para determinar a quantidade máxima de ocorrências que a lista possa assumir, de modo a aproveitar todo espaço de dados, é necessário realizar a avaliação do espaço que está sendo utilizado pelas variáveis que não estão na lista; do tamanho de cada registro da lista, e do tamanho do espaço da área de dados do programa.

Por exemplo, se cada registro da consulta tiver o tamanho de 1.5 MB e a rotina utilizar comunicação via COMMAREA, o número máximo de registros que poderão ser passados a cada vez para a outra camada é de 21 registros. Porque o tamanho máximo suportado em COMMAREA é de 32.7 MB e divido pelo tamanho do registro que é 1.5 MB, temos o resultado de 21.8 que representa o número de vezes que podemos repetir o tamanho desse registro, ou seja, podemos passar até 21 registros para a outra camada.

Para simplificar o cálculo básico para definir a quantidade registros que podem ser trafegados entre as camadas, é: A = (B - C) / D.
Onde:
  • A - Número de ocorrências
  • B - Tamanho da área de comunicação
  • C - Parte de dados fixa
  • D - O tamanho de cada registro

Exemplo de cálculo com o book abaixo para comunicação COMMAREA.

Book SEM numero de ocorrencias - FELIPE BARBOSA FERREIRA

A - ??
B - 32.7 MB
C - 127 bytes
D - 1.5 MB

A = (32700 - 127) / 1500

Logo, o resultado de A = 21,71, como não existe 0,71 de ocorrência, então arredondamos para baixo, 21 ocorrências possíveis. Assim, o book de exemplo pode conter além da parte fixa, uma lista com até 21 ocorrências.

Para facilitar a leitura e codificação dos controles de laço de repetição que manipularam os campos da lista, é uma boa prática definir o total ocorrências com números que contenham o final em zero, exemplo: 10; 20; 50; 100; 200; 500; 1000; 1500; 2000.

Book com número de ocorrências definido:

Book com numero de ocorrencias - FELIPE BARBOSA FERREIRA

Agora, pense na situação em que por exemplo a lista de resposta do programa somente consiga transportar 20 registros, entretanto na base de dados (DB) há 100 registros para a resposta do programa, assim se executarmos o programa irá faltar 80 registros. Para que seja retornado todos os 100 registros, será necessário criar um controle de reprocessamento, para que sejam processados os 20 primeiros registros e depois os demais registros que estão contidos no DB. Este controle será apresentado no próximo post!

Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA
Até o próximo post!

domingo, 18 de setembro de 2016

Verificar a quantidade de espaço usada da área de dados

Olá!

Para que não seja ultrapassado o limite da quantidade de dados que podem ser transitados entre os programas, é necessário realizar a verificação do tamanho da área de dados que está sendo utilizada pelo programa.

Em um programa que não possui lista de registros, a verificação consiste em apenas fazer o somatório dos tamanhos das variáveis que são usadas para receber e enviar dados do programa, se o resultado do somatório ultrapassar o limite suportado pela área de dados será necessário analisar a situação. Exemplo:

Área de dados:
           03 REQUISICAO.
      * --    OBRIGATORIOS
               05 CD-ALUNO                       PIC  9(009) COMP.
      *
           03 RESPOSTA.
      * --    CONTROLE DE ERRO
               05 CD-ERRO                        PIC  9(009) COMP.
               05 TX-ERRO                        PIC  X(120).
      * --    DADOS PROCESSADOS
               05 NM-ALUNO                       PIC  X(050).

Somatório = 4 + 4 + 120 + 50
Somatório = 178 bytes

Note que variáveis compactadas ocupam um espaço menor, e para o cálculo do somatório é utilizado os valores que cada variável usa/ocupa de espaço na área de dados.

Para os programas que possuem lista de registros, é necessário realizar o cálculo da seguinte forma:

Somatório = somatorioVariaveisFixas + (quantidadeDeOcorrencias * (somatorioVariaveisLista))

Área de dados com lista:
           03 REQUISICAO.
      * --    OBRIGATORIOS
               05 CD-ALUNO                       PIC  9(009) COMP.
      *
           03 RESPOSTA.
      * --    CONTROLE DE ERRO
               05 CD-ERRO                        PIC  9(009) COMP.
               05 TX-ERRO                        PIC  X(120).
      * --    DADOS PROCESSADOS
               05 LS-ALUNOS OCCURS 10 TIMES.
                   05 NM-ALUNO                   PIC  X(050).
                   05 NM-ALUNO-SOBRENOME         PIC  X(050).

somatorioVariaveisFixas = 4 + 4 + 120
somatorioVariaveisFixas = 128

quantidadeDeOcorrencias = 10

somatorioVariaveisLista = 50 + 50
somatorioVariaveisLista = 100

Somatório = 128 + (10 * 100)
Somatório = 1128 bytes

Repare que mesmo neste exemplo que possui variáveis com tamanhos relativamente pequenos, quando realizado o cálculo para verificar a área total utilizada para conter as informações, o resultado se apresenta maior do que o esperado, pois nenhuma variável possui o tamanho um tamanho "grande" e já está sendo usado mais de 1 MB de espaço.

Então, considerando que aplicações em cenários reais usam mais variáveis, ou até mesmo mais de uma lista na área de dados do programa, é recomendável realizar está simples verificação nos programas desenvolvidos. 

Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!