Информатика: (pascal abc) дано трехзначное число, определить сумму, произведение, средне арифметическое значение цифр этого числа. поменяйте местами первую и третью цифру этого числа.
Var sum,p,x,z:integer; begin writeln('Введите трёхзначное число'); read(x); sum:=x mod 10 + x div 100 + x div 10 mod 10; p:=(x mod 10) * (x div 100) * (x div 10 mod 10); z:=(x mod 10 *100) + (x div 10 mod 10 *10) + (x div 100); writeln('Сумма цифр =',sum); writeln('Среднее арифметическое цифр =',sum/3); writeln('Произведение цифр =',p); writeln('После перестановки 1 и 3 цифр =',z); end.
// PascalABC.NET 3.3, сборка 1547 от 07.10.2017 // Внимание! Если программа не работает, обновите версию!
begin var (x1,y1):=ReadReal2('Координаты 1-й точки:'); var (x2,y2):=ReadReal2('Координаты 2-й точки:'); var a:=Abs(x2-x1); // считаем, что координаты указаны верно var d:=a*Sqrt(2); var (xc,yc):=((x2+x1)/2,(y2+y1)/2); Writeln('Длина стороны ',a,', диагональ ',d); Writeln('Координаты центра пересечения диагоналей: ',xc,' ',yc) end.
Пример Координаты 1-й точки: -3 3.5 Координаты 2-й точки: 4 -3.5 Длина стороны 7, диагональ 9.89949493661167 Координаты центра пересечения диагоналей: 0.5 0
находим k1, k2, b1, b2, b3, b4 как уравнения прямых, проходящих через пары заданных точек (если расположение неизвестно, то придется либо сначала сортировать точки, либо посчитать ещё и диагонали, а потом их исключить, как не имеющих параллельной пары с таким же k)
ba1 и ba2 как уравнения, прямых, проходящих через заданную точку и имеющих известные k.
коэффициенты b - это вертикальные смещения, по сути, поэтому точка принадлежит прямоугольнику, если смещения прямых через неё проходящих, находятся внутри диапазона смещений (между соответствующими параллельными прямыми). Условие должно выполняться для первой И для второй пары.
Если надо учитывать ещё и когда точка лежит прямо на стороне, то "<" и ">" в условиях заменить на "<=" и ">=" соответственно.
случай когда прямоугольник не "повернут" - простой и можно учесть отдельно (чтоб не получались бесконечные k)
begin
writeln('Введите трёхзначное число');
read(x);
sum:=x mod 10 + x div 100 + x div 10 mod 10;
p:=(x mod 10) * (x div 100) * (x div 10 mod 10);
z:=(x mod 10 *100) + (x div 10 mod 10 *10) + (x div 100);
writeln('Сумма цифр =',sum);
writeln('Среднее арифметическое цифр =',sum/3);
writeln('Произведение цифр =',p);
writeln('После перестановки 1 и 3 цифр =',z);
end.