Program a1; var y: array[1..14] of integer; k,s1,s2: byte; minY,maxY,m: integer; begin writeln('Vvedite massiv Y: '); {просим ввести массив} for k:=1 to 14 do read(y[k]); {записываем массив} s1:=0; s2:=0; {счётчики на 0} minY:=y[1]; {присваиваем первому значению минимум...} for k:=2 to 14 do begin if y[k] < minY then degin minY:=y[k]; s1:=s1+1; end; {если есть меньше, то присваиваем} maxY:=y[1]; {присваиваем второму значению максимум...> <} for k:=2 to 14 do begin if y[k] > maxY then degin maxY:=y[k]; s2:=s2+1; end; {если есть больше, то присваиваем} m:=y[s1]; {используя переменную m меняем местами элементы} y[s1]:=y[s2]; y[s2]:=m; writeln('Novyi massiv: '); for k:=1 to 14 do write(y[k],' '); {выводим новый массив} readln end.
// PascalABC.NET 3.0, сборка 1076 type Point=record x,y:real end; Line=record A,B:Point end; Triangle=record A,B,C:Point; sa,sb,sc:real; { длины сторон } end;
procedure GetPoint(PointName:char; var M:Point); begin Write('Введите координаты точки ',PointName,'(x,y): '); Read(M.x,M.y) end;
function LineLength(A,B:Point):real; begin LineLength:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y)) end;
procedure CreateTriangle(var T:Triangle; var l:boolean); begin With T do begin GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); sa:=LineLength(B,C); sb:=LineLength(A,C); sc:=LineLength(A,B); l:=(sa+sb>sc) and (sa+sc>sb) and (sb+sc>sa) end end;
function TriangleIsLikes(T1,T2:Triangle):boolean; var k1,k2,k3:real; begin k1:=T1.sa/T2.sa; k2:=T1.sb/T2.sb; if k1=k2 then begin k3:=T1.sc/T2.sc; TriangleIsLikes:=k1=k3 end else TriangleIsLikes:=False end;
var T1,T2:Triangle; legal:boolean; begin Writeln('*** Первый треугольник ***'); CreateTriangle(T1,legal); if legal then begin Writeln('*** Второй треугольник ***'); CreateTriangle(T2,legal); if legal then if TriangleIsLikes(T1,T2) then Writeln('Треугольники подобны') else Writeln('Треугольники не подобны') else Writeln('Треугольник невозможно построить') end else Writeln('Треугольник невозможно построить') end.
Тут особо можно не думать. Замечаем, что в результате надо получить значение А⊕ Ā в восьмиразрядном представлении. Результат такой операции - всегда все единицы во всех разрядах. А разрядов эти по условию 8.
Если формат знаковый, то старший разряд, равный 1 означает, что число отрицательное, а они обычно хранятся в дополнительном коде. Для перевода в основной код инвертируем все разряды, кроме старшего знакового. Получаем семь нулей. И прибавляем единицу, окончательно получая 10000001, т.е. -1 в двоичной системе. В десятичной системе (как и в любой другой с натуральным основанием, единица - всегда единица.
Program a1;
var y: array[1..14] of integer; k,s1,s2: byte; minY,maxY,m: integer;
begin
writeln('Vvedite massiv Y: '); {просим ввести массив}
for k:=1 to 14 do read(y[k]); {записываем массив}
s1:=0; s2:=0; {счётчики на 0}
minY:=y[1]; {присваиваем первому значению минимум...}
for k:=2 to 14 do begin if y[k] < minY then degin minY:=y[k]; s1:=s1+1; end; {если есть меньше, то присваиваем}
maxY:=y[1]; {присваиваем второму значению максимум...> <}
for k:=2 to 14 do begin if y[k] > maxY then degin maxY:=y[k]; s2:=s2+1; end; {если есть больше, то присваиваем}
m:=y[s1]; {используя переменную m меняем местами элементы}
y[s1]:=y[s2];
y[s2]:=m;
writeln('Novyi massiv: ');
for k:=1 to 14 do write(y[k],' '); {выводим новый массив}
readln
end.