Объявление функции в общем виде выглядит так:
function
Имя (параметр1
: тип1, ..., параметрК : типК) : Тип; var
//
здесь объявления локальных переменных begin
//
здесь инструкции функции
Имя
:= Выражение; end;
где:
Следует обратить внимание,
что последовательность инструкций, реализующих функцию, завершается инструкцией,
которая присваивает значение имени функции. Тип выражения, определяющего значение
функции, должен совпадать с типом функции, указанным в ее объявлении.
В качестве примера
в листинге 6.3 приведены функции isint и isFioat. Функция isint проверяет, является
ли символ, соответствующий клавише, нажатой во время ввода целого числа в поле
редактирования, допустимым. Предполагается, что допустимыми являются цифры,
клавиши <Enter> и <Backspace>. Функция IsFloat решает аналогичную
задачу, но для дробного числа. У функции IsFloat два параметра: код нажатой
клавиши и строка символов, которая уже введена в поле редактирования.
Листинг 6.3. Примеры
функций
//
проверяет, является ли символ допустимым
// во время ввода целого числа
function
Islnt(ch : char) : Boolean;
begin
if
(ch >= '0'} and (ch <= '9') // цифры
or
(ch = 113) // клавиша <Enter>
or
(ch = #8) // клавиша <Backspace>
then Islnt := True // символ допустим
else
Islnt := False; // недопустимый символ
end;
//
проверяет, является ли символ допустимым
// во время ввода дробного числа
function
IsFloat(ch : char; st: string) : Boolean;
begin
if
(ch >= '0') and (ch <= '9') // цифры
or
(ch = #13) // клавиша <Enter>
or
(ch = #8) // клавиша <Backspace>
then
begin
IsFloat := True; // символ верный
Exit;
// выход из функции
end;
case
ch of
'-': if Length(st) = 0
then IsFloat := True; ',':
if
(Pos(',',st) = 0)
and
(st[Length(st)]'>= '0') and (st[Length(st)] <= '9')
then
// разделитель можно ввести только после цифры // и если он еще не введен
IsFloat
:= True; else // остальные символы запрещены
IsFloat := False;
end;
end;
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.