В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
MariaBobrova
MariaBobrova
28.01.2020 03:00 •  Информатика

Как составить алгоритм вычисления функции

Показать ответ
Ответ:
Amilina11
Amilina11
04.01.2021 18:50
Язык не указан, решение приводится на языке Pascal.
Поскольку в стандарте языка не определена функция арккосинуса, используем для её вычисления следующую формулу:
\displaystyle \arccos(x)=\arctan \left(\frac{\sqrt{1-x^2}}{x}\right)

const
  m=10;
  n=6;
var
  a:array[1..m,1..n] of real;
  i,j,nn,np:integer;
  t:real;
begin
  Randomize;
  Writeln('Исходный массив');
  for i:=1 to m do
  begin
    for j:=1 to n do
    begin
      a[i,j]:=100*Random-50;
      Write(a[i,j]:4:0)
    end;
    Writeln
  end;
  Writeln('Преобразованный массив');
  for i:=1 to m do
  begin
    for j:=1 to n do
    begin
      t:=i/(i+j);
      a[i,j]:=a[i,j]*arctan(sqrt(1-sqr(t))/t);
      Write(a[i,j]:8:3)
    end;
    Writeln
  end;
  Writeln('Количество положительных и отрицательных по столбцам');
  for j:=1 to n do
  begin
    nn:=0; np:=0;
    for i:=1 to m do
      if a[i,j]>0 then Inc(np)
      else if a[i,j]<0 then Inc(nn);
    Writeln(np,nn:5)
  end
end.

Тестовое решение:
Исходный массив
 -11 -10 -15 -13  -4 -23
   5  -9 -26  42 -10 -50
  39 -44 -11 -23 -49  29
  10  28 -19  -3  11 -33
 -43  38   9 -17 -39 -10
  28 -14  37  31  28 -45
 -36  -9  43   1   5 -27
   9  13  11  27 -26 -47
 -12 -47  18  -2   1 -42
  -6  42  30 -32 -20   8
Преобразованный массив
 -12.034 -12.248 -19.972 -17.532  -5.364 -32.661
   4.253  -9.774 -29.745  51.166 -13.367 -65.437
  28.372 -40.514 -11.382 -26.380 -58.461  36.054
   6.581  23.311 -18.115  -3.547  11.668 -37.943
 -25.184  29.245   7.803 -16.734 -41.213 -10.573
  14.960  -9.929  31.504  28.946  27.517 -46.913
 -18.219  -5.980  33.942   1.053   4.692 -27.179
   4.153   8.483   8.413  22.468 -23.865 -45.133
  -5.524 -28.630  12.763  -1.270   0.634 -38.674
  -2.612  24.538  20.476 -25.133 -16.656   7.570
Количество положительных и отрицательных по столбцам
5    5
4    6
6    4
4    6
4    6
2    8
0,0(0 оценок)
Ответ:
khakimail
khakimail
19.05.2022 11:56
Var a:array[1..10] of integer;
  k,n,i:integer;
  min:INTEGER;
begin
  randomize; N:=10; k:=0 {кол-во отрицательных элементов};
  writeln ('исходный массив');
  for i:=1 to N do
  begin
   if random(2) =1 then a[i]:=random(100)
     else begin k:=k+1; a[i]:=-random(100); min:=a[I] end;
   write(a[i]:5);
  end;
  writeln;
  {поиск минимального положительного}
  if (k<>0) or (k<>N) then  {есть отрицательные или не все отрицательные}
  begin
    for i:=1 to N do
     if  (a[i]>0) and (a[i]<min) then  min:=a[i];
  {замена}
    for i:=1 to N do
     if  (a[i]<0)  then  a[i]:=min;
  end;
  writeln('Новый массив')
    for i:=1 to N do      write(a[i]:5);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота