Вопрос задан 12.04.2021 в 05:12. Предмет Информатика. Спрашивает Коньшин Антон.

НАЙДИТЕ ОШИБКУ В КОДЕ! задание:Написать программу, которая бы рассчитывала значение выражения по

формуле: (ln|cos(x)|)/(ln(1+x^2). Мой код: Program formula; var x:integer; y:real; begin write('vvedute x '); readln(x); y:=(ln(abs(cos(x))))/ln(1+cos(x*x)); writeln('y=',y:5:2); end. почему то выдаёт ошибку. что не так?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Добряк Макс.
Program formula;
var
  x:integer;
  p,y:real;
begin
  Write('vvedute x<>0 ->');
  Readln(x);
  if x=0 then Writeln('x=0 nedopustimo')
  else begin
    p:= abs(cos(x));
    if p=0 then Writeln('ln(0) v 4islitele')
    else begin
      y:=ln(p)/ln(1+sqr(x*x));
      Writeln('y=',y:5:2)
    end
  end
end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ошибка в вашем коде связана с неправильной формулой. Формула, которую вы написали, имеет некоторые отличия от той, что была дана в задании. Вместо x^2 в знаменателе вы написали cos(x*x).

Вот исправленный код:

scss
program formula; var x: integer; y: real; begin write('Введите x: '); readln(x); y := ln(abs(cos(x))) / ln(1 + x * x); writeln('y = ', y:5:2); end.

Теперь формула должна работать правильно. Однако обратите внимание, что при некоторых значениях x может произойти деление на ноль, что приведет к ошибке времени выполнения программы. Если вы хотите сделать код более надежным, то можете добавить проверку на ноль в знаменателе перед выполнением вычислений.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос