Romanby1
25.06.2022 21:05

C++ Задача 11.
Найти площадь кольца, внутренний радиус которого 20, а внешний радиус больше 20. Площадь круга радиусом R вычисляется по формуле:
Данные взять из контрольного примера.
Контрольный пример: Rвнешний=30. Результат: Площадь кольца = 1570.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
mascamasa
27.05.2023 09:19

Между измерениями существуют интервалы, длительность которых определяется частотой дискретизации. Чем больше частота дискретизации, тем меньше интервал, тем точнее повторится форма исходного сигнала. То есть частота дискретизации определяет допустимый частотный диапазон входного сигнала. По теореме Котельникова она должна быть в два раза выше максимальной частоты измеряемого сигнала. Вот откуда взялась частота дискретизации 44 кГц. Это удвоенная частота слышимого человеком звука, теоретически.

Посмотрим еще раз на рисунок. Есть что-то неправильное. Ведь сигнал от одного замера до другого может измениться несколько раз, а это значит, что частота дискретизации выбрана гораздо ниже необходимой и в результате сигнал оцифруется с большими искажениями. Сигнал с необходимой частотой дискретизации будет выглядеть, как показано на следующем рисунке. Как видим, в этом случае разницей в замерах действительно можно пренебречь.

Объяснение:

0,0(0 оценок)
Ответ:
GeneralEsdese
13.06.2022 14:38
Задача, аналогичная той, которую публиковали вчера. Только цикл repeat заменяем на while.

Сначала немного математики.
\displaystyle a_n= \frac{n!}{(2n)!}=\frac{\prod_{i=1}^ni}{\prod_{i=1}^{2n}i}=\frac{\prod_{i=1}^ni}{\prod_{i=1}^{n}i\times\prod_{i=n+1}^{2n}i}=\frac{1}{\prod_{i=n+1}^{2n}i}; \quad n\in\mathbb N
О модуле тут смысла нет говорить, поскольку все an - суть положительные величины на интервале (0;1).

uses Crt;

function ai(n:integer):real;
var
  i:integer;
  p:real;
begin
  p:=1;
  for i:=n+1 to 2*n do p:=p*i;
  ai:=1/p
end;

var
  i:integer;
  eps,s,an:real;
begin
  ClrScr;
  Write('eps='); Read(eps);
  s:=0; i:=1; an:=eps+1;
  while an>=eps do begin
     an:=ai(i);
     if an>=eps then begin s:=s+an; Inc(i) end
  end;
  Writeln('s=',s);
  ReadKey
end.

Тестовые решения:
eps=0.07
s= 5.8333333333E-01

eps=0.000001
s= 5.9229647667E-01

eps=1e-8
s= 5.9229653448E-01

Для контроля результата можно отметить, что сумма первых 1000 членов ряда равна приблизительно 5.922965365Е-01

Если раздражает наличие функции, можно и без нее:
uses Crt;

var
  i,j:integer;
  eps,s,an,p:real;
begin
  ClrScr;
  Write('eps='); Read(eps);
  s:=0; i:=1; an:=eps+1;
  while an>=eps do begin
    p:=1;
    for j:=i+1 to 2*i do p:=p*j;
    an:=1/p;
    if an>=eps then begin s:=s+an; Inc(i) end
  end;
  Writeln('s=',s);
  ReadKey
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота