М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
atapinalidia577
atapinalidia577
22.07.2021 12:36 •  Информатика

Pascal abc. в некоторой гостинице для имеются k1, k2, k3-местные номера (от 1 до 4 мест в номере). на каждом этаже типы номеров чередуются: 1) первая комната - k1-местный номер; 2) вторая комната - k2-местный номер; 3) третья комната - k3-местный номер; 4) четвертая комната - k1-местный номер; 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.

👇
Ответ:
enikandrova04
enikandrova04
22.07.2021

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 (n<>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,' -> ');

readln(a[i]);

end;

i:=0;

while (i<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]>=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.

4,8(83 оценок)
Открыть все ответы
Ответ:
Yanawer
Yanawer
22.07.2021
В начале мы создаем массив случайных элем.
Потом работаем с ним.
Нам нужны 2 переменные:
1 - переменная, для сохранения результата (номера).
2 - переменная флажок.
Мы обходим весь массив ПО СТОЛБЦАМ.
В начале обхода конкретного столбца переменной флажка присвоим 1.
Сравниваем текущий элемент столбца с последующим,
если они не равны то ставим флажок 0

Код:
//Размерность массива
const n = 3;
//Сам массив
var 
ar : array[1..n,1..n] of integer;
//Переменные для работы с массивом
var 
i,j : integer; 
//Переменные для поиска столбца
//f - переменная флажок, которая по окончанию обхода столбца будет
//показывать одинаковы ли элементы в нем
//numb - переменная, в которой сохраним номер столбца с
//одинаковыми значениями элементов.
var 
f,numb : integer;
begin
//Создание и вывод на экран массива
//Элементы генерируются случайным образом
//  
for i:=1 to n do 
begin   
for j:=1 to n do   
begin     
ar[i,j] := random(2);     
write(ar[i,j]:3);   
end;   
writeln;   
end;  
// 

//Вот сам алгоритм поиска
//
//Записываем в numb значение -1
//Если в процессе работы значение не изменится (-1)
//То означает, что в массиве нет одинаковых столбцов
  numb := -1; 

//Идем по массиву
//
for j:=1 to n do
//Момент начала конкретного j столбца  
  begin    
//записываем в f значение 1
  //Предполагаем, что столбец одинаков
  //Если в конце обхода конкретного столбца значение f=1
  //Значит, что данный столбец одинаков
  f := 1;    
 
//Идем по столбцу
// n-1
//(т.к сравниваем текущий со следующим)
for i:=1 to n-1 do   
begin  
//Сравниваем текущий элемент столбца, со следующим     
if (ar[i,j] <> ar[i+1,j]) then
    //Если они не равны, то изменяем значение флажка f на 0       
    f := 0;   
end; 
//Конец обхода конкретного столбца  
 
//Если столбец одинаков   
if (f = 1) then
    //то записываем его номер в numb     
    numb := j;  
end;  
//  

//Вывод результата 
if (numb <> -1) then   
writeln('Столбец №: ',numb) 
else   
writeln('Нет ни одного одинакового столбца');    
end.
4,8(86 оценок)
Ответ:
misskuleshova
misskuleshova
22.07.2021
Чтобы квадрат вписался в круг, его диагональ должна быть равна диаметру круга. Если трактовать "уместиться" как "пролезть", то диагональ должна быть меньше диаметра..
Формулы площадей квадрата  S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
\displaystyle S_1=a^2 \to a=\sqrt{S_1}; \ d=a \sqrt{2}= \sqrt{2S_1} \\ S_2=\frac{\pi D^2}{4} \to D=\sqrt{\frac{4S_2}{\pi}}; \\ d\ \textless \ D \to \sqrt{2S_1}\ \textless \ \sqrt{\frac{4S_2}{\pi}}; \ 2S_1\ \textless \ \frac{4S_2}{\pi} \ \to \ \boxed{\pi s_1\ \textless \ 2S_2}
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.

// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
  var s1:=ReadReal('Площадь квадрата');
  var s2:=ReadReal('Площадь круга');
  if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
  else Writeln('Квадрат не умещается в круге')
end.

Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
4,8(87 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ