М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Dion111
Dion111
21.04.2022 06:14 •  Информатика

Юный программист Володя решил написать программу, которая занимается шифрованием слов. Шифрование происходит следующим образом: каждая буква слова заменяется на какую-то другую букву алфавита, которая расположена ровно на N символов правее исходной, при этом алфавит "зациклен": за буквой 'Я' идёт буква 'А'. Слово состоит только из букв русского алфавита, нумерация букв в слове начинается с 0. Володя сидел над программой весь вечер, запустил её - и она оказалась рабочей! Однако на следующее утро Володя понял, что не учёл один момент, из-за чего при некоторых значениях N программа не сможет верно зашифровать некоторые слова.

1. Приведите пример такого слова и такого значения N, при котором программа не сможет зашифровать слово.

2. Исправьте Володину ошибку.

Обозначения:

функция length(word) возвращает длину слова word;
функция mod(N, 33) возвращает остаток от деления N на 33;
функция search(alph, word[i]) возвращает номер символа word[i] в строке alph (функция возвращает -1, если символ не найден, нумерация символов в строке начинается с 0).
алг secret_word(цел N, лит word)

нач

лит res := ""
лит alph := ""
лит ALPH := ""
сим c = 'a'

нц для i от 0 до length(word) - 1

если search(ALPH, word[i]) > -1 то

c = ALPH[ search(ALPH, word[i]) + mod(N, 33) ]

всё

если search(alph, word[i]) > -1 то

c = ALPH[ search(alph, word[i]) + mod(N, 33) ]

всё

res := res + c

кц

вывод res

кон

👇
Ответ:
ruslana0404
ruslana0404
21.04.2022
.
Володя не правильно вернул функцию alph-соответствие между элементами двух множеств — правило, по которому каждому элементу первого соответствует один и только один элемент второго множества. Математическое понятие функции выражает интуитивное представление о том, как одна величина полностью определяет значение другой величины.
4,5(48 оценок)
Открыть все ответы
Ответ:
aniyzelenev
aniyzelenev
21.04.2022
Var
  i, k, n1, n2: integer;

begin
  n1 := 0;
  n2 := 0;
  {предполагается, что нумерация домов начинается с 1}
  writeln('Вводите количество жителей в порядке возрастания номеров домов');
  writeln('Окончание ввода - по отрицательному значению');
  i := 1;
  repeat
    read(k);
    if k > 0 then
    begin
      if i mod 2 = 0 then n2 := n2 + k
      else n1 := n1 + k;
      i := i + 1
    end
  until k < 0;
  write(#13#10, 'Большее количество людей проживает на ');
  if n1 > n2 then writeln('левой стороне улицы.')
  else writeln('правой стороне улицы.')
end.

Тестовое решение:

Вводите количество жителей в порядке возрастания номеров домов
Окончание ввода - по отрицательному значению
13 56 25 31 98 35 72 64 -1

Большее количество людей проживает на левой стороне улицы.
4,8(79 оценок)
Ответ:
konfetabox
konfetabox
21.04.2022
Var
  i, k, n1, n2: integer;

begin
  n1 := 0;
  n2 := 0;
  {предполагается, что нумерация домов начинается с 1}
  writeln('Вводите количество жителей в порядке возрастания номеров домов');
  writeln('Окончание ввода - по отрицательному значению');
  i := 1;
  repeat
    read(k);
    if k > 0 then
    begin
      if i mod 2 = 0 then n2 := n2 + k
      else n1 := n1 + k;
      i := i + 1
    end
  until k < 0;
  write(#13#10, 'Большее количество людей проживает на ');
  if n1 > n2 then writeln('левой стороне улицы.')
  else writeln('правой стороне улицы.')
end.

Тестовое решение:

Вводите количество жителей в порядке возрастания номеров домов
Окончание ввода - по отрицательному значению
13 56 25 31 98 35 72 64 -1

Большее количество людей проживает на левой стороне улицы.
4,5(29 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ