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

Решить задачу в любой программе Microsoft Office.
Формат входных данных
На вход программе вводятся два числа h и w (1 6 w, h 6 100) — соответственно
количество строк и столбцов в поле.
Затем в h строках по w символов вводится поле. Каждый символ означает: #
- клетка со стеной, . - свободная клетка, @ - в этой клетке находится робот, E -
выход.
Формат выходных данных
Вывести требуется последовательность команд робота, где каждый символ означает: R - переместиться на одну клетку вправо, L - влево, U - вверх, D - вниз, S -
остаться на месте.
Длина последовательности ходов не должна превышать 10000 символов.

👇
Открыть все ответы
Ответ:
mukola11
mukola11
15.09.2020
ответ давал уже когда-то... отклика не дождался, видимо. оно так надо было.

function Knight(x1, y1, x2, y2: integer): Boolean;
{ Возвращает True, если возможен переход с (x1,y1) на (x2,y2) }
begin
  if abs(x2 - x1) = 2 then Knight := (abs(y2 - y1) = 1)
  else
  if abs(x2 - x1) = 1 then Knight := (abs(y2 - y1) = 2)
  else Knight := false
end;

function Queen(x1, y1, x2, y2: integer): Boolean;
{ Возвращает True, если возможен переход с (x1,y1) на (x2,y2) }
begin
  Queen := (x1 = x2) or (y1 = y2) or (abs(x2 - x1) = abs(y2 - y1))
end;

var
  xk, yk, xq, yq: integer;

begin
  Write('Укажите через пробел координаты коня  [1..8]: ');
  Readln(xk, yk);
  Write('Укажите через пробел координаты ферзя [1..8]: ');
  Readln(xq, yq);
  if Knight(xk, yk, xq, yq) then Writeln('Конь бьет ферзя')
  else
  if Queen(xq, yq, xk, yk) then Writeln('Ферзь бьет коня')
  else Writeln('Фигуры не угрожают друг другу')
end.
4,7(66 оценок)
Ответ:
edinorogserezha1
edinorogserezha1
15.09.2020
Const
  Blanks = [' '];

function PosBlank(s: string; pn, pk: integer): integer;
{
  Ищет в строке s в позициях от pn до pk пробельный символ.
  Возвращает его позицию в строке или ноль, если таковой символ не найден.
  Использует подмножество пробельных символов Blanks, что позволяет определять
  произвольный набор пробельных символов (например, табуляцию и т.д.)
}
var
  p: integer;
  flag: boolean;

begin
  p := pn;
  flag := true;
  while flag and (p <= pk) do
  begin
    if s[p] in Blanks then flag := false
    else p := p + 1
  end;
  if p > pk then PosBlank := 0
  else PosBlank := p
end;

function PosNonBlank(s: string; pn, pk: integer): integer;
{
  Ищет в строке s в позициях от pn до pk непробельный символ.
  Возвращает его позицию в строке или ноль, если таковой символ не найден.
  Использует подмножество пробельных символов Blanks, что позволяет определять
  произвольный набор пробельных символов (например, табуляцию и т.д.)
}
var
  p: integer;
  flag: boolean;

begin
  p := pn;
  flag:=true;
  while flag and (p <= pk) do
  begin
    if s[p] in Blanks then p := p + 1
    else flag := false
  end;
  if p > pk then PosNonBlank := 0
  else PosNonBlank := p
end;

var
  s: string;
  i, l, k: integer;

begin
  Write('Введите строку: ');
  Readln(s);
  l := Length(s);
  k := 0;
  i := PosNonBlank(s, 1, l);
  while (i>0) and (i <= l) do
  begin
    k := k + 1;
    i := PosBlank(s, i + 1, l);
    if i = 0 then i := l + 1
    else i := PosNonBlank(s, i + 1, l)
  end;
  Writeln('Количество слов в строке равно ', k)
end.
4,5(1 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ