Требуется определить максимальный промежуток времени между двумя автобусами одного маршрута - PascalABC.NET
Формулировка задачи:
На автобусную остановку каждую минуту подходит автобус одного из маршрутов. Диспетчерская служба собрала данные за N минут – номера маршрутов каждого автобуса.
Требуется определить максимальный промежуток времени между двумя автобусами одного маршрута.
Пример
8(минут)
2 11 2 2 25 11 25 11(номера автобусов)
=>
4(наибольший промежуток)
Другой пример
4
23 23 41 41
=>
1
Решение задачи: «Требуется определить максимальный промежуток времени между двумя автобусами одного маршрута»
textual
Листинг программы
Const N = 8; {4;}
Var
m : array[1..N] of Integer := (2,11,2,2,25,11,25,11); {(23,23,41,41);}
i,j : Byte;
max : Integer;
Begin
max:=0;
For i:=1 to N-1 do
Begin
For j:=i+1 to N do
If (m[i]=m[j]) and ((j-i)>max) then
Begin
max:=j-i;
Break;
end;
end;
Writeln(max);
end.
Объяснение кода листинга программы
- В начале определяется константа N, которая задает количество автобусов в маршруте (в данном случае 8).
- Затем объявляется массив m, который содержит интервалы времени между автобусами. В данном случае это (23,23,41,41).
- Далее объявляются две переменные i и j типа Byte, которые будут использоваться в циклах.
- Также объявляется переменная max типа Integer, которая будет использоваться для хранения максимального интервала времени.
- Переменная max инициализируется значением 0.
- Затем идут два вложенных цикла. Первый цикл идет от 1 до N-1 и выполняет следующие действия:
- Второй цикл идет от i+1 до N и проверяет, равны ли значения в массиве m для текущего элемента и следующего элемента. Если это так, то проверяется, больше ли разница между этими элементами максимального значения, хранящегося в переменной max. Если это так, то значение переменной max обновляется, и цикл прерывается с помощью оператора Break.
- После завершения циклов выводится значение переменной max.
- В данном случае результатом будет 23, так как это максимальный интервал времени между автобусами в данном маршруте.