Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Паскаль.doc
Скачиваний:
127
Добавлен:
30.04.2015
Размер:
661.5 Кб
Скачать

Функции в языке Турбо Паскаль

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

  1. Описание функции

Function <имя> (<список аргументов>): <тип значения функции>; { заголовок }

<блок описания локальных данных>

Begin { начало исполняемой части функции }

<тело функции (исполняемая часть)>

End; { конец описания функции }

В теле функции обязательно должна быть команда присваивания вида:

<имя функции> := <вычисленное значение>;

которая и позволит функции возвратить вычисленное значение.

Например, опишем функцию вычисления среднего арифметического двух целых чисел:

Function middle (a, b : integer) : real;

Begin

Middle := ( a + b ) / 2

End;

В данном примере тело функции – единственный оператор присваивания, который присваивает имени функции нужное значение.

Примеры решаемых задач

Пример 1. Составить программу, которая вычислит значение выражения

am+bn+(a-b)m+n.

Вычисление степени числа оформить в виде подпрограммы.

Пояснение. Составим и сравним две программы: с использованием процедуры и функции вычисления степени числа.

Программа:

program calc_proc;

uses crt;

var a, b, m, n, s1, s2, s3, s : integer;

procedure stepen (x, y : integer; var z : integer);

{процедура возводит число x в степень y, результат записывает в z}

{т.е. в процедуре описано правило вычисления z=xy}

var i : integer; { локальная переменная для организации цикла }

begin

z := 1;

for i := 1 to y do z := z * x

end;

begin

clrscr;

write(‘Введите a, b, m, n ’);

readln(a, b, m, n);

{ три раза вызываем процедуру stepen для вычисления трех слагаемых }

stepen(a, m, s1); { вычислили s1 как am }

stepen(b, n, s2); { вычислили s2 как bn }

stepen(a-b, m+n, s3); { вычислили s3 как (a-b)m+n }

s := s1 + s2 + s3; { вычислили сумму трех слагаемых }

writeln(‘Значение выражения ’, s);

readln

end.

program calc_func;

uses crt;

var a, b, m, n, s : integer;

function stepen (x, y : integer) : integer;

{ функция возводит число x в степень y }

{ т.е. описано правило вычисления stepen = xy }

var i ,z : integer; {локальные переменные: i для организации цикла, z для вычисления произведения }

begin

z := 1;

for i := 1 to y do z := z * x;

stepen := z { присвоили имени функции вычисленное значение }

end;

begin

clrscr;

write(‘Введите a, b, m, n ’);

readln(a, b, m, n);

{ три раза вызываем функцию stepen для вычисления трех слагаемых }

s := stepen(a, m) + stepen(b, n) + stepen(a-b, m+n, s3);

writeln(‘Значение выражения ’, s);

readln

end.

Контрольные задания

  1. Составить программу, которая вычислит площадь треугольника, заданного координатами своих вершин. Использовать формулу Герона. Вычисление расстояния между двумя точками оформить в виде процедуры или функции.

  2. Составить программу определения НОД трех чисел (по алгоритму Евклида) с использованием процедуры нахождения НОД двух чисел (по алгоритму Евклида).

  3. Составить программу, проверяющую гипотезу Гольдбаха. Она состоит в том, что любое четное число, большее 2, можно представить в виде суммы двух простых слагаемых. Программа должна вводить четное положительное число и выводить все его возможные представления в виде суммы двух простых слагаемых. Для определения, является ли число простым, использовать подпрограмму.

  4. Составить программу, которая изображает на экране:

    1. лес

    2. аллею

из елей и берез. Рисование ели и березки оформить в виде процедур.

  1. «Диаграммы». Составить программу, которая вводит N числовых данных и интерпретирует их в виде столбиковой, круговой, линейной диаграмм. Программа должна в алфавитно-цифровом режиме предоставлять пользователю меню – список видов диаграмм, позволять выбрать (например, ввести номер) нужной диаграммы, после чего в графическом режиме построить нужную диаграмму. Каждый из режимов работы программы (ввод данных, построение каждого вида диаграмм) оформить в виде отдельной процедуры.