В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
89286666666
89286666666
14.02.2021 21:29 •  Информатика

Составьте программу для рисунка а Кумире.​


Составьте программу для рисунка а Кумире.​

Показать ответ
Ответ:
tenickiy176
tenickiy176
31.08.2022 10:47
Чтобы разъяснить происходящее, были сделаны следующие шаги.
1. Константы 3.1 и 0.8 переведены в машинное представление а затем назад в десятичное с максимальной для паскалевских данных вещественного типа real (он же double) точностью (вложения 1 и 2).
2. В системе компьютерной алгебры, позволяющей работать с произвольной точностью (выбрана точность в 30 значащих цифр) для полученных констант выполнены соответствующие заданному фрагменту программы вычисления (вложение 3)
3. Результат 0.499999999999999955591079014996 был переведен в машинное представление. Затем в машинное представление была переведена константа 0.5, которая, как видно во вложении 4, представляется в компьютере точно. Поэтому проверка на точное равенство с 0.5 дает не тот результат, который Вы ожидали.
4. Можно было также воспользоваться программой на паскале.
begin
  var x:=3.1;
  var y:=0.8;
  var p:=2;
  var a:=Frac(x); // =0,1
  var b:=Frac(y)-0.5; // =0,3
  var kp:=sqrt(sqr(0.5-a)+b*b); // =0,5
  if abs(kp-0
  Writeln(kp-0.5)
end.

Результат: -5.55111512312578E-17
Это как раз то, что так портит Вам всю картину.

По поводу Вашего условия if kp>=0.5 then p=p+1;
Ошибка имеет порядок 0.6·10⁻¹⁶ и наверно ничего страшного не будет, если оператор (с запасом) подправить на if kp>=(0.5-1e-15) then p:=p+1;

Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
0,0(0 оценок)
Ответ:
armanpozitiva
armanpozitiva
27.08.2022 17:51
Средняя глубина Черного моря — 1271 м, наибольшая- 2245 метров (вблизи Синопа). Протяженность моря между западной и восточной точками —около 1167 км, между северной и южной-624 километра. Наименьшая протяженность акватории в меридиональном направлении, между Крымом и берегом Анатолии (азиатской части Турции), 263 км. Длина береговой линии Черного моря — 4090 км, коэффициент изрезанности — около 1,8.На площади, занятой Черным морем, можно разместить две Великобритании. Азовское море соединяется с Чёрным морем Керченским проливом. Площадь его — около 38000 кв. км. Преобладающие глубины — 9-13 м, наибольшая — 14,5 м. Берега изрезаны слабо. Крупнейший залив - Таганрогский; у западного берега - система мелких заливов Сиваш. Южный берег моря холмистый, для северного и северо-восточного берегов характерны косы. В Азовское море впадают реки Дон, Кубань и другие, образуя лиманы. Климат континентальный, средняя температура воздуха летом +23?-24?, зимой -7 ?С. С конца декабря до конца февраля покрывается льдом. Течения неустойчивы. Вода отличается мутностью, море богато рыбой: судак, лещ, кефаль, осётр, и т. д. Главные порты: Ростов-на-Дону, Таганрог, Азов.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота