Студопедия — ФУНКЦИИ
Студопедия Главная Случайная страница Обратная связь

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

ФУНКЦИИ






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

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

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

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

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; просмотров: 332. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

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

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

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