Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Данная программа ищет самый популярный фильм среди данныхСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
#include <stdio.h> typedef struct int main() } Функции в Python Функции в Python создаются с помощью инструкции def. Это действие создает объект функции и присваивает ему имя, которое становится ссылкой на объект-функцию. Пример определения функции: def MyFirstFunction(arg1, arg2, arg3): Здесь MyFirstFunction — это имя функции, используемое как для ее определения, так и для ее вызова. После заголовка с новой строки и с отступом следуют выражения тела функции. В теле функции присутствует (их может быть несколько) инструкция return (может и не быть), которая прерывает выполнение функции возвращает значение в основную ветку программы. ВЫЗОВ ФУНКЦИИ И ВОЗВРАТ ЗНАЧЕНИЯ Пример вызова функции: x = MyFirstFunction(10, 2, 5) ПЕРЕДАЧА ПАРАМЕТРОВ В ФУНКЦИЮ При описании функции после имени в скобках перечисляются параметры функции. Если их нет, то скобки остаются пустыми, но они обязательно должны быть. Далее идет двоеточие, обозначающее окончание заголовка функции. При вызове функции в скобках указывается нужное количество переменных или выражений, значения которых будут переданы функции в качестве параметров. Если у функции нет параметров, скобки (пустые) при вызове все равно нужны. ПРИМЕРЫ Допустим, необходимо вычислить число сочетаний из n элементов по k, равное n!/(k!(n−k)!), для чего необходимо вычисление факториалов трех величин: n, k и n-k. Для этого можно сделать три цикла, что приводит к увеличению размера программы за счет трехкратного повторения похожего кода. Вместо этого лучше сделать одну функцию, вычисляющую факториал любого данного числа n и трижды использовать эту функцию в своей программе. Соответствующая функция может выглядеть так: def factorial(n): result = 1 for i in range(2, n + 1): result *= i return result Этот код должен идти до того места, где мы захотим воспользоваться функцией factorial. Первая строчка этого примера является описанием нашей функции. factorial — идентификатор, то есть имя нашей функции. После идентификатора в круглых скобках идет список параметров, которые получает наша функция. Список состоит из перечисленных через запятую идентификаторов параметров. В нашем случае список состоит из одной величины n. В конце строки ставится двоеточие. Далее идет тело функции, оформленное в виде блока, то есть с отступом. Внутри функции вычисляется значение факториала числа n и оно сохраняется в переменной result. Функция завершается инструкцией Теперь мы можем использовать нашу функцию несколько раз. В этом примере мы трижды вызываем функцию factorial для вычисления трех факториалов: factorial(n), factorial(k), factorial(n-k). n = int(input()) k = int(input()) print(factorial(n) // (factorial(k) * factorial(n - k))) Мы также можем, например, объявить функцию binomial, которая принимает два целочисленных параметра n и k и вычисляет число сочетаний из n по k: def binomial(n, k): return factorial(n) // (factorial(k) * factorial(n - k)) Тогда в нашей основной программе мы можем вызвать функцию binomial для нахождения числа сочетаний: print(binomial(n, k)) Вернемся к задаче нахождения наибольшего из двух или трех чисел. Функцию нахождения максимума из двух чисел можно написать так (впрочем, в Python есть и встроенная функция max): def max(a, b): else: return b Теперь мы можем реализовать функцию max3, находящую максимум трех чисел: def max3(a, b, c): return max(max(a, b), c) Функция max3 дважды вызывает функцию max для двух чисел: сначала, чтобы найти максимум из a и b, потом чтобы найти максимум из этой величины и c. Граф вызовов функций Граф вызовов функции отображает связь функций друг с другом по логике их вызовов. Заметим, что он может быть составлен не только для функций, но и для процедур, то есть для любых подпрограмм. В языках Си и Python процедуры синтаксически не отличаются от функций и даже не выделяются в отдельное понятие. Т.е. все подпрограммы — функции, только некоторые могут ничего не возвращать. По данному графу видно, что функция A непосредственно вызывает функцию B, которая, в свою очередь, вызывает функцию C(), а та пользуется функцией D(). После вызова функцией А функции B, она сама погружается в ожидание завершения подпрограммы. Таким образом, функции A() важен результат B(), и она не может без него продолжить свое выполнение. Если мы отобразим на графе обратный ход, как возвращается исполнение к функциям вместе с результатами вычислений с более глубоких уровней вызова, то получится вот так: ПРИМЕР НА ЯЗЫКЕ СИ //заголовки функций: //тела функций int B() int C() int D()
|
||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 413; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.152.49 (0.006 с.) |