aivia29
?>

Вычислить корень кубический суммы двух заданных вещественных чисел a и b.

Информатика

Ответы

Alekseevich_Viktorovna
Тут имеется один "подвох" и на него часто ловятся.
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу \displaystyle a^x=e^{x\ln a}
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
\displaystyle \sqrt [3]x=\left. \left\{\begin{matrix}
-\sqrt[3]{|x|}, &x\ \textless \ 0\\ 0, & x=0 \\ \sqrt [3]x, &x\ \textgreater \ 0 \end{matrix}\right.
\right| \qquad \sqrt [3]x=sign(x)\times\sqrt[3]{|x|}

И только теперь можно писать программу.

// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a,b,c:real; Read(a,b);
  c:=a+b;
  Writeln(sign(c)*power(abs(c),1/3))
end.

Примеры
14.283 -32.17
-2.61524573390822

13.183 -13.183
0
natasham-716
Ну по логике, наверное, достаточно одного взвешивания. Получаем при этом некоторую массу в граммах. Затем смотрим, сколько нам не хватает граммов до 40 грамм - это и будет количество фальшивых монет.
Например:
Получили 40 г. Значит все 4 монеты весят 10 г.
Получили 39 г. Значит имеем три монеты по 10 г и одну 9 г. Т.е. одна фальшивая.
Получили 38 г. Значит имеем 2 монеты по 10 г и две по 9 г. Т.е. две фальшивки.
Получили 37 г. Значит одна 10 г и три по 9 г. Т.е. три фальшивки.
Получили 36 г. значит имеем 4 монеты по 9 г, то есть все 4 фальшивые.
Так вот как-то...
ivan-levermor
Type
  mass = array[1..10, 1..10] of real;

var
  a, b, c: mass;
  n, m, i, j, n1, m1: integer;

procedure MatrA(var a: mass);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
    begin
      writeln('a[', i, ',', j, ']: ');
      readln(a[i, j])
    end
end;

procedure MatrB(var b: mass);
var
  i, j: integer;
begin
  for i := 1 to n1 do
    for j := 1 to m1 do
    begin
      writeln('b[', i, ',', j, ']: ');
      readln(b[i, j])
    end
end;

procedure Sum(a, b: mass; var c: mass);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
      c[i, j] := a[i, j] + b[i, j];
end;

begin
  writeln('Введите n,m матрицы A');
  readln(n, m);
  MatrA(a);
  writeln('Введите n,m матрицы B');
  readln(n1, m1);
  MatrB(b);
  if (n1 <> n) and (m1 <> m) then
    writeln('Матрицы сложить нельзя')
  else begin
    Sum(a, b, c);
    writeln('A+B');
    for i := 1 to n do
    begin
      for j := 1 to m do
        write(c[i, j]:1:3, ' ');
      writeln
    end
  end;
  readln;
end.

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

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

Вычислить корень кубический суммы двух заданных вещественных чисел a и b.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

alenchik19938823
mlf26
ЮлияДаниил520
Семеновна-Павел
Ионов202
Бегун-Марина
Vladimirovna1370
Maloletkina-marina2
Смирнов-Оськина
Яковчук1911
Некрасов Валентина1097
gabramova
Татьяна1856
annino
cheshirsky-kot