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

Написать программу для pascal: дана последовательность различных натуральных чисел, за которой следует 0. Определить два наибольших числа среди них.

👇
Открыть все ответы
Ответ:
misskuleshova
misskuleshova
28.02.2023
Чтобы квадрат вписался в круг, его диагональ должна быть равна диаметру круга. Если трактовать "уместиться" как "пролезть", то диагональ должна быть меньше диаметра..
Формулы площадей квадрата  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 оценок)
Ответ:
konovalova701
konovalova701
28.02.2023
1. Для цикла For есть решение выложенное выше  от Srzontmp.

2. Почти ничего не меня получим код для цикла while:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  while i <= n div 2 do begin
    if (n mod i) = 0 then k := i;
    i:=i+1;
    end;
  writeln('наибольший делитель ', n, ' = ', k);
end.

3. Аналогично для цикла Repeat:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  repeat
    if (n mod i) = 0 then k := i;
    i:=i+1;
  until i> n div 2;
  writeln('наибольший делитель ', n, ' = ', k);
end.
4,6(85 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ