Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
21-25.doc
Скачиваний:
8
Добавлен:
27.09.2019
Размер:
96.77 Кб
Скачать

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

Порядок выполнения

В императивном программировании порядок выполнения (порядок исполнения, порядок вычислений) — это способ упорядочения инструкций программы в процессе ее выполнения.

Изображение порядка выполнения инструкций программы

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

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

Поток управления

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

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

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

Виды порядков выполнения

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

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

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

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

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

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

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

22.Типы переменных в Visual Basic

В Visual Basic переменные хранят информацию (значения). При их использовании Visual Basic резервирует область в памяти компьютера для хранения данной информации. Имена переменных могут достигать 255 символов в длину, начинаются они с буквы, за которой могут следовать другие буквы, цифры или символы подчеркивания. Регистр символов и наименований переменной значения не имеет.

  • Boolean - булев тип данных может хранить только два значения: True либо False, истина или ложь. Его использование вместо целочисленных переменных является хорошим стилем программирования.

  • Byte - байтовый тип является новым в Visual Basic 5 и предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память и уменьшать размер массивов по сравнению с предыдущими версиями Visual Basic. Кроме того, он используется при работе с двоичными файлами.

  • Currency - данный тип отсутствовал в версиях GW-BASIC и QuickBASIC. Он создан для того, чтобы избежать ошибок при преобразовании десятичных чисел в двоичную форму и наоборот. (Невозможно 1/10 представить как сумму 1/2,1/4, 1/8, 1/16 и т.п.) Данный тип может иметь до 4 цифр после запятой, и до 14 - перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой символ "@". Поскольку все арифметические операции, кроме сложения и вычитания, выполняются так же медленно, как и в случае переменных с двойной точностью, данный тип является предпочтительным для проведения финансовых расчетов. (Для тех, кто интересуется: данный тип использует целые числа из 19 разрядов, которые затем делятся на 10000. Это позволяет организовать 15 знаков до запятой и 4 после нее.)

  • Date - этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Такие значения в тексте программ обозначаются символами "#", например: NewYear = #January 1, 2000# Если вводится только значение даты, Visual Basic полагает, что время равняется 00:00.

  • Decimal - самый мощный числовой тип. Для хранения переменной подобного типа отводиться 16 байт. Отрицательная и положительная границы промежутка, в котором располагаются возможные значения этой переменной, одинаковы по модулю и равны +/- 79 228 162 514 264 337 593 543 950 335, если использовать целые числа. Если же необходимо хранить дробные величины, то границы возможных значений будут смещены на несколько порядков в зависимости от того, сколько знаков после запятой использует разработчик. Подобный тип может использоваться только для хранения десятичных дробей. Разработчик может использовать до 28 знаков после запятой.

  • Double - переменные такого типа позволяют хранить числа с точностью до 16 цифр и длиной до 300 символов. Идентификатором является "#". Вычисления с ними тоже являются приблизительными, а скорость их относительно небольшая. В основном переменные типа Double используются для научных расчетов.

  • Integer - целочисленные переменные могут хранить только относительно небольшие целые числа (в диапазоне от -32 768 до +32 767). Арифметические операции над такими числами выполняются очень быстро. Для обозначения такого типа используется символ "%": IntegerPerem% = 3

  • Long - данный тип впервые появился в языке QuickBASIC. В таких переменных хранятся целые значения от -2 147 483 648 до +2 147 483 647. Обозначается символом "&". Арифметические операции над такими числами выполняются тоже очень быстро, и при работе с процессором 386DX или 486DX существовала лишь небольшая разница в скорости вычислений между Long и Integer. LongPerem& = 123456789

  • Object - по сути, переменная подобного типа является всего лишь ссылкой на некий конкретный экземпляр какого либо объекта. Для хранения переменной отводятся 4 байта.

  • Single - идентификатором для данных чисел является символ "!". Данный тип переменной позволяет хранить дробные числа с точностью до семи цифр. Это означает, что если получается результат 12345678.97, то часть 8.97 не является точной. Результат может быть равен, к примеру, 12345670.01. Длина чисел может достигать 38 знаков. Вычисления с данными переменными тоже будут приблизительными. Более того, арифметические действия выполняются медленнее, чем с целочисленными переменными.

  • String - строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа "$" к концу ее имени, например: StringPerem$. Теоретически такая переменная может содержать до 2 миллиардов символов. В любом случае на конкретном компьютере это число будет гораздо меньше из-за ограниченных объемов оперативной памяти, ресурсов Windows или числа символов, используемых в форме. Одно из наиболее основных применений строковых переменных состоит в выборе информации из полей ввода.

  • Variant - данный тип добавлен в Visual Basic 5 из версии 2.0. Переменная типа variant может содержать данные любого типа. Если Visual Basic не знает тип принимаемых данных, необходимо использовать variant. Тип информации не имеет значения, поскольку variant может содержать любой тип данных (численный, дата/ время, строковый). Visual Basic автоматически производит необходимые преобразования данных, поэтому не стоит беспокоиться об этом. С другой стороны, можно использовать встроенные функции для проверки типа данных, хранящихся в переменной типа variant. Они позволяют легко проверить, правильно ли пользователь вводит информацию. Использование такого типа данных, как variant, замедляет работу программы, так как требуется время и ресурсы для операций преобразования типов. Кроме того, многие программисты понимают, что использование автоматических преобразований типов данных приводит к неаккуратному виду программ. Единственная причина в использовании variant состоит в возможных ошибках при преобразовании типов непосредственно программистом.

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

  • Создание собственного типа данных осуществляется с помощью инструкции Type, который используется в секции General кода формы.

23. Особенности объявления переменных в Visual Basic

Объявление переменной в Visual Basic

Visual Studio 2010

  • Visual Studio 2008

  • Visual Studio 2012

Переменная объявляется для того, чтобы задать ее имя и характеристики.Оператором объявления переменных является Оператор Dim (Visual Basic).Его местоположение и содержание определяют характеристики переменной.

Уровни объявления

Локальные переменные и переменные-члены

Локальная переменная — это переменная, объявленная внутри процедуры.Переменная–член является членом типа Visual Basic; она объявляется на уровне модуля, внутри класса, структуры или модуля, но не внутри любых процедур этого класса, структуры или модуля.

Переменные экземпляров и общие переменные

В классе или структуре категория переменной–члена зависит от того, используется ли она совместно.Если переменная объявлена с зарезервированным словом Shared, она является общей переменной и существует в единственном экземпляре, разделяемом между всеми экземплярами класса или структуры.

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

Объявление типа данных

Предложение As в операторе объявления позволяет определить тип данных или тип объекта объявляемой переменной.Можно указать любой из следующих типов переменных.

  • Простой тип данных, например Boolean, Long или Decimal.

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

  • Объектный тип объекта или класс, определенный либо в вашем приложении, либо в другом

  • Класс .NET Framework, такой как Label или TextBox

  • Тип интерфейса, такой как IComparable или IDisposable

Можно объявить несколько переменных в одном операторе без повторения типа данных.В следующих операторах переменные i ,j и k объявляются как тип Integer, l и m как Long, x и y как Single

1. Переменные величины. Явное объявление переменных.

Переменные величины или просто переменные, также как и константы используются для хранения некоторых необходимых программе данных. Переменная также как и константа имеет имя. И, хотя имена переменным выбираются произвольно, существуют следующие ограничения: 1 Имя переменной должно начинаться с буквы, а не с цифры или другого символа. 2 Имя не должно содержать точки. 3 Длина имени не должна превышать 255 символов. 4 Имя должно быть уникальным в пределах данной процедуры или модуля. Переменные получают свои значения в период выполнения программы и сохраняют их, пока им не будет присвоено новое значение. Нельзя не отметить, что в программах на Visual Basic свойства элементов управления тоже рассматриваются как некоторые переменные. В переменных можно хранить практически любые данные. Переменная может содержать число, строку текста или экземпляр объекта (в том числе формы), элементы управления, элемент базы данных. В переменной можно хранить информацию любого типа, но разные типы переменных предназначены для эффективной работы с различными типами информации. Чтобы программа смогла воспользоваться переменной Visual Basic ее необходимо объявить. Способов объявления переменной Visual Basic предлагает несколько. Сначала подробно поговорим о явном объявлении переменных. При явном объявлении переменной обязательно указывается ее имя и тип. Синтаксис объявления переменной следующий:

Public / Private / Dim Имя Переменной [As Имя Типа]

Начинается объявление с одного из зарезервированных ключевых слов: Public, Private или Dim, которое сообщает Visual Basic, что вы хотите объявить переменную. Выбор конкретного зарезервированного слова зависит от того, какой вы себе представляете область видимости вашей переменной. Об этом мы поговорим немного позже As – ключевое слово, которое говорит Visual Basic, что вы определяете тип данных для этой переменной. Если вы не определяете тип данных (Visual Basic это допускает), ей присваивается тип Variant. Необходимо учитывать, что переменные типа Integer занимают больше места в памяти и обращения к ним происходит несколько медленнее. В одной строке можно объявить несколько переменных, при этом, правда, следует обращать внимание на указание имени типа:

Dim NumText As Integer, b As Integer, c As Long Private numberOne As Integer, f, d

В первой строке объявлены две переменные типа Integer и одна переменная типа Long. Во второй строке – три переменные, причем одна из них получит тип Integer, а две другие по умолчанию Variant. Когда явно объявляете переменную определенного типа, вы даете инструкции Visual Basic, как “сформировать” переменную с учетом типа данных, для хранения которых она предназначена. Понимание того, как связаны типы данных переменной и занимаемая ею память, оказывается важным для оптимизации кода. Везде, где возможно, следует использовать переменные, требующие меньший объем памяти, чтобы сэкономить системные ресурсы. В отличии от других языков Visual Basic не требует обязательного объявления переменной Перед ее использованием. Если переменная не объявлена, Visual Basic использует тип данных, заданный по умолчанию, - это тип Variant. Тип Variant может содержать любую информацию. Частое использование этого типа для хранения информации имеет два существенных недостатка – влечет за собой лишнюю трату ресурсов памяти и может привести к непредсказуемому поведению заданных по умолчанию значений. Поэтому все же лучше объявить переменные перед их использованием. Это сделает код более надежным и в конечном итоге сохранит время.

2 Неявное объявление переменных

В Visual Basic можно не объявляя переменную, просто использовать ее имя. Например, NewVar Если поместить эту строку в код своего проекта, это означает создание переменной типа Variant с именем NewVar. Переменная NewVar имела бы значение по умолчанию Empty (пустое). Всегда, когда объявление переменной неявное, Visual Basic считает, что эта переменная имеет тип Variant. Неявно объявлять переменные не рекомендуется. При неявном определении переменной всякий раз, когда вы будите делать опечатку или синтаксическую ошибку, Visual Basic будет воспринимать это как неявное объявление еще одной переменной, что может породить очень большие проблемы. Однако можно настроить Visual Basic IDE таким образом, чтобы от вас требовалось явное определение переменных. Для этого необходимо выполнить следующие действия. 1. Из меню Tools (сервис) нужно выбрать options (параметры). Появится диалоговое окно options. 2. Выбрать вкладку Editor (редактор), затем щелкнуть на флажке Require Variable Declaration (требовать объявление переменной). 3. Щелкнуть на кнопке OK

24. Объявление массива данных в Visual Basic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]