myudanova631
?>

Дан массив сопротивлений, хранящихся на складе, по возрастанию. программа получает на вход массив неотрицательных вещественных значений сопротивлений, по возрастанию содержащий не менее двух элементов. пользователь задаёт значение для поиска в виде номинала сопротивления. программа должна вывести номинальные значения, близкие к введенному значению и индекс элемента в массиве. если сопротивление отсутствует в массиве, производится поиск наиболее близких двух значений, меньшего и большего относительно заданного. если сопротивление точно равно – выводится одно значение. если введенное значение выходит за границы элементов массива – выводится также одно значение, соответствующее его границе как показано на рисунке. при выходе за границы дополнительно вывести сообщения «сопротивление слишком большое, на складе отсутствует» «сопротивление слишком мало, на складе отсутствует». вывести номера ячеек, соответствующе значению индекса плюс единица.

Информатика

Ответы

egorsalnikov1997139
На каком языке программу писать, не сказано, будет только алгоритм.
1) Начало
2) Ввод массива сопротивлений R(n), упорядоченного по возрастанию
3) Ввод нужного сопротивления R0.
4) Флаг признака "Сопротивление найдено" F = 0
5) Если R0 < R(1), то
5.1) Вывод R(1), номера 1 и сообщения "Сопротивление слишком мало, на складе отсутствует"
5.2) Флаг признака "Сопротивление найдено" F = 1
5.3) Конец Если
6) Если R0 > R(n), то
6.1) Вывод R(n), номера n и сообщения "Сопротивление слишком большое, на складе отсутствует"
6.2) Флаг признака "Сопротивление найдено" F = 1
6.3) Конец Если
7) Если R0 >= R(1) и R0 <= R(n), то
7.1) Если R0 = R(1), то
7.1.1) Вывод R(1) и номера 1
7.1.2) Флаг признака "Сопротивление найдено" F = 1
7.1.3) Конец Если
7.2) Если Флаг признака F = 1, то Конец программы
7.3) Цикл по i от 2 до n
7.3.1) Если R0 = R(i), то Вывод R(i) и номера i
7.3.2) Иначе, Если (R0 > R(i-1)) и (R0 < R(i)), то
Вывод сопротивлений R(i-1) и R(i) и номеров (i-1) и i
7.3.3) Конец Если
7.4) Конец Цикла по i
8) Конец программы
Александрович686
Задача, аналогичная той, которую публиковали вчера. Только цикл 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.
artemyanovich8
1. Программное обеспечение - совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ (определение из ГОСТа).
ПО служит для выполнения определённых задач пользователя, используя ресурсы устройств компьютера.

2. Сообщение указывает, что на диске не обнаружена операционная система.

3. На разных дисках могут быть установлены разные системы. Если бы для переключения надо было бы каждый раз лезть внутрь компьютера, было бы неудобно. Кроме того, один диск может быть резервным, загрузка будет проходить с него, если загрузка с основного диска закончилась неудачно, чтобы провести тестирование системы, провести откат к предыдущим настройкам или установить новую операционную систему.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан массив сопротивлений, хранящихся на складе, по возрастанию. программа получает на вход массив неотрицательных вещественных значений сопротивлений, по возрастанию содержащий не менее двух элементов. пользователь задаёт значение для поиска в виде номинала сопротивления. программа должна вывести номинальные значения, близкие к введенному значению и индекс элемента в массиве. если сопротивление отсутствует в массиве, производится поиск наиболее близких двух значений, меньшего и большего относительно заданного. если сопротивление точно равно – выводится одно значение. если введенное значение выходит за границы элементов массива – выводится также одно значение, соответствующее его границе как показано на рисунке. при выходе за границы дополнительно вывести сообщения «сопротивление слишком большое, на складе отсутствует» «сопротивление слишком мало, на складе отсутствует». вывести номера ячеек, соответствующе значению индекса плюс единица.
Ваше имя (никнейм)*
Email*
Комментарий*