В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Аааа1111111111
Аааа1111111111
19.10.2022 20:05 •  Информатика

Исправьте данную программу Почему то пропускается часть кода
program Viginer;

const
nabor_en: string = '';
nabor_ru: string = '';
kol_en: integer = 26;
kol_ru: integer = 33;

var
arrey_table: array[1..33, 1..33] of string;
text, key, text_key, text_cipher, text_decipher, arrey_str, nabor: string;
i, j, cifra, vihod, otvet, otvet2, x, y, length_text, num, kol: integer;

label
index, cipher_index, decipher, index_2, vihod_end, cipher;
begin

{—
| Главное меню программы |
}

index: { Главное меню программы }
writeln('Вас привествуюет программа для шифрования и дешифрования по методу Виженера');
writeln('Выьерите язык с которым будите работать:');
writeln('1 - Русский');
writeln('2 - Англизкий');
read(otvet);
if (otvet = 1) then begin kol := kol_ru; nabor := nabor_ru end else
if (otvet = 2) then begin kol := kol_en; nabor := nabor_en end else
goto index;

writeln('Если вы желаете зашифровать то введите 1 если дешифровать то введите 2. Если вы желаете покинуть программу введите 3.');
index_2: { Повтор ввода выбора действий при ошибки }
read(otvet2);
if (otvet2 = 1) then goto cipher else
if (otvet2 = 2) then goto decipher else
if (otvet2 = 3) then goto vihod_end else begin
writeln('Неверная команда');
goto index_2;
end;

{—
| Шифрование |
}

cipher: { Шифрование методом печати нужных данных }
writeln('Введите текст который нужно зашифровать:');
read(text);
writeln('Введите ключ:');
read(key);

{ Создание таблицы Виженера }
for i := 1 to kol do
begin
for j := 1 to kol do
begin
if (i > 1) then cifra := j + i - 1 else cifra := j;
arrey_table[i, j] := nabor[cifra];
end;
end;

{ Заполнение строки ключ }
length_text := Length(text);
j := 0;
for i := 1 to length_text do
begin
if (j = Length(key)) then j := 1 else j := j + 1;
text_key := text_key + key[j];
end;

{ Производим шифрование }
text_cipher := '';
for i := 1 to length_text do
begin
if (text[i] = ' ') then text_cipher := text_cipher + '&'
else begin
for j := 1 to kol do
if (nabor[j] = text[i]) then x := j;
for j := 1 to kol do
if (nabor[j] = text_key[i]) then y := j;
text_cipher := text_cipher + arrey_table[x, y];
end;
end;

{ Вывод результата }
writeln();
writeln('РЕЗУЛЬТАТ');
writeln('Ключ: ', key);
writeln('Начальный текст:');
writeln(text);
writeln('Зашифрованный текст:');
writeln(text_cipher);
writeln('Команды: повторить - 1, вернуться в главное меню - 2, выйти из программы - 3');
read(otvet);
if (otvet = 1) then goto cipher else
if (otvet = 2) then goto index else
if (otvet = 3) then goto vihod_end else begin
writeln('Неверная команда');
goto index;
end;

{—
| Дешифрование |
}

decipher: { Дешифроватор }
writeln('Введите текст для дешифрации:');
read(text);
writeln('Введите ключ:');
read(key);

{ Заполнение строки ключ }
length_text := Length(text);
j := 0;
for i := 1 to length_text do
begin
if (j = Length(key)) then j := 1 else j := j + 1;
text_key := text_key + key[j];
end;

{ Производим дешифрование }
text_decipher := '';
for i := 1 to length_text do
begin
if (text[i] = '&') then text_decipher := text_decipher + ' '
else begin
{ Вычисляем номер буквы в алфовите }
for j := 1 to kol do
if (nabor[j] = text_key[i]) then y := j;
{ Создаем нужную строку из таблицы Виженера }
arrey_str := '';
num := y;
for j := 1 to kol do
begin
cifra := j + num - 1;
arrey_str := arrey_str + nabor[cifra];
end;
{ Вычисляем номер нашего символа в созданной строке }
for j := 1 to kol do
if (arrey_str[j] = text[i]) then x := j;
{ По вычесленному номеру выбираем букву из оригинального алфовита }
text_decipher := text_decipher + nabor[x];
end;
end;
{ Вывод результата }
writeln();
writeln('РЕЗУЛЬТАТ');
writeln('Ключ: ', key);
writeln('Начальный текст:');
writeln(text);
writeln('Расшифрованный текст:');
writeln(text_decipher);
writeln('Команды: повторить - 1, вернуться в главное меню - 2, выйти из программы - 3');
read(otvet);
if (otvet = 1) then goto decipher else
if (otvet = 2) then goto index else
if (otvet = 3) then goto vihod_end else begin
writeln('Неверная команда');
goto index;
end;

vihod_end: { Выход из программы }
за использование нашей программы нажмите ESC ');
end.

Показать ответ
Ответ:
Желейка7
Желейка7
09.04.2023 12:07

Фильтры кувшинного типа

Фильтр-кувшин Аквафор Агат 670 *

Это самый простой и бюджетный вариант. Водоочистители подобного типа представляют собой своеобразный кувшин с воронкой и фильтром, в котором вода очищается, преодолевая слой сорбента, как правило, активированного угля. Фильтр-кувшины довольно дешевы, просты в эксплуатации и не нуждаются в подключении к водопроводу. Сменные картриджи продаются в любом супермаркете. К минусам можно отнести неглубокую и достаточно медленную очистку. Бюджетные модели кувшинов, как правило, не подходят для фильтрации солей жесткости — накипи.  

Водоочиститель Coolmart СМ-201

Усовершенствованной вариацией фильтров-кувшинов являются водоочистители. Такие устройства имеют два резервуара: для воды, предназначенной для фильтрации, и для хранения уже очищенной жидкости. Автономная система проточного типа у водоочистителей включает несколько уровней фильтрации воды, обеспечивая более качественную очистку, а также насыщение полезными минералами.

Объяснение:

0,0(0 оценок)
Ответ:
zadorina66
zadorina66
11.03.2022 22:47

Заменяем каждый разряд на код из таблицы.

Двоичная СС Восьмеричная СС

000                                    0

001                                     1

010                                     2

011                                     3

100                                     4

101                                     5

110                                     6

111                                     7

Получаем числа:

1024757520 (7) = 001000010100111101111101010000 (2)

1232400565 (7) = 001010011010100000000101110101 (2)

Складываем (0 в начале числа можно убрать):

1000010100111101111101010000 + 1010011010100000000101110101 = 10010101111011110000011000101

Меняем 1 на 0, 0 на  1:

10010101111011110000011000101 = 01101010000100001111100111010

Двоичная СС Шестнадцатеричная СС

0000                               0

0001                               1

0010                               2

0011                               3

0100                               4

0101                               5

0110                               6

0111                                       7

1000                               8

1001                               9

1010                               A

1011                                       B

1100                               C

1101                                       D

1110                                       E

1111                                       F

Получаем число:

1101 0100 0010 0001 1111 0011 1010 (2) = D421F3A (16)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота