Есть ответ 👍

Составьте блок – схему алгоритма и программу вычисления суммы всех трехзначных чисел, кратных 4.Найти частные производные (на языке си)

246
302
Посмотреть ответы 1

Ответы на вопрос:

ritteru
4,5(10 оценок)

Известно уравнение прямой, проходящей через две точки 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 внутри

Популярно: Информатика