Интернет, компьютеры, софт и прочий Hi-Tech. Процедуры в с
Процедуры с параметрами в языке Pascal. Типы параметров.
Описание процедуры состоит из заголовка и блока, который, за исключением раздела подключения модулей, не отличаются от блока программы. Заголовок состоит из ключевого слова Procedure, имени процедуры и необязательного списка формальных параметров в круглых скобках:
Procedure <имя> [(<список формальных параметров>)];
По структуре процедура почти полностью аналогична программе. Однако в блоке процедуре отсутствует раздел подключения модулей. Блок состоит из двух частей: описательной и исполнительной. В описательной части содержится описание элементов процедуры. А в исполнительной части указываются действия с доступными процедуре элементами программы (например, глобальные переменные и константы), позволяющие получить требуемый результат. Раздел инструкций процедуры отличается от раздела инструкций программы только тем, что после ключевого слова End, завершающего этот раздел, ставится точка с запятой, а не точка.
Для обращения к процедуре используется инструкция вызова процедуры. Она состоит из имени процедуры и списка аргументов, заключенного в круглые скобки. Операторы, которые должны выполняться при запуске процедуры, содержатся в операторной части модуля процедуры.
Иногда требуется, чтобы процедура вызывала сама себя. Такой способ вызова называется рекурсией. Рекурсия полезна в случаях, когда основную задачу можно разбить на подзадачи, каждая из которых реализуется по алгоритму, совпадающему с основным.
Использование рассмотренных нами на предыдущих занятиях процедур без параметров оправдано только в том случае, если в них не используется обращение к глобальным (объявленным во внешней программе) параметрам. Связано это с тем, что использование таких подпрограмм будет ограничено той программой, для которой они были написаны, и затруднено для других программ.
Параметры, которые записываются в скобках после имени описываемой процедуры называются ФОРМАЛЬНЫМИ ПАРАМЕТРАМИ. После имени формального параметра обязательно указывается его тип.
Указанные после имени процедуры параметры указывают на то, что для выполнения данной процедуры необходимы дополнительные данные.
Для выполнения процедуры в программе необходимо осуществить её ВЫЗОВ. Вызов процедуры с параметрами должен быть сопровождён передачей дополнительных данных, необходимых для работы этой процедуры. Таким образом, во время вызова процедуры ФОРМАЛЬНЫЕ (просто занимающие место) параметры должны быть заменены ФАКТИЧЕСКИМИ (реально существующими) параметрами (дополнительными данными).
Параметры, передаваемые процедуре во время её вызова в программе называются ФАКТИЧЕСКИМИ ПАРАМЕТРАМИ. Фактическими параметрами могут быть как непосредственные значения, так и переменные в которых хранятся требуемые значения.
Параметры-значения(Используются для передачи данных из программы в подпрограмму. Из программы в подпрограмму передаётся копия параметра.)
Параметры-переменные(Используются для передачи данных как из программы в подпрограмму так и из подпрограммы в программу. Из программы в подпрограмму передаётся адрес фактического параметра, то-есть, та ячейка памяти которая его содержит)
Параметры-константы(Используется для передачи данных из программы в подпрограмму. Из программы в подпрограмму передаётся адрес фактического параметра, - та ячейка памяти, которая его содержит. В подпрограмме изменение параметра-константы недопустимо, поэтому передача данных в обратном направлении невозможна. При передаче параметров-констант дополнительных ячеек памяти не выделяется)
Процедуры без параметров в языке Pascal.
В практике программирования часто встречаются ситуации, когда по ходу выполнения программы приходится производить одни и те же вычисления или действия. Чтобы исключить повторение одинаковых записей и сделать тем самым программу проще и понятнее, можно выделить эти повторяющиеся фрагменты в самостоятельную часть программы, которая может быть использована многократно по мере необходимости. Такая автономная часть программы, реализующая определённый алгоритм и допускающая обращение к ней из различных частей программы, называется подпрограммой. Использование подпрограмм позволяет реализовать один из самых прогрессивных методов программирования - структурное программирование. Язык программирования Turbo Pascal 7.0, даже в сравнении с другими промышленными системами программирования, обладает очень мощными средствами для работы с подпрограммами.
Единственным отличием процедуры без параметров от Pascal-программы состоит в названии заголовка, которое начинается не служебным словом Program, а служебным словом Procedure. Наличие заголовка процедуры обязательно, в отличии от наличия заголовка программы, который может быть опущен. Кроме того любая подпрограмма заканчивается служебным словом End и точкой с запятой, в отличии от End с точкой в Pascal-программе.
Вызов процедур без параметров.
Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма.
Преимущества применения подпрограмм.
- Появляется возможность использовать при написании программ, уже готовые, отработанные фрагменты программ, оформленных в виде подпрограмм.
- Возможно применение технологии программирования "сверху-вниз". При использовании такой технологии более сложная и громоздкая задача разбивается на ряд простых и маленьких задач, решение которых сводится к написанию подпрограмм, объединяемых, в конечном итоге, в одну программу.
- Написание больших программ можно разделить между несколькими програмистами одновременно, объединив после этого подпрограммы, написанные ими, в одну программу.
- В результате использования локальных параметров, память используется более рационально, так как память под локальные переменные выделяется только во время работы данной подпрограммы.
Функции в языке Pascal.
Функции - это зависимость одной величины от нескольких, у которых есть какие-то исходные данные. Функция описывается следующим образом:
- Function имя (параметры): Тип результата;
- раздел описаний
- begin
- команды
- имя функции:=выражение
- end;
Сначала идёт слово function, затем имя функции, после в скобках параметры функции и если их нет, то скобки не ставятся, и после двоеточия тип результата функции, и точка с запятой. Затем идёт раздел описаний, поскольку это подпрограмма, которая может иметь свои переменные, константы, типы и т.д.
Затем идёт слово begin - начало программы. После идут исполняемые команды. Дальше имени функции присваиваем конечное выражение, то есть возвращаем результат функции, чтобы в дальнейшем можно было бы какой-то переменной присвоить результат выполнения функции. И в конце идёт слово end c точкой запятой.
Типы результата:
Результат функции может быть числом, символом, строкой, логическим выражением. Значение функции не может быть массивом.
Если параметры функции одинаковые, то они указываются через запятую, если разные, то через точку с запятой.
Функции в программе можно использовать на ровне со стандартными функциями, например использовать довольно таки короткие и понятные имена, и в скобках принимать нужные параметры.
Преимущества функции:
1. - Наглядность - у функции есть говорящее имя, например если мы написали программу с использованием функции и через месяц открыли её для какого нибудь исправления или дополнения, то это будет гораздо проще сделать, нежели использовать написать программу с каким нибудь циклом, и потом разбираться что он делает, и хуже будет если мы не оставляли комментарии.
2. - Сокращение объёма исходного текста и исполняемого файла.
3. - Удобство отладки - проще отладить маленький кусочек программы, который решает небольшую часть задачи, чем всю программу.
Недостатки функции:
1. - Возможны дополнительные затраты времени - при переходе в функцию надо запомнить из какого места программы это произошло, надо выделить память под локальные переменные, потом удалить внутренние переменные и вернуться в программу.
2. - Требуется внимательное отношение к использованию переменных программы внутри функции.
Локальные (внутренние) переменные функции:
1. - Создаются в специальной области памяти (стеке) только на время работы функции. Из основной программы недоступны.
2. - Значения локальных переменных на момент начала функции не определены - Есть некоторые люди или начинающие программисты или ленивые люди, которые считают что если мы создаём переменную, то мы автоматически кладём в неё нуль, что совсем не так. При создании переменной мы не записываем в неё нуль, а лишь выделяем какое-то место в памяти для записи в него каких-то данных, но мы также не можем быть уверены что в той ячейке памяти ни чего не сохранилось и она пуста, там ведь могло сохраниться значение какой нибудь предыдущей переменной и это значение будет стандартным в наше переменной. Поэтому следует самим положить в эти переменные нули.
3. - Имена локальных переменных могут совпадать с именами глобальных переменных. В этом случае операции совершаются на локальными переменными, если отсутствует явное указание. Но если мы хотим изменить именно значение глобальной переменной с тем же именем, то достаточно перед этим именем в функции написать имя программы и поставить точку, после чего можно смело писать имя глобальной переменной, которое мы хотим изменить.
Параметры - Значения функции:
Параметры бывают двух типов - параметры значения и параметры переменные. Функции работают не с самими данными, а с их копией, то есть если мы даём функцие массив, то он будет весь копироваться, и если он ещё огромный, то придётся подождать.
Параметры - Переменные
1. - Функция может получать на вход переменную, выражение или значение соответствующего (или совместимого) типа. (Никаких выражений и явного указания значений)
2. - Функция работает непосредственно с данными, может изменять их.
3. - Так как копия данных не создаётся, то для экономии времени и памяти рекомендуется объёмные параметры (например, массив) делать параметрами-переменными.
Параметр переменная отличается от параметра значение тем, что перед параметром переменной ставится слово var.
infopedia.su
Visual Basic.NET. Процедуры и функции
Урок из серии «Программирование на Visual Basic.NET для школьников»
В предыдущем уроке рассказывалось о работе с текстовыми файлами.
В этом уроке поговорим о подпрограммах. При разработке сложного алгоритма целесообразно выделить в нем последовательности действий, которые многократно повторяются, оформить как вспомогательные алгоритмы и, по мере необходимости, вызывать их из основного алгоритма.
Программы, реализующие вспомогательный алгоритм, называются подпрограммами. Подпрограмму можно оформить как процедуру или как функцию.
В этом уроке вы узнаете: какие преимущества дает использование подпрограмм, чем отличаются процедуры и функции, как они описываются и как вызываются.
Процедуры и функции предоставляют следующие преимущества:
- Устраняют повторяющиеся строки. Вы можете один раз определить процедуру или функцию и вызывать ее там, где это необходимо.
- Делают программы более читаемыми. Программу, разбитую на несколько частей, воспринимать легче, чем программу, сделанную в виде одного большого фрагмента.
- Упрощают разработку программы. Программы, разделенные на логические единицы, легче разрабатывать, писать и отлаживать.
- Могут повторно использоваться в других проектах и решениях.
- Расширяют возможности языка программирования. Если для решения ваших задач в языке программирования нет готовых, встроенных в язык программирования процедур и функций, можно написать свои процедуры и функции.
Основные отличия функции от процедуры:
1. Функция имеет тип (аналогично переменной) и может возвращать значение через имя функции. Ее можно использовать качестве операнда в выражениях. Процедура возвращает результаты через параметры, ее нельзя использовать в выражениях.
2. Вызов функции осуществляется посредством указания ее имени в каком либо операторе языка программирования. Процедура вызывается с помощью отдельного оператора.
Прежде чем использовать процедуру или функцию в программе, ее нужно объявить (описать).
Подпрограмма типа Sub
При описании процедуры, как и при описании функции, ей дается уникальное название – имя процедуры и устанавливается список параметров. Параметры разделяются между собой запятой и содержат описание типов.
Общий вид описания процедуры:
Sub название_процедуры ([параметры]) операторы_процедуры End SubЗдесь:
- название_процедуры – имя создаваемой вами процедуры Sub;
- параметры – необязательный список формальных параметров, используемых в процедуре Sub;
- операторы_процедуры – блок операторов, который выполняет работу процедуры.
Вызов процедуры типа SubЧтобы вызвать в программе процедуру, нужно указать имя этой процедуры, а затем список фактических параметров, требуемых для этой процедуры.
Общий вид вызова процедуры:
Имя_переменной = название_функции(фактические параметры)Если в процедуру не передается ни одного аргумента, то требуется наличие пустых круглых скобок.
Передача параметров
При описании процедуры после имени в круглых скобках указывается список параметров с указанием их типов. Эти параметры называются формальными. Они определяют место подстановки фактических параметров.
При вызове процедуры или функции в списке указываются фактические параметры, значения которых должны быть заранее определены.
Параметры можно передавать по значению и по ссылке.
В чем различие?
Каждая переменная имеет значение и уникальный адрес, соответствующий положению переменной в оперативной памяти компьютера.
Языки программирования позволяют передавать в процедуру как значение переменной (передача по значению), так и ее адрес в оперативной памяти (передача по ссылке).
При передаче по значению в процедуру передается только копия переменной, т.е. процедура не получает доступ к переменной в памяти и не может изменить ее значение. Для передачи параметров по значению в описании процедуры перед параметром в списке параметров указывают ключевое слово ByVal (от англ. by value – по значению).
При передаче переменной по ссылке процедуре передается ссылка на ее адрес в оперативной памяти, таким образом, процедура получает доступ к переменной в памяти и может ее изменить. Чтобы передавать переменную по ссылке, необходимо в описании процедуры перед соответствующим параметром в списке добавить ключевое слово ByRef (от англ. by reference – по ссылке).
При вызове процедур ключевые слова, определяющие способ передачи параметров и тип параметров, не указываются.
Проект «Передача по ссылке и по значению»
Задание.Создать проект, в котором описывается процедура, один параметр которой передается по ссылке, а другой – по значению. Значения параметров внутри процедуры изменяются. В вызывающей процедуре переменным присваиваются начальные значения, производится вызов процедуры с указанием переменных в качестве фактических параметров. После выполнения процедуры значения переменных выводятся на надписи.
- Разместить на форме:
- текстовые поля TextBox1 и TextBox2 для вывода начальных значений переменных;
- надписи Label1 и Label2 для вывода конечного значения переменных;
- кнопку button1 для создания процедуры-обработчика события;
- четыре надписи для вывода поясняющих текстов.
В программном коде процедуры первый параметр X передается по ссылке, а второй параметр Y передается по значению.
Создадим программный код проекта, в котором:
- объявим переменные;
- создадим процедуру, умножающую значение переменных, передаваемых по ссылке и по значению, на коэффициент 5;
- создадим обработчик, реализующих присваивание переменным начальных значений, вызов первой процедуры и осуществляющий вывод ключевых значений переменных на надписи.
- Объявить переменные и создать код вызываемой процедуры: Dim RefA, ValB As Byte Sub refVal(ByRef RefA, ByVal ValB) RefA = RefA * 5 ValB = ValB * 5 End Sub
- Создать код вызывающей процедуры-обработчика события: Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click RefA = Val(TextBox1.Text) ValB = Val(TextBox2.Text) refVal(RefA, ValB) Label1.Text = Str(RefA) Label2.Text = Str(ValB) End Sub
- Запустить проект на выполнение и вывести в текстовые поля начальные значения переменных (например, 3). На надписи будут выведены конечные значения переменной, передаваемое по ссылке (в данном случае, 15), и переменной, передаваемой по значению (в данном случае 3).
Значение переменной, передаваемое по значению, не изменилось.Что и требовалось доказать!
Подпрограмма типа Function
Функции являются подпрограммами, которые возвращают значения и поэтому могут использоваться в выражениях.
Наиболее широко используются встроенные функции: математические, преобразования типов данных, обработки строк, даты и времени и др.
Программист может создавать свои функции.
При описании функции ей дается уникальное название – имя функции и устанавливается список параметров, определяется тип возвращаемого значения. Параметры разделяются между собой запятой и содержат описание типов.
Общий вид описания функции:
Function название_функции ([параметры]) As тип операторы_функции [Return значение] End FunctionЗдесь:
- название_функции – имя создаваемой вами функции.
- As тип – пара ключевых слов, которые определяют тип возвращаемого функцией значения.
- параметры – необязательный список параметров, используемых в данной функции.
- операторы_функции – это блок операторов, который выполняет работу функции.
- Return – новый оператор Visual Basic .NET. Он позволяет указать, когда нужно выйти из функции, чтобы возвратить значение в вызывающую программу, и каково это возвращаемое значение.В качестве альтернативы можно использовать синтаксис Visual Basic 6 и возвращать значение в вызывающий код, присвоив значение имени функции.
Вызов подпрограммы типа Function
Для вызова функцию в программе, необходимо поместить в оператор программы имя этой функции и все требуемые для нее аргументы (фактические параметры).
Пример вызова функции в операторе присваивания:
Имя_переменной = название_функции(фактические параметры)Проект «Функция»
Задание. Создать проект, в котором определяется функция (например, умножения двух чисел F = x*y), выводится на надпись значение функции.
- Разместить на форме:
- для вывода значений аргументов два текстовых поля TextBox1 и TextBox20;
- для вывода значений функции надпись label1;
- для создания обработчика события кнопку Button1.
- Создать код вызываемой функции: Function F(ByVal x, ByVal y) As Integer F = x * y End Function
- Объявить переменные и создать код вызывающей процедуры-обработчика: Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click Dim x, y As Integer x = Val(TextBox1.Text) y = Val(TextBox2.Text) Label1.Text = Str(F(x, y)) End Sub
- Запустить проект на выполнение и ввести в текстовые поля значения переменных (например, 2 и 3). На надписи будет выведено вычисленное значение функции.
В этом уроке было показано применение процедур и функций для реализации вспомогательных алгоритмов. В следующем уроке поговорим о массивах
Следующий урок: Массивы. Заполнение массивов.
Поделиться с друзьями
gospodaretsva.com
ПРОЦЕДУРА - это... Что такое ПРОЦЕДУРА?
ПРОЦЕДУРА — (ново лат., от лат. procedere проистекать, происходить). 1) порядок, способ ведения дела в суде. 2) если говорят о медленности исполнения чего либо, то употребляют выражение «длинная или долгая процедура»; вообще всякое длительное,… … Словарь иностранных слов русского языка
процедура — Упорядоченная совокупность взаимосвязанных определенными отношениями действий, направленных на решение задачи. [МУ 64 01 001 2002] процедура Установленный способ осуществления деятельности или процесса. Примечания 1. Процедуры могут быть… … Справочник технического переводчика
Процедура — Процедура взаимосвязанная последовательность действий, например Медицинская процедура Процедура в программировании Процедура банкротства Таможенная процедура … Википедия
процедура — ы, ж. procédure <лат. procedere продвигаться. 1. Официально установленная последовательность действий для осуществления или выполнения чего л. Процедура голосования. Процедура подписания договора. БАС 1. Началась обычная процедура:… … Исторический словарь галлицизмов русского языка
Процедура — (иноск.) обрядъ, порядокъ, ходъ дѣла, длительное, послѣдовательное дѣло (процедура собств. шествіе, ходъ). Ср. Началась обычная процедура: перечисленіе присяжныхъ засѣдателей, разсужденіе о неявившихся, наложеніи на нихъ штрафовъ... Гр. Л. Н.… … Большой толково-фразеологический словарь Михельсона (оригинальная орфография)
ПРОЦЕДУРА — ПРОЦЕДУРА, процедуры, жен. (от лат. procedo иду вперед). 1. Порядок выполнения, ряд последовательных действий, необходимых для выполнения чего нибудь (книжн.). Процедура подписания договора. Судебная процедура. Сложная процедура. 2. Отдельный… … Толковый словарь Ушакова
процедура — См … Словарь синонимов
Процедура — часть программы, предназначенная для выполнения некоторых стандартных действий, зависящих, в общем случае, от входных параметров. Процедура используется в качестве основного способа построения подпрограмм. Различают стандартные и пользовательские … Финансовый словарь
Процедура — (франц. procedure, от лат. procedo продвигаюсь) установленный порядок ведения, рассмотрения какого либо дела (напр., процедура ведения заседания, судебная процедура). Политическая наука: Словарь справочник. сост. проф пол наук Санжаревский И.И..… … Политология. Словарь.
ПРОЦЕДУРА — (французское procedure, от латинского procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (например, судебная процедура). 2) Лечебное мероприятие, предписанное врачом (например, ванны) … Современная энциклопедия
ПРОЦЕДУРА — (франц. procedure от лат. procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (напр., судебная процедура).2) Лечебное мероприятие, предписанное врачом (напр., ванны) … Большой Энциклопедический словарь
dic.academic.ru
Избранные доки Подписаться через RSS2Email.ru | Программируем на R: как перестать бояться и начать считать 28.11.2014 Возможно, вас заинтересовала проблема глобального потепления, и нужно сравнить погодные показатели с архивными данными времен вашего детства. Калькулятором тут не обойтись. Да и такие программы для обработки электронных таблиц, как Microsoft Excel или Open Calc, пригодны только для простых вычислений. Придется изучать специализированный статистический софт. В этой статье мы расскажем об одном из популярнейших решений — языке программирования R. Smart Install Maker. Создаем установщик 23.11.2014 Появляется все больше инди-разработчиков, которые создают собственное программное обеспечение для компьютеров. Однако, чтобы продукт выглядел качественным, необходимо продумать все до мелочей, в том числе и систему установки программы. Тратить время на написание собственных инсталляторов никто не хочет, поэтому на рынке появляется все больше специализированных утилит, которые все сделают за вас. Они дают целевому пользователю то, что ему необходимо. Функции в языке программирования C++ 18.11.2014 Функцией называют обособленный модуль программы, внутри которого производятся некоторые вычисления и преобразования. Помимо непосредственных вычислений внутри данного модуля могут создаваться и удаляться переменные. Теперь расскажем о том, из каких основных частей состоит функция в C++. Самая первая часть — это тип возвращаемого значения. Он показывает, что будет передавать функция в основную программу после своих внутренних преобразований... Урок «Hello world» на Microsoft Visual Studio 2013 13.11.2014 Статья предназначена для новичков, которые пока не знают даже как создать файл C++ в среде Visual Studio. Перед вводом кода нужно сделать проект: «File — New — Project» или при помощи быстро-вызова через Ctrl+Shift+N. В открывшемся окне слева выбираем шаблоны «Visual C++». В центральной же части нажимаем на «Empty Project». Затем вводим значимое имя проекта, чтобы помнить зачем он создавался (в нашем случае подойдёт Lesson), и нажимаем «OK»... Код, который почти невозможно взломать 05.11.2014 Современные программы могут хранить в своем коде бесценные секреты. С помощью алгоритмов можно предсказать, какой товар на Amazon будет продаваться лучше всего или станет ли популярным сюжет нового фильма. Само собой, разработчики подобных программ не хотят, чтобы посторонние люди имели возможность изучить их код. Исследователи из Калифорнийского университета, IBM и Техасского университета в Остине не оставляют попыток избавиться от этой угрозы. Программирование на заказ как бизнес 10.06.2014 Этот вид бизнеса, — программирование на заказ, — распространен не только в режиме оффлайн, но и онлайн. Эффективность бизнеса определяется не только хорошими познаниями и умениями в области составления программ, но и способностью отслеживать инновации, новыми технологиями и инструментами, вовремя проведенным реинжинирингом. Чаще всего эта услуга привлекается небольшими предприятиями и даже физическими лицами для автоматизации бизнес-процессов. Лёгкое создание виртуальных машин с помощью PuPHPet. Часть 3 14.05.2014 Выполнение всех этих шагов может поначалу показаться чересчур долгим. Но когда вы разберетесь с этим лучше, сможете проделывать их быстро. Тем более, что вам ненужно каждый раз пересоздавать все с нуля. Если вы перетащите puppet/hieradata/common.yaml на puphpet.com, он автоматически заполнит форму соответственно этой конфигурации. Вам останется только откорректировать ее как надо. Один раз проделав работу, вы сможете выполнять ее быстрее и легче. Лёгкое создание виртуальных машин с помощью PuPHPet. Часть 2 12.05.2014 Apache или Nginx? В этом руководстве я остановлюсь на Apache. Опции его конфигурирования просты. Сначала укажем модули, которые нужно установить и включить. Для этого наберем их в поле Apache Modules. При этом выпадет список доступных модулей. Это позволяет избежать ошибок при наборе. Далее перейдем к конфигурации Virtual Host. Каким должно быть имя сервера и алиас вашего приложения? Сначала указываем их, потом корневую директорию и порт. Лёгкое создание виртуальных машин с помощью PuPHPet 12.05.2014 Окружение — одна из моих любимых мозолей в разработке софта. Его каждый раз приходится создавать заново для разных проектов с разными потребностями. Приходится обеспечивать соответствие окружения для всех разработчиков в команде (в том числе и для уделенных). Создавать окружения для разработки, тестирования и продакшена. Вас напрягает создавать и настраивать среду разработки? Это замедляет вашу работу? Если да, могу предложить решение — PuPHPet! Краткое введение в трейты в PHP 21.04.2014 Трейт, по существу, — это группа чистых методов, которые служат строительным блоком для классов и являются элементарной единицей повторного использования кода. В этой модели классы составляются как наборы трейтов, для чего служит специальный склеивающий код, соединяющий трейты вместе и задающий их нужное состояние. Практическое обоснование трейтов заключается в том, что классы иногда слишком велики для оправданного повторного использования кода. 6 подсказок по отладке для каждого PHP-кодера. Часть 2 11.04.2014 Иногда баги очень хитры или сообщения об ошибках совершенно непонятны. В таких случаях используйте дебагер и точки останова (для этого можно воспользоваться XDebug), добавляйте в лог-файл дополнительную отладочную информацию, помещайте ошибки в песочницу и отлаживайте «с уткой». Я надеюсь, что эти подсказки сэкономят ваше время на отладке и сделают ее чуть приятнее! И не стесняйтесь делиться своими собственными подсказками в разделе комментариев!
|
xbb.uz
НОУ ИНТУИТ | Лекция | Процедуры и функции
Аннотация: Процедуры и функции - две формы функционального модуля. Чем отличаются эти формы? Процедуры и функции - это методы класса. Описание методов (процедур и функций). Синтаксис. Атрибуты доступа. Формальные аргументы. Статус аргументов. Тело методов. Вызов процедур и функций. Фактические аргументы. Семантика вызова. Поля класса или аргументы метода? Поля класса или функции без аргументов? Проектирование класса 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 - функцией, возвращающей целое значение.
www.intuit.ru
ПРОЦЕДУРА - это... Что такое ПРОЦЕДУРА?
процедура — Упорядоченная совокупность взаимосвязанных определенными отношениями действий, направленных на решение задачи. [МУ 64 01 001 2002] процедура Установленный способ осуществления деятельности или процесса. Примечания 1. Процедуры могут быть… … Справочник технического переводчика
Процедура — Процедура взаимосвязанная последовательность действий, например Медицинская процедура Процедура в программировании Процедура банкротства Таможенная процедура … Википедия
процедура — ы, ж. procédure <лат. procedere продвигаться. 1. Официально установленная последовательность действий для осуществления или выполнения чего л. Процедура голосования. Процедура подписания договора. БАС 1. Началась обычная процедура:… … Исторический словарь галлицизмов русского языка
Процедура — (иноск.) обрядъ, порядокъ, ходъ дѣла, длительное, послѣдовательное дѣло (процедура собств. шествіе, ходъ). Ср. Началась обычная процедура: перечисленіе присяжныхъ засѣдателей, разсужденіе о неявившихся, наложеніи на нихъ штрафовъ... Гр. Л. Н.… … Большой толково-фразеологический словарь Михельсона (оригинальная орфография)
ПРОЦЕДУРА — ПРОЦЕДУРА, процедуры, жен. (от лат. procedo иду вперед). 1. Порядок выполнения, ряд последовательных действий, необходимых для выполнения чего нибудь (книжн.). Процедура подписания договора. Судебная процедура. Сложная процедура. 2. Отдельный… … Толковый словарь Ушакова
процедура — См … Словарь синонимов
Процедура — часть программы, предназначенная для выполнения некоторых стандартных действий, зависящих, в общем случае, от входных параметров. Процедура используется в качестве основного способа построения подпрограмм. Различают стандартные и пользовательские … Финансовый словарь
Процедура — (франц. procedure, от лат. procedo продвигаюсь) установленный порядок ведения, рассмотрения какого либо дела (напр., процедура ведения заседания, судебная процедура). Политическая наука: Словарь справочник. сост. проф пол наук Санжаревский И.И..… … Политология. Словарь.
ПРОЦЕДУРА — (французское procedure, от латинского procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (например, судебная процедура). 2) Лечебное мероприятие, предписанное врачом (например, ванны) … Современная энциклопедия
ПРОЦЕДУРА — (франц. procedure от лат. procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (напр., судебная процедура).2) Лечебное мероприятие, предписанное врачом (напр., ванны) … Большой Энциклопедический словарь
dic.academic.ru
процедура - это... Что такое процедура?
ПРОЦЕДУРА — (ново лат., от лат. procedere проистекать, происходить). 1) порядок, способ ведения дела в суде. 2) если говорят о медленности исполнения чего либо, то употребляют выражение «длинная или долгая процедура»; вообще всякое длительное,… … Словарь иностранных слов русского языка
процедура — Упорядоченная совокупность взаимосвязанных определенными отношениями действий, направленных на решение задачи. [МУ 64 01 001 2002] процедура Установленный способ осуществления деятельности или процесса. Примечания 1. Процедуры могут быть… … Справочник технического переводчика
Процедура — Процедура взаимосвязанная последовательность действий, например Медицинская процедура Процедура в программировании Процедура банкротства Таможенная процедура … Википедия
процедура — ы, ж. procédure <лат. procedere продвигаться. 1. Официально установленная последовательность действий для осуществления или выполнения чего л. Процедура голосования. Процедура подписания договора. БАС 1. Началась обычная процедура:… … Исторический словарь галлицизмов русского языка
Процедура — (иноск.) обрядъ, порядокъ, ходъ дѣла, длительное, послѣдовательное дѣло (процедура собств. шествіе, ходъ). Ср. Началась обычная процедура: перечисленіе присяжныхъ засѣдателей, разсужденіе о неявившихся, наложеніи на нихъ штрафовъ... Гр. Л. Н.… … Большой толково-фразеологический словарь Михельсона (оригинальная орфография)
ПРОЦЕДУРА — ПРОЦЕДУРА, процедуры, жен. (от лат. procedo иду вперед). 1. Порядок выполнения, ряд последовательных действий, необходимых для выполнения чего нибудь (книжн.). Процедура подписания договора. Судебная процедура. Сложная процедура. 2. Отдельный… … Толковый словарь Ушакова
процедура — См … Словарь синонимов
Процедура — часть программы, предназначенная для выполнения некоторых стандартных действий, зависящих, в общем случае, от входных параметров. Процедура используется в качестве основного способа построения подпрограмм. Различают стандартные и пользовательские … Финансовый словарь
Процедура — (франц. procedure, от лат. procedo продвигаюсь) установленный порядок ведения, рассмотрения какого либо дела (напр., процедура ведения заседания, судебная процедура). Политическая наука: Словарь справочник. сост. проф пол наук Санжаревский И.И..… … Политология. Словарь.
ПРОЦЕДУРА — (французское procedure, от латинского procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (например, судебная процедура). 2) Лечебное мероприятие, предписанное врачом (например, ванны) … Современная энциклопедия
ПРОЦЕДУРА — (франц. procedure от лат. procedo продвигаюсь), 1) установленный порядок ведения, рассмотрения какого либо дела (напр., судебная процедура).2) Лечебное мероприятие, предписанное врачом (напр., ванны) … Большой Энциклопедический словарь
dic.academic.ru