Найти значение функции y=√(x-1)/(sin 1/x)в промежутке [1.2; 2] с шагом 0.1
285
308
Ответы на вопрос:
как известно, нецелые числа в компьютере далеко не всегда представляются точно, поскольку большую часть их даже теоретически невозможно точно перевести в двоичную систему. это порождает проблемы при проверках на точное равенство. например, если мы попробуем перевести в двоичную систему число 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 б) сложение двух real в) деление двух real, а во втором - а) сложение двух integer б) перевод в real в) деление двух 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 < 2.1 do begin y : = f(i); writeln('y(', i: 1: 1, ') = ', y: 1: 3); i : = i + 0.1; end; end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Ka09090719.01.2021 10:44
-
2ArtemPetrenko217.09.2021 20:23
-
stik617.08.2022 23:27
-
gulaydavay31.07.2020 01:17
-
админ127301.03.2023 20:12
-
ValiahmetovaKa15.03.2022 07:48
-
Sasha730118.08.2022 22:15
-
konox201223.08.2022 05:59
-
AliswandeChechir01.01.2023 13:39
-
Nastyha174123.08.2020 07:38
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.