Buscar

Trabalho - Índice lexicográfico (Algoritmos de programação de computadores)


Prévia do material em texto

Índice lexicográfico (arquivo texto)
Os esquemas de codificação são geralmente usados em situações que requerem criptografia
ou economia na transmissão e armazenamento de informações.
 Contexto
 
Os esquemas de codificação são geralmente usados em situações que requerem criptografia
ou economia na transmissão e armazenamento de informações.
 
Considere o seguinte esquema de codificação para palavras de um dado alfabeto.
 
O alfabeto é o conjunto de letra minúsculas {a, b, c, ..., v, w, x, y, z}.
 
Usando este alfabeto, são consideradas válidas as palavras de 1 até 5 letras que estejam em
ordem lexicográfica estrita. Isto é, toda letra é estritamente maior que sua antecessora na
ordem lexicográfica. Por exemplo, as palavras elmo, gk e itu são válidas, enquanto as palavras
casa, aab e nada não são
válidas.
 
Nosso esquema de codificação é construído associando a cada palavra válida um inteiro que
indica a posição da palavra na lista de palavras,  que é ordenada segundo o tamanho e a
ordem lexicográfica das palavras (para palavras de mesmo tamanho). Isto é:
 a -> 1 
b -> 2 
... 
z -> 26 
ab -> 27 
ac -> 28 
... 
az -> 51 
bc -> 52 
... 
vwxyz -> 83681 
 1 / 3
Índice lexicográfico (arquivo texto)
 Descrição
 
Escreva um programa que leia um arquivo texto contendo uma série de palavras. Para cada
palavra do arquivo, seu programa deve imprimir, em uma linha separada, a palavra lida seguida
do índice correspondente (calculado segundo o esquema de codificação acima), se a palavra
for válida.
 
Seu programa deve imprimir a palavra seguida do zero, se a palavra for inválida.
 
 Assunções e restrições 
 
 1. O nome do arquivo é palavras.txt. Considere que ele estará no mesmo diretório em que o
programa for executado. 
 
 2. O arquivo conterá no mínimo uma palavra. 
 
 3. Cada linha do arquivo pode conter zero ou mais palavras (isto é, pode haver linhas
vazias ou apenas com espaços). 
 
 4. Cada palavra gravada no arquivo pode ter de 1 (um) a 30 (trinta) caracteres, todos
minúsculos. Os caracteres são codificados no padrão ASCII. 
 
 5. São inválidas tanto as palavras que não sigam estritamente a ordem lexicográfica,
quanto as que possuem mais de cinco letras ou contêm letras fora do alfabeto. 
 6. 
A impressão deve seguir o seguinte formato:  pal -> ind 
 
onde pal é a palavra lida e ind é o índice correspondente (ou zero).
 
 
 Exemplo A)
 
Considere que o arquivo palavras.txt contenha as seguintes linhas:
 2 / 3
Índice lexicográfico (arquivo texto)
 z a
 urso 
vwxyz b 
Então, seu programa deve produzir a seguinte saída:
 z -> 26 
a -> 1 
urso -> 0 
vwxyz -> 83681 
b -> 2 
 Informações adicionais
 
Cód: P0530. 
 
Fonte: Este trabalho é baseado no problema xxxx do sítio da Universidade de Valladolid . 
 3 / 3