type z=array of integer;
var a: z;
i,j,k: integer;
begin
setlength(a,1);
readln(a[0]);
i:=1;
while(a[i-1]<>0) do
begin
setlength(a,i+1);
readln(a[i]);
i:=i+1;
end;
setlength(a,length(a)-1);
for i:=0 to length(a) do
for j:=0 to length(a)-2 do
if (a[j] < a[j+1]) then
begin
k:=a[j];
a[j]:= a[j+1];
a[j+1]:=k;
end;
write(a[0],'; ',a[1],'; ',a[2],'; ',a[3]);
end.
Var
a,b,c:integer;
x,y,z:string;
begin
writeln('Введите стороны треугольника');
readln(a,b,c);
x:='равнобедренный';
y:='равносторонний';
z:='разносторонний';
begin
if (c=b) and (a<>c) then
writeln('Треугольник',' ',x);
if (a=c) and (a<>b) then
writeln('Треугольник',' ',x);
if (a=b) and (a<>c) then
writeln('Треугольник',' ',x);
if (a=b) and (a=c) and (b=c) then
writeln('Треугольник',' ',y);
if (a<>b) and (a<>c) and (b<>c) then
writeln('Треугольник',' ',z);
end;
readln
<span>end.</span>
Упрощения выражений показаны в прилагаемом файле.