
Вопрос задан 26.10.2023 в 02:05.
Предмет Информатика.
Спрашивает Старых Даниил.
Нужно применить функцию, упростить код в Паскале program p1;var a, b, c, eps: real; fa, fc: real;
begin a:=0.0; b:=10.0; eps:=0.001; c:=(a+b)/2.0; fc:=c*c-4.0; while (abs(fc)>eps) do begin fa:=a*a-4.0; if ((fa>0.0) and (fc>0.0)) or ((fa<=0.0) and (fc<=p. 0.0)) then a:=c else b:=c; c:=(a+b)/2; fc:=c*c-4.0; end; writeln(c); end.

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

Отвечает Бузмаков Ваня.
function f(x: real): real;
begin
f := x * x - 4.0;
end;
var
a, b, c, eps: real;
begin
a := 0.0;
b := 10.0;
eps := 0.001;
repeat
c := (a + b) / 2.0;
if f(a) * f(c) >= 0 then a := c else b := c
until abs(f(c)) < eps;
writeln(c);
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ваш код выглядит как попытка использования метода бисекции для нахождения корня уравнения . Однако есть несколько ошибок в условиях ветвлений. Вот исправленный вариант:
pascalprogram p1; var a, b, c, eps: real; fa, fc: real; begin a := 0.0; b := 10.0; eps := 0.001; c := (a + b) / 2.0; fc := c * c - 4.0; while abs(fc) > eps do begin fa := a * a - 4.0; if ((fa > 0.0) and (fc > 0.0)) or ((fa <= 0.0) and (fc <= 0.0)) then a := c else b := c; c := (a + b) / 2; fc := c * c - 4.0; end; writeln(c); end.
Исправления включают в себя замену p.0
на 0.0
и изменение условия в строке if ((fa > 0.0) and (fc > 0.0)) or ((fa <= 0.0) and (fc <= 0.0))
для правильного определения, в какой половине интервала следует продолжить поиск корня.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili