Сергей
?>

Исправьте данную программу Почему то пропускается часть кода 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.

Информатика

Ответы

Виктория-Марина626

1)Монитор,(на счет магнитофона не уверен, сам по себе именно магнитофон никак не является устройством ПК, но если подразумевают пол этим словом динамик ПК, то подходит)

2)Получение

3)Электрический ток

4)Анатомический муляж

5)102 бита

6)48

7)из перечисленных ниже нет верного ответа. 568 в десятичной = 1 000 111 000 в двоичной.

8)АВИБА

9)Представленные ответы неправильны, так как не являются двоичным кодом(присутствуют двойки)+не указано к какой системе счисления принадлежит y (если x - очевидно 16-ти ричная, то y может быть как 16 так и 10

10) И снова нет верного ответа из предложенных, т.к. получится D8

11)800 бит

12) (Ячейки excel где?)

13) Аналогично 12

14)тоже

15)27

16)User-name

17)c*.c*

18)145.92.128.0

19)Верного ответа нет. Правильно: 22

20) 5

Объяснение:

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Исправьте данную программу Почему то пропускается часть кода 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.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

kabinet17
serge-lysoff
galtig83
LYuBOV
Галина-Юлия1292
Бражинскене_Алексей
zibuxin6
antrotip
vapebroshop
Маринина_Елена
Pervosha
omigunova39
dmitrievanata83538
margarita25061961
Alekseevich1012