ipolevoy1
03.02.2023 17:28

Задача 4: Станция

На трёх путях сортировочной станции стоят вагоны с абрикосами (А), бананами (Б) и вишней (В) так, как это показано на рисунке.

Машинист тепловоза (Т) может за один раз прицепить к тепловозу один или несколько вагонов с какого-нибудь пути, передвинуть их на правый путь, после чего передвинуть их на любой левый путь. Например, если тепловоз заберет 2 вагона с пути номер 3 на путь номер 1, то после такого действия распределение вагонов по путям будет таким.

А В Б А В
Б В А
Б
Соответствующую команду перемещения будем записывать так.

2 3 1
Что означает, что необходимо передвинуть 2 вагона с пути номер 3 на путь номер 1. Первое число обозначает количество перемещаемых вагонов, второе число – номер пути, с которого нужно забрать вагоны, третье число – номер пути, на который нужно передвинуть вагоны.

Разработайте алгоритм действий машиниста, необходимых для того, чтобы сформировать на каждом из путей составы с одинаковыми фруктами (не важно, на каком именно пути). Алгоритм оформите в виде последовательности команд, записанных в отдельных строках. Каждая команда имеет указанный выше вид: сначала записано число передвигаемых вагонов, потом номер пути с которого передвигаются вагоны, затем номер пути, на который передвигаются вагоны.

Например, следующая запись:

2 3 1
1 2 3
означает «передвинуть 2 вагона с пути 3 на путь 1, затем передвинуть 1 вагон с пути 2 на путь 3».

Чем меньше команд будет в вашем алгоритме, тем большее количество вы получите.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
апк8
25.04.2020 00:39
В основе лежит формула определения расстояния между двумя точками в прямоугольной системе координат, при этом одна из точек совпадает с началом системы координат. В этом случае искомое расстояние определяется по формуле:
L= \sqrt{a_x^2+a_y^2}
Поскольку в задаче не ставится вопрос определения самого расстояния, достаточно для каждой точки вычислить значение L² и сравнить их.
Окончательно задача сводится к нахождению минимального из значений
a_x^2+a_y^2 по заданным координатам х и у.

var
  ax, ay, bx, by, rx, ry: real;

begin
  writeln('Введите координаты первой точки');
  readln(ax, ay);
  writeln('Введите координаты второй точки');
  readln(bx, by);
  rx := sqr(ax) + sqr(ay);
  ry := sqr(bx) + sqr(by);
  if rx < ry then writeln('Первая точка ближе')
  else
  if rx > ry then writeln('Вторая точка ближе')
  else writeln('Обе точки равноудалены')
end. 
0,0(0 оценок)
Ответ:
VaBaGaBa
18.02.2022 14:00
Ничего не сказано о структуре файла f. Предположим, что данные в нем хранятся в виде записей с полями:
model - марка автомобиля
nomer - номер
name - фамилия
Сам файл имеет полное имя d:\car.txt
Тогда программа будет иметь вид:

type
   tcar=record
   model:string;
   nomer: string;
   name: string;
   end;
var
   f:file;
   car: tcar;
   m:string;
begin
assign(f,'d:\car.txt');
reset(f);
write('Введите марку машины: ');
read(m);
while not eof(f) do
  begin
  read(f,car);
  if m=car.model then
    writeln(car.name,' ',car.nomer);
  end;
close(f);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота