Проект «Передача по ссылке и по значению»

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

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

Процедуры и функции предоставляют следующие преимущества:

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

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

o Упрощают разработку программы. Программы, разделенные на логические единицы, легче разрабатывать, писать и отлаживать.

o Могут повторно использоваться в других проектах и решениях.

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

Основные отличия функции от процедуры:

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

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

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

Подпрограмма типа Sub

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

Общий вид описания процедуры:

Sub название_процедуры ([параметры])

операторы_процедуры

End Sub

Здесь:

o название_процедуры – имя создаваемой вами процедуры Sub;

o параметры – необязательный список формальных параметров, используемых в процедуре Sub;

o операторы_процедуры – блок операторов, который выполняет работу процедуры.

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

Общий вид вызова процедуры:

Имя_переменной = название_функции(фактические параметры)

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

Передача параметров

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

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

Параметры можно передавать по значению и по ссылке.

В чем различие?

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

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

При передаче по значению в процедуру передается только копия переменной, т.е. процедура не получает доступ к переменной в памяти и не может изменить ее значение. Для передачи параметров по значению в описании процедуры перед параметром в списке параметров указывают ключевое слово ByVal (от англ. by value – по значению).

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

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

Проект «Передача по ссылке и по значению»

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

1. Разместить на форме:

o текстовые поля TextBox1 и TextBox2 для вывода начальных значений переменных;

o надписи Label1 и Label2 для вывода конечного значения переменных;

o кнопку button1 для создания процедуры-обработчика события;

o четыре надписи для вывода поясняющих текстов.

В программном коде процедуры первый параметр X передается по ссылке, а второй параметр Y передается по значению.

Создадим программный код проекта, в котором:

o объявим переменные;

o создадим процедуру, умножающую значение переменных, передаваемых по ссылке и по значению, на коэффициент 5;

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

2. Объявить переменные и создать код вызываемой процедуры:

 Dim RefA, ValB As Byte

 Sub refVal(ByRef RefA, ByVal ValB)

RefA = RefA * 5

ValB = ValB * 5

End Sub

3. Создать код вызывающей процедуры-обработчика события:

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

4. Запустить проект на выполнение и вывести в текстовые поля начальные значения переменных (например, 3). На надписи будут выведены конечные значения переменной, передаваемое по ссылке (в данном случае, 15), и переменной, передаваемой по значению (в данном случае 3). Значение переменной, передаваемое по значению, не изменилось.Что и требовалось доказать!

 


Дата добавления: 2021-04-05; просмотров: 77; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!