Решить задачу в паскале:
В чемпионате мира по ралли, участники стартуют не вместе, а по
очереди. У каждого из пилотов есть время старта в формате чч:
мм:сс (строка) и время финиша в таком же формате.
В нашей гонке принимают участие N участников определить победителя. Гарантируется, что 0<=чч<=23,
0<=чч<=59, 0<=cc<=59, 1<=N<=1000. Гонка проходит в течение двух
дней. Использовать можно только свои функции.
Пример:
Введите количество участников: 4
Время старта 1 участника: Лёб Себастьян 02:41:52
Время финиша 1 участника: 03:11:53
Время старта 2 участника: Карлос Сайнс 02:59:00
Время финиша 2 участника: 03:25:52
Время старта 3 участника: Маркус Гронхольм 03:20:15
Время финиша 3 участника: 03:48:45
Время старта 4 участника: Ричард Бернс 23:39:02
Время финиша 4 участника: 00:03:17
ответ: Победитель – Ричард Бернс, время 24:15.
i,j : shortint;
c1,c2,s1,s2 : integer;
begin
a[1][1]:=-10;
a[1][2]:=20;
a[1][3]:=13;
a[2][1]:=-22;
a[2][2]:=11;
a[2][3]:=-5;
a[3][1]:=4;
a[3][2]:=12;
a[3][3]:=-8;
s1:=0; s2:=0; c1:=0; c2:=0;
for i:=1 to 3 do begin
for j:=1 to 3 do begin
if a[i][j]>0 then begin
s1:=s1+a[i][j];
inc (c1);
end else begin
s2:=s2+a[i][j];
inc (c2);
end;
end;
end;
writeln (s1/c1:0:0);
writeln (s2/c2:0:2);
end.
Объяснение:
Для перевода из 10ичной в любую другую нужно делить десятичное число на основание системы, в которую переводишь. После что получилось делить ещё и ещё, до тех пор, пока делить будет нечего. А все остатки собираешь и получаешь число в нужной системе счисления, так например 111 в 6ричную переводим так:
111:6=18 (ост 3)
18/6=3 (ост 0)
Деления прекращаются, т.к. 3 меньше 6. ответ: 303(сперва последняя тройка, потом остаток от последнего деления, потом остаток от предыдущего.
В 8ричной: 157
В 16ричной: 6f(т.к. нет цифр больше 9 их заменяют буквами, так буква а - 10, b-11 и т.д)