Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ФУНКЦИИ





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

Для которых можно построить алгоритм (а следовательно, и программу) вычислеия значений,

Значения которых относятся к простым типам (например, значением функции не может быть вектор, массив).

Структура функции в определенной мере по форме, также как и структура процедуры, совпадает со структурой программы, но имеет и существенные отличия:

Function имя_функции[(список параметров)]: тип_функции;

{раздел объявления локальных объектов функции: констант,

типов, переменных:}

const…

type…

var…

Begin

{операторная часть или тело функции}

End;

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

В заголовке всегда указывается тип функции;

в списке параметров записываются только те параметры, значения которых передаются (вводятся) из вызывающей программы, но не возвращаются в программу;

значение функции, возвращаемое вызывающей программе, присваивается имени функции, поэтому операция присваивания имени функции (уже без указания параметров) вычисленного значения – обязательная в операторной части описания функции; эта операция присваивания – последняя в операторной части функции;

обращение к функции из вызывающей программы состоит в написании имени функции и в подстановке фактических значений всех формальных параметров;

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

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

1)имя функции присваивается некоторой переменной или

Имя функции входит составной частью (как переменная) в некоторое выражение.

Ниже рассмотрены примеры описания и применения функций.

 

Пример 15. Даны четыре произвольных числа a,b,c,d. Найти максимальное, используя функцию fmax2 выбора большего из двух чисел.

Program max_4;

Var a,b,c,d:real;

y1,y2,z:real;

Function fmax2(x1,x2:real):real;

Var fm:real;

begin if x1>x2 then fmax2:=x1 else fmax:=x2

End;

begin write(‘Введите 4 числа’);read(a,b,c,d);

y1:=fmax2(a,b); y2:=fmax2(c,d); z:=fmax2(y1,y2);

writeln(‘Максимальное число: ’,z:8:2); readln

end.

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

Z:=fmax2(fmax2(a,b),fmax2(c,d));

Или еще короче – выражение, вычисляющее результат, записывается в качестве параметра процедуры вывода:

writeln(‘Максимальное число: ’, max2(fmax2(a,b),fmax2(c,d)):8:2);

 

Пример 16. Функция F_middle вычисляет среднее значение элементов одномерного массива целых чисел {Тип массива А должен быть объявлен в вызывающей программе

Type TA=array[1..30] of integer;}:

Function f_middle (n:integer; A:TA):real;

Var i:integer; s:real;

Begin s:=0;

For i:=1 to n do s:=s+A[i]; s:=s/n;

F_middle:=s

End;

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

program m_s;

type T1= array[1..10] of integer;

var i,j,n,m:integer;

mas:array[1..10,1..15]; {матрица исходных чисел}

mas1:array[1..15] of real; mas2:array[1..10] of real;{массивы для хранения текущей строки и текущего столбца матрицы}

Function f_middle (n:integer; A:Т1):real;

Var i:integer; s:real;

Begin s:=0;

For i:=1 to n do s:=s+A[i]; s:=s/n;

F_middle:=s

End;{function middle}

Begin writeln(‘Задайте размерность матрицы: ’);

Write(‘Количество строк N= ’);read(n);

Write(‘Количество чисел в строке М=’);read(m);

{Задание значений и печать элементов матрицы}

Writeln(‘Исходная матрица:’);

for i:=1 to n do

begin

For j:=1 to m do

Begin mas[i,j]:=random(51); write(mas[i,j])

End; writeln

End;

Writeln;

Writeln(‘Средние значения элементов строк:’);

For i:=1 to n do

Begin

{Элементы i-той строки копируются, образуя массив mas1:}

For j:=1 to m do mas1[j]:=mas[i,j];

{на монитор выдается в форме с фиксированной точкой рассчитанное с помощью функции среднее значение текущей i-той строки:}

write(i,’-й строки: ’, f_middle(m, mas1):8:3);

end;

writeln;

Writeln(‘Средние значения элементов столбцов:’);

For j:=1 to m do

Begin

{Элементы j-того столбца копируются, образуя массив mas2:}

For i:=1 to n do mas2[i]:=mas[i,j];

{на монитор выдается в форме с фиксированной точкой вычисленное с помощью функции среднее значение текущего j-того столбца:}

write(j,’-го столбца: ’, f_middle(n, mas2):8:3);

end;

writeln; writeln(‘Для выхода из программы нажать Enter’);

readln

End.

 







Дата добавления: 2015-10-19; просмотров: 357. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

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

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия