Шифрование двух текстов - Pascal ABC

  1. Не могу понять,как составить программу для шифрования текста. Суть в том,что изначально есть какой то текст,пользователь вводит второй текст. Далее берётся по первому символу из обоих текстов,переводится в двоичный код по кодировке Ascii, затем поэтапно складываются разряды у этих символов. В итоге выводится зашифрованный текст. Объясните,пожалуйста,как сделать такую программу.


textual

Код:

Program Kursovaya;
//процедура-кодек, исходная и зашифрованная строка одна и та же
procedure codec(var s: string);
const keystr = 'Суперключ, не разгадать почти что.'; //ключ
var i, count: integer; //счётчики для строки и ключа
begin
  count := 0; //начальное значение, в данном случае 0 для удобства алгоритма
  for i := 1 to length(s) do //пробегаем по символам строки
    begin
      inc(count); //указадель ключа - на следующий его символ
      if count = length(keystr) + 1 then count := 1;
      //если длина строки больше длины ключа, ключ используем многократно
      s[i] := char(byte(s[i]) xor byte(keystr[count]));
      //xor кода символа строки с кодом символа ключа и запись полученного символа назад в строку
      //сначала соответствующие сиволы строки и ключа приводятся к типу byte,
      //затем к полученным байтам применяется поразрядно операция xor,
      //затем полученный байт снова приводится к типу char
      //и записывается на место исходного символа строки
    end;
end;
 
var str: string;
    i: integer;
 
begin
  writeln('Введите ваше сообщение'); //ввод строки
  readln(str);
  codec(str); //шифрование
  //вывод зашифрованной строки, для исключения конфликтов при выводе
  //вместо символов с кодом менее пробела выводится вопросительный знак
  writeln('Зашифрованное сообщение:'); //печать зашифрованного сообщения
  for i := 1 to length(str) do if str[i] < ' ' then write('?') else write(str[i]);
  writeln;
  codec(str); //декодирование
  writeln('Расшифрованное сообщение:'); //печать расшифрованного сообщения
  writeln(str);
  readln
end.


Похожие ответы
  1. Зада ) Багаж пассажира характеризуется количеством и общей массой вещей. Дан файл Bagazh, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно поле действительное (масса вещей в килограммах). Определить: а) число пассажиров, имеющих более двух вещей, и число пассажиров, количество вещей, которых превосходит среднее; б) имеется ли пассажир, багаж которого состоит из одной вещи массой менее Т [кг]. файл должен создаваться программой

  1. Дана строка произвольного текста. Напечатать в алфавитном порядке буквы текста, входящие в него не менее двух раз, и их ASCII-коды.

  1. Найти координаты пунктов пересечения двух окружностей радиусами и с центрами в пунктах (;) и (;) соответственно.

  1. Даны длины двух катетов прямоугольного треугольника. Вычислить длину его гипотенузы. Входные данные: Во входном потоке заданно два вещественных числа a и b. Выходные данные: В выходной поток вывести единственное вещественное число с точностью три знака после запятой. Пример входного файла (input.txt): 3 4 Пример выходного файла (output.txt): 5.000

  1. Составить программу, которая вводит длину, ширину и высоту для двух параллелепипедов, а затем определяет, какой из двух параллелепипедов имеет большую площадь

  1. В программе ввести индекс,значение которого увеличивается после каждого действия оператора.

  1. Вычислить округленное значение логарифма модуля суммы синусов двух заданных вещественных чисел Входные данные: Во входном потоке в первой строке задано два вещественных числа. Значения чисел по модулю не превышают 1 000 000 000. Выходные данные: В выходной поток вывести одно целое число. Пример входного файла (input.txt): 5.5 2.5 Пример выходного файла (output.txt): -2 ______________________________________________________________ Вот так что ли, или как?

  1. Задание В заданном тексте определить,сколько раз встречается каждое различное двухбуквенное сочетание. (Как я понял, это определёННый,феРРум,кООператив...) (ну только разные) И как вообще для таких "штук" рисуется блок схема,немного недопонял.

  1. Задание сделать 2 способами:с помощью процедуры и функции.Реализацию подпрограмм и их вызов сделать в одной программе.Само задание: Составить подпрограмму вычисления максимального из двух чисел.Используя её,вычислить максимальное среди 3х чисел. Программа не очень трудная.Буду очень благодарен за блок схему. ( Пример, процедура-слева,функция-справа,а снизу идёт уже в один столбец основная программа с Begin по End) Огромное спасибо!

  1. Составьте программу получения двух новых слов из слова "информатика".