Чем отличаются функции от возможностей

Функция и Оператор — что это такое в программировании. Отличия

Сначала уточним, что такое оператор, а что такое функция (речь идёт о высокоуровневывх языках программирования типа Pascal или, скажем, PHP)

Чего общего

И сразу отметим что и оператор и функция выполняют какую-то операцию (действие) над данными, в потому в смысле философском, или, скажем, математическом, они ничем не отличаются, просто “оформляется” это действие несколько разными способами, о чем мы и поговорим.

Что такое оператор

Оператор — знак какой либо операции, операции же обычно производятся над объектами, например, во многих языках программирования сложение двух литералов можно произвести используя оператор суммы, известный нам как “плюс”:

2 + 5

— прежде чем читать дальше отметьте себе, что данные часто пишутся “сбоку” от оператора, например у бинарных операторов (тех, что принимают два значения, как этот оператор суммы) данные часто записываются справа и слева (подробнее см. например в заметке об операторах и присваивании в Паскаль).

Что такое “функция”

Процедура/функция/метод класса — всё это сути своей подпрограммы.

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

Если функция нестандартная и вы реализуете её сами (например в Паскале это делается так), то в теле своей функции вы можете вызывать другие функции и использовать операторы, то есть по сути, функция — это просто сгруппированный код, который, как ожидается, решит какую-то конкретную задачу.

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

sum(a, b)

— такая функция сложит значения переменных $a$ и $b$, то есть сделает в точности тоже, что и оператор суммы, но заметьте, что тут используется совершенно другая записить передачи данных для операции над ними — это как раз “компьютерный” стиль, когда данные для операции перечисляются в скобках после её имени.

Какая разница (запись в коде)

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

Итак ещё раз, предположим, что в вашем языке программирования есть:

  • оператор сложения чисел $+$
  • функция $sum()$ вычисляющая сумму двух чисел (не важно стандартная ли она или вы написали её сами, используя возможности языка программирования, который вы используете).

и пусть у вас есть задача записать в переменную $z$ сумму двух числовых литералов (ну или просто “сумму двух чисел”) $2$ и $5$.

Тогда с использованием оператора это делается так:

z := 5 + 2; // (присваивание с синтаксисе Паскаль)

А с использованием функции так:

z := sum(5, 2);

— как мы видим и тот и тот подход производит действие над данными, но запись различна. Операторы обычно используются в “школьном” смысле, то есть данные находятся справа и слева, например, как в операторах работы с остатком в Паскале.

Что могло бы быть — если бы операторов вообще не было

Таким образом, мы видим, что если бы была возможность определить (создать) функцию с именем “+” (из одного символа), то мы могли бы делать такой вызов, для сложения:

+(5, 2)

ну или с записью в переменную:

z := +(5, 2);

— но обычно так не пишут (да и многие языки не дают создавать функции, имена которых совпадают с записью операторов).

То есть разные формы записи связаны скорее с традицией и удобством восприятия.
Перейдём к выводам.

Выводы

Чем похожи функции и операторы:

  1. и те и другие производят действия над данными (операции), потому оператор часто называют “знаком операции”, а функцию можно называть “именем операции”.
  2. и те и другие “возвращают” результат, после выполнения действия/действий над данными.

Чем отличается функция от оператора:

  1. Операторы обычно являются частью ядра языка программирования, во многих языках программист не может создавать новых операторов, в вот свои подпрограммы (напр. функции) писать может.
  2. Операторы в реальном программировании обычно выполняют более “простые” действия чем функции.
  3. Данные для работы операторов и для работы функции в коде передаются по-разному (об это было выше).

Источник: http://fkn.ktu10.com/?q=node/8723

Чем процедура отличается от функции в программировании

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

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

Посмотрим, настолько ли невидимы отличия.

Что означают понятия функция и процедура

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

Сравнение функции и процедуры

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

В последнем случае (в Си) процедура считается подчиненной разновидностью функции.
Заголовок функции содержит слово “function”, идентификатор (собственное имя функции), вариативно список параметров и обязательно — тип результата. В теле функции обязательно прописывается оператор, присваивающий значение имени функции, которое она вернет в качестве результата.

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

На схемах алгоритмов вызов функции изображается в блоке вывода или в блоке процесса, вызов процедуры — в специальном блоке “предопределенный процесс”.

Station20.ru определил, что отличие функции от процедуры в программировании заключается в следующем:

Функция возвращает значение, процедура — нет. Заголовок функции обязательно содержит тип результата. В теле функции обязательно наличие оператора, присваивающего значение имени функции.

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

На схемах алгоритмов вызов процедуры изображается в отдельном блоке, вызов функции — в блоке процесса или вывода.

Источник: http://station20.ru/chem-procedura-otlichaetsya-ot-funkcii-v-programmirovanii/

function — Какая разница между методом и функцией? — Qaru

Если вам хочется читать здесь, это “Мое введение в методы OO”

Идея объектно-ориентированной парадигмы заключается в “угрозе” программного обеспечения, состоящего из… хорошо “объектов”. Объекты в реальном мире имеют свойства, например, если у вас есть Сотрудник, у сотрудника есть имя, идентификатор сотрудника, должность, он принадлежит отделу и т.д. И т.д.

Объект также знает, как справляться с его атрибутами и выполнять некоторые операции над ними. Скажем, если мы хотим знать, что делает работник прямо сейчас, мы спросим его.

Читайте также:  Чем отличается мечта от фантазии

employe whatAreYouDoing.

Это “whatAreYouDoing” — это “сообщение”, отправленное объекту. Объект знает, как ответить на эти вопросы, говорится, что у него есть “метод” для разрешения вопроса.

Итак, способ, которым объекты должны выставлять свое поведение, называется методами. Таким образом, методы артефакта должны “что-то” делать.

Другие возможные методы:

employee whatIsYourName
employee whatIsYourDepartmentsName

и др.

Функции с другой стороны — это способы, которыми язык программирования должен вычислять некоторые данные, например, у вас может быть функция addValues ​​(8, 8), которая возвращает 16

// pseudo-code
function addValues( int x, int y ) return x + y // call it result = addValues( 8,8 )
print result // output is 16…

Поскольку первые популярные языки программирования (такие как fortran, c, pascal) не охватывали парадигму OO, они только ссылаются на эти “артефакты” этих объектов.

например, предыдущая функция в C:

int addValues( int x, int y ) { return x + y;
}

Нельзя сказать, что у объекта есть “функция” для выполнения какого-либо действия, потому что функции больше связаны с математическим материалом, а у Работника мало математики на нем, но вы можете иметь методы, которые делают точно такие же как функции, например, в Java, это будет эквивалентная функция addValues.

public static int addValues( int x, int y ) { return x + y;
}

Выглядит знакомо? Это связано с тем, что Java имеет свои корни на С++ и С++ на C.

В конце это всего лишь концепция, в реализации они могут выглядеть одинаково, но в документации OO они называются методом.

Вот пример предыдущего объекта Employee в Java.

public class Employee { Department department; String name; public String whatsYourName(){ return this.name; } public String whatsYourDeparmentsName(){ return this.department.name(); } public String whatAreYouDoing(){ return “nothing”; } // Ignore the following, only set here for completness public Employee( String name ) { this.name = name; } } // Usage sample.
Employee employee = new Employee( “John” ); // Creates an employee called John // If I want to display what is this employee doing I could use its methods.
// to know it.
String name = employee.whatIsYourName():
String doingWhat = employee.whatAreYouDoint(); // Print the info to the console. System.out.printf(“Employee %s is doing: %s”, name, doingWhat ); Output:
Employee John is doing nothing.

Разница тогда находится в “домене”, где она применяется.

AppleScript имеет представление о “естественном языке” matphor, который в какой-то момент имел OO. Например, Smalltalk. Надеюсь, вам будет легче понять методы в объектах после прочтения этого.

ПРИМЕЧАНИЕ. Код не должен компилироваться, просто чтобы служить в качестве примера. Не стесняйтесь модифицировать сообщение и добавить пример Python.

Источник: http://qaru.site/questions/738/difference-between-a-method-and-a-function

Процедуры и функции — методы класса

Аннотация: Процедуры и функции — две формы функционального модуля. Чем отличаются эти формы? Процедуры и функции — это методы класса. Описание методов (процедур и функций). Синтаксис. Атрибуты доступа. Формальные аргументы.

Статус аргументов. Тело методов. Вызов процедур и функций. Фактические аргументы. Семантика вызова. Поля класса или аргументы метода? Поля класса или функции без аргументов? Проектирование класса Account. Функции с побочным эффектом.

Перегрузка методов.

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

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

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

Долгое время процедуры и функции играли не только функциональную, но и архитектурную роль. Весьма популярным при построении программных систем был метод функциональной декомпозиции “сверху вниз”, и сегодня еще играющий важную роль.

Но с появлением ООП архитектурная роль функциональных модулей отошла на второй план. Для ООП-языков, к которым относится и язык C#, в роли архитектурного модуля выступает класс.

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

Процедуры и функции связываются теперь с классом, они обеспечивают функциональность данных класса и называются методами класса. Главную роль в программной системе играют данные, а функции лишь служат данным. Напомню здесь, что в C# процедуры и функции существуют только как методы некоторого класса, они не существуют вне класса.

В данном контексте понятие класс распространяется и на все его частные случаи — структуры, интерфейсы, делегаты.

В языке C# нет специальных ключевых слов — procedure и function, но присутствуют сами эти понятия. Синтаксис объявления метода позволяет однозначно определить, чем является метод — процедурой или функцией.

Прежнюю роль библиотек процедур и функций теперь играют библиотеки классов. Библиотека классов FCL, доступная в языке C#, существенно расширяет возможности языка. Знание классов этой библиотеки и методов этих классов совершенно необходимо для практического программирования на C# с использованием всей его мощи.

Уже в лекции 1 мы говорили о роли библиотеки FCL — статическом компоненте Framework .Net. В лекции 4 рассматривались возможности класса Convert этой библиотеки, а в лекции 7 — классы Math и Random. Изучение классов FCL будет постоянно сопровождать наш курс.

Функция отличается от процедуры двумя особенностями:

  • всегда вычисляет некоторое значение, возвращаемое в качестве результата функции ;
  • вызывается в выражениях.

Процедура C# имеет свои особенности:

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

Хорошо известно, что одновременное существование в языке процедур и функций в каком-то смысле избыточно. Добавив еще один выходной аргумент, любую функцию можно записать в виде процедуры. Справедливо и обратное. Если допускать функции с побочным эффектом, то любую процедуру можно записать в виде функции. В языке С — дедушке C# — так и сделали, оставив только функции.

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

В других случаях метод реализуют в виде процедуры.

Синтаксически в описании метода различают две части — описание заголовка и описание тела метода:

заголовок_метода
тело_метода

Рассмотрим синтаксис заголовка метода:

[атрибуты][модификаторы]{void| тип_результата_функции} имя_метода([список_формальных_аргументов])

Имя метода и список формальных аргументов составляют сигнатуру метода. Заметьте, в сигнатуру не входят имена формальных аргументов — здесь важны типы аргументов. В сигнатуру не входит и тип возвращаемого результата.

Квадратные скобки (метасимволы синтаксической формулы) показывают, что атрибуты и модификаторы могут быть опущены при описании метода. Подробное их рассмотрение будет дано в лекциях, посвященных описанию классов. Сейчас же упомяну только об одном из модификаторов — модификаторе доступа. У него четыре возможных значения, из которых пока рассмотрим только два — public и private.

Читайте также:  Чем отличается индейка от индюшки

Модификатор public показывает, что метод открыт и доступен для вызова клиентами и потомками класса. Модификатор private говорит, что метод предназначен для внутреннего использования в классе и доступен для вызова только в теле методов самого класса.

Заметьте, если модификатор доступа опущен, то по умолчанию предполагается, что он имеет значение private и метод является закрытым для клиентов и потомков класса.

Обязательным при описании заголовка является указание типа результата, имени метода и круглых скобок, наличие которых необходимо и в том случае, если сам список формальных аргументов отсутствует.

Формально тип результата метода указывается всегда, но значение void однозначно определяет, что метод реализуется процедурой. Тип результата, отличный от void, указывает на функцию.

Вот несколько простейших примеров описания методов:

void A() {…};
int B(){…};
public void C(){…};

Методы A и B являются закрытыми, а метод С — открыт. Методы A и С реализованы процедурами, а метод B — функцией, возвращающей целое значение.

Источник: http://www.intuit.ru/studies/courses/2247/18/lecture/556

Среди внутренних и внешних функций государства различаются функции основные и неосновные

Данная классификация функций является насколько традиционной, настолько же и спорной.

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

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

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

Основным функциям государства присущ ряд общих черт.

Во-первых, в них наиболее выпукло проявляется классовая и общечеловеческая сущность государства, его социальное назначение.Разумеется, то и другое проявляется во всех его функциях.

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

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

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

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

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

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

Таким образом, основные функции государства охватывают, группируют по наиболее важным направлениям государственного воздействия на общественные отношения множество неосновных функций.

Необходимо помнить, что термин «неосновные функции» условный.

Его употребление не имеет в виду умалить значение данной разновидности функций и правомерно лишь постольку, поскольку помогает выделить из множества различных государственных функций более широкие по объему и общие по содержанию основные функции государства.

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

От функций государстваследует отграничивать функции органов государства.

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

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

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

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

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

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

Поскольку этого вопроса нет в билетах, но есть в программе, я решила его написать:

Источник: https://megaobuchalka.ru/7/20230.html

Функции возможности и дополнительные опции

ОХЛАЖДЕНИЕ

Делается это очень экономично, выдавая 3 кВт и более холода с каждого киловата потраченного на привод электроэнергии! Кондиционер- это тепловой насос не производящий тепло или холод, но лишь переносящий его по вашему желанию. Также работает холодильник, который морозит внутренний объём, а тепло выбрасывает в комнату по месту его установки.

Обычно кондиционеры охлаждают до +17- +18°C. Под выходящей из кондиционера струей воздуха на 10-12 градусов ниже установленной на пульте.

ОБОРГЕВ

Кроме охлаждения кондиционеры могут отапливать, работая в режиме теплового насоса. В это время сплит-система морозит улицу и обогревает жилище. До -10 °C на улице это эффективно. Позволяет экономить электроэнергию в 2-3 раза по сравнению с конвекторами, масляными радиаторами и пр обогревателями.

Ниже -10°C эффективность применения кондиционера на обогрев приравнивается к обычным нагревателям и создается угроза поломки, так как заморозить улицу, где уже и без того все замерзло кондиционеру становится сложно до невозможности. Если учесть, что масло на морозе густеет, а давление фреона падает, то компрессор очень вероятно поломается. Решение в этом случае, — использование нагревательных элементов (ТЭНов.).

ОСУШЕНИЕ

Каждый кондиционер может осушать воздух почти не изменяя температуры в объёме, но не все модели могут поддерживать влажность на каком-либо задаваемом уровне.

Читайте также:  Какие документы нужны для открытия продуктового магазина?

ВЕНТИЛЯЦИЯ

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

ОЧИЩЕНИЕ

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

Дополнительно ставятся фильтры тонкой очистки, улавливающие пыльцу растений, запахи, сигаретный, называются угольными (карбоновыми) или дезодорирующими. В городе срок их работоспособности около 3-4 месяцев. Далее их обязательно выбрасывать, так как на них начинают размножаться бактерии.

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

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

ПЛАЗМА

Многоразовый плазма — фильтр может быть установлен вместо одноразового угольного фильтра-дезодоратора. Для этого используется плазменный ионизатор с напряжением в 4800 Вольт. В плазме уничтожается любая органика: вирусы, микробы, грибки, пыльца.

Другие загрязнения, такие как пыль, ионизируются и собираются в фотокаталитический фильтр. При этом воздух разряжается отрицательными ионами. Фильтр очень эффективен при очистке воздуха от табачного дыма плазма фильтр за 30 минут удалит 70% загрязняющих воздух частиц, что в дважды больше, чем угольный фильтр.

При этом дешевле в эксплуатации, так как не требует замены через каждые 4 месяца.

КАТЕХИНОВЫЙ ФИЛЬТР

Электростатический фильтр с катехиновым покрытием. Катехин — природный антисептик, который содержится в чайных листьях и ряде других растений. Согласно опытным исследованиям 98% контактирующих с фильтром вирусов уже не могут принести вред человеку.

ВАСАБИ ФИЛЬТР

Электростатический фильтр обрабатывается веществами, полученными из хрена “васаби”, который обладает сильными антибактериальными свойствами.

ЦЕОЛИТНЫЙ (ФОТОКАТАЛИТИЧЕСКИЙ) ФИЛЬТР

Такой угольный фильтр поглощает запахи как любой другой, но, в отличие от аналогов, его не надо менять каждые три-четыре месяца. Достаточно несколько часов подержать его под прямыми солнечными лучами, и он восстанавливает свою дезодорирующую способность на 95%.

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

БИО

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

ГЕНЕРАТОР КИСЛОРОДА

За счет модуль-генератора, удаляется азот из воздуха остаётся только кислород, используется физический метод разделения газов. Компрессор закачивает воздух в (PSA) сепаратор, азот поглощается, а кислород подаётся в помещение.

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

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

ИОНИЗАЦИЯ

Было обнаружено, что в местах, где человек чувствует наибольший прилив сил: около водопадов, на морском побережье, в горах — концентрация отрицательно заряженных частиц максимальна. В тоже время в жилищах и офисах она в сотни раз ниже. Количество отрицательных ионов в см3 воздуха:

  • В районе водопада 50.000
  • На морском побережье 10.000
  • В горах 5.000
  • В сельской местности 1.500
  • В городах 1.000
  • В квартирах и офисах 50

Кондиционеры, оснащенные безозоновыми ионизаторами, способны довести концентрацию отрицательных ионов до 15.000 — 30.000 на см3. Принцип действия аналогичен “люстре Чижевского”.

Источник: http://enerpo.ru/knowledge-base/funkcii-vozmozhnosti-i-dopolnitelnye-opcii

открытая библиотека учебной информации

Процедуры и функции — методы класса

Лекция 15. Процедуры и функции — функциональные модули

языка С#

Первыми формами модульности, появившимися в языках программирования, были процедуры и функции. Οʜᴎ позволяли задавать определœенную функциональность и многократно выполнять один и тот же параметризованный программный код при различных значениях параметров. Поскольку функции в математике использовались издавна, то появление их в языках программирования было совершенно естественным.

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

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

Долгое время процедуры и функции играли не только функциональную, но и архитектурную роль. Весьма популярным при построении программных систем был метод функциональной декомпозиции “сверху вниз”, и сегодня еще играющий важную роль.

Но с появлением ООП архитектурная роль функциональных модулей отошла на второй план. Для ОО-языков, к которым относится и язык C#, в роли архитектурного модуля выступает класс.

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

Процедуры и функции связываются теперь с классом, они обеспечивают функциональность данных класса и называются методами класса. Главную роль в программной системе играют данные, а функции лишь служат данным. Напомню здесь, что в C# процедуры и функции существуют только как методы некоторого класса, они не существуют вне класса.

В данном контексте понятие класс распространяется и на всœе его частные случаи — структуры, интерфейсы, делœегаты.

В языке C# нет специальных ключевых слов — procedure и function, но присутствуют сами эти понятия. Синтаксис объявления метода позволяет однозначно определить, чем является метод — процедурой или функцией.

Прежнюю роль библиотек процедур и функций теперь играют библиотеки классов. Библиотека классов FCL, доступная в языке C#, существенно расширяет возможности языка. Знание классов этой библиотеки и методов этих классов совершенно крайне важно для практического программирования на C# с использованием всœей его мощи.

Функция отличается от процедуры двумя особенностями:

· всœегда вычисляет неĸᴏᴛᴏᴩᴏᴇ значение, возвращаемое в качестве результата функции;

· вызывается в выражениях.

Процедура C# имеет свои особенности:

· возвращает формальный результат void, указывающий на отсутствие результата;

· вызов процедуры является оператором языка;

· имеет входные и выходные аргументы, причем выходных аргументов — ее результатов — может быть достаточно много.

Хорошо известно, что одновременное существование в языке процедур и функций в каком-то смысле избыточно. Добавив еще один выходной аргумент, любую функцию можно записать в виде процедуры. Справедливо и обратное. В случае если допускать функции с побочным эффектом, то любую процедуру можно записать в виде функции. В языке С — дедушке C# — так и сделали, оставив только функции.

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

В других случаях метод реализуют в виде процедуры.

Источник: http://oplib.ru/programmirovanie/view/568847_procedury_i_funkcii_otlichiya