Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Вычисление площади треугольника (см. пример 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.
Оператором вызова служит оператор присваивания. Операндами его арифметического выражения являются четыре обращения к функции.
И процедуры и функции в качестве формальных параметров могут использовать как параметры-значения, так и параметры-переменные. Однако, использование параметров-переменных зачастую приводит к нежелательным побочным эффектам, связанным с их изменением в процессе выполнения подпрограммы.
В такой ситуации возрастает вероятность появления трудноуловимых ошибок. Поэтому опытные программисты рекомендуют всюду, где это возможно, в качестве формальных параметров использовать параметры-значения.
Дата публикования: 2015-01-24; Прочитано: 189 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!