Как возвести выражение sin*x в степень n (Pascal)?

0 голосов
37 просмотров

Как возвести выражение sin*x в степень n (Pascal)?


Информатика (15 баллов) | 37 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var x:=ReadReal('x=');
  var n:=ReadInteger('n=');
  // для сборок, начиная с 30.12.2017
  Writeln('(Sin(',x,'))^',n,' = ',Sin(x)**n);
  // для более ранних версий PascalABC.NET 3.3
  Writeln('(Sin(',x,'))^',n,' = ',Power(Sin(x),n));

Для всех прочих паскалей

var
  x,t:real;
  n,z:integer;

begin
  Write('x= '); Readln(x);
  Write('n= '); Readln(n);
  t:=Sin(x);
  if t=0 then Writeln('(Sin(',x,'))^',n,' = 0')
  else begin
    if n mod 2=0 then z:=1
    else z:=Sign(t);
    t:=Abs(t);
    Writeln('(Sin(',x,'))^',n,' = ',z*Exp(n*Ln(t)))
    end;
  Readln
end.
(150k баллов)