Допустим, требуется зашифровать сообщения, состоящие из определенных символов. Например, исходный текст состоит из цифры от 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.
Комментарии
Шифрование
Текст шифруется следующим способом: каждое предложение разбивается на группы по три слова. Недостающие слова заменяются «*». Меняется местами первое слово в группе с третьим, второе остается на месте. Написать программу, шифрующую сообщение данным методом.
А если я хочу вместо n брать
А если я хочу вместо n брать не фиксированное число, а произвольное? Чтобы можно было шифровать сообщения больше или меньше 15 символов. Так можно сделать?
А если я хочу не 15 символов
А если я хочу не 15 символов написать, а произвольно? Может быть мне сегодня надо зашифровать сообщение в 13 символов, а завтра надо будет в 678. не составлять же для каждого отдельного числа программу
Константа
Вообще-то, как раз именно для такого случая и вводят в самом начале константу (в разделе объявления констант). В нашем случае это строка:
const
n=15;
- вместо числа "15" подставляешь то, которое тебе нужно (13 или 678).