М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Караго
Караго
31.10.2021 12:55 •  Информатика

Составить программу решения уравнения sinx^2+cosx^2-10x=0 методом деления отрезка пополам. известно, что корень находится на промежутке [0,1]

👇
Ответ:
nalimovshurik
nalimovshurik
31.10.2021
Ваша небрежность при записи задания привела к необходимости составить решение для двух выражений.
F_1(x)=sin(x^2)+cos(x^2)-10x \\ F_2(x)=sin^2x+cos^2x-10x=1-10x
Соответственно, были найдены два корня.

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function f1(x:real):=sin(x*x)+cos(x*x)-10*x;

function f2(x:real):=1-10*x;

function Root(a,b,eps:real; f:real->real):real;
begin
  var x,fx:real;
  var fa:=f(a);
  if abs(fa)<=eps then Result:=a
  else begin
    var fb:=f(b);
    if abs(fb)<=eps then Result:=b
    else
      if fa*fb>0 then Result:=0/0
      else
        repeat
          x:=(a+b)/2;
          fx:=f(x);
          if abs(fx)<=eps then Result:=x
          else
            if fa*fx>0 then a:=x else b:=x;
        until abs(fx)<=eps
    end
end;

begin
  var eps:=ReadReal('Введите точность решения:');
  Writeln('r1=',Root(0,1,eps,f1));
  Writeln('r2=',Root(0,1,eps,f2))
end.

Тестовое решение
Введите точность решения: 1e-7
r1=0.10101518034935
r2=0.0999999940395355
4,8(80 оценок)
Открыть все ответы
Ответ:
maksi7
maksi7
31.10.2021

Задача А

program Boom;

uses crt;

var

 a, b: integer;

begin

 Read(a, b);

 if a > b then Writeln('Наибольшее число ', a) else Writeln('Наибольшее число ', b);

end.

Тестовое решение

12

52

Наибольшее число 52

Задача Б

program Boom;

uses crt;

 

var

     a:array[1..4] of Integer;

     max:integer;

     i:byte;

Begin

for i:= 1 to 4 do

Begin

Write('Введите число:');

Read(a[i]);

End;

max := a[1];

for i:= 2 to 4 do

if a[i] > max then

max := a[i];

Write('Наибольшее число:');

WriteLn(max);

End.

Тестовое решение:

Введите число:12

Введите число:53

Введите число:34

Введите число:63

Наибольшее число:63

4,4(42 оценок)
Ответ:
9ky3ya
9ky3ya
31.10.2021

Задача А

program Boom;

uses crt;

var

 a, b: integer;

begin

 Read(a, b);

 if a > b then Writeln('Наибольшее число ', a) else Writeln('Наибольшее число ', b);

end.

Тестовое решение

12

52

Наибольшее число 52

Задача Б

program Boom;

uses crt;

 

var

     a:array[1..4] of Integer;

     max:integer;

     i:byte;

Begin

for i:= 1 to 4 do

Begin

Write('Введите число:');

Read(a[i]);

End;

max := a[1];

for i:= 2 to 4 do

if a[i] > max then

max := a[i];

Write('Наибольшее число:');

WriteLn(max);

End.

Тестовое решение:

Введите число:12

Введите число:53

Введите число:34

Введите число:63

Наибольшее число:63

4,4(35 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ