Таблицы триад и тетрад - это перевод первых чисел 10 системы счисления в двоичную с дописыванием 0 слева
nuralievelsh
20.11.2022
Известно уравнение прямой, проходящей через две точки A(x₁,y₁) и B(x₂,y₂). Если третья точка C(x₃,y₃) лежит на этой же прямой, то после подстановки её координат уравнение обращается в тождество
Следовательно, нужно проверить, выполняется ли это тождество для заданных координат. В этом тождестве есть одна неприятная вещь: если y₂=y₁ и/или x₂=x₁, то в знаменателе получается ноль, чему компьютер уж точно не обрадуется. Поэтому такой случай надо рассмотреть отдельно, исходя из геометрического смысла. Если же y₂≠y₁ и x₂≠x₁, можно привести тождество к более удобному виду:
Поскольку координаты могут быть и не целыми, а такие нецелые ("вещественные") числа представляются в компьютере с ограниченной точностью, тождество может оказаться ложным по причине такой неточности. Для обхода такого случая будем полагать, что два значения равны друг-другу, если их разность по модулю не превышает некоторой малой величины, т.е.:
Вернемся к случаю y₂=y₁. В этом случае прямая параллельна оси Х, т.е. тогда условием принадлежности третьей точки данной прямой будет y₃=y₁ при любом х. То же можно сказать и про случай х₂=х₁, когда следует проверить, что х₃=х₁.
Если все три точки лежат на одной прямой, то у средней из них значение любой из координат должно находиться между значениями двух одноименных координат крайних точек. // PascalABC.NET 3.0, сборка 1160 от 05.02.2016 var x1,y1,x2,y2,x3,y3,p1,p2:real; on_line:boolean; begin // Без проверки считаем, что у двух любых точек // не может быть одинаковых координат Write('Координаты точки А: '); Read(x1,y1); Write('Координаты точки B: '); Read(x2,y2); Write('Координаты точки C: '); Read(x3,y3); if x3=x1 then on_line:=(x2=x1); if (not on_line) then if y3=y1 then on_line:=(y2=y1); if not on_line then begin p1:=(x3-x1)/(x2-x1); p2:=(y3-y1)/(y2-y1); on_line:=(abs(p1-p2)<1e-8) end; if on_line then begin Writeln('Точки лежат на одной прямой'); if (x2>x1) and (x2<x3) or (x2>x3) and (x2<x1) then Writeln('Точка B внутри') else if (x3>x1) and (x3<x2) or (x3>x2) and (x3<x1) then Writeln('Точка C внутри') else Writeln('Точка A внутри') end else Writeln('Точки не лежат на одной прямой') end.
Тестовое решение: Координаты точки А: 1 2.5 Координаты точки B: 3 3.5 Координаты точки C: -4 0 Точки лежат на одной прямой Точка A внутри
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Кто понимает информатику, ответьте Які властивості елементу Button (середовище Lazarus) відповідають за її розміри та розміщення на формі?
11001101₂ = 315₈
100000011₂ = 403₈
110110110₂ = 666₈
1237₈ = 29F₁₆
3210₈ = 688₁₆
41562₈ = 4372₁₆
Объяснение:
Таблица триад:
0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111
11001101₂ = 315₈
Разбиваем число на триады (отделяем по 3 символа, начиная справа, если символов не хватает, дописываем 0 слева)
Переводим числа используя таблицу триад
Записываем снизу вверх
101 - 5
001 - 1
011 - 3
100000011₂ = 403₈
011 - 3
000 - 0
100 - 4
110110110₂ = 666₈
110 - 6
110 - 6
110 - 6
Таблица тетрад:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
10 - 1010
11 - 1011
12 - 1100
13 - 1101
14 - 1110
15 - 1111
1237₈ = 29F₁₆
Переведём каждую цифру в триаду
1 - 001
2 - 010
3 - 011
7 - 111
Запишем их в строку и переформируем в тетрады (отделяем по 4 символа, начиная справа, если символов не хватает, дописываем 0 слева)
001 010 011 111
Переводим числа используя таблицу триад
Записываем снизу вверх
1111 - 15
1001 - 9
0010 - 2
3210₈ = 688₁₆
3 - 011
2 - 010
1 - 001
0 - 000
011 010 001 000
1000 - 8
1000 - 8
0110 - 6
41562₈ = 4372₁₆
4 - 100
1 - 001
5 - 101
6 - 110
2 - 010
100 001 101 110 010
0010 - 2
0111 - 7
0011 - 3
0100 - 4
В качестве цифр шестнадцатеричной системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F.
A₁₆ = 10₁₀ B₁₆ = 11₁₀ C₁₆ = 12₁₀ D₁₆ = 13₁₀ E₁₆ = 14₁₀ F₁₆ = 15₁₀
Таблицы триад и тетрад - это перевод первых чисел 10 системы счисления в двоичную с дописыванием 0 слева