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

Сообщения закодированы шифром цезаря со сдвигом на 3 буквы вправо.декодируйте сообщения: -нсжцегррв -йгнсжсдгрз фосдс -цобгозрйм тузжпзх-крчсупгхйнг!

👇
Ответ:
Кодування
закодоване слово
улюблений предмет- информатика!
4,8(86 оценок)
Открыть все ответы
Ответ:
марина1924
марина1924
19.10.2022
Первая программа предназначена ТОЛЬКО для Pascal.ABC, в другой среде она работать не будет. Она самая короткая и простая. Метод Split разбивает исходную строку на слова по символу пробела и формирует динамический массив. Что бы мы ни вводили, мы всегда будем получать в результате то, что требовалось. (понятно, что если слов будет меньше трех, будем получать то, что ввели).

var
  s: string;
  ms: array of string;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  ms := s.Split(' ');
  Writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1])
end.

Вторая программа реализуется в любой версии Pascal. Её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. Это простейший линейный алгоритм.

var
  s, s1, s2, s3: string;
  n, p: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  n := Length(s);
  p := Pos(' ', s);
  s1 := Copy(s, 1, p - 1);
  s3 := Copy(s, p + 1, n - p);
  p := Pos(' ', s3);
  s2 := Copy(s3, 1, p - 1);
  n := Length(s3);
  s3 := Copy(s3, p + 1, n - p);
  Writeln(s1 + ' ' + s3 + ' ' + s2)
end.

Третья программа также реализуема в любой версии Pascal и содержит "классический" работы со строкой, состоящий в последовательном анализе каждого символа. Имеет защиту на случай, если слов будет больше или меньше трех.

var
  s: string;
  ms: array[1..3] of string;
  i, n, p, j: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  {
  Алгоритм: Просматриваем все символы строки начиная с позиции p
  и при обнаружении пробела в позиции q заносим в массив очередное слово,
  копируя q-p символов, начиная с p. Затем заносим в p значение q+1
  и продолжаем просмотр. При старте принимаем p=1
  }
  p := 1; j := 0; n := Length(s);
  for i := 1 to n do
    if s[i] = ' ' then
    begin
      j := j + 1;
      if j <= 3 then begin{ если введено больше двух пробелов }
        ms[j] := Copy(s, p, i - p);
        p := i + 1
      end
    end;
  if j < 3 then ms[3] := Copy(s, p, n - p + 1);
  Writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2])
end.

Все три программы опробованы и результаты их работы одинаковы:

Введите три слова через пробел: Зебра полосатая лошадь
Зебра лошадь полосатая
4,5(35 оценок)
Ответ:
queenames
queenames
19.10.2022
Это код консольного приложения

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

function storona(x1,y1,x2,y2: real): real;
var s: real;
begin
  s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  storona:=s;
end;

var
  x1,y1,x2,y2,x3,y3: real;
  l1,l2,l3: real;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  write('Введите координаты точки А: ');
  readln(x1,y1);
  write('Введите координаты точки B: ');
  readln(x2,y2);
  write('Введите координаты точки C: ');
  readln(x3,y3);
  l1:=storona(x1,y1,x2,y2);
  l2:=storona(x2,y2,x3,y3);
  l3:=storona(x1,y1,x3,y3);
  if (l1>l2)and(l1>l3) then
  begin
    writeln('Периметр прямоугольника = ',(l2+l3)*2:6:2);
    writeln('Площадь прямоугольника = ',l2*l3:6:2)
  end;
    if (l2>l1)and(l2>l3) then
  begin
    writeln('Периметр прямоугольника = ',(l1+l3)*2:6:2);
    writeln('Площадь прямоугольника = ',l1*l3:6:2)
  end;
    if (l3>l1)and(l3>l2) then
  begin
    writeln('Периметр прямоугольника = ',(l1+l2)*2:6:2);
    writeln('Площадь прямоугольника = ',l1*l2:6:2)
  end;
  readln;
end.
4,8(70 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ