14.03.2015 Views

ILA - Unisinos

ILA - Unisinos

ILA - Unisinos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (<strong>ILA</strong>) - Página 85<br />

uma escola, números de contas bancarias, inscrições no Cadastro Geral de Contribuintes, etc..<br />

Quase sempre estes identificadores são dados por cadeias de caracteres que envolvem, além de<br />

dígitos, traços, barras e, até, letras. Por exemplo, houve um tempo que as matrículas dos alunos da<br />

Universidade Federal de Alagoas tinham o formato 1999G24D008V9, onde 1999 indicava o ano de<br />

ingresso, G indicava o nível do curso (no exemplo, graduação), 24 indicava o código do curso, D<br />

referia o turno (no exemplo, diurno), 008 indicava um número de série dentre todos os alunos do<br />

curso diurno de graduação 24 ingressantes em 1999, V referia a forma de ingresso (no exemplo,<br />

ingresso por vestibular) e 9 era um dígito verificador que serve para detectar possíveis erros de<br />

digitação. Como veremos no exemplo 8 da seção 8.4, a determinação do digito verificador envolve<br />

operações aritméticas com os números correspondentes aos dígitos que compõem a matrícula, a<br />

conta ou a inscrição. Assim, necessitaremos transformar estes caracteres em números para que<br />

possamos realizar as operações exigidas.<br />

Outra aplicação importante da transformação de cadeia de caracteres em números ocorre nos<br />

sistemas visuais de programação. Normalmente, estes sistemas não possuem um comando do tipo<br />

Ler, sendo a entrada dos dados feita através de boxes de edição, oferecidos pelo sistema para a<br />

criação de interfaces. Nestes boxes de edição o usuário digita os dados de entrada, mesmo os<br />

numéricos, como uma cadeia de caracteres havendo então a necessidade da transformação.<br />

A outra função do <strong>ILA</strong> para manipulação de cadeias de caracteres é a função Parte que<br />

retorna uma subcadeia da cadeia que lhe é passada como argumento. Esta função possui três<br />

parâmetros: a cadeia da qual se quer retornar uma subcadeia, um inteiro que indica a posição a<br />

partir da qual a subcadeia pretendida ocorre na cadeia e um outro inteiro que indica quantos<br />

caracteres tem a subcadeia pretendida. A função Parte possui a seguinte sintaxe<br />

Parte(s, p, n)<br />

onde, como foi dito acima, s é uma cadeia de caracteres, p e n são inteiros, p indicando a posição a<br />

partir da qual está a subcadeia pretendida e n o número de caracteres da tal subcadeia.<br />

Por exemplo, a execução da sequência de comandos<br />

s1 = "abacate"<br />

s2 = Parte(s1, 4, 2)<br />

Escrever s2<br />

escreve na tela a palavra ca. Vale observar que se o número de caracteres pretendido for maior que<br />

o número de caracteres que existem a partir da posição p, a função retornará toda a subcadeia a<br />

partir da posição p. Por exemplo, se o segundo comando da sequência acima fosse<br />

s2 = Parte(s1, 4, 10) seria exibido na tela a palavra cate.<br />

8.3 Exemplos Parte VII<br />

Nesta seção, apresentaremos as implementações em <strong>ILA</strong> de várias funções disponibilizadas<br />

pelos diversos sistemas de computação para manipulação de cadeias de caracteres.<br />

1. Vejamos, como primeiro exemplo, uma função que delete um dado número de caracteres de<br />

uma cadeia dada, a partir de uma posição dada. Para isto, a função terá parâmetros idênticos aos<br />

parâmetros da função Parte: a cadeia de caracteres (s), a posição a partir da qual ocorrerá a exclusão<br />

(p) e o número de caracteres a serem excluídos (n). A idéia da função é bem simples (c é o<br />

comprimento de s): se p + n ≤ c, a exclusão se dará com a concatenação dos p - 1 primeiros<br />

caracteres com os c - (p + n) + 1 últimos caracteres; se p + n > s, basta se tomar os p - 1 primeiros<br />

caracteres.<br />

Variaveis<br />

Caracter s<br />

Numerico c, p, n<br />

Funcao Delete(s, p, n)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!