lyuda00777
14.12.2022 01:15

Необходимо сделать номер 2 под буквой c и номер 3 под буквой c

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
RomqaShut
02.11.2021 13:03

Закраски клеток (команда 5) здесь нет, значит надо просто обеспечить более короткое перемещение в ту же конечную точку.

Для этого посмотрим, что за движения там записаны.

Если во всём алгоритме три раза вверх и три раза вниз- то робот вернётся в ту же точку (по вертикали), и значит все эти команды можно просто удалить.

То же самое- для движений влево и вправо. Они тоже взаимно противоположные.

Другими словами- надо просто сократить все пары движений влево-вправо и вверх-вниз. Всё что останется- это и есть короткий вариант алгоритма, который даст перемещение ту же самую конечную точку.

Запишу подробнее, как сократить алгоритм движения (только для случая без закраски):

а) берём наш алгоритм: 131413324223

б) во всём алгоритме считаем количество команд перемещения для каждого из направлений движения:

1 (вверх)-    3 штуки

2 (вниз)-     3 штуки

3 (влево)-   4 штуки

4 (вправо)- 2 штуки

в) считаем разность количества команд влево и вправо (из большего числа вычитаем меньшее):  4 - 2 = 2

Осталось две команды - влево (т.к. их было больше). Остальные команды влево-вправо сократились (мы их удалили из алгоритма).

г) считаем разность количества команд вверх и вниз (из большего числа вычитаем меньшее, но тут числа равны):  3 - 3 = 0

Не осталось ни одной команды вверх или вниз. Все эти команды сократились (мы их удалили из алгоритма).

д) получаем, что в коротком варианте алгоритма останутся только две команды влево (3).

Запишем весь алгоритм:   33

0,0(0 оценок)
Ответ:
вниомаомылт
08.01.2023 23:40
//Pascal ABC.NET 3.1 сборка 1219

Var
 f:text;
 ars:array of string;
 s,s1:string;
 min,n,i:integer;
begin
n:=1;
min:=integer.MaxValue;
assign(f,'text.txt');
reset(f);
while not(Eof(f)) do
 begin
  readln(f,s);
  s1:=s;
  s:=s.Trim;
  i:=1;
  while i<>length(s) do
    if (s[i]=' ') and (s[i+1]=' ') then delete(s,i,1) else inc(i);
  if ((s.split).length<=min) and ((s.split).length<>0) then
  begin
   if (s.split).length=min then
    begin
     inc(n);
     setlength(ars,n);
     ars[n-1]:=s1;
    end
    else
    begin
     n:=1;
     setlength(ars,n);
     ars[n-1]:=s1;
    end;
    min:=(s.split).length;
   end;
  end;
close(f);
assign(f,'text1.txt');
rewrite(f);
for i:=0 to n-1 do
writeln(f,ars[i]);
close(f);
end.

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