Найти значение функции y=(x-1)/(sin 1/x)в интервале [1.2;2] с шагом 0.1

Отыскать значение функции y=(x-1)/(sin 1/x)в интервале [1.2;2] с шагом 0.1

Задать свой вопрос
2 ответа
     Как знаменито, нецелые числа в компьютере далеко не всегда представляются точно, поскольку большую часть их даже теоретически невероятно точно перевести в двоичную систему. Это порождает проблемы при проверках на четкое равенство. К примеру, если мы попробуем перевести в двоичную систему число 0.1, то не сможем этого сделать и в компьютере вместо 0.1 будет храниться число, которое чуток-чуток, но все же меньше. Часто увеличивая шагами какую-то величину на 0.1 мы все больше и больше будет удаляться от правильного (ожидаемого) значения и при проверка на четкое равенство нас неприятно удивит. Поэтому в прошлом ответе, невзирая на то, что спектр задавался [1.2;2], проверка делается на 2.1 (можно и на 2.0000001 было делать).

     Есть иной метод писать программки для табуляции функций.
1) Обретаем, сколько значений нужно получить
Для этого от окончательного значения вычитаем изначальное, делим на шаг, берем целую часть результата и увеличиваем на единицу.
(2-1.2)/0.1=8, 8+1=9 - конкретно столько раз выполнится цикл.
Да-да, мы делаем обычный цикл со счетчиком (for), в котором i будет изменяться от 0 до 8.
2) получим формулу для вычисления значения довода.
При i=0 значение х(0)=1.2. При i=1 обязано получиться x(1)=1.3.
Просто отыскать зависимость: x(i)=1.2+i/10. Можно пожалеть компьютер и переписать это выражение в виде x(i)=(12+i)/10, поэтому что в первом случае будут операции а) перевод i в real б) сложение 2-ух real в) разделенье 2-ух real, а во втором - а) сложение 2-ух integer б) перевод в real в) дробление 2-ух real и это быстрее.

var
  i:integer;
  x,y:real;
begin
  for i:=0 to 8 do begin
    x:=(12+i)/10;
    y:=sqrt(x-1)/sin(1/x);
    Writeln(x:3:1,y:10:6)
    end
end.

Итог
1.2  0.604198
1.3  0.787430
1.4  0.965466
1.5  1.143501
1.6  1.323877
1.7  1.507784
1.8  1.695869
1.9  1.888486
2.0  2.085830


Program func;
var
i, y: real;
function F(x: real): real;
begin
F := sqrt(x-1) / ( sin(1/x) );
end;
begin
i := 1.2;
while i lt; 2.1 do
begin
y := F(i);
writeln('y(', i:1:1, ') = ', y:1:3);
i := i + 0.1;
end;
end.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость

Физика.

Из точки м выходят 3 луча MP MN и MK причём

Геометрия.

выпиши в свою тетрадь те правила этикета которые тебе не были

Разные вопросы.

Анна хорошо учится у неё много подруг свободное от учёбы время

Обществознание.

10) Килограмм конфет дороже килограмма печенья на 52 р. За 8

Математика.

Во сколько раз число атомов кислорода в земной коре больше числа

Химия.

Составить монолог от имени дневника двоечника 7-10 предложений

Русский язык.

Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт