Índice
- Disciplinas Atuais
- Disciplinas Antigas
Departamento de Sistemas e Computação
Professor: João Araujo
Você é um agente secreto e quer enviar uma mensagem criptografada para seu chefe, para isso você resolve usar um método bem simples de criptografia baseado em um algorimo usado pelo imperador Júlio César: Cada letra da sua mensagem será modificada de acordo com o seguinte algoritmo:
Pegue sua matrícula na UERJ, digamos que ela seja 199112340567. Cada letra será avançada ou recuada de acordo com o dígito de sua matrícula. Inicialmente as letras são avançadas, ou seja, a letra 'b' se torna 'c', se o dígito for 1. Quando aparecer um espaço, tabulaçao ou nova linha na mensagem, as letras subseqüentes têm o sentido de conversão invertido, ou seja, a letra 'b' se torna 'a', se o dígito for 1. Todo caracter de tabulação ou nova linha deve ser considerado como sendo um espaço em branco. O espaço em branco é considerado vir antes do 'a'. O programa não deve mudar o “case” das letras e os sinais de pontuação são simplesmente copiados, sem conversão, mas deve provocar o salto do dígito correspondente na matrícula. Para codificar a mensagem
“Celacanto provoca maremoto? Sim.”, com a matrícula acima, teríamos:
“Dnubdcqxoejknmfb yperjsvux?aRgj.”, com a matrícula repetida, na forma:
“19911234056719911234056719911234”, baseado na seguinte string de conversão:
“ abcdefghijklmnopqrstuvwxyz”
O programa deve poder receber um texto com várias linhas. Cada linha deve possuir um máximo de 100 caracteres. Se ultrapassar este limite, deve ser emitida mensagem de erro. No final, como foram removidos os caracteres de nova linha, seu programa deve fornecer como saída o texto criptografado formatado em linhas de 80 caracteres no máximo.
Para garantir que a mensagem não foi adulterada, você também imprime, no final, o resultado da soma de todos os caracteres da mensagem original, depois de convertidos os caracteres de nova linha e tabulação para espaço em branco (lembre-se, o caracter de nova linha e o de tabulação devem somar como se fossem espaços em branco.