Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Для выхода из подпрограммы надо пользоваться командой Ctrl+Shift+F8. В любой момент вы можете завершить исполнение программы либо, выполнив ее до конца командой Continue (F5), или просто прервать ее исполнение командой Reset.

Если заранее известно проблемное место программы, то на этой строке можно поставить точку останова (Toggle BreakPoint). Для этого достаточно щелкнуть слева от этой строки на серой вертикальной полосе или просто нажать клавишу F9. Строка окрасится в коричневый цвет, а на вертикальной полосе появится кружок такого же цвета. После этого можно просто запустить программу, и как только текущей строкой станет отмеченная, программа остановится, и можно будет продолжить ее исполнение в пошаговом режиме.

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

Подпись: 

Рис.6. Окно быстрого просмотра значений

Иногда для сложных объектов система не выдает такую подсказку, в этом случае можно воспользоваться окном Quick Watch (Shift+F9) (рис.6). Для этого надо выделить нужный объект или выражение, и нажать комбинацию клавиш Shift+F9.

Подпись:Если необходимо постоянно следить за некоторыми переменными, то их лучше добавить в панель Watches командой Add Watch (рис.7). В ней можно указать область видимости переменных и условия остановки программы, реализуемой в двух вариантах: когда значение становится равным True или когда оно меняет значение.

НЕ нашли? Не то? Что вы ищете?

Умение быстро и эффективно проводить режим отладки программы позволит вам хорошо разрабатывать сложные программы.

Теперь остановимся на основных элементах языка программирования.

Описание переменных

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

· Dim – стандартное описание, описывающее переменные для данного объекта, в котором это описание используется;

· Private – описание переменных только внутри объекта;

· Public – описание переменных для нескольких однородных объектов при описании в одном из них.

Подпись: 

Рис.8. Дерево проекта

Видимость переменных будет определяться размещением их описания в проекте. Рассмотрим структуру проекта и области видимости переменных, в зависимости от места их описания (рис.8).

В каждом из объектов (Лист1(Лист1), ЭтаКнига, UserForm1 и Module1) может находиться код программы и в нем область (General) (см. рис.2), которая содержит блок (Declaration) для описания переменных.

Для доступа к переменным во всем проекте, их надо объявить в Module1 с использованием описания Public, Dim описывает переменные для всех Modules, и использование Private описывает переменные только для текущего модуля.

В других объектах (Лист1(Лист1), ЭтаКнига, UserForm1) можно использовать описание Dim, и обычно это описание касается только данного объекта. Попытка описания там общих переменных для всего проекта приводит к ошибкам или созданию различных переменных в разных модулях проекта, что делает программу неработоспособной.

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

Синтаксис оператора описания переменной:

Dim переменная [As тип]

В этой конструкции:

· Dim (Dimension ‑ размер) ‑ ключевое слово, свидетельствующее о том, что объявляется переменная;

· переменная ‑ имя объявляемой переменной;

· Аs (как) ‑ ключевое слово, используемое при задании типа данных;

· тип – тип данных для объявляемой переменной.

Здесь и далее квадратными скобками выделяется необязательная часть конструкции (которая может отсутствовать).

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

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

Dim i As Bite, j As Integer, k As Integer

При использовании русских букв следует иметь в виду следующее: хотя некоторые из них (а, е, о, р, с, у, х) имеют такое же написание, как английские буквы, для компьютера буквы с одинаковым русским и английским написанием ‑ разные символы (литеры). Например, переменные с буквами «о», «с», «а», набранные русскими и английскими буквами, являются разными переменными, и при выполнении программы им отводятся разные ячейки оперативной памяти. Поэтому для снижения вероятности ошибок при написании программного кода лучше использовать либо только русские символы или только английские для написания имен переменных и программ.

Типы данных Вуtе, Integer, Long, Сиrrеnсу, Single и Double называются числовыми типами данных.

Согласно описанию переменной типа Вуtе в ячейке оперативной памяти компьютера могут храниться только числа от 0 до 255;

· в ячейке, соответствующей переменной типа Integer или Long, могут храниться положительные и отрицательные целые числа;

· в ячейке, соответствующей переменной типа Сиrrеnсу (Денежный), Sinlе (Одинарной точности) или Double (Двойной точноный), могут храниться числа с дробной частью.

Если при описании переменной программист не указывает тип данных (например, Dim W), то переменной (W) автоматически будет присвоен тип Variant. Это означает, что в ячейке, соответствующей этой переменной, может храниться информация любого вида, т. е. тип Variant аналогичен формату «Общий» таблиц Excel.

Рассмотрим оператор

Dim i, j

Если мы хотим, чтобы обе переменные (i, j) имели тип Integer, то должны их описать так:

Dim i As Integer, j As Integer

Или в два оператора

Dim i As Integer

Dim j As Integer

Константы

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

Существует две разновидности констант ‑ пользовательские и встроенные.

Пользовательские константы требуют объявления. Для этого используется оператор вида

Const константа [As тип] = значение

В этом операторе:

· Соnst – ключевое слово, которое показывает, что объявляется константа;

· Аs – ключевое слово, с которого начинается задание типа данных;

· константа – имя объявляемой константы;

· тип ‑ тип данных для объявляемой константы или тип константы;

· значение – значение, присваиваемое константе.

Примеры объявления констант:

Const pi As Double = 3.

Const e As Double = 2.

Const Message = "3aвершение paботы"

Const MyDate As Date = #10 Jan 2008#

Const beta As Currency = 1/4

При помощи одного оператора Const можно объявить несколько констант, перечислив их через запятую.

В качестве примера использования констант рассмотрим следующую программу перевода угла (аnglе) из градусной меры в радианную:

Public Sub deg2rad()

Dim angleD As Double

Dim angleR As Double

Const pi As Double = 3.

angleD = 270 'Угол равен 270 градусам

angleR = angleD * pi/180'Угол в радианах

End Sub

Обратите внимание, что константа рi объявляется оператором

Const pi As Double = 3.

перед использованием в операторе angleR = angleD * pi/180

Встроенные константы не требуют объявления.

Имена встроенных констант Visual Basic начинаются с префикса vb. Слово «префикс» переводится с латинского как «стоящий перед корнем», «приставка». Например нам встретятся следующие встроенные константы: vbCr – перевод строки в текстовой переменной, vbRed, – красный цвет и др.

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

Оператор присваивания имеет следующий синтаксис:

переменная = выражение

В нем переменная – имя переменной, выражение – арифметическое, логическое выражение или строка, которую можно рассматривать как выражение.

Оператор присваивания работает следующим образом:

1) компьютер рассчитывает значение выражения выражение;

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

Арифметические выражения

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

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

Пример.

z=5 * х + 12 * у

Арифметические операции обозначаются так: + (сложение), ‑ (вычитание, изменение знака), * (умножение), / (деление), ^ (возведение в степень), \ (целочисленное деление, т. е. деление целых чисел с отбрасыванием остатка), Моd (определение остатка от деления целых чисел, являющегося целым числом).

Пример.

Public Sub Арифметика1()

Dim m As Integer

Dim n As Integer

Dim x As Double

m = 5: n = 2

x = m/n 'Результат: х = 2.5

x = m\n 'Результат: х = 2

x = m Mod n 'Результат: х = 1

End Sub

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

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

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

· если дробная часть значения равна или больше 0.5, то это значение округляется до ближайшего большего целого числа;

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

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

Логические выражения

Помимо арифметических выражений, в VBA можно использовать логические выражения (утверждения), принимающие одно из двух значений типа Bоо1еаn — Тruе (истина, логическая единица) или False (ложь, логический нуль).

Примеры логических выражений:

5 >= 3

5 < 3

False

Знаки >= и < являются известными знаками сравнения «больше или равно» и «меньше». Первое логическое выражение имеет значение Тruе, второе ‑ False, третье ‑ False.

Согласно синтаксису оператора присваивания, логическое выражение находится справа от знака присваивания =.

Пример. Программа с четырьмя операторами присваивания:

Public Sub Логика1()

Dim x As Integer

Dim y As Integer

Dim blnA As Boolean

x = 5

y = 2

blnA = x > y 'Результат: blnA = Тrue

blnA = x = y 'Результат: blnA = False

End Sub

В программе Логика1 два логических выражения: х > у и
х = у. Их значения при х = 5 и у = 2 приведены в комментариях.

Текстовые выражения

Иногда бывает необходимо построить текстовые строки программно в зависимости от ситуации. Это тоже выражения и требуют знания определенных приемов. Для работы с текстовыми выражениями используется один оператор сцепления строк &. Его лучше всегда ограничивать пробелами. В этих выражениях очень часто используются константы. Например, в выражении,

Name=”Вася”

X=”Привет “ & Name & VbCr & “Как ты себя чувствуешь?”

представленном следующим образом

Привет Вася

Как ты себя чувствуешь?

vbCr – константа перевода строки.

Линейные программы

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

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

Оператор перехода

Для изменения последовательности выполнения операторов (т. е. для ветвления программы) используется оператор перехода GоТо, имеющий следующий синтаксис:

GoTo метка

В этом операторе метка ‑ это целое неотрицательное число без знака (0, 1, 2, 3, ...) или последовательность букв и цифр, начинающаяся с буквы (например, start53а).

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

Если меткой является целое неотрицательное число, то это число еще называют номером оператора (строки).

Конструкции принятия решений

Типичной является ситуация, когда в определенном месте программы необходимо выполнить те или иные операторы в зависимости от некоторых условий. Выбор операторов осуществляется с помощью одной из двух конструкций принятия решений – If … Then и Select … Case.

Ветвление по условиям

Первая конструкция принятия решений – If...Then, называется условным оператором. На русский язык «If...Then» переводится как «если...то». Существует несколько разновидностей этой конструкции.

Простейший условный оператор:

If условие Then оператор

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

Далее выполняется оператор, следующий за конструкцией If...Then, вне зависимости от того, выполнен оператор или нет (если оператор не является оператором перехода GоТо).

Рассмотрим следующую программу:

Public Sub IT1()

Dim X As Byte

X = 12 'начальное значение X

If (X > 9 And X < 12) Then X = X + 1

X = X + 2

X = X * 2 'конечное значение X

End Sub

Задание

1) Поставьте точку останова напротив строки End Sub;

2) запустите программу, кликнув на стрелке панели инструментов;

3) убедитесь в том, что в момент останова х равняется 28;

4) объясните этот результат;

5) кликните на стрелке на панели инструментов для окончания выполнения программы;

6) в конструкции If...Then измените условие так, чтобы в момент останова переменная х имела значение 30;

7) текст программы IТ1 верните в исходное состояние.

Частным случаем рассмотренной конструкции If...Then является оператор условного перехода, включающий в себя оператор перехода GоТо. Синтаксис оператора условного перехода:

If условие Then GоТо метка

Согласно этому оператору, при истинности условия происходит переход на метку метка и выполняется помеченный оператор.

Пример

Public Sub IT2()

Dim X As Integer

X = 12

2: If X > 9 And X < 12 Then GоТо LastLine

X = X - 2

GoTo 2

LastLine:

End Sub

Задание

1) Выполните программу IТ2 пошагово, следя за последовательностью выполнения операторов и изменением значения х;

2) объясните, почему значение х меняется так, а не иначе.

Если при истинности условия требуется выполнить несколько операторов, то следует использовать конструкцию вида

If условие Then

операторы

End If

Подпись: 

Рис.9. Схема оператора

If…Then

Этот условный оператор работает таким образом. Если условие истинно, то выполняется блок операторов операторы, находящийся после ключевого слова Then. Если же условие ложно, то блок операторы не выполняется. Далее выполняется оператор, следующий за служебным словосочетанием End If, вне зависимости от того, выполнен блок операторы или нет.

До этого мы рассматривали операторы, имеющие одно условие, т. е. неполные операторы, но операторы могут быть и полными (содержать оба условия). Алгоритм полного оператора показан на рис.9.

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

If Mx<0 Then K=1 Else K=1

Иначе он пишется в несколько строк

If Mx<0 Then

операторы по условию Истина

Else

операторы по условию Ложь

End If

Эта конструкция условного оператора работает следующим образом. Если условие истинно, то выполняется блок операторы по условию Истина, находящийся после ключевого слова Then. Если условие ложно, то выполняется блок операторы по условию Ложь, находящийся после ключевого слова Else. После выполнения блока операторы по условию Истина или операторы по условию Ложь выполняется оператор, следующий за строкой End If.

В качестве примера использования последней конструкции приведем следующую программу:

Public Sub IT3()

Dim X As Byte

X = 12 'начальное значение X

If (X > 9 And X < 12) Then

X = X + 3

Else

X = X + 2

End If

X = X * 2 'конечное значение X

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11