Определить уравнение прямой, которая отсекает самый большой по площади треугольник - Turbo Pascal
Формулировка задачи:
Прямые общего расположения определены отдельными функциями L1 ( x ) , L2 ( x ) , L3 ( x ) , L4 ( x ) . Определить уравнение прямой , которая отсекает самый большой по площади треугольник относительно координатных осей .
Решение задачи: «Определить уравнение прямой, которая отсекает самый большой по площади треугольник»
textual
Листинг программы
type TFunc=function (x: Real): Real; function GetSquare(f: TFunc): Real; var a, b: Real; begin b:=f(0); a:=b/(b-f(1)); GetSquare:=abs(a*b/2); end; {$F+} function L1(x: Real): Real; begin L1:=x*1+1; end; function L2(x: Real): Real; begin L2:=x*2+2; end; function L3(x: Real): Real; begin L3:=x*3+3; end; function L4(x: Real): Real; begin L4:=x*4+4; end; const n=4; L: array [1..n] of TFunc = (L1, L2, L3, L4); var s, sm: Real; i, im: Integer; begin sm:=GetSquare(L[1]); im:=1; for i:=2 to n do begin s:=GetSquare(L[i]); if s>sm then begin sm:=s; im:=i; end; end; WriteLn('Smax =',sm,', Fmax = L',im); end.
Объяснение кода листинга программы
- Создается тип данных TFunc, который представляет функцию одного аргумента типа Real, возвращающую значение типа Real.
- Создается функция GetSquare, которая принимает функцию TFunc в качестве аргумента и возвращает абсолютное значение произведения двух значений, полученных от функции TFunc.
- Создаются четыре функции L1, L2, L3 и L4, которые представляют собой примеры функций, возвращающих значения типа Real.
- Создается константа n, которая представляет собой количество функций, представленных в массиве L.
- Создается массив L, который содержит n функций, представленных в предыдущем пункте.
- Создаются две переменные s и sm типа Real, которые будут использоваться для хранения максимального значения, полученного от функции GetSquare.
- Создается переменная im типа Integer, которая будет использоваться для хранения индекса функции, которая дает наибольшее значение.
- Запускается цикл for, который начинается с i равным 2 и продолжается до n.
- Внутри цикла выполняется следующая последовательность действий:
- вызывается функция GetSquare для каждой функции L[i];
- сравнивается полученное значение с текущим максимальным значением sm;
- если полученное значение больше sm, то обновляется значение sm и значение переменной im.
- По окончании цикла выводится сообщение, содержащее значения максимального значения и индекса функции, которая его дала.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д