Борисовна_Дмитриевич1003
?>

Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры) // p=2 (рассчитано программой выше) a: =frac(x); // =0, 1 b: =frac(y)-0.5; // =0, 3 kp: =sqrt(sqr(0.5-a)+b*b); // =0, 5 if kp> =0.5 then p: =p+1; и вот тут компьютер почему-то считает, что kp< 0, 5 т.е. при выводе на экран, - выводится значение kp=0.5, но при сравнении с 0, 5 оно оказывается меньше. перепробовала все, что смогла придумать. даже сравнивала kp с корнем из 0.25 (чем оно и является безрезультатно. мне нужны конкретные ответы на вопросы: 1) почему переменная, равная 0, 5, меньше, чем 0, 5? ! 2) как это можно исправить? заранее . ps: вычисление корня заменить ничем нельзя (нахождение гипотенузы)

Информатика

Ответы

leonid-adv70
Чтобы разъяснить происходящее, были сделаны следующие шаги.
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 (введено с клавиатуры
pnat1235

Векторная графика представления объектов и изображений (формат описания) в компьютерной графике, основанный на математическом описании элементарных геометрических объектов, обычно называемых примитивами, таких как: точки, линии, сплайны, кривые Безье, круги и окружности, многоугольники.

Объекты векторной графики являются графическими изображениями математических объектов.

Термин «векторная графика» используется для пояснения различий от растровой графики, в которой изображение представлено в виде графической матрицы.

При выводе на матричные устройства отображения (мониторы) векторная графика предварительно преобразуется в растровую графику, преобразование производится программно или аппаратно средствами современных видеокарт.

Растровое изображение (лат. rastrum — грабли) — изображение, представляющее собой сетку (мозаику) пикселей — цветных точек (обычно прямоугольных) на мониторе, бумаге и других отображающих устройствах.

Важными характеристиками изображения являются:

Размер изображения в пикселях — может выражаться в виде количества пикселей по ширине и по высоте (800 × 600 px, 1024 × 768 px, 1600 × 1200 px и т. д.) или же в виде общего количества пикселей (так, изображение размером 1600 × 1200 px состоит из 1 920 000 точек, то есть примерно из двух мегапикселей);

Количество используемых цветов или глубина цвета (эти характеристики имеют следующую зависимость: {\displaystyle N=2^{k}}N=2^{k}, где {\displaystyle N}N — количество цветов, {\displaystyle k}k — глубина цвета);

Цветовое пространство (цветовая модель) — RGB, CMYK, XYZ, YCbCr и др.;

Разрешение изображения — величина, определяющая количество точек (элементов растрового изображения) на единицу площади (или единицу длины). Не путать с размером сетки изображения!

Растровую графику редактируют с растровых графических редакторов. Создаётся растровая графика фотоаппаратами, сканерами, непосредственно в растровом редакторе, а также путём экспорта из векторного редактора или в виде снимков экрана.

Объяснение:

Коновалова1705

10. Нам нужно удовлетворить условие

1000 < 4^x

Методом "великого тыка" берем x = 4.

4^4 = 256

256 < 1000

Не подходит. x + 1 = 5

4^5 = 1024

1024 > 1000 - Подходит

Следовательно, Ваше наименьшее k = 5

12. 00000- пустое множество

т.к. все нули, то множество будет пустым

01110- {3,5,7}

т.к. на 2,3,4 местах присутствует 1, то подмножество будет {3,5,7}

00111- {5,7,9}

т.к. на 3,4,5 местах присутствует 1, то подмножество будет {5,7,9}

11111- {1,3,5,7,9,}

т.к. везде присутствует 1, то подмножество будет {1,3,5,7,9}

у множества М может быть 32 различных подмножеств

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры) // p=2 (рассчитано программой выше) a: =frac(x); // =0, 1 b: =frac(y)-0.5; // =0, 3 kp: =sqrt(sqr(0.5-a)+b*b); // =0, 5 if kp> =0.5 then p: =p+1; и вот тут компьютер почему-то считает, что kp< 0, 5 т.е. при выводе на экран, - выводится значение kp=0.5, но при сравнении с 0, 5 оно оказывается меньше. перепробовала все, что смогла придумать. даже сравнивала kp с корнем из 0.25 (чем оно и является безрезультатно. мне нужны конкретные ответы на вопросы: 1) почему переменная, равная 0, 5, меньше, чем 0, 5? ! 2) как это можно исправить? заранее . ps: вычисление корня заменить ничем нельзя (нахождение гипотенузы)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

komplekt7
ivanovmk1977
Galina-Marat1096
Виталий
Элизбарян
samirmajbubi
olkay
malgoblin2663
Buninilya
rb-zakaz
zaha98
mstapottery
zuzazuza61
ski89439
fakelel
▲