Тут имеется один "подвох" и на него часто ловятся. Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента. По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма. Вспоминаем:
И только теперь можно писать программу.
// 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
02.01.2020
Ну по логике, наверное, достаточно одного взвешивания. Получаем при этом некоторую массу в граммах. Затем смотрим, сколько нам не хватает граммов до 40 грамм - это и будет количество фальшивых монет. Например: Получили 40 г. Значит все 4 монеты весят 10 г. Получили 39 г. Значит имеем три монеты по 10 г и одну 9 г. Т.е. одна фальшивая. Получили 38 г. Значит имеем 2 монеты по 10 г и две по 9 г. Т.е. две фальшивки. Получили 37 г. Значит одна 10 г и три по 9 г. Т.е. три фальшивки. Получили 36 г. значит имеем 4 монеты по 9 г, то есть все 4 фальшивые. Так вот как-то...
ivan-levermor
02.01.2020
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.
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
И только теперь можно писать программу.
// 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