1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Определение и особенности процедуры

Понятие процедуры

Понятие модуля

Основные понятия

Структура программы. Процедуры. Функции

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

Модуль – это совокупность объявлений и процедур, хранящихся как единое целое.

Добавление модуля осуществляется по команде Insert Module (в этом случае программный код составляется пользователем) или при создании макроса (когда программа создается автоматически). Созданному модулю присваивается стандартное имя Module1, Module2 и т. д.

Для удаления модуля следует: выделить имя модуля, выбрать команду File Remove Module.

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

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

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

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

[Private | Public] [Static] Sub ИмяПроцедуры [(СписокАргументов)]

PublicУказывает, что процедура Sub доступна для всех других процедур во всех модулях
PrivateУказывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана
StaticУказывает, что локальные переменные процедуры Sub сохраняются в промежутках времени между вызовами этой процедуры
ИмяПроцедурыИмя процедуры Sub, удовлетворяющее стандартным правилам именования переменных
СписокАргументовСписок переменных, представляющий аргументы, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой
ИнструкцииЛюбая группа инструкций, выполняемых в процедуре Sub
Exit SubДанная инструкция приводит к немедленному выходу из процедуры Sub.

Синтаксис элементаСписокАргументов:

[Optional] [ByVal | ByRef] [ParamArray] ИмяПеременной[( )] _

[As тип] [= поУмолчанию]

OptionalКлючевое слово, указывающее, что аргумент не является обязательным. При использовании этого элемента все последующие аргументы, которые содержатся в списке СписокАргументов, также должны быть необязательными и описаны с помощью ключевого слова Optional. Все аргументы, описанные как Optional, должны иметь тип variant. He допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray
ByValУказывает, что этот аргумент передается по значению
ByRefУказывает, что этот аргумент передается по ссылке. Описание ByRef используется в VBA по умолчанию
ParamArrayИспользуется только в качестве последнего элемента в списке СписокАргументов для указания, что конечным аргументом является описанный как Optional массив значений типа Variant. Ключевое слово ParamArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional
ИмяПеременнойИмя переменной, удовлетворяющее стандартным правилам именования переменных
ТипТип данных аргумента, переданного в процедуру; поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (ТОЛЬКО строки переменной длины), Object, Variant. Если отсутствует ключевое слово Optional, могут быть также указаны определяемый пользователем тип или объектный тип
поУмолчаниюЛюбая константа или выражение, дающее константу. Используется только вместе с параметром Optional. Если указан тип Object, единственным значением по умолчанию может быть значение Nothing. Например: Function Сумма (a As Double, Optional b As Double = 8)

Дата добавления: 2014-11-20 ; Просмотров: 1970 ; Нарушение авторских прав?

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Глава 11. Понятие административной процедуры и ее юридические признаки

Глава 11. Понятие административной процедуры и ее юридические признаки

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

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

Читать еще:  Сдать анализ на аллерген k81 фикус ige

84. Предметом антикоррупционной экспертизы на наличие или отсутствие данного фактора являются:

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

2) акты Губернатора Калининградской области, Правительства Калининградской области, устанавливающие порядок (процедуры) реализации субъективных прав и юридических обязанностей граждан, порядок реализации исполнительными органами государственной власти Калининградской области отдельных властных полномочий, связанных с обеспечением реализации прав и обязанностей граждан и организаций;

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

85. Наличие административных процедур позволяет снизить степень угрозы возникновения коррупционных отношений в связи с тем, что административные процедуры:

1) значительно уменьшают риск отклонения должностного лица при реализации властных полномочий от достижения нормативно закрепленной цели возникших правоотношений;

2) снижают степень усмотрения должностных лиц при принятии управленческих решений;

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

4) обеспечивают единообразное применение государственно-властных полномочий должностными лицами различных органов и учреждений;

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

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

86. Административные процедуры способны снизить риск или степень угрозы возникновения коррупционных отношений при условии, что:

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

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

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

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

88. Большинство административных процедур образуется из четырех элементов:

1) описание юридического факта (фактического состава), инициирующего возникновение процедуры:

— если юридический факт является событием, то в правовом акте должно быть определено, кто может выявить событие и как должно быть оформлено выявление события;

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

2) права и обязанности участников процедуры:

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

— должны быть определены условия реализации права, в том числе, на какой стадии процедуры право может быть реализовано;

— срок реализации права, если он является ограниченным иными рамками, помимо временных рамок самой процедуры;

— действия, которые должна совершить сторона процедуры для реализации своего права;

3) стадии и (или) этапы совершения процедурных действий:

— процедурные действия должны располагаться в определенной последовательности, направленной на достижение конкретной цели;

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

4) виды промежуточных и итоговых решений, принимаемых в рамках или по итогам процедуры, и требования к ним;

— промежуточные решения — решения, определяющие переход процедуры на следующую стадию (этап) или возврат к предыдущей стадии (этапу);

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

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

Читать еще:  При подозрении на сахарный диабет нужно определять
>
Выявление отсутствия процедур или содержащихся в них дефектов
Содержание
Постановление Правительства Калининградской области от 29 декабря 2007 г. N 925 «О методике экспертизы нормативных правовых.

Откройте актуальную версию документа прямо сейчас или получите полный доступ к системе ГАРАНТ на 3 дня бесплатно!

Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.

Определение и особенности процедуры

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

Административная процедура – это, по сути, алгоритм действий, который должна выполнить публичная администрация (орган государственной власти или орган местного самоуправления) для решения конкретного дела.

Значение административных процедур:

1. уменьшают риск отклонения от цели правоотношения. Если целью правоотношения является установить право на ношение огнестрельного оружия – требуют только то, что необходимо для установления этого права

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

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

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

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

Задачи административных процедур (которые они решают):

1. обеспечивается эффективность деятельности публичной администрации/публичной власти.

2. создание благоприятных условий для участия граждан и организаций в публичных правоотношениях

Правоотношения, в которых необходимо использование административных процедур (Использование административных процедур необходимо в следующих правоотношениях):

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

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

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

Этот перечень открытый. Но эти 3 группы – обязательно использование административной процедуры.

Цели административных процедур:

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

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

Понятие процедуры и функции.

Для организации подпрограмм используются 2 типа подпрограмм: процедуры и функции.

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

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

Локальные const, var, type, label – описательная часть.

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

— Функция обязательно имеет тип возвращаемого значения. Процедура возвращаемого значения не имеет.

— Внутри тела функции – обязательно присвоение имени значения.

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

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

Модель дальнего вызова подпрограмм.

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

Предварительное описание подпрограмм.

В ряде случаев необходимо выполнять предварительные описания процедур или функций. Например, пусть существует процедура a, которая в ходе своей работы выполняет обращение к процедуре b. Следовательно, процедура b должна быть объявлена и известна компилятору до момента вызова (т.е. выше процедуры a).

Читать еще:  Биохимическая лабораторная диагностика сахарного диабета

Допустим, процедура b в ходе своей работы вызывает процедуру a. Для разрешения этого выполняют предварительное объявление. Оно представляет собой заголовок процедуры или функции без указания её тела с обязательной директивой forward. Эта директива указывает компилятору на то, что тело подпрограммы будет описано ниже с возможным досрочным вызовом.

Внешнее описание подпрограмм.

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

В таком случае объектный код содержится в некотором *.obj-файле, а само подключение производится директивой <$L имя файла>. После описания заголовка подпрограммы из *.obj-файла необходимо задать служебное слово external. Это укажет компилятору, что вызываемую подпрограмму с данным именем следует искать в одном из подключенных объектных файлов.

Механизм параметров. Формальные и фактические параметры. Параметры значения, переменные, константы, нетипизированные параметры.

Организация обмена данными происходит с помощью механизма параметров.

Все данные можно разбить на 4 основных класса:

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

1 – указатель связи (адрес вызываемой подпрограммы)

2 – локальные переменные, объявленные в описательной части подпрограммы

3 – адрес возврата (куда будет передано управление)

4 – параметры из заголовка вызываемой подпрограммы, при этом список записывается в страницу стека в прямом порядке

5 – возвращаемое значение, если таковое имеется.

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

Формальные и фактические параметры.

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

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

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

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

Если в вызывающей программе описаны переменные X: Integer, C: Byte; Y: Longint;, то синтаксически правильными вызовами P будут P(X), P(C), P(Y), P(200).

Основной недостаток – временные затраты, необходимые для создания копии передаваемого параметра, затрата памяти в стеке и его переполнение.

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

Все изменения, производимые с параметром, передаваемым по ссылке, видны после вызова подпрограммы.

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

Такие параметры передаются с указанием ключевого слова const и приводят в текущую область стека адрес передаваемого значения.

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

Замечание: при работе с нетипизированными параметрами следует учитывать, что в качестве нетипизированных параметров могут использоваться только параметры-переменные. Для использования нетипизированных параметров необходимо выполнять приведение типов. Данное приведение должно быть явным. Явное приведение — указание имени типа перед именем переменной.

Процедурные типы. Параметры-функции и параметры-процедуры.

Передаваемым в подпрограмму параметром может также быть процедура или функция (указатель на нее), т.е. параметр процедурного типа.

Для параметров-функций и параметров-процедур существуют следующие правила: подпрограммы должны иметь ключевое слово far; они не должны являться стандартными подпрограммами; не должны объявляться внутри других подпрограмм; не должны иметь директив inline или interrupt.

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

Type

F1 = procedure;

F2 = function(X: Integer; var S: String): Boolean;

function F2(X: Integer; var S: String): Boolean; far;

Begin

end;

procedure F(Func: F2);

Begin

end;

Последнее изменение этой страницы: 2016-08-26; Нарушение авторского права страницы

Ссылка на основную публикацию
Adblock
detector