Составьте блок – схему алгоритма и программу вычисления суммы всех трехзначных чисел, кратных 4.Найти частные производные (на языке си)
246
302
Ответы на вопрос:
Известно уравнение прямой, проходящей через две точки 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 внутри
Популярно: Информатика
-
жуля727.09.2022 05:50
-
ikujtdhc29.06.2023 10:02
-
Mary345602.03.2020 18:04
-
sdfdsgdfh10.08.2021 23:52
-
qwidonsky30.03.2023 10:35
-
Ivan19090105.06.2023 04:26
-
valeria210606.10.2021 19:04
-
skachkov156217.10.2020 09:34
-
max69718.07.2020 22:07
-
диас16113.02.2022 17:18