Алгоритм шифрования данных

Задача

Допустим, требуется зашифровать сообщения, состоящие из определенных символов. Например, исходный текст состоит из цифры от 0 до 9 (представленных в программе в виде символов) и других знаков и имеет длину в 15 символов. В шифровке на место цифр подставляются соответствующие им знаки, на место всех остальных символов дополнительный 11-й знак.

Решение

 

Описание переменных: 

В программе имеется 4 массива. Два – в разделе констант, и два – в разделе описания переменных. Первые служат для хранения соответствия цифр символам кодирования, вторые – для хранения данных, введенных пользователем, и результата их шифрования.

Алгоритм решения задачи: 

Сначала данные записываются в массив mytext. Затем требуется просмотреть каждый элемент массива и найти ему соответствие в массиве atext. Когда обнаруживается соответствие, цикл while останавливается и в mycode записывается соответствующий символ-код из массива acode. Если символ не описан в массиве atext, то он заменяется последним элементом массива acode.

Программа на языке Паскаль: 

 

const
    n = 15;
    atext: array[1..10] of char = ('0','1','2','3','4','5','6','7','8','9');
    acode: array[1..11] of char = ('&','+','/','.','^','@','"','!','%','#','$');
var
    mytext: array[1..n] of char;
    mycode: array[1..n] of char;
    i, j: integer;
 
begin
    writeln('Введите данные: ');
    for i := 1 to n do
        read(mytext[i]);
 
    for i := 1 to n do begin
        j := 1;
        while (j <= 10) and (mytext[i] <> atext[j]) do
            j := j + 1;
        if j <= 10 then
            mycode[i] := acode[j]
        else
            mycode[i] := acode[11];
    end;
 
    write('Результат: ');
    for i := 1 to n do
        write(mycode[i]);
 
readln;
end.

 

Тема

Одномерные массивы

Уровень

Сложные задачи

Комментарии

Добавить комментарий