visual basic площадь прямоугольника

Видео:Площадь прямоугольника. Как найти площадь прямоугольника?Скачать

Площадь прямоугольника. Как найти площадь прямоугольника?

Visual Basic. Известны размеры смежных сторон прямоугольника. Найти периметр, площадь фигуры, а также диагональ прямоугольника

Билет №17

1. Табличные базы данных (БД): основные понятия (поле, запись, первичный ключ записи); типы данных. Системы управления базами данных и принципы работы с ними. Поиск, удаление и сортировка данных в БД.

  1. Система управления базами данных: назначение и основные возможности.

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

Табличные – содержит перечень объектов одного типа. В каждой строке таблицы последовательно размещаются значения свойств одного из объектов; каждое значения одного свойства – в своём столбце, озаглавленном именем свойства.

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

Сетевые – являются комбинацией многих иерархических структур. В них каждой объект — потомокможет иметь несколько предков. Примером такой базы данных является структура глобальной сети Интернет.

Система управления базами данных(СУБД) – программа, которая позволяет создавать базы данных и обеспечивает обработку, сортировку и поиск данных. Примером такой СУБД является офисное приложение Access.

В реляционных (табличных) БД строка таблицы называется записью, а столбец — полем. Каждое поле таблицы имеет имя, например: код, фамилия, имя, класс, адрес, дата рождения, рост и вес.

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

Поля — это различные характеристики (иногда говорят – атрибуты) объекта. Значения полей в одной строке относятся к одному объекту.

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

visual basic площадь прямоугольникаПример базы данных:

КомпьютерЖёсткий диск (ёмкость в Гб)Оперативная память (Мб)Привод
Intel Coreесть

Дальнейшие строки (записи) можно заполнить самим…Можно придумать свою базу данных…

Поиск, сортировку данных лучше пояснить с помощью компьютера…

Visual Basic. В массиве, состоящем из 7 случайных целых чисел, подсчитать количество выпавших нулей.

Билет №18

1. Технология обработки информации в электронных таблицах (ЭТ). Структура электронной таблицы. Типы данных: числа, формулы, текст. Пра­вила записи формул. Основные встроенные функции. Абсолютные и относительные ссылки.

Электронная таблица – это программа для обработки и хранения данных, представленных в электронной табличной форме. Самый известный табличный процессор – MS-Excel.

Основные функции следующие:

1. Ввод исходной информации в ячейки.

2. Редактирование и корректировка исходных данных.

3. Обработка данных по формулам.

4. Построение диаграмм и графиков .

5. Статистическая обработка данных.

6. Упорядочение по признаку.

7. Отображение на экране, запись на внешние запоминающие устройства и печать листов, составляющих книгу.

Рабочее поле имеет вид сетки, состоящей из ячеек – основных элементов таблицы. Каждая ячейка имеет своё имя – адрес: А7, В12 и т.д. Каждая ячейка может содержать число, текст и формулу. Часть ячеек содержит исходную, первичную информацию, а часть – производную (результаты операции над первичными данными). Электронная таблица имеет большие размеры. Наиболее часто используются таблицы: 256 столбцов на 16536 строк.

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

Числопредставляет собой некую последовательность символов, в которую входят цифры, а также знаки «+», «-» в начале последовательности или «,» — как разделитель целой и дробной части.

Формула представляет собой последовательность символов, которая начинается со знака «=». В формулу могут входить данные разного типа (числа, адреса ячеек, функции), соединенные между собой знаками арифметических операций. Например: =А4+С5*В7. Набираемая в ячейку формула отображается в строке формул, а в ячейку после нажатия клавиши «Enter» заносится результат выполнения данной формулы.

Текст. Если последовательность символов не является ни числом, ни формулой, то она считается текстом и не подвергается каким-либо преобразованиям. Например: 345,78 — это число, а 345.78 – это текст; или а1237 – это текст.

Исходные данные в таблицах Excel представлены числами и текстами, а для выполнения операции над содержимым ячеек используются формулы. Первым символом формулы в ячейках Excel всегда является символ «=». Далее набирается арифметическое выражение, которое состоит из операндов (элементов), соединённых между собой знаками арифметических операций. Ввод формулы заканчивается нажатием клавиши «Enter». Вводимая формула отображается в строке формул. Использование для расчётов формул удобно и практично, так как при изменяющихся исходных данных в ячейках результат автоматически изменяется, корректируется.

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

Чтобы отменить автоматическое изменение адресов данной ячейки, можно назначить ей абсолютный адрес. Для этого перед номером столбца и (или) перед номером строки ставится знак доллара «$», который означает, что этот номер не будет изменяться при операциях копирования формул, вставки и удаления. Например, в адресе $A5 не будет меняться адрес столбца, в адресе B$7 – не будет меняться номер строки, в адресе $D$10 не будет меняться ни адрес строки, ни адрес столбца.

Visual Basic. Известны размеры смежных сторон прямоугольника. Найти периметр, площадь фигуры, а также диагональ прямоугольника.

Видео:Программа для вычисления площади треугольника на языке C#Скачать

Программа для вычисления площади треугольника на языке C#

Visual basic площадь прямоугольника

Рис. 15 Диалоговое окно приложения.

  • Для пояснения работы программы, а также назначения отдельных элементов управления используются поля вывода текста Label. Добавим в нашу форму два объекта Label. Установим следующие свойства:
    • в поле Name, Label1 заменим на lblNaznachenie, Label2 на lblPoyasnenie ( для меток используется префикс lbl);
    • установите подписи для свойства Caption согласно Рис. 15;
    • в поле BackColor установим цвет, соответствующий цвету фона формы.
    • для форматирования текста надписи используется свойство Font. При его выборе в правом столбце появляется кнопка, при нажатии на которую открывается диалоговое окно Шрифт;
    • для выбора цвета шрифта отвечает свойство ForeColor (Цвет переднего плана). Label.

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

  • В нашем примере мы будем получать необходимые данные непосредственно во время выполнения программы из текстовых полей. Для этого разместим на форме три элемента TextBox (см.Рис. 15).

    • для свойства Name текстовых полей– txta, txtb, txtc (для текстовых полей используется префикс txt);
    • в поле свойства Text удалим все записи (свойство Text отвечает за то, что будет написано в текстовом поле по умолчанию).

  • Полученный результат мы будем выводить в поле вывода текста Label. Для объекта Label3 установим следующие свойства:

    • в поле Name – lblRezultat;
    • в поле Caption удалите надпись;
    • цвет, соответствующий цвету фона формы.

    Создадим командную кнопку – элемент CommandButton при нажатии на которую будет производиться расчет площади треугольника. Установим следующие свойства:

    • в поле Name – cmdRaschet;
    • в поле Caption — Вычисление;
    • для форматирования надписи воспользуемся свойством Font (Шрифт);
    • для возможности графического оформления кнопки в поле Style установим значение 1 – Graphical;
    • в поле BackColor установим цвет фона кнопки.

    Создание программного кода.

  • Основную работу в программе выполняют процедуры обработки событий. Процедуры обработки событий представляют собой программные коды, написанные на языке Visual Basic и выполняемые при наступлении связанных с ним событий. Созданная кнопка сейчас служит лишь украшением окна. При щелчке на нее должно происходить какое-то событие, но наша программа об этом событии пока ничего не знает. Теперь наша задача указать программе, что она должна делать при щелчке на кнопке. То есть теперь мы должны написать программный код, по которому будет обрабатываться щелчок. Зададим реакцию на кнопку «Вычисление». Чтобы задать реакцию на кнопку, выделите ее на форме, затем дважды щелкните. Откроется окно кода формы ( Рис. 16 ).

    visual basic площадь прямоугольника

    Рис. 16 Окно кода формы frmTreugolnik.

    При нажатии на кнопку «Вычисление» программа должна вычислить площадь треугольника по формуле Герона, используя параметры треугольника, введенные в текстовые окна. Откроем окно редактирования кода, для этого дважды нажмем на кнопку «Вычисление». Чтобы вычислить площадь треугольника нужно ввести длины сторон треугольника. Для ввода значений мы будем использовать текстовые окна.

    Процедура обработки события Click кнопки cmdRaschet :

    Private Sub cmdRaschet _ Click ()

    Dim a As Single , b As Single , c As Single объявляем переменные (длины сторон) как вещественные с одинарной точностью;

    Dim p As Double , S As Double переменные которые будут вычисляться в программе объявим как вещественные с двойной точностью;

    a = Val ( txta . Text ) текст введенный в текстовое поле txta Val и присваиваем значение переменной a ; преобразуем в число с помощью функции

    p = ( a + b + c ) / 2 вычисляем полупериметр треугольника, используя введенные значения длин сторон;

    S = Sqr ( p *( p — a )*( p — b )*( p — c )) вычисляем площадь треугольника по формуле Герона ( Sqr – корень квадратный);

    lblRezultat . Caption = Str ( S ) помещаем полученный результат в метку lblRezultat , предварительно переводим числовую переменную S в текстовую с помощью функции Str .

    Private Sub cmdRaschet_Click()

    Dim a As Single, b As Single объявляем типы переменных

    Dim s As Double

    a = Val ( InputBox («Введите ширину прямоугольника», «Ввод данных»)) вводим ширину прямоугольника с помощью системной функции InputBox и присваиваем введенное значение переменной a . Функция Val переводит текстовое значение в числовое.

    b = Val (InputBox(«Введите длину прямоугольника», «Ввод данных»)) аналогично вводим длину прямоугольника и присваиваем ее переменной b и переводим в число.

    s = a * b вычисляем площадь прямоугольника;

    txtRezultat . Text = Str ( s ) полученный результат переводим в текст и помещаем в текстовое окно txt Результат;

    MsgBox «Площадь прямоугольника равна»&Str(s), vbInformation + vbOKOnly, «Результат» выведем результат также в окно сообщений.

    Напишем процедуру обработки события Click кнопки cmd Vihod :

    Private Sub cmdVihod _ Click ()

    End – завершает работу программы

    Проверим работу программы. Для этого на панели инструментов нажмем кнопку Start (синий треугольник), либо выполним команду StartRun . меню

    Видео:Программа вычисления площади треугольника на языке Си.Скачать

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

    Visual basic площадь прямоугольника

    Visual Basic for Applications (VBA) является общей языковой платформой для всех приложений (Excel 5.0, Word 6.0, Mail, Power Point). VBA соблюдает основной синтаксис и правила программирования языков-диалектов Basic (BASICA, GW-BASIC). Концепция и синтаксис языка VBA рассмотрены в данной главе применительно к Excel 5.0.

    Visual Basic for Applications (VBA) — развитая система визуального программирования для создания прикладных программ в среде Microsoft Office.

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

    • создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
    • разработка процедур, используемых при вызове объектов.
    • Прикладные программы на языке VBA оперируют со следующими понятиями:
    • объект управления и контроля — экранные формы, графические элементы внутри форм, в том числе текстовые окна, линейки прокрутки, пиктограммы, окна-списки, командные кнопки и др.;
    • свойство (параметр) — характеристика или атрибут объекта управления;
    • значение свойства;
    • событие — действие, которое распознается объектом управления;
    • метод доступа — аналогичное понятиям функция, оператор, который воздействует всегда на объект;
    • процедура — подпрограммы и функции, произвольная последовательность операторов VBA; процедуры делятся на событийные (запускаются при наступлении событий) и общие процедуры.

    Программы на языке VBA для приложений, функционирующих в среде Excel 5.0, создаются двумя способами:

    • в автоматическом режиме как результат построения клавишной макрокоманды (см. подразд. 19.1);
    • в неавтоматическом режиме путем создания программного кода.

    Ниже рассматривается вариант традиционного программирования на языке VBA применительно к Excel 5.0.

    Для создания программного модуля в составе рабочей книги выполняется команда меню ВСТАВКА, Макрос с указанием типа макроса — Модуль. При этом создается новый рабочий лист со стандартным именем Модуль и порядковым номером программного модуля в рабочей книге. Имя модульного листа можно изменить.

    При работе с модулем на экран выводится новая панель инструментов Visual Basic (рис. 19.20).

    visual basic площадь прямоугольника

    Рис. 19.20. Панель инструментов

    Первый ряд кнопок панели (слева направо):

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

    — редактирование строк и команд меню рабочей книги;

    — просмотр списка доступных в текущей рабочей книге процедур, модулей, объектов и их свойств.

    — выбор нужного макроса для запуска через окно диалога Макрос;

    — пошаговое выполнение выбранного макроса (шаг — одна строка кода); .

    — возобновление выполнения макроса после его останова;

    — останов выполнения или записи макроса;

    — ввод через окно диалога Макрос имени нового макроса и его запись.

    Третий ряд кнопок:

    — установление (снятие) точки прерывания для строки процедуры;

    — указание в окне диалога выражения VBA для наблюдения его значений;

    — выполнение следующей строки кода процедуры VBA;

    — выполнение следующей строки кода процедуры VBA с приостановкой.

    Экран модуля используется для записи строк программы на языке VBA. Основные наборы (классы объектов), с которыми работает программа на языке VBA в среде Excel 5.0, представлены в табл. 19.3.

    Таблица 19.3. Перечень наборов VBA Excel 5.0

    Вид объектов в наборе

    Все листы любых типов в рабочей книге

    Все текущие открытые рабочие книги

    Все таблицы в рабочей книге

    Все листы диаграмм в рабочей книге

    Диапазон ячеек таблицы (строк, столбцов, несмежных ячеек,

    Доступ к компоненту набора осуществляется двумя способами:

    1) по номеру компонента

    Wоrkbooks(» Имя_книги»). Worksheets(2)

    2) по имени компонента

    Наборы обладают следующими свойствами:

    • Count — определяет число компонентов в наборе;
    • Name — определяет имя компонента;
    • Parent — определяет имя объекта, включающего набор.

    Для добавления и удаления компонентов набора используют методы Addи Delete.

    Отдельные ячейки таблицы доступны через объект Range и следующие методы:

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

    Присваивает ячейке В2 текущего рабочего листа активной рабочей книги значение 5;

    Записывает в ячейку А2 формулу суммирования значений в ячейках В1:В5.

    2.Range — работа с прямоугольной областью ячеек, в качестве аргументов используется одна или две ссылки на ячейки таблицы в стиле А1:

    либо на блок ячеек по их имени.

    Присвоение блоку ячеек постоянного значения 10.

    Присвоение ячейке текущего рабочего листа активной рабочей книги значения «Test».

    Очистка содержимого именованного блока ячеек текущего рабочего листа активной рабочей книги.

    Примечание. Можно использовать форму записи Range(Cells(1;1); Cells(2;2)).

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

    Относительно текущей ячейки, например, А1, происходит смещение в ячейку F3.

    [«Адрес_ячейки»] — краткая ссылка на ячейку по ее адресу.

    4. Union — метод множественного выделения областей ячеек — Uni оп(область1; область2).

    Каждую область формируют с помощью метода Range .

    Union(Range(Cells(1;1); Cells(2;2)); Range(Cells(5;5); Cells(7;7)).Select

    Выделяет области ячеек: А1:B2,E5:G7.

    Встроенные типы данных

    VBA использует 11 встроенных типов данных (табл.19.4).

    • Boolean использует 2 байта, или 16 бит, памяти для хранения логических данных; имеет два возможных значения: True и False.
    • Integer использует 2 байта памяти для хранения целых чисел, в том числе 1 бит для хранения знака числа, 15 бит — для числа.
    • Long использует 4 байта, или 32 бита, памяти для хранения целого числа двойной точности, в том числе 1 бит, для хранения знака числа, 31 бит -для числа.
    • Single использует 4 байта для раздельного хранения мантиссы (цифровая часть числа — максимум 7 знаков) и порядка (расположение десятичной точки).
    • Double использует байтов для раздельного хранения мантиссы (максимум 15 знаков) и порядка.
    • Currency использует байтов, десятичная точка всегда располагается между 4 и 5 цифрами справа, обеспечивает автоматическое округление результатов вычислений.
    • Date использует байтов и предназначен для хранения дат и времени. Даты записываются в виде целых чисел дней, а время — как дробная часть дня.
    • String использует 1 байт для хранения 1 символа плюс 1 байт для отметки конца строки. Символы хранятся в виде кодов ANSI.
    • Object использует 4 байта памяти для ссылки на любой объект Visual Basic.
    • Array определяет список данных любого типа и любой размерности.
    • Variant используется всегда, когда явно не указан какой-либо другой тип; может соответствовать любому другому разрешенному типу данных.

    Таблица 19.4 Встроенные типы данных VBA

    Размер ( в байтах)

    Зависит от числа элементов и их размера

    Зависит от самих данных

    -3.402823E+38; 1.401298E-45 и 1.401298Е-45 ;

    -1.79769313486232Е+308; -4.94065645841247Е-324 и

    Любой определенный объект

    Любой встроенный тип данных

    Видео:Площадь и периметр прямоугольника. Уроки программирования на С++ для начинающих.Скачать

    Площадь и периметр прямоугольника. Уроки программирования на С++ для начинающих.

    Переменные

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

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

    Разрешенное имя переменной

    Неразрешенное имя переменной

    Нет различия прописных и строчных букв, кириллицы и латиницы в написании имен

    Для улучшения семантики переменные могут состоять из отдельных слов, соединенных знаком_

    Тарифная ставка $; #room;

    Нельзя использовать пробелы в имени переменной, а также специальные символы типа: #$%&!

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

    Каждая переменная имеет определенный тип значений и сферу действия, в противном случае ей приписывается тип Variant. На рис. 19.21 показана сфера действия переменных.

    visual basic площадь прямоугольника

    Рис. 19.21. Сфера действия переменных в программе на языке VBA

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

    Пример 19.12. Переменные var4 var5 используются только в самих процедурах. Переменная var2 объявлена в процедурах 1 и 2. Это соответствует двум различным переменным с одинаковым именем и своей сферой действия (они имеют разные значения и/или типы данных, независимы друг от друга). Переменные на уровне модуля, var1 — в модуле 1 и var3 — в модуле 2. используются во всех вложенных в модуль процедурах. Переменная var1 предопределена в процедуре 1, но сохраняет свое значение в процедуре 2; переменная var3 предопределена в процедуре 3.

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

    Public As , As , As , . . .

    где — имя переменной;

    — встроенный тип данных переменной.

    Массивы переменных

    Массивы переменных имеют произвольную размерность — одномерные, двухмерные, трехмерные и т.п, объявляются следующими операторами:

    (размерность) — размерность массива,

    Комментарий и примеры

    Dim Ball (5) as Integer-6 элементов массива, индекс элементов начинается с 0

    (число1 To число2)

    Dim Basket (45 To 74 ) as Single-30 элеме- нтов массива

    Dim Foot (1, 3) as Long- 8 элементов массива:

    Foot (0, 0) Foot (0, 1) Foot (0, 3) Foot (0, 3)

    Foot (1, 0) Foot (1, 1) Foot (1, 2) Foot (1, 3)

    Dim Cross (1, 4 To 5) As Date-4 элемента массива: Cross (0, 4) Cross (0, 5) Cross

    (число1, число2, число3)

    Public Game (2, 2, 3) As Single- 36 эле-ментов массива:

    Game (0, 0, 0) Game (0, 1, 0) Game (0, 2, 0)

    Game (0, 0, 1) Game (0, 0, 2) Game (0, 0, 3)

    Game (0, 1, 1) Game (0, 1, 2) Game (0, 1, 3)

    Game (0, 2, 1) Game (0, 2, 2) Game (0, 2, 3) и т.д.

    Пользовательские типы данных

    Оператор Type позволяет на уровне модуля определить пользовательскую структуру данных, включающую другие разнородные, логически связанные переменные, например:

    где — имя пользовательского типа данных;

    — имя составляющей структуры.

    В модуле с помощью операторов Dim или Public необходимо объявить переменную, использующую пользовательский тип данных. Как правило, это массивы.

    FullName As String *20

    Group As Single

    BrithDay As Date

    Hight As Integer . . .

    Dim Student_Card (1 To 1000) As Student

    Тип Student служит для объявления массива Student_Card размерностью 1000 элементов, структура записи включает: фамилию, имя, номер учебной группы, дату рождения, рост.

    Объявление констант

    Константа — величина, сохраняющая постоянное значение во время выполнения программы, но изменяемая по желанию пользователя.

    Константы объявляют с помощью оператора:

    где — имя константы;

    Для констант существует понятие сфера действия:

    лобальные константы имеют ключевое слово Public :

    Public Const Datel=#12.12.96#

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

    VBA имеет встроенные константы, которые применяют без специального объявления и начинаются с символов vb . Excel 5.0 использует встроенные константы, начинающиеся символами xl .

    ОПЕРАТОРЫ ЯЗЫКА VBA

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

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

    где — имя переменной;

    Переменная слева от знака «=» может быть простой переменной, элементом массива или свойством объекта. Формула состоит из переменных, констант, операций и функций.

    С помощью оператора присваивания сохраняются результаты вычислений по формуле в памяти машины — под именем переменной.

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

    Таблица 19.5. Основные операции языка VBA

    Операция для построения формул

    Возведение в степень

    Остаток от деления

    Объединение (конка-тенация) строк

    Больше или равно

    Идентично ( только для объектов, вместе с зарезервированным словом Null используется для проверки, является ли значение пустым)

    Проверяет выражение на совпадение с любым из элементов в списке

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

    Сначала вычисляется разность S — Р, затем произведение dt возводится в степень 2, после этого вычисляется частное от деления; результатприсваивается переменной Disct.

    Оператор комментариев

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

    Option ExplicitОбязательность объявления всех переменных в модуле перед их использованиемSub случ_числа( )Процедура генерации случайных чисел в выделенной области электронной таблицы Excel 5.0Dim numrows As Integer; numcols As Integer
    Dim therow As Integer; thecol As IntegerОбъявление переменныхnumrows=Selection.Rows.Count
    numcols=Selection.Columns.CountПрисвоения значения числа строк и столбцов в выделенной области электронной таблицыRandomizeЗапуск генератора случайных чиселFor therow= 1 To numrowsОрганизация цикла типа For — Next, внешний циклFor thecol= 1 To numcolsВнутренний циклSelection.Cell( therow; thecol).Value=RndПрисваивание текущей ячейке случайного числа
    Selection- выбор ячейки
    Cell- метод доступа к ячейке с определенными координатами
    Value- свойство «значение»Next thecolКонец внутреннего циклаNext therowКонец внешнего цикла

    Процедуры

    Программные модули VBA состоят из процедур (одной или более).

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

    Процедуры имеют стандартное оформление:

    тело процедуры (операторы)

    Оператор Sub — объявление процедуры, задается имя, указывается состав аргументов, передаваемых при вызове процедуры из программы. Каждому оператору Sub обязательно соответствует End Sub .

    Тело процедуры — набор последовательно выполняемых операторов на языке VBA. В программе можно не только использовать процедуры данного программного модуля, но и ссылаться на процедуры других модулей текущей рабочей книги, а также процедуры других рабочих книг. Для этого необходимо задать ссылки; при нахождении на рабочем листе модуля выполняется команда СЕРВИС, Ссылки. В диалоговом окне «Ссылки» показан список доступных ссылок на библиотеки или другие рабочие книги.

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

    Различают 4 типа процедур:

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

    Существует несколько вариантов вызова процедур (все необходимые ссылки на соответствующие процедуры заранее устанавливают).

    1. Из другой процедуры того же модуля вызов осуществляется по имени процедуры

    Sub Рrос_А () ‘ вызывающая процедура Рrос_А ()

    Рrос_В ‘ вызов процедуры Рrос_В()

    End Sub ‘ Завершение работы процедуры Рrос_А ()

    Sub Proc_B () ‘ вызываемая процедура

    End Sub ‘ Завершение работы процедуры Proc_B ()

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

    Sub Рrос_А () ‘вызывающая процедура Рrос_А ()

    [Модуль#].Рrос_В ‘ вызов процедуры Рrос_В() модуля Модуль#

    End Sub ‘ Завершение работы процедуры Proc_A ()

    3. Из другого приложения (другой рабочей книги ППП Excel 5.0) — вызов осуществляется по имени модуля, имени процедуры и имени рабочей книги

    Sub Рrос_А () ‘вызывающая процедура Рrос_А ()

    [RWl.XLS].[Модуль#].Proc_B ‘ вызов процедуры Рrос_В() модуля

    ‘Модуль# рабочей книги RW1.XLS

    End Sub ‘ Завершение работы процедуры Рrос_А ()

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

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

    Private Sub Proc_B ()

    Для защиты модуля рабочей книги от доступа к нему из процедур другой рабочей книги в начале модуля указывают: Option Private Module

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

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

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

    Sub Proc_B (Val 1 As Single; Val 2 As Date;. )

    Через выбранный разделитель списков (в зависимости от настройки Windows — запятая или точка с запятой) следуют аргументы с указанием имени и типа значения.

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

    Пример 19.18. Процедура вычисления площади прямоугольника по двум сторонам

    Sub SquarPr (L As Single; H As Single; S As Single; Optional F)Объявление процедуры SquarPr и ее аргументов

    If IsMissing( F) Then F=100

    Встроенная функция VBA- IsMissing проверяет наличие аргумента , если F не задано, по умолчанию F присваивается значение 100 ( F имеет тип Variant )S=L*HВычисление площади прямоугольника

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

    1-й вариант — непосредственное задание значений аргументов при вызове процедуры

    Sub Proc_A ( )
    Dim Sq as SingleВызывающая процедураSquarPr 12; 23; SqВызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq

    Конец процедуры

    2-й вариант — через имена переменных, которым присвоены значения

    Sub Proc_A ( )Вызывающая процедураОбъявление переменныхDim Sq as SingleПЛОЩАДЬDim LL as SingleДЛИНАDim HH as SingleВЫСОТАLL=12
    HH=23Присвоение значений переменнымSquarPr LL HH SqВызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq

    3-й вариант — использование списка поименованных аргументов при вызове процедуры

    Sub Proc_A ( )Вызывающая процедураОбъявление переменныхDim Sq as SingleПЛОЩАДЬDim LL as SingleДЛИНАDim HH as SingleВЫСОТАLL=12
    HH=23Присвоение значений переменнымSquarPr L:=LL; H:=HH; SqВызов процедуры с указанием соответствия имен аргументов вызываемой процедуры, которые разделяются в строке знаком :

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

    Для предотвращения этого сохраняемые переменные следует объявлять оператором:

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

    Для модификации заголовка процедуры выполняется указание ключевого слова By Val перед именами аргументов, значение которых не изменится внутри процедуры.

    Sub SquarPr (By Val L As Single; By Val H As Single; S As Single)

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

    Dim Sq as Single

    Dim LL as Single

    Dim HH as Single

    SquarPr L:=(LL); H:= (HH); S:= Sq

    Присвоение значений переменным

    Преобразование аргумента в формулу

    Встроенные функции VBA

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

    Некоторые встроенные функции VBA имеют два варианта реализации, в одним случае возвращается значение типа Variant , в другом — типа String . Предпочтительнее использовать строковый тип данных ( String ), если:

    •в большой программе используется много переменных;

    •программа детально структурирована;

    •данные записываются непосредственно в файл прямого доступа.

    Некоторые встроенные функции VBA возвращают значение в виде строки символов, если к имени функции добавлен символ — $, Следующие встроенные функции имеют одинаковые формат и правила применения, что и без символа $:

    Chr$=Oct$CurDir$Right$Date$RTrim$Dir$
    Error$Space$Formats$Str$Hex$String$Input$
    Lcase$Trim$Left$UCase$Ltrim$Seek$Mid$
    Time$

    Таблица 19.6. Категории встроенных функций VBA

    Категории встроенных функций

    ABS()-абсолютное значение числа;

    INT()выделение целой части числа;

    Тригонометрические функции и др.

    LCASE()-преобразование в строчные буквы строки символов;

    UCASE()-преобразование в прописные буквы строки символов;

    LEFT()-выделение подстроки слева;

    RIGHT()-выделение подстроки справа;

    LEN()-определение длины строки и др.

    DATE()-возврат текущей системной даты;

    CDATE()-конвертирование выражения в формат дата/время;
    TIME()-возврат текущего системного времени;

    NOW()-возврат текущей даты и текущего времени ( по компьютеру);

    DAY()-возврат номера дня года;

    MONTH()-возврат номера месяца года;

    WEEKDAY()возврат номера дня недели;

    YEAR()-возврат номера года и др.

    Преобразование типов данных

    CINT()-преобразование действительного числа в целое ( с округлением);

    CSTR()-преобразование числа в строку символов;

    CVAR()-преобразование в тип данных VARIANT;

    FORMAT()-форматирование данных типа дата, время, число, строка символов для печати или записи в файл;

    STRCOMP()-сравнение двух строк;

    VAL()-преобразование строки символов в число и др.

    FILEATRR()-возврат атрибутов файла;

    FILEDATETIME()-определяет дату и время создания (модификации ) файла;

    FILELEN()-определяет длину файла в байтах;

    FREEFILE()-определяет следующий свободный номер для работы с файлом и др.

    Функции пользователя

    На языке VBA можно создавать функции пользователя, которые, в отличие от процедуры, возвращают вычисленное значение (одно); оно может участвовать в выражениях оператора присваивания.

    Заголовок функции пользователя имеет вид:

    Function (аргументы) As

    тело процедуры (операторы)

    Внимание ! Для функции указывается тип возвращаемой величины — As . В теле функции используется оператор присваивания вычисленного значения имени функции.

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

    Dim S as Single

    Dim LL as Single

    Dim HH as Single

    Function Sq (H As Single; L As Single As Single)

    формула вызова функции Sq

    Объявление функции Sq с аргументами

    Присвоение функции Sq результата вычисления

    Управляющие структуры

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

    Условный оператор If. Оператор может использоваться в двух нотациях: в виде простой и блочной структур.

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

    Данный оператор обеспечивает проверку выражения (условия). Если условие истинно (True), выполняется простой или составной оператор, следующий за словом Then; если условие ложно (False), управление передается следующему за If оператору.

    Составной оператор — последовательность операторов одной строки, разделенных знаком : (двоеточие).

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

    If MaxPrice > 23,000.00$ Then MaxPrice=23,500.00$

    If Student_Card(100).FullName Like «Пе*» Then number=Sludent_Card (100).Group

    При построении выражений используют специальные функции логических проверок VBA.

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

    Инверсия или отрицание

    Оператор If блочной структуры имеет дополнения:

    Последовательно выполняется проверка истинности выражений. Если выражение1 истинно, выполняется блок операторов1, иначе выполняется проверка истинности выражения2 и т.д.

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

    Пример 19.23. Организация проверки условия блочной структурой оператора If

    If AvgPrice >12000 Then

    Проверка условия 1

    Если условие 1 истинно, вызов процедуры

    ElseIf AvgPrice > 24000 Then

    DiffPrice=Full ( 12000, 45000)

    ElseIf AvgPrice > 36000 Then

    DiffPrice=Full ( 24000, 50000)

    DiffPrice=Full ( 36000, 70000)

    Проверка условия 2

    Если условие 2 истинно, вызов процедуры

    Проверка условия 3

    Если условие 3 истинно, вызов процедуры

    Если условие 1-3 не выполняются,

    Оператор выборки Select Case. Данный оператор применяется в том случае, если во всех логических условиях участвует одна и та же величина (переменная):

    Выражение для сравнения может быть записано в виде: Case 45 или Case 3, 4, 5, или Case 5 То 12.

    Если ни одно из сравнений не является истинным, выполняется блок операторов Else , если блок Else отсутствует, управление передается оператору, следующему за End Case.

    Пример 19.24. Организация последовательной проверки значения переменной

    Начало работы оператора Select, объявление имени переменной, для которой выполняются последующие проверки-Demse

    Если первое сравнение истинно, выполняется оператор присваивания

    Case Demse 22; 25; 28

    Второе сравнение- указан список возможных значений

    Если второе сравнение истинно, выполняется оператор присваивания

    Case Demse 45 To 48

    Третье сравнение истинно, выполняется оператор присваивания

    Если не выполнилось ни одно из указанных сравнений

    Конец оператора Select

    Оператор цикла For — Next . Данный оператор относится к категории вычисляемых циклов, когда известно заранее число повторений цикла, заданы начальное, конечное значения и шаг (приращение) изменения начального значения, т.е.:

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

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

    В теле цикла может присутствовать оператор Exit For. При выполнении этого оператора прекращается цикл и управление также передается оператору, следующему за фразой Next. Цикл For — Next может быть вложенным.

    Пример 19.25. Организация циклов с использованием счетчика повторений

    Sub stickRandom()Объявление имени процедурыDim numrows As Integer; numcols As Integer
    Dim therow As Integer; thecol As IntegerОбъявление переменныхnumrows=Selection.Rows.CountОпределение числа строк в выделенном блоке ячеекnumcols= Selection.Columns.CountОпределение числа столбцов в выделенном блоке ячеекDebug.Print numrows; numcolsПечать числа строк и столбцов в выделенном блоке ячеекRandomizeГенератор случайных чиселDebug.Print RndПечать случайного числаFor therow=1 To numrowsВнешний цикл по числу строк в блоке ячеекFor thecol=1 To numcolsВнутренний цикл по числу столбцов в блоке ячеекSelection.Cell(therow; thecol).Value=Rnd

    Присваивание текущей ячейке случайного числа

    Selection-выбор ячейки
    Cell-метод доступа к ячейке с определенными координатами
    Value — свойство «значение»

    Next thecolКонец внутреннего циклаNext therowКонец внешнего цикла

    Цикл Do — Loop. Логически управляемый цикл, оператор Do Loop — конец цикла; имеет 4 модификации:

    1) условие True в начале цикла

    Цикл выполняется до тех пор, пока истинно . Минимальное число повторений тела цикла — 0. Оператор Exit Do предназначен для прекращения цикла и передачи управления оператору Loop — конец цикла.

    2) условие True в конце цикла

    Цикл выполняется хотя бы один раз, в конце выполняется проверка .

    3) условие False в начале цикла

    Until указывает, что цикл выполняется до тех пор, пока не станет истинным. Минимальное число повторений тела цикла — 0.

    4) условие False в конце цикла

    Условие проверяется в конце, цикл прекращается, когда условие станет истинным. Минимальное число повторений тела цикла — 1.

    Пример 19.26. Выполнение логически прерываемых циклов

    Option ExplicitОбязательность объявления всех переменных перед их использованиемSub Do_Rnd()Объявление имени процедуры без параметровDim a As Single
    Dim i As Integer,Объявление переменныхRandomizeВызова генератора случайных чиселDo While TrueНачало цикла Do. Задание условия выполнение цикла- цикл бесконечныйa=RndПрисвоение переменной случайных чиселDebug.Print aПечать случайного числаIf a>0.99 Then Exit DoБлок условия — при его выполнении выход из циклаLoopКонец циклаEnd SubКонец процедуры

    Цикл While-Wend. Данный оператор полностью соответствует структуре Do While — Loop. Отличительной особенностью оператора является невозможность прервать выполнение цикла из тела цикла ( Exit Do отсутствует), проверка условия выполняется только в начале цикла.

    Цикл For Each. Оператор относится к категории операторов объектного типа, т.е. применяется к массивам (элементам) и наборам объектов. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически. Упорядочение элементов набора — произвольное.

    где представляет собой переменную типа Variant, — определенный набор объектов. Для прерывания цикла используется оператор Exit For.

    РАБОТА С ФАЙЛАМИ

    VBA работает с хранимыми на диске файлами двух типов: последовательного и произвольного доступа.

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

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

    Открывать можно как существующие на диске, так и новые файлы. Каждый файл идентифицируется в программе определенным номером, который присваивается ему в момент открытия. Свободный номер файла можно определить с помощью встроенной функции FileFree , которая возвращает очередной свободный номер для открытия файла (номер изменяется в диапазоне 1 — 511).

    Файл открывают в определенном режиме работы:

    Open [For ] [Access ] [ ] As [#]номер [Len= ]

    где — строка символов, задающая местоположение и имя дискового файла;

    — режимы работы с файлом:

    Append — добавление записей

    Binary — двоичный файл

    Input — файл для чтения

    Output — файл для записи

    Random — файл произвольного доступа;

    — задает тип потока данных по отношению к файлу:

    Read — только чтение

    Write — только запись

    Read Write — чтение и запись одновременно;

    — определяет возможность работы с файлом других приложений:

    Shared — распределенный доступ

    Lock Read — блокировка файла для чтения

    Lock Write — блокировка файла для записи

    Lock Read Write — блокировка файла для чтения и записи;

    номер — условный идентификатор файла;

    — указывается для записей фиксированной длины, максимум — 32767 байт. Оптимальная длина записи кратна размеру дискового сектора (512 байт).

    Для файлов произвольного доступа объявляется структура записи с помощью оператора Type; указываются типы и длина компонентов структуры. В режимах Binary, Input, Random под разными номерами можно открыть один и тот же файл, не закрывая ранее открытых; в режимах Append, Output требуется предварительно закрыть ранее открытые файлы.

    Пример 19.27. Открытие файлов

    Open «FILE» For Input As #1Открытие последовательного файла для чтенияOpen «FILE» For Binary Access Write As #1Открытие двоичного файла только для записи

    Type Record Define userdefined type

    Name As String * 20

    Dim MyRecord As Record

    Объявление пользовательского типа данных

    Open «FILE» For Random As #1
    Len = Len (MyRecord)

    Открытие файла произвольного доступа. Длина записи файла определяется встроенной функцией LenOpen ‘FILE» For Output Shared As #1Открытие последовательного файла с распределенным доступом (любые приложения могут читать и писать в файл)

    Open «FILE» For Binary Access

    Read Lock Read As #1

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

    После завершения работы с файлом его закрывают с помощью оператора:

    Если номер закрываемого файла не указан, закрываются все открытые файлы.

    Пример 19.28. Закрытие файлов

    Close # 1; #2;#4 ‘ закрытие файлов, ранее открытых под номерами 1, 2, 4

    Close ‘ закрытие всех открытых файлов

    Запись информации в файл

    Существует несколько операторов вывода информации в файл.

    1. Печать в последовательный файл

    Данный оператор обеспечивает запись форматированного вывода в последовательный файл текстового типа — по аналогии с функцией печати:

    Выходной список печати может содержать:

    где Spc(n) — длина пустой строки;

    Tab(n) — печать с указанной позиции;

    — выражение числового или символьного типа;

    charpos — определяет позицию вставки для следующего символа. Символ ; обеспечивает переход на другую строку (к другой записи файла).

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

    Пример 19.29. Печать в последовательный файл

    Open «FILE» For Output As #1

    Print #1; «Печать любого текста»

    Открытие файла для печати

    Вывод в файл текстовой строки

    Вставка пустой строкиPrint #1; «Код»; Tab ; «Наименование»Вывод в две колонкиPrint #1; «Код» ; » » ; «Наименование»Разделение двух слов пробеломPrint #1; Sps(5); «Код»Вставка 5 отступов перед печатью словаPrint #1; Tab(10); «Код»Позиционирование в колонку 10MyBool=FalseПрисвоение значений переменным различного типа

    MyDate=#February 12, 1969#

    Print #1; MyDate ; «это дата»

    Print #1; MyNull; «это пустое значение»

    Print #1; MyError; «код ошибки»

    Печать значения переменной в файл

    Печать любого текста

    February 12, 1969 — это дата

    Nul — это пустое значение

    Error 32767 — это код ошибки

    2. Запись в последовательный файл

    В последовательный файл запись информации выполняется командой:

    Для данных числового типа используется символ точка для десятичной точки, В отличие от оператора Print при записи в файл автоматически вставляются специальные символы- разделители:

    • запятая — между элементами;
    • двойные кавычки — вокруг символьных данных.
  • В запись файла вставляется символ возврата каретки (переход на новую строку — запись файла).

    Пример 19.30. Запись информации в последовательный файл

    Open ‘FILE» For Output As #1

    Write #1;»ЇВсем привет!’; 1234567890

    Открытие файла для печати

    Записать символьной строки и числа

    Вставка пустой строки

    MyDate=»February 12, 1969″

    Присвоение значений переменным

    Write #1; MyError;

    Запись значений переменных в файл

    #FALSE#,»February 12, 1969″,#NULL#,#ERROR 32767#

    3. Вывод данных в файл произвольного доступа

    Вывод данных выполняется оператором:

    Put [#номер_файла; [#записи],

    где #записи — номер записи для файла произвольного доступа либо номер байта, с которого начинается запись, для двоичного файла. Если номер не указан, используется следующий за последним использованным в операторах Get . Put, Seek.

    Пример 19.31. Запись в файл произвольного доступа

    Name As String * 20

    Объявление пользовательского типа данных для записиDim MyRecord As RecordОбъявление переменной на основе пользовательского типа данныхOpen «TESTFILE» For Random As #1 Len=Len(MyRecord)Открытие файла произвольного доступа с длиной, соответствующей длине объявленного типа

    For RecordNumber=1 To 5

    Организация цикла для записи в файл

    =MyRecord.Name =»Запись номер»

    Формирование содержимого записиPut #1, RecordNumber, MyRecordНепосредственная запись в файл

    Ввод информации из файла

    1. Чтение данных из последовательного файла Чтение выполняется оператором:

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

    Пример 19.32. Запись в файл произвольного доступа

    Open «FILE» For Input As #1

    Do While Not EOF(1)

    Input #1; MyString; MyNumber

    Debug.Print MyString; MyNumber

    Цикл до конца файла

    Чтение данных записи в переменные

    Печать считанных данных

    Другим оператором чтения из последовательного файла является

    Line Input #номер_файла;

    Оператор обеспечивает посимвольное считывание данных строки по файлу до обнаружения символа «возврат каретки» (Сhг(13)) и присвоение этих данных указанной переменной символьного типа.

    Пример 19.33. Построчное чтение из файла последовательного доступа

    Open «TESTFILE» For Input As #1

    Do While Not EOF(1)

    Line Input #1, TestLine

    Цикл, пока не достигнут конец файла

    Чтение строки в переменную

    Печать в окне Debug

    2. Чтение данных из файла произвольного доступа

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

    Get Put [#номер_файла; [#записи],

    Пример 19.34. Чтение из файла произвольного доступа

    Type RecordОбъявление пользовательского типа данных для записи

    Name As String * 20

    Dim MyRecord As RecordОбъявление переменной на основе пользовательского типа данныхOpen «FILE» For Random As #1 Len=Len(MyRecord)Открытие файла произвольного доступа с длиной, соответствующей длине объявленного типа

    Get #1, Position, MyRecord

    Задание номера ( индекс) записи

    Формирование содержимого записи

    Позиционирование на запись в файле

    Позиция в записи (номер байта или номер записи) для очередного чтения или записи в файл устанавливается оператором:

    Seek [#] номер_файла; позиция

    где позиция.- число в диапазоне номеров байтов (1-2147483 647) файла.

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

    Пример 19.35. Позиционирование в файле последовательного доступа

    Dim MyChar As StringОбъявление переменной на основе пользовательского типа данныхOpen «FILE» For Input As #1Открытие файла произвольного доступа с длиной, соответствующей длине объявленного типаMaxSize=LOF(1)Вычисление количества байтов в файлеFor NextChar- MaxSize To Step -1Организация цикла для последовательного считывания записей от конца файла к его началу

    Seek #1, NextChar

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

    Пример 19.36. Позиционирование в файле произвольного доступа

    Type RecordОбъявление пользовательского типа данных для записи

    Name As String * 20

    Dim MyRecord As Record

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

    Open «FILE» For Random As #1 Len=Len(MyRecord)Открытие файла произвольного доступа с длиной, соответствующей длине объявленного типа

    Get For RecordNumber=MaxSize

    Вычисление количества записей в файле

    Организация цикла для последовательного считывания записей от конца файла к его началу

    Seek #1, RecordNumber

    Get #1, , MyRecord

    ДИАЛОГОВЫЕ ОКНА

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

    Диалоговые окна для обмена сообщениями

    Встроенная функция MsgBox () обеспечивает создание диалоговых окон различных типов.

    1. Простое окно-сообщение

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

    Пример 19.37.вывод сообщения о значении переменной

    Dim a As Single

    MsgBox «Значение случайного числа» & Str(a)

    Обязательность объявления всех переменных в модуле перед их использованием

    Запуск генератора случайных чисел

    Присвоение переменной значения случайного числа

    2. Окно-сообщение с командными кнопками

    Общий формат оператора:

    где — максимальная длина строки — 1024 символа;

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

    — имя файла-подсказки для контекстно-зависимой помощи при работе в окне, строка символов;

    число, которое назначено подсказке дня данного окна.

    Коды задания командных кнопок и пиктограмм в функции MsgBox () приведены в таб. 19.7. Функция MsgBox () возвращает код (число), соответствующий нажатой кнопке-

    Таблица 19.7. Список видов командных кнопок и их кодов

    Коды командных кнопок

    Прекратить, Повторить, Игнорировать

    Коды активности по умолчанию

    Коды пиктограмм

    Коды модальности

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

    Системное модальное описание ( требуется обязательный ответ, работа всех приложений приостанавливается)

    Пример 19.38. Формирование диалогового окна с кнопками

    Dim Response As Integer

    Dim Msg As String

    Dim Title As String

    Dim Help=As String

    Dim=Ctxt As Integer

    Msg= «Вы хотите продолжить?»

    Кнопки для окна ( vbYesNoCancel+ vbDefaultButton+ vbQuestion)

    Title=» Пример окна-сообщения»

    Текст программыКомментарий
    Option ExplicitОбязательность объявления всех переменных перед их использованием
    Sub Msg_Priim()Объявление процедуры
    Объявление переменных
    Help= «DEMO.HLP»Имя файла- подсказки
    Ctxt=0Номер контекста внутри файла- подсказки
    Response=MsgBox( Msg; Style;Title; Help; Ctxt)Присвоение переменной кода ответа
    End SubКонец процедуры

    Диалоговые окна для ввода данных

    Функция I nputBox () обеспечивает формирование окна для вывода строки сообщения и ожидания ввода строки символов или нажатия кнопки. Возвращает содержание текстового блока:

    где — строка символов, выводимая в текстовом блоке (может быть пустой);

    Хпоз, Yпоз — позиция левого верхнего угла окна.

    Пример 19.39. Формирование окна ввода

    Option ExplicitОбязательность объявления всех переменных в модуле перед их использованиемSub Msg_Inp()Объявление процедуры

    Dim Response As String

    Dim Message As String

    Dim Default As String

    Dim Title As String

    Dim Help As String

    Dim Style As String

    Dim Ctxt As Integer

    Объявление переменнойMessage=»Введите Фамилию, Имя, Отчество студента «Строка-сообщениеTitle=» Пример окна для ввода»Заголовок окнаDefault=» Смирнов Игорь Александрович»Текст по умолчаниюResponse=InputBox ( Message; Title; Default; 100; 100)Присвоение переменной сим-вольного типа результата вводаEnd SubКонец процедуры

    Диалоговые окна пользователей

    Диалоговые окна пользователей обеспечивают ввод и редактирование данных файлов и таблиц. Для создания диалогового окна выполняется команда ВСТАВКА, Макрос с указанием типа вставляемого листа — Диалог. Экран содержит основу для построения диалогового окна пользователя, а также панель инструментов Формы (рис. 19.26) для размещения и настройки (форматирования) элементов окна.

    Рис. 19.26. Панель инструментов Формы

    Таблица .19.8. Состав панели инструментов Формы

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

    Метки не могут редактироваться пользователем в процессе работы с диалоговым окном, но могут изменяться программным путем с помощью свойства Caption объекта Labels ().

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

    Sheets(» «).EditBoxes(» «).Text=»cтрока текста»

    Кроме того, этот тип элемента диалогового окна обладает следующими свойствами:

    • MultyLine =True — в случае многострочности поля ввода;

    • InputType — ограничение типа данных, вводимых в окно (xlFormula, xlInteger,xllNumber, xlReference, xlText).

    Рамка группы обеспечивает объединение нескольких элементов диалогового окна. Этот тип окна изображается в первую очередь, а затем внутри него размещаются другие элементы. Для задания строки текста в верхней строке рамки программным образом используется его свойство — Caption .

    Флажок обеспечивает аддитивный выбор, имеет свойство Value (принимает значение True , если выбран, или False — в противном случае). Подобные переключатели образуют набор CheckBoxes ().

    Кнопка переключателя обеспечивает альтернативный выбор из списка взаимоисключающих опций. Такие кнопки входят в состав группы, если они различны по назначению, либо все кнопки в диалоговом окне образуют единую группу; выбор одной из кнопок внутри группы означает автоматический невыбор других. Подобные переключатели образуют набор OptionButtons(). Свойство Value принимает значение True , если выбрана кнопка, и False — в противном случае.

    Окно списка предоставляет для выбора список значений, при этом редакция списка невозможна. Формирование списка осуществляется только программным путем. Существует несколько вариантов организации списков с помощью свойств объекта;

    • ListFillRange ў ссылка на диапазон ячеек электронной таблицы, содержащей значения элементов списка;

    • List () ў перечисление элементов списка непосредственно, замена старого списка новым целиком.

    Раскрывающийся список во многом соответствует окну списков, но этот элемент входит в набор DropDowns ().

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

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

    Линейка прокрутки создает горизонтальную или вертикальную линейку прокрутки. Свойство Value содержит число, соответствующее положению ползунка, доступ к линейкам прокрутки через набор-ScrollBars(). Свойства Min и Мах управляют диапазоном значений, доступны как из программы, так и через диалоговое окно форматирования элемента. Свойства LargeChange и SmallCnange содержат величину изменения свойства Value .

    Регулятор счетчика аналогичен линейке прокрутки, но отсутствует свойство LargeChange.

    На рис. 19.27 представлено диалоговое окно пользователя для ввода данных об экзаменационных оценках.

    Диалоговое окно пользователя включает следующие элементы:

    • метки (Группа, Фамилия Имя Отчество, N зач.книжки и др.);
    • окно списка для выбора N группы — список может быть сформирован в ячейках рабочего листа, при этом выделение элемента списка может быть одинарным, множественным или связным. Результат выбора можно записать в указанную ячейку рабочего листа;
    • поля ввода (Фамилия Имя Отчество, ¦ зач.книжки, Дата), для которых может быть указан тип вводимой информации (текст, целое число, число, ссылка, формула), наличие многострочного текста и вертикальной линейки прокрутки;
    • раскрывающиеся списки (дисциплина, преподаватель, оценка), элементы которых могут быть записаны в ячейках рабочего листа, указывается максимально возможное число элементов;
    • кнопки управления ( , , , ).

    Рис. 19.27. Диалоговое окно пользователя

    Для выделенного элемента диалогового окна с помощью команды контекстного меню Формат объекта вызывается окно «Форматирование объекта» для задания указанных, характеристик.

    🔍 Видео

    С++ задача. Нахождение площади прямоугольного треугольника.Скачать

    С++ задача. Нахождение площади прямоугольного треугольника.

    VISIO+VBA | Вычисление длины, периметра и площади фигурСкачать

    VISIO+VBA | Вычисление длины, периметра и площади фигур

    Нахождение площади треугольника в С++Скачать

    Нахождение площади треугольника в С++

    Вычисление площади и периметра прямоугольника в ПаскальСкачать

    Вычисление площади и периметра прямоугольника в Паскаль

    С++ задача. Найти периметр прямоугольника.Скачать

    С++ задача. Найти периметр прямоугольника.

    Visual Basic net. Среда Visual Studio 2015. Урок 2 (для тех, кто пропустил).Скачать

    Visual Basic net.  Среда Visual Studio 2015.  Урок 2 (для тех, кто пропустил).

    VB.net - Графика (рисуем линии, многоугольники, круги и буквы)Скачать

    VB.net - Графика (рисуем линии, многоугольники, круги и буквы)

    Программа для вычисления площади прямоугольника на C#Скачать

    Программа для вычисления площади прямоугольника на C#

    Разница в способе выполнения кода в Visual Studio Community 2019Скачать

    Разница в способе выполнения кода в Visual Studio Community 2019

    Программирование макросов на VBA в ExcelСкачать

    Программирование макросов на VBA в Excel

    Visual Basic 6.0. Урок первый. "Привет!!!"Скачать

    Visual Basic 6.0. Урок первый. "Привет!!!"

    Решение простых задач на python | Площадь и периметр прямоугольного треугольникаСкачать

    Решение простых задач на python | Площадь и периметр прямоугольного треугольника

    Простая программа в Visual BasicСкачать

    Простая программа в Visual Basic

    Тема 1 Решение линейных задач. Visual Studio C#Скачать

    Тема 1 Решение линейных задач. Visual Studio C#

    Численное интегрирование: Методы Левых Правых прямоугольников, Трапеций, Симпсона c++Скачать

    Численное интегрирование: Методы Левых Правых прямоугольников, Трапеций, Симпсона c++

    Видео урок по Visual BasiсСкачать

    Видео урок по Visual Basiс
  • Поделиться или сохранить к себе: