Pascal abc.В некой гостинице для имеются K1, K2, K3-местные номера (от
Pascal abc.
В некой гостинице для имеются K1, K2, K3-местные номера (от 1 до 4 мест
в номере). На каждом этаже типы номеров чередуются:
1) 1-ая комната - K1-местный номер;
2) вторая комната - K2-местный номер;
3) 3-я комната - K3-местный номер;
4) 4-ая комната - K1-местный номер;
5) 5-ая комната - K2-местный номер;
6) шестая комната - K3-местный номер и т. д.
Количество комнат N на этаже гостиницы кратно 3, то есть N одинаково 6, 9, 12 и т. д. В
системе управления занятыми местами каждой комнате подходит элемент массива А,
в котором записано количество занятых мест. К примеру
N = 9, K1 = 2, K2 = 4, K3 = 3.
Заселение 9 номеров на одном из этажей
A[1]=2 (свободных мест в двухместном номере нет);
A[2]=1 (три места в четырехместном номере свободны);
A[3]=0 (все три места в трехместном номере свободны);
A[4]=1 (одно место в двухместном номере свободно);
A[5]=3 (одно место в четырехместном номере свободно);
A[6]=2 (одно место в трехместном номере свободно);
A[7]=0 (все места в двухместном номере свободны);
A[8]=4 (все места в четырехместном номере заняты);
A[9]=3 (все места в трехместном номере заняты);
Левое крыло комнаты с номерами 1, 2, 3, 4.
Правое крыло комнаты с номерами 6, 7, 8, 9.
Комната с номером 5 посередине.
Отыскать номера двух примыкающих комнат в которых не наименее К свободных мест на всем этаже.
Если таких комнат нет, то вывести 0, если есть, то вывести номера этих комнат.
К примеру, если К=6, то номерами
примыкающих комнат с общим количеством свободных мест в примыкающих номерах будут 2 и 3.
var i,j,n,k,k1,k2,k3: integer; bb: boolean;
a: array of integer;
begin
write('N = ');
readln(n);
if ((n mod 3 = 0) and (nlt;gt;0)) then begin
write('K1 = ');
readln(k1);
write('K2 = ');
readln(k2);
write('K3 = ');
readln(k3);
setlength(a,n);
for i:=0 to n-1 do begin
write('Заполним номер ',i+1,' -gt; ');
readln(a[i]);
end;
i:=0;
while (ilt;n) do
begin
a[i]:=k1-a[i];
a[i+1]:=k2-a[i+1];
a[i+2]:=k3-a[i+2];
inc(i,3);
end;
write('K = ');
readln(k);
for i:=0 to n-2 do
if (a[i]+a[i+1]gt;=k) then begin write('В комнатах ',i+1,' и ',i+2,' есть ',a[i]+a[i+1],' свободных мест'); bb:= true; end;
if (bb=false) then writeln(0);
end else writeln('Введите число кратное 3 и неравное 0');
readln;
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.
Математика.
Химия.
Русский язык.
Разные вопросы.
Разные вопросы.