Var
x1, x2, x3, x4, y1, y2, y3, y4: real;
function VectorLength(x1, y1, x2, y2: real): real;
begin
VectorLength := sqrt(sqr(x1 - x2) + sqr(y1 - y2));
end;
function VectorSlope(x1, y1, x2, y2: real): real;
begin
VectorSlope := (y1 - y2) / (x1 - x2);
end;
begin
readln(x1, y1);
readln(x2, y2);
readln(x3, y3);
readln(x4, y4);
if (VectorLength(x1, y1, x2, y2) = VectorLength(x4, y4, x3, y3))
and (VectorSlope(x1, y1, x2, y2) = VectorSlope(x4, y4, x3, y3)) then
writeln('Yes')
else writeln('No');
end.
Таблица истинности во вложении. Конечно, их нужно уметь составлять, но зачастую бывает быстрее предварительно сделать аналитическое преобразование исходного выражения с целью его упрощения.
Как видно, выражение не зависит от В и его таблицу истинности строить гораздо проще.
Var A : array [1..4, 1..4] of integer ;
i,j, p,k: integer ;
Begin
randomize;
k:=1; p:=1;
For i:=1 to 4 do
Begin
For j:=1 to 4 do
Begin
A[i,j]:=random (100);
if A[i,j]>A[k,p] then
begin
k:=i;
p:=j;
end;
Write(A[i,j]:3);
end;
Writeln;
end;
writeln ('Максимальный элемент матрицы = ', A[k,p]);
write ('Он находится в строке №' , k);
writeln (' и в столбце №' , p);
Writeln('Меняем максимальный элемент матрицы и первый элемент первой строки:');
i:=A[k,p];
A[k,p]:=A[1,1];
A[1,1]:=i;
For i:=1 to 4 do
Begin
For j:=1 to 4 do Write(A[i,j]:3);
Writeln;
end;
end.
Сначала переводим целую часть: 6 (8) = 10 (6) - Шесть в 8-ричной системе равно "Один-ноль" в шестеричной.
Теперь переводим дробную часть: Для этого переведем в 10-чную. Первый разряд - разряд 1/8-х, то есть 0,1 (8) = 0,125 (10). умножаем 0,125 на 6 и при каждом умножении целая часть будет цифра нового числа, а дробную часть переносим на следующее умножение, до тех пор, пока дробная часть не будет равна 0.
0,125 * 6 = 0,75, сносим ноль; 0,75 * 6 = 4,5 сносим четыре; остаток: 0,5 * 6 = 3 сносим 3. Остаток ноль - значит конец.
Записываем ответ: 6,1 (8) = 10,043 (6)
P.s. числа в скобках (8), (10) и (6) - это основания систем счисления и обычно пишутся нижним индексом после числа. ))
(1 и 0)=0, (0 или 1)=1 -ответ