Лекция: Пример 9.4

Вычисление площади треугольника (см. пример 9.2) оформить в виде функции.

function tr1(ab, bc, ca: real ): real ;

var

p: real ;

begin

p:=(ab + bc + ca) / 2;

tr1:=sqrt(p * (p — ab) * (p — bc) * (p — ca))

end;

 
 

 


Обращение к функции аналогично обращению к процедуре, но самостоятельным оператором не является. В качестве операторов вызова функции используют операторы, содержащие выражения, например, оператор присваивания, условный оператор или процедуру вывода. При этом обращение к функции должно входить в выражение в качестве его операнда.

 
 

Пример 9.5

Используя функцию tr1 (пример 9.4), решить задачу, приведённую в примере 9.3.

 

program example95;

var

a, b, c, d, e, f, s: real;

function tr1(ab, bc, ca: real ):real;

var

p: real;

begin

p:=(ab + bc + ca) / 2;

tr1:=sqrt (p * (p — ab) * (p — bc) * (p — ca))

end;

begin

readln (a, b, c, d, e, f);

s:=tr1 (a, b, c) + tr1 (a, d, e) + tr1(b, e, f) + tr1(c, f, d);

writeln ('s= ', s:10:2)

end.

 

Оператором вызова служит оператор присваивания. Операндами его арифметического выражения являются четыре обращения к функции.

 
 

 

И процедуры и функции в качестве формальных параметров могут использовать как параметры-значения, так и параметры-переменные. Однако, использование параметров-переменных зачастую приводит к нежелательным побочным эффектам, связанным с их изменением в процессе выполнения подпрограммы.

В такой ситуации возрастает вероятность появления трудноуловимых ошибок. Поэтому опытные программисты рекомендуют всюду, где это возможно, в качестве формальных параметров использовать параметры-значения.

еще рефераты
Еще работы по информатике