Объяснение:
оретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:
1) предписания, направленные на непосредственное преобразование информации (функциональные операторы);
2) предписания, определяющие дальнейшее направление действий (логические операторы).
ример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).
Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.
Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:
//PascalABC.Net 3.0, сборка 1111
type
Point=record
x,y:double
end;
function TriangleSquare(A,B,C:Point):double;
begin
Result:=0.5*abs(A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y))
end;
procedure GetPoint(c:char; var A:Point);
begin
Write('Введите координаты точки ',c,': ');
Readln(A.x,A.y)
end;
var
A:array['A'..'F'] of Point;
i:'A'..'F';
s1,s2:double;
begin
for i:='A' to 'F' do GetPoint(i,A[i]);
s1:=TriangleSquare(A['A'],A['B'],A['C']);
s2:=TriangleSquare(A['D'],A['E'],A['F']);
if s1>s2 then Writeln('Площадь первого треугольника больше')
else
if s2>s1 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение:
Введите координаты точки A: -4 3.7
Введите координаты точки B: -6.3 0
Введите координаты точки C: 10.2 5.93
Введите координаты точки D: 7.143 8.1
Введите координаты точки E: -6 -3
Введите координаты точки F: 7.4 -5.7
Площадь второго треугольника больше