D1)прямая горизонтальная линия
2) любой из этих рисунков
<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ReadlnString.ToWords;
a.Where(t->(t<>a[0]) and (t.Length<>t.Distinct.Count)).Println
end.
<u>Пример</u>
vanitas vanitatum et omnia vanitas
vanitatum
Ошибки нет.
В условном операторе после if пишется <условие> (в данном случае "x=100"), а после then - <оператор> (в данном примере это оператор присваивания "y:=x*x;")
Var
a:array[1..3,1..2]of real;
b:array[1..3]of real; //массив для координат пересечения сторон с ОХ
i,j,z:integer;
// (y1-y2)x+(x2-x1)y+(x1y2-x2y1)=0 - ур-е прямой, прохоходящей через 2 точки
// тогда x=(x2y1-x1y2)/(y1-y2) - координата ее пересечения с осью х
// найдем координаты пересечения сторон с осью х
function cross(x1,x2,y1,y2:real):real;
begin
result:=(x2*y1-x1*y2)/(y1-y2);
if ((result>x1) and (result>x2)) or ((result<x1) and (result<x2)) then
result:=1 //это точка пересечения не самой стороны, а ее продолжения
//поскольку в дальнейшем нам нужны будут знаки координат,
//ей приписываем положительной значение, чтобы она не влияла
//на конечный результат
end;
begin
for i:=1 to 3 do
begin
writeln('Введите координаты х,у вершины:');
readln(a[i,1],a[i,2]);
end;
z:=1;
for i:=1 to 3 do
begin
j:=i+1;
if j>3 then j:=1;
b[i]:=cross(a[i,1],a[j,1],a[i,2],a[j,2]);
z:=sign(b[i])*z;
end;
write('Начало координат ');
if z<0 then writeln('принадлежит треугольнику')
else writeln('не принадлежит треугольнику');
<span>end.</span>
Программу из комментариев переписал для паскаля.
var x,s:integer;
begin
read(x);
x:=abs(x);
s:=0;
while x>0 do begin
if x mod 10>5 then s:=s+x mod 10;
x:=x div 10
end;
write(s)
<span>end.</span>