m1_260824.txt este arquivo: m1_260824.txt ====================================== TEMAS E MATERIAIS PARA ESTUDO - 260824 Listas e tabelas decimais Exemplos de listas (ou "tabelas") unidimensionais: 1 3 4 7 8 2 2 0 9 6 R T D 8 * / ' CV NOP AST ss &*" supondo o caracter () como separador entre cada elemento da lista. Poderíamos usar a vírgula seguida de espaço como separador: 1, 3, 4, 7, 8, 2, 2, 0, 9, 6, R, , T, D, 8, *, /, ', CV, NOP, AST, ss, &*" ou uma vírgula isolada como separador: 1,3,4,7,8,2,2,0,9,6,R, ,T,D,8,*,/,',CV,NOP,AST,ss,&*" Aqui temos uma dificuldade, a de representar o(s) caracter(es) que estamos usando como separador(es). Como escrever espaços ou vírgulas quando significarem separadores? Costuma-se "escapar" do significado "especial" de um caracter de "controle" através de um "sinalizador" (outro caracter de "controle") colocado antes do que desejamos "escapar". No caso, se a vírgula é um caracter que escolhemos como "controle" para separar elementos, se quisermos representar o caracter "vírgula" temos que "escapar" (da) sua função de "separador". Um caracter muito usado como "escape" é a barra invertida \ Para representar VÍRGULAS - isoladas ou combinadas com outros caracteres - COMO ELEMENTOS significativos da lista, e não como "controle", precisamos "escapar" (do) seu significado de "separador". Usando a barra invertida \ como caracter de escape, poderíamos representar vírgulas, ou elementos com vírgulas, assim: 1,3,4,T,\,,z,asd\,fg, ,ppp significando 1 3 4 T , z asd,fg ppp (acima, os mesmo elementos representados em linhas diferentes, isto é, separados por pula-linhas; note que o caracter espaço - na oitava linha da coluna acima - não é "visível") Nota: Para se pular linhas é necessário haver alguma indicação de que após (ou antes de) certo caracter o cursor deve ser posicionado (em geral na primeira posição) da próxima linha. Essa indicação é feita através de um "caracter pula-linha" que faz parte da codificação do texto digital, código "invisível como letra" mas com o efeito perceptível de quebrar a linha atual. A tecla de maiúsculas também não "escreve" nada, mas tem o efeito perceptível de alternar o conjunto de caracteres entre maiúsculas e minúsculas, como sabemos. Mas, atenção, o caracter pula-linha faz parte do texto, enquanto que o acionamento da tecla de maiúsculas-minúsculas não é normalmente representado, pois os códigos de letras maiúsculas já são diferentes do das letras minúsculas no texto codificado. Por outro lado, se quisermos representar uma lista que contém ESPAÇOS - isolados ou combinados com outros caracteres - COMO ELEMENTOS da lista, precisamos "escapar" do seu significado de "separador". Usando a barra invertida \ como caracter de escape, poderíamos representar espaços, ou elementos com espaços, assim: 1 3 4 T , z asd,fg \ ppp significando, como antes, 1 3 4 T , z asd,fg ppp Note que o sétimo elemento 'asd,fg' está separado do oitavo elemento '\ ' (espaço escapado) por um caracter de controle ' ' (espaço) antes do escape; e que o oitavo elemento '\ ' (espaço escapado) está separado do nono elemento 'ppp' pelo caracter de controle ' ' (espaço) E assim por diante. Um caracter de "controle" convencional, para valer como caracter integrante da lista (sequência), deve ter sua ação de controle "escapada" (anulada) através de outro caracter de controle convencionado para o "escape". PERGUNTA FÁCIL: Como incluir como elemento na lista o caracter barra invertida \ que convencionamos usar para o "escape"? Por exemplo, como representar em uma linha a sequência 1 2 \ 4 (Escolha um caracter para "separador") Por que considera razoável a solução que deu para a questão? PERGUNTA DESAFIO (não responda rápido, responda pensando bastante): O caracter 'pula-linha' é um caracter de "controle" ou um caracter comum? Por quê? DICAS: Tendo em vista os exemplos dados, -para valer como pula-linha, em que situação o caracter pula-linha deve ser "escapado"? -para valer como vírgula, em que situação o caracter vírgula deve ser "escapado"? -para valer como espaço, em que situação o caracter espaço deve ser "escapado"? -você acha que o valor "especial" ou não de um caracter depende da convenção do contexto? ======== 03 04 05 06 07 08 09 10 11 12 13 ... é uma lista (sequência) de inteiros (representados) em notação decimal O (prefixo, leading) zero à esquerda serve para manter igual o número de dígitos para todas as representações. Podemos incluir outros elementos, por exemplo 00 01 02 03 04 05 06 07 08 09 10 11 12 13 ... e podemos organizar, de forma compacta, a lista em grupos de dez elementos com dois dígitos, em dez linhas 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 Aqui, em vez de uma lista ou tabela unidimensional, temos uma TABELA BIDIMENSIONAL DECIMAL COM DEZ COLUNAS(I) representando (de 00 a 99) unidades (colunas) e dezenas (linhas). É fácil verificar aqui o ciclo regular de repetições de cada dígito, a lei de formação de novos símbolos compostos, - a cada dez elementos, a posição das unidades apresenta o mesmo dígito. Se precisássemos representar decimais com dois dígitos em ciclos não mais de dez colunas, mas de dezesseis colunas, por exemplo, teríamos algo assim TABELA BIDIMENSIONAL DECIMAL COM DEZESSEIS COLUNAS (II) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 Na tabela acima perdemos a regularidade visível da distribuição das repetições dos dígitos decimais, pois o ciclo de atualização das linhas (de 16 em 16 elementos) não coincide com o ciclo de atualização das unidades (de 10 em 10 elementos). Uma representação diferente para manter os ciclos de mudança de linha (a cada 16 elementos) e variação de símbolos (a cada 16 elementos) compatíveis: TABELA BIDIMENSIONAL HEXADECIMAL COM DEZESSEIS COLUNAS USANDO SÍMBOLOS DE 00 A 15 (III) Os símbolos elementares não vão de 0 a 9, mas de 00 a 15. Note que omitimos todos os decimais com dois dígitos de 16 a 99. O sucessor de 00.15 é 01.00 (e não 00.16, que não existe nessa representação). 00.00 00.01 00.02 00.03 00.04 00.05 00.06 00.07 00.08 00.09 00.10 00.11 00.12 00.13 00.14 00.15 01.00 01.01 01.02 01.03 01.04 01.05 01.06 01.07 01.08 01.09 01.10 01.11 01.12 01.13 01.14 01.15 02.00 02.01 02.02 02.03 02.04 02.05 02.06 02.07 02.08 02.09 02.10 02.11 02.12 02.13 02.14 02.15 03.00 03.01 03.02 03.03 03.04 03.05 03.06 03.07 03.08 03.09 03.10 03.11 03.12 03.13 03.14 03.15 04.00 04.01 04.02 04.03 04.04 04.05 04.06 04.07 04.08 04.09 04.10 04.11 04.12 04.13 04.14 04.15 05.00 05.01 05.02 05.03 05.04 05.05 05.06 05.07 05.08 05.09 05.10 05.11 05.12 05.13 05.14 05.15 06.00 06.01 06.02 06.03 Na tabela acima, há mudança no primeiro símbolo (cada símbolo tem dois dígitos) a cada esgotamento de linha (16 colunas, de 00 a 15), regularidade similar à da tabela decimal (I). Para evitar representar os símbolos elementares de 00 a 15 com dois dígitos estranhos, pois não seguem integralmente a regra de sucessão decimal, como vimos, substituímos os símbolos 10 a 15 pelas letras-dígitos A B C D E F ou a b c d e f A mesma tabela acima vai ser escrita agora com os novos símbolos assim, novamente uma TABELA BIDIMENSIONAL HEXADECIMAL COM DEZESSEIS COLUNAS (IV) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 Os algarismos de 0 a 9 são chamados de 'decimais' no sistema de numeração que organiza a sucessão de símbolos elementares de 10 em 10, sistema bem conhecido de nós. Os algarismos de 0 a F (ou de 0 a f) são chamados de 'hexadecimais' no sistema de numeração que organiza a sucessão de símbolos elementares de 16 em 16, sistema não absolutamente desconhecido para nós. Sabemos, pela lei-de-formação de novos símbolos compostos (ou, simplesmente, 'símbolos') , qual é o sucessor e qual é o antecessor de qualquer símbolo em qualquer sistema similar, ainda que nunca tenhamos sido apresentados a eles. Sabemos que em notação decimal, que usa algarismos elementares de 0 a 9, o sucessor de 124098761231224817541244818571357124312588597436234651243212415723460872341146169 é 124098761231224817541244818571357124312588597436234651243212415723460872341146170 assim como podemos dizer com certeza que em notação hexadecimal, que usa algarismos elementares de 0 a F (ou 0 a f), que o antecessor de 2448ef41c7f68344a46cb76a9180de1b26c6abc3d28406ba496d044ffc0819a0 é 2448ef41c7f68344a46cb76a9180de1b26c6abc3d28406ba496d044ffc08199f Veja na tabela (IV) que o sucessor hexadecimal de 4F é 50, ou que o antecessor hexadecimal de 30 é 2F. De modo similar o sucessor de .......9f é .......a0, e o antecessor de .......a0 é .......9f. Entre os decimais 0 e 9 não existe nenhuma regularidade aparente na formação dos sucessores ou antecessores de cada algarismo. Mas nos arranjos de mais de um algarismo as sucessões são absolutamente regulares, como sabemos. Em outras palavras, dado o repertório elementar de símbolos singulares usados em um sistema posicional de numeração qualquer, podemos deduzir antecessores e sucessores à luz do que fazemos com os decimais, sem necessidade de aprender novas regras de sucessão. Podemos recordar e imaginar inúmeros sistemas de representação baseados em regularidades na sucessão simbólica, assim como outros sistemas de representação que apresentem pouca ou nenhuma regularidade simbólica. _ | |_ |_| |_| 1 2 3 4 _ _ |_|| |_||_ ... 5 6 ... Acima, a partir do quinto elemento, podemos advinhar a lei-de-formação de novos símbolos sem explicações adicionais. A B C D E F G H I J ... Acima, embora seja fácil advinhar o sucessor para o alfabeto brasileiro que incorporou a letra K - não há muito tempo não havia o K ... - não se trata de uma lei-de-formação, mas de um hábito de uso, de um recurso limitado como todos os baseados exclusivamente na memória. Em qualquer sistema de representação, cada símbolo - elementar ou composto - deve ser suficientemente distinguível de qualquer outro símbolo do sistema, pois sempre se trata de REPRESENTAR E NOMEAR DIFERENÇAS, diferenças existentes, hipotéticas, possíveis, imaginárias, ou meramente simbólicas ou operacionais, como a barra invertida que vimos acima. Por esta razão um símbolo deve ser e parecer sempre diferente dos outros em um mesmo regime de representação. Porque não se trata de nomear ou representar algo isolado, uma positividade, por assim dizer, o que o sistema faz é representar diferenças. Finalmente, para distinguir, nomear ou codificar podemos agrupar os semelhantes em classes, ou podemos agrupá-los tendo em vista suas leis de formação. Neste caso, a noção de semelhança pode diferir bastante, conforme o ponto de vista adotado. ====================================== fim_de_m1_260824.txt