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