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

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

Создание и использование процедур пользователей






 

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

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

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

 

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

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

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

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

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

 

В общем случае процедуры являются способом объединения набора связанных между собой выполнением одной задачи (конкретного алгоритма) операторов. Visual Basic включает два основных типа процедур:

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

2. Процедуры типа Subпроцедура–подпрограмма или процедура - Sub вызываются из процедур со­бытий или других процедур по имени. Они могут получать входные параметры и возвращать измененные значения через список выходных параметров. Однако, в отличие от процедуры -Function, процедуры - Sub не возвращают значения, свя­занного с их именами.

 

Процедуры- Function и процедуры- Sub могут определяться (описываться) в коде программы формы.

Процедуры общего назначения предоставляют следующие преимущества:

· они позволяют связать часто используемую группу операторов программы со
знакомым именем;

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

· они делают программы более простыми и легко читаемыми, программа, разделенная на небольшие части, легче воспринимается и понимается, чем программа, сделанная в виде одного большого фрагмента;

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

· они могут быть повторно использованы в других проектах и решениях (можно легко встроить процедуры из стандартного модуля в другие программные проекты);

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

 

Процедура - Function –это группа операторов, расположенных между ключевыми словами Functionи End Function. Операторы в функции выполняют осмысленную работу – в соответствии с заданным алгоритмом. Функции создают тогда, когда результатом выполнения процедуры является значение какой либо одной величины числового, строкового или логического типа. Чтобы выполнить (вызвать или обратиться) – функцию в программе, необходимо поместить в операторе (любое допустимое выражение) программы имя этой функции и все требуемые для нее фактические параметры.

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

 

Описание процедуры -функции имеет следующий синтаксис:

 

Function ИмяФункции ( ФормальныеПараметры ) As ТипВозвращаемогоЗначения

ОператорыФункции

Return значение

End Function

Важными являются следующие синтаксические элементы:

· ИмяФункции –это имя создаваемой функции;

· ТипВозвращаемогоЗначения –это тип значения, возвращаемого функцией, то есть тип величины, которая является результатом работы функции;

· Формальные параметры (аргументы) –это список необязательных аргументов, разделенных запятыми и используемых в данной функции. Каждый аргумент дол­жен быть объявлен с указанием конкретного типа данных. По умолчанию Visual Basic добавляет к каждому аргументу ключевое слово ByVal, которое указывает на то, что в функцию через данный аргу­мент передается копия значения и все изменения значения этого ар­гумента не будут возвращены в вызывающую процедуру;

· ОператорыФункции –это блок операторов, который выполняет работу функции (первые операторы в этой функции обычно объявляют локальные переменные, которые будут использоваться внутри функции, а осталь­ные операторы выполняют работу функции).

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

 

Пример 4.3.1-1. Добавление в проект Пример 4.1.7-1 (Счастливая семерка) процедур и общих переменных.

1. Форма нового проекта должна выглядеть как на рис. 4.3.1-1.

 

Рис. 4.3.1-1

 

2. Переместить точку ввода на пустую строку за оператором Public Class Form1 и ввеcти оператор объявления переменной Dim Wins As Short, а затем нажать на <Enter>;.

Этот оператор объявляет в программе открытую целочисленную переменную типа Short. Когда программа запускается, каждая процедура события этой программы получит доступ к этой переменной.

3. Щелкнуть дважды на кнопке формы Играть.

В окне Редактор кода (Code Editor) появится процедура события Button1_Click()для кнопки формы Играть.

4. В этой процедуре события после оператора Веер() следует ввести следующие операторы:

 

Wins = Wins + 1 Label5.Text = "Побед:" & Wins

 

Эта часть кода программы увеличивает на единицу открытую переменную Wins, если при «вращении» появляется 7. Вторая строка использует оператор конкатенации (&;), с помощью которого присваивает объек­ту Label5.Text строку в формате Побед: X, где X - это число выигрышей.

Надпись Побед: Х отслеживает выигрыши. Каждый раз, когда происходит выигрыш, она увеличивает значение переменной Wins на 1. После 10 вращений переменная Winsможет принять значение, показанное на рис. 4.3.1-2.

5. Щелкнуть на Конец игры, чтобы выйти из программы.

 

Глобальная переменная Winsполезна в процедуре события Button1_Click()потому, что она сохраняла свое значение на протяжении нескольких вы­зовов. Если бы Winsбыла объявлена локально в процедуре события Button1_Click(), то эта переменная каждый раз сбрасывалась бы (обнулялась).

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

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

1. Отобразить форму программы Пример-4-3-2-1 (Счастливая семерка-2).

Появится интерфейс пользователя программы Счастливая семерка2.

2. С помощью элемента управления Label создать новую надпись ниже надписи Побед: 0.

Установить для этой надписи свойства, приведенные в таблице 4.3.1-1.

 

Таблица 4.3.1-1

Объект Свойство Значение
Label6 Font Arial, жирный, 12-point
ForeColor красный
Name Label6
Text 0.0%
TextAlign MiddleCenter

 

Форма должна выглядеть аналогично той, которая изображена на рис. 4.3.1-1.

3. В окне Обозреватель решений (Solution Explorer) щелкнуть на команде Показать код (View Code).

В окне Редактора кода (Code Editor) появится программный код.

4. После оператора Public Wins As Short следует добавить следующее объявле­ние:

 

Public Spins As Short

Теперь модуль включает две открытые переменные, Wins и Spins, ко­торые доступны всем процедурам проекта. Причем Spins будет исполь­зоваться как счетчик для хранения числа сыгранных игр.

5. Далее добавить в модуль формы пустую строку, а затем следующее описание функции:

Function HitRate(ByVal Hits As Short, ByVal Tries As Short) As String Dim Percent As Single Percent = Hits / Tries Return Format(Percent, "0.0%") End Function

После того как будет введена первая строка кода функции, Visual Basic автоматически добавит оператор End Function. Когда будет введена остальная часть кода функции, экран должен выглядеть ана­логично рис. 4.3.1-2.

Функция HitRate() определяет процентное соотношение выигрышей. Разделив аргумент Hits на аргумент Tries, затем форматирует представ­ление результата с помощью встроенной функции Format(). Функция HitRate() объявлена как имеющая тип строки, так как функция Format() возвра­щает строковое значение. Аргумент Hits и аргумент Tries - это места хранения двух коротких целых переменных, которые передаются в функцию при ее вызове. Функция HitRate() является функцией общего назначения и может быть использована с любыми короткими целыми числами или переменными, а не только с Wins и Spins.

6. За четвертой строкой процедуры события Button1_Click()

 

Label3.Text=CStr(Int(Rnd() * 10))

следует ввести следующий оператор:

 

Spins = Spins + 1.

Этот оператор увеличивает на 1 переменную Spins каждый раз, ког­да пользователь щелкает на кнопке формы Играть, а в поля вывода чисел выводятся новые значения.

7. Прокрутить окно Редактор кода (Code Editor) вниз, а затем в качестве последней стро­ки процедуры события Button1_Click()между операторами End IfиEnd Subвведите следующий оператор:

 

Label6.Text = HitRate(Wins, Spins)

 

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

Целью этого оператора является вызов функции HitRate() с использо­ванием переменных Winsи Spins в качестве ее аргументов (фактических параметров). Возвра­щаемый результат – это процентное соотношение в строковом фор­мате, и это значение при каждой игре присваивается свойству Text надписи формы Label6.

8. Прокрутить процедуру события Form1_Load() в окне Редактор кода (Code Editor) вниз
и удалите или закомментируйте (поместите перед ней символ комментария - апостроф) функцию Randomize.

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

 

Option Strict On Option Explicit On Imports System.Math Public Class Form1 Public Spins As Short Public Wins As Short Function HitRate(ByVal Hits As Short, _ ByVal Tries As Short) As String Dim Percent As Single Percent = CSng(Hits / Tries) Return Format(Percent, "0.0%") End Function Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button2.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click Igr() End Sub Sub Igr() PictureBox1.Visible = False ' скрыть картинку Label1.Text = CStr(Int(Rnd() * 10)) ' выбрать числа Label2.Text = CStr(Int(Rnd() * 10)) Label3.Text = CStr(Int(Rnd() * 10)) Spins = CShort(Spins + 1) If (Label1.Text = "7") Or (Label2.Text = "7") _ Or (Label3.Text = "7") Then PictureBox1.Visible = True 'открыть рисунок Beep() Wins = CShort(Wins + 1) Label5.Text = "Побед:" & Wins End If Label6.Text = HitRate(Wins, Spins) End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load Randomize() End Sub End Class

 

9. Чтобы запустить измененную программу Пример-4.3.1-1 (Счастливая семерка-3) следует щелкнуть на кнопке Start Debugging.

 

10. Щелкнуть 10 раз на кнопке Играть.

После 10 игр экран выглядит так, как показано на рис. 4.3.1-2.

 

Рис. 4.3.1-2

.

Если продолжить щелкать, то можно будет увидеть, что количество выигрышей упадет примерно до 28%. Функция HitRate() показывает, что в начале игры вы были слишком удачливы, но затем вам пришлось столкнуться с реальностью.

11. Когда закончите работать с программой, щелкнуть на кнопке Конец игры.

Программа остановится и вернется в среду разработки. Чтобы увидеть, как программа работает «по-настоящему», верните в процедуру события Form1_Load() функцию Randomize.

12. Чтобы сохранить изменения, щелкните на кнопке Сохранить все(Save All) на стандартной панели инструментов.

Процедуры- Sub похожи на процедуры- Function, за исключе­нием того, что процедура- Sub не возвращает значения, связанного с ее именем.

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

 

Базовый синтаксис описания процедуры Sub имеет вид

 

Sub ИмяПроцедуры ( ФормальныеПараметры )

ОператорыПроцедуры

End Sub

Отметим следующие синтаксические элементы:

· ИмяПроцедуры – это имя создаваемой процедуры- Sub.

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

· ОператорыПроцедуры – это блок операторов, который выполняет работу процедуры по заданному алгоритму.

 

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

Необходимо отметить, что в Visual Basic все вызовы процедур- Sub после име­ни процедуры должны содержать круглые скобки. Если в про­цедуру не передается ни одного аргумента, то требуется нали­чие пустых круглых скобок.

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

 

Пример 4.3.1-2. Создание процедуры-Sub для ввода текстового поля.

1. Создать новый проект с именем Пример-4-3-2-2.

Будет создан новый проект, и в окне Конструктор (Designer) появится пустая форма.

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

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

3. Использовать элемент управления Label и создать над этими текстовыми полями две надписи.

Эти надписи будут содержать имена преподавателей.

4. Использовать элемент управления Button и создать три кнопки: по одной под каждым текстовым полем и одну в нижней части формы.

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

5. Для этих объектов формы установить свойства, приведенные в таблице 4.3.1-2.

Так как текстовые поля будут содержать более одной строки, для них требуется установить свойства Multilineв значение True, а свойства Scrollbars - в значение Vertical. Эти установки обычно используются тогда, когда в текстовых полях отображается несколько строк текста. Также требуется установить их свойства TabStopв значение False, a их свойства ReadOnly в значение True так, чтобы информацию нельзя было бы изменить.

Таблица 4.3.1-2

Объект Свойство Значение
TextBox1 Multiline True
Name TextBox1
ReadOnly True
ScrollBars Vertical (вертикальная)
TabStop False
TextBox2 Multiline True
Name TextBox2
ReadOnly True
ScrollBars Vertical (вертикальная)
TabStop False
Label1 Font Bold (Полужирный)
Name Label1
Text "Доц. Скрыпникова М.И"
Label2 Font Bold (Полужирный)
Name Label2
Text "Доц. Кувыкина М.И"
Button1 Name Button1
Text Добавить имя студента
Button2 Name Button2
Text Добавить имя студента
Button3 Name Button3
Text Выход
Form1 Text Распределение студентов по подгруппам

 

6. Изменить размер и положение объектов так, чтобы форма выглядела как на рис. 4.3.1-3.

 

Рис. 4.3.1-3

 

Теперь требуется создать процедуру Sub общего назначения с именем AddName().

7. Ввести код процедуры AddName, показанный на рис.4.3.1-4.

 

Sub AddName(ByVal Team As String, ByRef ReturnString As String) Dim Prompt, Nm, WrapChar As String Prompt = "Ввести " & Team Nm = InputBox(Prompt, "Ввод Фамилий студентов") WrapChar = Chr(13) + Chr(10) ReturnString = Nm & WrapChar End Sub

Рис. 4.3.1-4

 

Эта процедура- Sub общего назначения для запроса имени студента использует функцию InputBox(). При вызове про­цедуры она получает два аргумента: Team, являющийся строкой, со­держащей имя преподавателя подгруппы, и ReturnString, который содержит пус­тую строковую переменную для отформатированного имени студента. ReturnString объявлена с ключевым словом ByRef, так что все изменения, сделанные в этом аргументе в процедуре, будут переданы через этот аргумент обратно в вызывающий код. Прежде чем имя студента будет возвращено, к строке добавляют­ся символы возврата каретки и перевода строки – chr(13)+chr(10) или vbCrLf, и, таким образом, каждое имя в текстовом поле будет отображаться на отдельной строке.

Эту методику можно использовать в любой строковой переменной, где требуется создать новую строку.

8. Снова отобразить форму, а затем дважды щелкнуть на первой из кно­пок Добавить имя формы (кнопке под текстовым полем Доц. Скрыпникова М.И.). В проце­дуре события Button1_Click() ввести следующие операторы:

 

Dim Gr1Pos As String = "" AddName("Студентов группы 1", Gr1Pos) TextBox1.Text = TextBox1.Text & Gr1Pos

 

Вызов процедуры AddName()включает один аргумент, передаваемый по значению («Студентов группы 1.»), и один аргумент, передаваемый по ссылке (Gr1Pos). Последняя строка использует аргумент, переданный по ссылке, для добавления текста в текстовое поле TextBox1. Оператор кон­катенации (&) добавляет новое имя в конец текста в этом текстовом поле.

9. В окне Редактор кода (Code Editor) щелкнуть на стрелке Class Name и в списке выбрать объект Button2.

Затем щелкнуть на стрелке Method Name (имя метода) и выбрать событие Click.

В окне Редактор кода (Code Editor) появится процедура события Button2_Click().

10. В этой процедуре события ввести следующие операторы:

 

Dim Gr2Pos As String = "" AddName("Студентов группы 2", Gr2Pos) TextBox2.Text = TextBox2.Text & Gr2Pos

 

Эта процедура события идентична Button1_Click(), за исключением того, что она посылает в процедуру AddName имя «Студентов группы 2» и об­новляет текстовое поле TextBox2.

11. Щелкнуть на стрелке Class Name и в списке выберать объект Button3.

Затем щелкнуть на стрелке Method Name и выбрать событие Click.

В окне Редактор кода (Code Editor) появится процедура события Button3_С1ick().

12. В процедуре события Button3_Click() ввеcти оператор End(рис. 4.3.1-5).

 

Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim Gr1Pos As String = "" AddName("Студентов группы 1", Gr1Pos) TextBox1.Text = TextBox1.Text & Gr1Pos End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim Gr2Pos As String = "" AddName("Студентов группы 2", Gr2Pos) TextBox2.Text = TextBox2.Text & Gr2Pos End Sub Sub AddName(ByVal Team As String, ByRef ReturnString As String) Dim Prompt, Nm, WrapChar As String Prompt = "Ввести " & Team Nm = InputBox(Prompt, "Ввод Фамилий студентов") WrapChar = Chr(13) + Chr(10) ReturnString = Nm & WrapChar End Sub End Class

Рис. 4.3.1-5

 

13. Чтобы сохранить изменения, щелкнуть на кнопке Сохранить все (Save All) на стан­дартной панели инструментов.

14. Чтобы запустить программу, щелкните на кнопке Начать Отладку (Start Debugging), расположенной на стандартной панели инструментов.

15. Щелкните на кнопке формы Добавить имя студента под текстовым полем Доц.Скрыпникова М.И., а затем введите в поле ввода Иванов Иван И. (Вы можете ввести и какое-ни­будь другое имя.)

Поле ввода должно выглядеть примерно так, как на рис. 4.3.1-6.

 

Рис. 4.3.1-6

 

16. Чтобы добавить это имя в текстовое поле Доц.Скрыпникова М.И., щелкните на кнопке ОК.

Имя появится в первом текстовом поле.

17. Щелкните на кнопке формы Добавить имя студента под текстовым полем Доц.Кувыкина М.И., вве­дите в поле ввода имя Петров Сидор В., а затем нажмите на <Enter >;.

Имя появится в текстовом поле подгруппы 2. Экран при этом будет выглядеть примерно так, как показано на рис. 4.3.1-7.

 

Рис. 4.3.1-7

 

18. В каждое из этих двух текстовых полей введите еще по нескольку имен.

Каждое имя в текстовых полях отображается в отдельной строке. Эти текстовые поля не прокручиваются автоматически, так что если вве­сти больше имен, чем помещается в текстовое поле, то увидеть все имена одновременно не удастся. Для доступа к невидимым именам следует использовать полосы прокрутки.

19. Когда закончите ввод, щелкните на кнопке Выход, чтобы остановить програм­му.

 

Пример 4.3.1-2 продемонстрировал, что одна процедура- Sub может выполнять задачи ввода для двух и более процедур событий. Используя эту базо­вую концепцию как отправную точку, можно создать более сложные программы, которые используют процедуры типов Sub и Function для выполнения общих задач.

 

 







Дата добавления: 2015-09-07; просмотров: 385. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

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

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

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

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