program lol; var x,a,b,d,y,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16:real;...

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

program lol;
var x,a,b,d,y,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16:real;
begin
writeln('Введите значения');
readln(x,a,b,d);
h1:=x*x*x*a*a;
h3:=exp(ln(cos(h1))*x);
h2:=3*h3;
h4:=(x-exp(ln(b)*5));
h5:=exp(ln(sin(h4))*4);
h6:=abs(5*a*h5);
h7:=exp(ln(sin(h6))*(2*x));
h8:=h2+h7;
h9:=(a-exp(ln(d)*4));
h10:=abs(h9);
h11:=exp(ln(sin(x+6))*3);
h12:=(7*a+h11);
h13:=sqrt(h12);
h14:=h10*h13+d;
h15:=sqrt(h8/h14);
h16:=exp(ln(sin(x))*3);
y:=h15*h16;
writeln('y= ',y);
end.
выдает ошибку в 7 строчке неверная вещественная операция(Program1 pas) переменные:x=2 a=1 b=3 d=3


image

Информатика (45 баллов) | 121 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

program lol;
var y,h1,h2,h3,h4,h5,h6:real;
x,a,b,d:integer;
function pow(x:real; n:integer):real;
var sign:integer;
begin
  if (x<0) and (n mod 2 <> 0) then sign := -1 else sign := 1;
  pow := sign * exp(ln(abs(x))*n);
end;

begin
  writeln('Введите значения');
  {readln(x,a,b,d); }
  x:=2;a:=1;b:=3;d:=3;
  h1:=x*x*x*a*a;
  h1:=3*pow(cos(h1),x);
  h2:=x-pow(b,5);
  h2:=pow(sin(h2),4);
  h2:=abs(5*a*h2);
  h2:=pow(sin(h2),2*x);
  h2:=h1+h2;
  h3:=a-pow(d,4);
  h4:=abs(h3);
  h5:=pow(sin(x+6),3);
  h5:=7*a+h5;
  h5:=sqrt(h5);
  h5:=h4*h5+d;
  h5:=sqrt(h2/h5);
  h6:=pow(sin(x),3);
  writeln(h1,h2,h3,h4,h5,h6);
  y:=h5*h6;
  writeln('y= ',y);
end.

 

накрутил ты там короче

а основная ошибка была в том что нельзя брать логорифм от отрицательного числа

(53.1k баллов)