visual Basic For Application

Содержание

Слайд 2

1.1. Общие сведения 11.2. Алфавит и лексемы языка 1.3. Типы данных,

1.1. Общие сведения

11.2. Алфавит и лексемы языка

1.3. Типы данных, программирование линейного

процесса

1.8. Работа с файлами в языке Visual Basic

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

1.6. Операторы VBA

1.7. Проектирование экранных форм

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

Visual Basic for Application

Содержание

Выход

1.4. Объявление массивов

Слайд 3

1-я неделя Л-1. Visual Basic – объектно-ориентированный язык программирования. Концепция визуального

1-я неделя
Л-1. Visual Basic – объектно-ориентированный язык программирования. Концепция визуального программирования

(формы, элементы управления, меню, панели инструментов). Основные понятия объектно-ориентированного программирования (объекты, свойства, методы, события, классы).
3-я неделя
Л-2. Основные понятия языка Visual Basic. Алфавит и лексемы языка. Встроенные функции. Программирование линейных вычислительных процессов.
5-я неделя
Л-3. Понятие алгоритма. Типовые алгоритмы решения прикладных задач. Базовые алгоритмы.
7-я неделя
Л-4. Объявление массивов в Visual Basic. Операторы Visual Basic. Программирование разветвляющихся и циклических вычислительных процессов.
9-я неделя
Л-5. Использование модулей и процедур в Visual Basic.
11-я неделя
Л-6. Работа с файлами в Visual Basic. Использование файлов последовательного доступа.
13-я неделя
Л-7. Разработка проектов программ на языке Visual Basic с использованием визуальных элементов. Функции MsgBox, InputBox.
Слайд 4

15-я неделя Л-8. Проектирование экранных форм. Использование объектов: Label, TextBox, ListBox,

15-я неделя
Л-8. Проектирование экранных форм. Использование объектов: Label, TextBox, ListBox, FileListBox,

Image, Common Button и их свойства.
17-я неделя
Л-9. Примеры готовых приложений созданных в среде Visual Basic.
Слайд 5

Литература: Информатика: Учебник/Под ред. Проф. Н.В. Макаровой. – М.:Финансы и статистика,

Литература:
Информатика: Учебник/Под ред. Проф. Н.В. Макаровой. – М.:Финансы и статистика, 2000.
     

Браун С. Visual Basic 6: Учебный курс. Пер. с англ. – СПб: Питер, 2002.
     Волченков Н.Г. Программирование на Visual Basic 6: В 3-х ч. М.: Инфра-М, 2002.
      Глушаков С.В., Сурядный С.А. Программирование на Visual Basic 6.0: М.: АСТ; Харьков: Фолио, 2005.
      Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учебное пособие / Под ред. С.В.Назарова. – М.: Финансы и статистика, 2002.
Петрова В.В., Шелудченко А.Г. Информатика. Программирование на MS Visual Basic. Лабораторные работы. М.: МГУП, 2007.
Слайд 6

1.1. Общие сведения В Windows, как правило, программы имеют стандартный интерфейс

1.1. Общие сведения
    В Windows, как правило, программы имеют стандартный интерфейс

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

Home

Слайд 7

Язык программирования Visual Basic является основой не только системы программирования, его

Язык программирования Visual Basic является основой не только системы программирования, его

версия - язык программирования Visual Basic for Application является общей платформой для создания Windows-приложений в среде Microsoft Office, а Visual Basic Scripting Edition (VBScript) используется для написания сценариев.
Средства доступа к данным позволяют создавать базы данных, приложения предварительной обработки данных и расширяемые компоненты обслуживающих узлов (серверов) для большинства форматов баз данных, включая Microsoft SQL Server и других баз данных предметного уровня.
Технология ActiveX позволяет использовать в документах функции, предоставляемые другими приложениями (например Word, Excel и т.д.) и отображать их с помощью браузеров.
Поддержка Internet позволяет создавать приложения для Internet-сервера и обеспечивает доступ к сетевым документам.

Home

Слайд 8

Методика программирования на Visual Basic сводится к следующему: создание интерфейса: объектов

Методика программирования на Visual Basic сводится к следующему:
создание интерфейса: объектов управления

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

Home

Слайд 9

В основе ООП лежат три принципа: инкапсуляции, наследования и полиморфизма. Принцип


В основе ООП лежат три принципа: инкапсуляции, наследования и полиморфизма.
Принцип инкапсуляции

предполагает сочетание структур данных с методами их обработки.
Принцип наследования состоит в том, что подклассы принадлежащие определённым классам наследуют их данные и методы обработки.
Полиморфизм обеспечивает способность объекта реагировать на запрос сообразно своему типу.
ООП максимально использует принцип модульности программ. Модульные программы состоят из отдельных относительно самостоятельных частей — модулей.
Каждый модуль выполняет специфические, строго определённые функции преобразования и имеет доступ только к тем данным, которые необходимы для этого преобразования. Код модуля, разработанный со строго определённым интерфейсом для других модулей программы, лёгок для отладки, сопровождения и понимания. Другой аспект модуля его замкнутость: изменения вносимые в код модуля влияют только на функции этого модуля и не приводят к ошибкам в работе других модулей.

Home

Слайд 10

Программный объект в ООП называется «контейнером». Контейнер включает в себя данные

Программный объект в ООП называется «контейнером». Контейнер включает в себя данные

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

Home

Слайд 11

В объектно-ориентированной среде с любым объектом сопоставляется определённая совокупность действий. Выбор

В объектно-ориентированной среде с любым объектом сопоставляется определённая совокупность действий. Выбор

из этой совокупности действий (методов), необходимого в данный момент действия, определяется поставленной целью.
Программный объект обладает определёнными свойствами и методами. Свойства — это видимые характеристики объекта, а методы — это операции преобразования этих данных(например свойство Value текстового окна — это текст, который вводится в это окно, свойство Color управляет цветом шрифта, а свойство Enabled — возвращает или позволяет задать значение разрешающее или запрещающее объекту реагировать на события, вызванные действиями пользователя).
Слайд 12

В ООП один объект посылает сообщение другому, который при получении сообщения

В ООП один объект посылает сообщение другому, который при получении сообщения

вызывает некоторый метод обработки. Обычно реакцию приложения можно разделить на три составляющих: визуальную, системную и обработчик событий.
Визуальная составляющая определяет интерфейс пользователя (кнопки, поля сообщений и другие элементы управления). При воздействии на элементы интерфейса пользователь вызывает некоторые события. Системная составляющая среды программирования анализирует событие и запускает соответствующий метод, обработчик событий.
Для доступа к свойствам и методам объекта, являющегося составной частью других, более крупных объектов, нужно записать список из всех вложенных объектов.
Например, в конструкции: MyMonitor.Power.Value объект MyMonitor включает объект-кнопку Power, и наследует свойство Value объекта Power. Вложенность объектов наследования может возрастать.

Home

Слайд 13

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

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

– это метод организации инструкций, т.е. место их хранения и порядок их выполнения. Приложение Visual Basic основано на объектах, поэтому структура программы близко моделирует его физическое представление на экране. Экранная форма является представлением свойств, которые определяют её вид на экране и внутреннее поведение.
Для каждой формы в приложении существует связанный с ней модуль формы, который хранится в файле с расширением FRM и содержит её код. Каждый модуль формы содержит процедуры обработки событий – раздел кода, который выполняется в ответ на определённые события. Для каждого элемента управления формы существует соответствующий набор процедур обработки событий в модуле формы. Код, не связанный с конкретной формой или элементом управления, помещается в стандартный модуль, хранимый в файле с расширением BAS.
Слайд 14

Событие – это действие, распознаваемое формой или элементом управления. Каждая форма

Событие – это действие, распознаваемое формой или элементом управления. Каждая форма

и элемент управления в Visual Basic имеют заранее определённый набор событий и коды процедур, связанных с обработкой этих событий.
Код приложения Visual Basic имеет иерархическую структуру. Типичное приложение состоит из одного или более модулей: модуль формы, необязательные стандартные модули для совместного использования и необязательные модули класса.
Каждый модуль содержит одну или более процедур, которые могут включать процедуры обработки событий, процедуры Sub и Function и процедуры Property (свойство).
Слайд 15

При запуске Visual Basic его первый экран будет выглядеть так, как

При запуске Visual Basic его первый экран будет выглядеть так, как

на рис. 1. В диалоговой панели New Project, показанной на рис. 1, следует дважды щелкнуть на значок Standard EXE (она первая на рисунке). Программа тут же перейдет в режим, показанный на рис. 2. Отметим, что пустое окно носит имя Project1-Form1 (Form). Внутри него находится другое окно с названием Form1, в котором видна сетка из точек.
Слайд 16

Home Рисунок 1. Первый экран при запуске Visual Basic.

 

Home

Рисунок 1. Первый экран при запуске Visual Basic.

Слайд 17

Рисунок 2. Первоначальное состояние среды разработки Visual Basic Home

 
Рисунок 2. Первоначальное состояние среды разработки Visual Basic

Home

Слайд 18

1.2. Алфавит и лексемы языка Как и любой другой язык, Visual

1.2. Алфавит и лексемы языка
Как и любой другой язык, Visual Basic

имеет свой алфавит.
В него входят:
• прописные и строчные буквы латинского алфавита: А, В,..., Z, a, b,...,z;
• прописные и строчные буквы кириллицы (А—Я, а—я);
• цифры от 0 до 9;
• символ подчеркивания «_»;
• не изображаемые символы («обобщенные пробельные символы»);
• специальные символы, участвующие в построении конструкций языка:
+, -,*,/, \, ", =,>,<,[,],(,),., {,},',&,;,:,@ (комерческое «ет»);
• составные символы, воспринимаемые как один символ:
< =, > =, <> ;

Home

Слайд 19

При запуске Редактора кода (Code Editor) появляется окно, в котором можно

При запуске Редактора кода (Code Editor) появляется окно, в котором можно

вводить текст программы.
Так как работа с программным кодом осуществляется в модулях, то для каждого модуля, выбранного в проводнике проекта (Project Explorer), создаётся отдельное окно. Код внутри модуля разделён на отдельные секции, для каждого объекта, содержащегося в модуле.
При записи текста модуля могут встречаться длинные строки, их можно разбить на несколько строк, для этого используется символ пробела за которым следует символ подчёркивания. Пример:
Data.Record = “SELECT * From Titles, Publisher” _
& “WHERE Publishers.PubID = Titles.PubID” _
& “AND Publishers.State = ‘CA’ ”
При записи нескольких операторов в одну строку, они разделяются двоеточием. Пример:
Text1 = “Hello” : Red = 255 : Text1.BackColor = Red
Слайд 20

Лексемы языка Visual Basic. Программирование линейного вычислительного процесса

Лексемы языка Visual Basic. Программирование линейного вычислительного процесса

Слайд 21

Лексема — это единица текста программы, которая имеет определенный смысл для

Лексема — это единица текста программы, которая имеет определенный смысл для

компилятора и которая не может быть разбита в дальнейшем.
В Visual Basic различают шесть классов лексем:
-свободно выбираемые и используемые идентификаторы;
-служебные (зарезервированные) слова;
-константы;
-строки (строковые константы);
-операции (строки операций);
-разделители (знаки пунктуации).

Home

Слайд 22

Visual Basic накладывает на имена следующие ограничения: • имя должно начинаться

Visual Basic накладывает на имена следующие ограничения:
• имя должно начинаться с

буквы;
• имя не должно содержать точек, пробелов, разделительных символов, знаков операций, а также специальных символов;
• имя должно быть уникальным, оно не должно совпадать с зарезервированными словами Visual Basic или с другими именами;
• длина имени может включать до 255 символов, но следует иметь в виду, что Visual Basic учитывает только первые 40 символов от начала имени.

Home

Слайд 23

Примеры имен переменных: Home

Примеры имен переменных:

Home

Слайд 24

В Visual Basic, как и в других языках программирования, есть зарезервированные

 
В Visual Basic, как и в других языках программирования, есть

зарезервированные (ключевые) слова, которые нельзя выбирать в качестве идентификаторов имен. Перечень зарезервированных слов приведен в табл.1.1
Имена могут быть простыми или сложными. Имена следует выбирать такими, чтобы они несли в себе больше информации о назначении переменной, процедуры или функции.
Примеры простых и составных имен переменных:
N, I, Number, Номер — простые имена переменных;
Фамилия_Студента — составное имя переменной, оно несет в себе информацию о фамилии студента.

Home

Слайд 25

Таблица 1.1 Home

Таблица 1.1

Home

Слайд 26

Существуют соглашения по стилю имен, которых желательно придерживаться: • идентификатор должен


Существуют соглашения по стилю имен, которых желательно придерживаться:
• идентификатор должен понятным

образом отражать назначение переменной, это правило способствует пониманию программы;
• лучше использовать имена из строчных букв, в случае составных имён нужно отделять друг от друга составляющие их слова подчеркиванием или начинать новое слово с прописной буквы;
• имена из прописных букв используются для определения констант;
• название идентификатора может содержать суффикс, который указывает на тип данных, связанный с этим идентификатором.
Типом данных называется способ хранения и представления данных в компьютерной системе.
В языке VB различают 11 типов переменных:
Целое число (Integer) – занимает 2 байта памяти;

Home

Слайд 27

Длинное целое (Long) – занимает четыре байта памяти; Короткое целое (Byte)

Длинное целое (Long) – занимает четыре байта памяти;
Короткое целое (Byte) –

всего 256 значений, длина 1 байт;
Десятичное число обычной точности (Single) – 4 байт;
Десятичное число двойной точности (Double) – 8 байт;
Десятичное протяжённое число (Currency) – 8 байт, 15 знаков слева от десятичной точки, до 4 знаков справа;
Логическая переменная (Boolean) – 2 байта, 2 значения – True, False;
Дата (Date) – 8 байт;
Объект (Object) - 4 байта, значением является ссылка на объект, например на элемент экранной формы;
Строка (String) – текстовая переменная, длина зависит от числа символов в строке;
Произвольное значение (Variant) – по существу типом не является, такая переменная может иметь любой тип.
Суффиксы, определяющие тип, бывают у 6 из 11 типов переменных: Integer - %, Long - &, Single - !, Double - #, String - $, Currency - @.
Слайд 28

Переменные — это объекты, предназначенные для хранения данных. В разные моменты

Переменные — это объекты, предназначенные для хранения данных. В разные моменты

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

Home

Слайд 29

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


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

физической областью памяти.
В VB используют строковые переменные. Различают строки переменной и фиксированной длины. Строки переменной длины могут содержать до двух миллионов символов.
Строка фиксированной длины — это строка постоянного размера, указанного при объявлении переменной. Если значение, которое присваивается больше, то лишние символы отбрасываются. Строковые переменные фиксированной длины должны декларироваться явно.

Home

Слайд 30

Dim intLen As integer 'объявляется целочисленная переменная Private Sub Form_Load ()

Dim intLen As integer 'объявляется целочисленная переменная
Private Sub Form_Load ()
intLen =

30 'инициализация значения целочисленной переменной
End Sub
Private Sub command1_click()
Dim MyName As String * intLen 'объявляется строковая переменная длиной в 30 символов
MyName = « Петров»
End Sub

Home

Пример 1:
Dim strMyName As String *20
'объявляется строковая переменная
'фиксированной длины в 20 символов или
Options Explicit

Слайд 31

Пример 2: Option Explicit ‘запрещение запуска программы при наличие в ней

Пример 2:
Option Explicit ‘запрещение запуска программы при наличие в ней неописанных

переменных
Dim intMyNumber As integer 'Явное объявление переменной
Defint I 'неявное объявление переменных, имена начинающиеся с этой буквы, будут иметь объявленный тип
IntMyNumber = 10 'для явно декларированной переменной ошибки не будет
intMyNum =10 'при ошибочном указании имени option explicit включит предупреждение об ошибке
intNumber = 6 'для неявного декларирования переменной будет выдано сообщение об ошибке.
Операторы объявления типа: Defint, Deflng, Defsng, Defdbl, Defcur, Defstr, Defbyte, Defbool, Defdate, Defobj, Defvar.
Примеры декларации переменных:
Dim x As Integer, strName$, LngOld&
Dim у As Integer
Dim x As Integer, Birds%

Home

Слайд 32

Константы — это объекты, значения которых остаются постоянными и не могут


Константы — это объекты, значения которых остаются постоянными и не могут

быть изменены во время выполнения программы. Константы могут быть именованными и неименованными.
Синтаксис языка определяет три типа констант: символьные, целые и вещественные.
Символьная константа служит для изображения отдельных знаков и представляет собой лексему, состоящую из символа(или любой последовательности символов), заключенного в кавычки. Например, «Р», «Program», «3.14», «+» — неименованные символы константы.
Синтаксисом языка предусмотрены десятичные, шестнадцатеричные, восьмеричные целые константы. Целая десятичная константа представляется десятичным целым числом: 44,684, 0, 1278 — неименованные десятичные целые константы.

Home

Слайд 33

Вещественные константы представляются в памяти ЭВМ в форме числа с плавающей

Вещественные константы представляются в памяти ЭВМ в форме числа с плавающей

точкой.
Вещественная константа состоит из следующих частей:
-целая часть (десятичная целая константа);
-десятичная точка;
-дробная часть( десятичная целая константа);
-признак показателя «е» или «Е»;
-показатель (десятичная целая константа):44. , 3.24879, 44еО, .314159Е1,
Различают встроенные константы VB(предопределённые константы) и создаваемые пользователем. Встроенные в Visual Basic константы имеют префикс vb. Встроенные константы определены в разделах справки для этих функций. Для того чтобы узнать конкретное значение константы, можно воспользоваться окном «Object Browser» (обозреватель объектов), которое вызывается клавишей [F2] или щелчком на соответствующей кнопке панели инструментов. После выбора константы ее значения и описание функции появляются в текстовом поле в нижней части окна «Object Browser».

Home

Слайд 34

Примеры использования предопределенных констант: MsgBox «текстовое сообщение», vbInformation MsgBox «нет данных

Примеры использования предопределенных констант:
MsgBox «текстовое сообщение», vbInformation
MsgBox «нет данных для расчета»,vbExclamation
(экслёмэйшин

– восклицание)
Для определения констант служит ключевое слово Const. Синтаксическая конструкция для декларирования констант напоминает оператор для декларации переменной и имеет вид:
[Public/Private] const имя_ константы[As тип]= значение
например:
Const PI As Single = 3.14 15 'объявлена именованная числовая константа для значения числа Pi.

Home

Слайд 35

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

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


Dim — объявляет локальные переменные, существующие только во время вызова процедур или функций, в которых они объявлены. Если переменная объявляется в разделе глобальных переменных, объявлений модуля или формы, то она доступна для всех процедур и функций этого модуля. Для других модулей она будет не видна;
Private — не может объявлять переменную внутри процедуры или функции. Локальная переменная Private доступна всем процедурам одного модуля, но не доступна из других модулей. При объявлении переменных в разделе общих объявлений модуля Dim и Private равнозначны;
Public — объявленная таким образом переменная является глобальной на уровне приложения и доступна из всех его модулей.

Home

Слайд 36

Различают динамические и статические переменные. Статические переменные объявляются внутри процедуры или

Различают динамические и статические переменные. Статические переменные объявляются внутри процедуры или

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

Home

Слайд 37

2.2. Встроенные функции Visual Basic Встроенные функции VB обеспечивают сложные виды

2.2. Встроенные функции Visual Basic
Встроенные функции VB обеспечивают сложные виды обработки

данных, избавляя пользователя от разработки собственных программ. В VB используется несколько категорий встроенных функций. Это — математические, строковые, функции даты и времени, функции преобразования типов и файловые.
Математические:
Sin(a), Cos(a), Tan(a), Atn(a) — тригонометрические функции;
Sqr(a) — корень квадратный из числа;
Log (а) — логарифм натуральный;
Ехр(а) — показательная функция;
Abs(a) — абсолютное значение;
Int(a) — округление до ближайшего меньшего целого;
Sgn(a) — знак числа;
Fix(a) — округление путём отсечения дробной части;

Home

Слайд 38

Randomise — генератор случайных чисел; Rnd() — случайное число в интервале

Randomise — генератор случайных чисел;
Rnd() — случайное число в интервале [0,1].

Строковые:
Len(Str$) — определение длины строки; Left(Str$,x) — выделение из строки х символов слева;
Right(Str$,x) — выделение из строки х символов справа;
Mid(Str$,x,y) — выделение из строки у символов начиная с номера х.
Функции преобразования типов:
Val(Str$) — преобразует строковое значение в число;
Str(x) — преобразует число в строковое значение;
Chr(x) — преобразует числовой код в символ;
Chr( 13) — перевод каретки;
Chr( 10) — переход на начало строки.

Home

Слайд 39

Арифметическое выражение в Visual Basic Арифметическое выражение – это последовательность чисел,

Арифметическое выражение в Visual Basic

Арифметическое выражение – это последовательность чисел,

констант, переменных, функций и арифметических выражений, заключённых в круглые скобки, которые соединены между собой знаками арифметических операций. Таких операций 8. Вычисления производятся в соответствии с приоритетом: 1) А^B; 2) –A; 3)A*B, A/B; 4)A\B; 5)A Mod B; 6)A+B, A-B. Для операции 34\5 результат равен 6, а для (34 mod 5) результат 4. Взятие стандартной функции имеет наивысший приоритет. Чтобы изменить последовательность выполнения операций используют круглые скобки.
Примеры:

→(a+b)/c/d;

→(sin(x)^2+cos(y^3))/(38.3+tan(pi+x))^(1/3);

Слайд 40

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

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

Слайд 41

Private Sub Форма1_Click() Dim X As Single, Y As Double X

Private Sub Форма1_Click()
Dim X As Single, Y As Double
X = Val(Текст1)
Y

= 1.736 * Abs(Log(Tan(X / 2))) - Sqr(Atn((Exp(X) - Exp(-X)) / 2))
Текст2 = Str(Y)
End Sub

Текст программного модуля приведён ниже. Процедура запускается по щелчку мыши на свободном поле UserForm1.

Слайд 42

При программировании часто приходится выводить информацию непосредственно на форму с помощью

При программировании часто приходится выводить информацию непосредственно на форму с помощью

метода Print. Синтаксис оператора вывода следующий:
Имя_объекта.Print Список_вывода
При каждом последующем вызове метода Print элементы списка вывода печатаются с новой строки. Для того чтобы пропустить строку, необходимо указать Print без параметров. Однократным вызовом метода Print можно напечатать несколько значений. В качестве разделителей элементов используются запятые и точки с запятой. При использовании точки с запятой элементы выводятся через один пробел, а если одно значение отделяется от другого запятой, то оно будет напечатано в следующей колонке (ширина каждой колонки – 14 символов). Результатом работы оператора:
Print "x="; x, "y=";y
при x=1.56, y=-45.897 будет:
x= 1.56 y= -45.897.
Строковые константы записываются в кавычках и служат, в основном, для комментирования данных.
Слайд 43

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

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

вызывая новые методы Print, в конце оператора также следует ставить точку с запятой (или запятую). Совместно с методом Print можно использовать функцию Spc(n), задающую количество пробелов перед печатаемым значением, и функцию Tab(n), указывающую позицию вывода. Например, следующие операторы:
Print Tab(21); "Результат" и Print Spc(20); "Результат"
При выводе результата можно использовать функцию Format(expression, fmt), где expression – форматируемое численное выражение, fmt – последовательность символов, определяющих отображение expression. Например, если надо вывести на печать объем V c 3 цифрами в дробной части, оператор записи результата в текстовое поле Text3 будет выглядеть так: Text3.Text = Format ( V, "##.###"). Символ "#" используется для задания количества значащих цифр в целой и дробной части выводимого числа. При V= 6.12874 в текстовое поле будет записано 6.129
Слайд 44

Алгоритмизация

Алгоритмизация


Слайд 45

Алгоритм и его свойства Алгоритм – это конечная последовательность предписаний однозначно

Алгоритм и его свойства

Алгоритм – это конечная последовательность предписаний однозначно определяющих

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

Алгоритм и его свойства Блок – схемой называется наглядное графическое представление

Алгоритм и его свойства

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

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

Язык блок-схем Начало Блок - конец/начало, используется для обозначения конца или

Язык блок-схем


Начало

Блок - конец/начало, используется для обозначения конца или начала

алгоритма

Блок – процесс, используется для обозначения действия приводящего к получению единственного результата

да

нет

Блок – решение, используется для обозначения разветвляющегося действия (проверки условия)

Блок – данные, используется для обозначения операций ввода/вывода

Слайд 48

Язык блок-схем Блок – подготовка (модификатор), используется для обозначения заголовка цикла

Язык блок-схем


Блок – подготовка (модификатор), используется для обозначения заголовка цикла

Блок

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

Соединитель, ставится в разрыв линии связи

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

Слайд 49

Требования к изображению блок-схем Блок-схемы алгоритмов, как и любая техническая документация

Требования к изображению блок-схем

Блок-схемы алгоритмов, как и любая техническая документация должны

соответствовать требованиям стандартов.
При изображении блок-схем, все элементы должны иметь одинаковые геометрические размеры (например соотношение высоты и ширины 1:3); вертикально и горизонтально все элементы должны располагаться на одной прямой, т.е. вписываться в регулярную сетку по горизонтали и по вертикали; линии связей не должны иметь множество пересечений, лучше использовать разрыв с элементом соединитель, который ставится в месте выхода и в месте входа линии связи; текст пояснений внутри блоков записывается на естественном языке или с помощью математических формул.
Слайд 50

Алгоритм решения квадратного уравнения Начало а,b,с D=b2-4ac а=0 b=0 c=0 D>0

Алгоритм решения квадратного уравнения

Начало

а,b,с

D=b2-4ac

а=0

b=0

c=0

D>0

Действ. к.
нет

1

X1,2

X=-c/b

Мн-во реш.

Нет решения

конец

1

1

да

да

да

нет

нет

нет

нет

да

x

1

Ax2+Bx+C=0

Слайд 51

Слайд 52

Текст модуля Private Sub Комманда1_Click() a = Val(Текст1) b = Val(Текст2)

Текст модуля

Private Sub Комманда1_Click()
a = Val(Текст1)
b = Val(Текст2)
c = Val(Текст3)
Текст4 =

" " :Текст5 = " "
If a <> 0 Then
d = b * b - 4 * a * c
If d > 0 Then
x1 = (-b + Sqr(d)) / 2 / a: x2 = (-b - Sqr(d)) / 2 / a
Текст4 = "x1=" & Str(x1):Текст5 = "x2=" & Str(x2): GoTo1
Else
Текст4 = «Действит. корней нет": GoTo 1
End If
End If
Слайд 53

Текст модуля (продолжение) If b 0 Then x = -c /

Текст модуля (продолжение)

If b <> 0 Then
x = -c / b:

Текст4 = “корень=“ & Str(x): GoTo 1
End If
If c <> 0 Then Текст4 = “Нет решения” Else Текст4 = “Мн-во решений”
1: End Sub
Слайд 54

Базовые алгоритмы циклической структуры i=i+1 ai,n Сумма S=S+ai S i конец

Базовые алгоритмы циклической структуры

i=i+1

ai,n

Сумма

S=S+ai

S

i

конец

нет

да

i=1..n

S=S+ai

S

S=0

i>n

Слайд 55

Базовые алгоритмы циклической структуры Максимум ai,n Мax=a1:im=1 i=1..n ai>Max Мax=ai:im=i Max,im

Базовые алгоритмы циклической структуры

Максимум

ai,n

Мax=a1:im=1
i=1..n

ai>Max

Мax=ai:im=i

Max,im

конец

да

нет

Счётчик

ai,n,p,l

K=0

i=1..n

l

K=k+1

k

конец

нет

да

Слайд 56

Программирование разветвляющихся процессов

Программирование разветвляющихся процессов


Слайд 57

Условный оператор Алгоритмы, в которых последовательность выполняемых действий зависит от выполнения

Условный оператор

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

условий, называются нелинейными. Они программируются с помощью условного оператора.
В языке VB есть две формы условного оператора: однострочная и многострочная. Однострочная такова:
If Условное выражение Then Оператор1 [ElseОператор2] Квадратные скобки содержат конструкции, которые могут отсутствовать.
Многострочная форма оператора более сложная:
If Условное выражение Then
Последовательность операторов1
[Else
Последовательность операторов2]
End If
Слайд 58

Условный оператор Условное выражение – это простое или сложное условие в

Условный оператор

Условное выражение – это простое или сложное условие в состав,

которого могут входить: переменные, константы, числа, связанные знаками арифметических и логических операций, а также знаками операций отношения. Условное выражение может принимать только два значения True и False. Логические операции в порядке приоритета их выполнения: Not, And, Or.
Примеры:
If x If ((Sex$=“м”) And (Age! >=60)) Or ((Sex$=“ж”) And (Age! >=55))
Then
V=P+Z : Goto 1
Else
V=Z : Goto 1
End if ‘ многострочный оператор
N=N+1 : Goto 2
1:Текст1=Str(V)
Слайд 59

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

Условный оператор

Задача: Найти сумму бесконечного числового ряда с заданной точностью ε,

S=1+1/2+1/4+1/8+…

начало

n=2*n
v=1/n

s=s+v

s,v,n

конец

нет

да

s1=s

|s-s1|<ε

n=1:v=1:s=1:s1=0

Слайд 60


Слайд 61

Пример программы Private Sub Комманда1_Click() n = 1: v = 1:

Пример программы

Private Sub Комманда1_Click()
n = 1: v = 1: s =

1: s1 = 0
eps = Val(Текст1)
1: n = 2 * n
v = 1 / n
s = s + v
If Abs(s - s1) < eps Then Текст2 = Str(s) Else s1 = s:GoTo 1
Текст2 = str(s)
End Sub
Слайд 62

Оператор выбора Select Case Условный оператор при многократном вложение применять не

Оператор выбора Select Case

Условный оператор при многократном вложение применять не рекомендуется

– программа становится громоздкой и трудной для понимания. В этом случае лучше использовать оператор выбора.
Синтаксис оператора:
Select Case Выражение
Case ДиапазонЗначений1
ПоследовательностьОператоров1
Case ДиапазонЗначений2
ПоследовательностьОператоров2

Case Else
ПоследовательностьОператоровN
End Select
(В выражении ключевое слово Is должно стоять перед любым знаком отношения.)
Слайд 63

Оператор выбора Select Case Задача: Преподаватель за каждую решённую на контрольной

Оператор выбора Select Case

Задача: Преподаватель за каждую решённую на контрольной работе

задачу начислял баллы: за 1 и 2 по 6 баллов, за 3 и 4 по 9 баллов, за 5 по 12 баллов. Оценка за контрольную зависит от суммы набранных баллов.
Спроектируем форму:
Слайд 64

Программный код должен содержать 5 одинаковых процедур для 5 событий –


Программный код должен содержать 5 одинаковых процедур для 5 событий

– щелчок мышью по каждому из 5 контрольных индикаторов. Каждое событие будет вызывать последовательность действий:
Переменным: v1%, v2%, v3%, v4%, v5% - будут присвоены значения свойства Value пяти контрольных полей;
Будет вызвана процедура Summa, которая сначала присвоит переменной s% значение равное сумме набранных баллов, а затем присвоит переменной m% значение, равное оценке за контрольную работу.
Ниже приведены тексты одной процедуры CheckBox1_Click() и процедуры Summa, которая вызывается оператором Call. Процедура Summa демонстрирует использование оператора Select Case. Диапазоны значений переменной S% задаются с помощью ключевого слова To и с помощью неравенств и ключевого слова Is
Слайд 65

Sub Summa(v1%, v2%, v3%, v4%, v5%, s%, m%) s% = -(v1%

Sub Summa(v1%, v2%, v3%, v4%, v5%, s%, m%)
s% = -(v1% *

6 + v2% * 6 + v3% * 9 + v4% * 9 + v5% * 12)
Select Case s%
Case Is < 15
m% = 2
Case 15 To 24
m% = 3
Case 25 To 34
m% = 4
Case Is > 35
m% = 5
Case Else
m% = 0
End Select
End Sub
Слайд 66

Private Sub Проверка1_Click() v1% = Проверка1.Value: v2% = Проверка2.Value v3% =

Private Sub Проверка1_Click()
v1% = Проверка1.Value: v2% = Проверка2.Value
v3% = Проверка3.Value: v4%

= Проверка4.Value
v5% = Проверка5.Value
Call Summa(v1%, v2%, v3%, v4%, v5%, s%, m%)
Текст1.Text = s
Текст2.Text = m
End Sub
Слайд 67

Системные функции, функции RND, Timer, IIf

Системные функции, функции RND, Timer, IIf

Слайд 68

К системным функциям относятся функции, действие которых напрямую зависит от работы

К системным функциям относятся функции, действие которых напрямую зависит от работы

Windows. Мы рассмотрим функцию InputBox - используемую для ввода данных пользователем через системное окно и функцию MsgBox – служащую для выдачи сообщений пользователю через системное окно. Синтаксис функции следующий:
InputBox (Приглашение [, Заголовок] [,НачЗначение])
Приглашение – любой текст, который находится в Окне ввода и служит для подсказки.
Заголовок – необязательная надпись в строке заголовка.
НачЗначение – это значение, которое будет введено автоматически, если пользователь с этим согласен.
Возвращаемым значением данной функции является информация вводимая пользователем. VB автоматически приписывает этой информации тип String. В программе функция InputBox может входить в состав выражения, значение которого присваивается переменной. При обращении к функции, на экране появляется Окно ввода.
После щелчка по кнопке ОК происходит присваивание и окно ввода исчезает.
Слайд 69

Окно ввода Результат

Окно ввода

Результат

Слайд 70

Private Sub CommandButton1_Click() Dim Fam, Im, Ot As String Fam =

Private Sub CommandButton1_Click()
Dim Fam, Im, Ot As String
Fam = InputBox("Введите Вашу

фамилию:", "Ввод фамилии")
Im = InputBox("Введите Ваше имя :", "Ввод имени")
Ot = InputBox("Введите Ваше отчество:", "Ввод отчества")
TextBox1.Text = Fam: TextBox2.Text = Im: TextBox3.Text = Ot
End Sub

Текст модуля

Слайд 71

Функция MsgBox служит для выдачи сообщения пользователю через системное окно. Синтаксис

Функция MsgBox служит для выдачи сообщения пользователю через системное окно.
Синтаксис функции

следующий:
MsgBox (Текст [,Опция ] [,Заголовок ])
Это традиционная форма синтаксиса, когда функция возвращает значение, которое затем используется в программе, если скобки отсутствуют, то функция не возвращает никакого значения, а действует как оператор, т.е. просто выдаёт информацию в Окно сообщения.
Текст- это строка сообщения. Она может содержать до 1024 символов;
Опция – это целое число, которое определяется по формуле ОР=ОР1 + ОР2
Значение ОР1 определяет вид сообщения и пиктограмму, которая помещается в Окно сообщения
Слайд 72

Значение ОР2 определяет набор кнопок в Окне сообщения: 0 – ОК;

 
Значение ОР2 определяет набор кнопок в Окне сообщения:
0 – ОК; 1

– ОК, ОТМЕНА; 2 – СТОП, ПОВТОР, ПРОПУСТИТЬ;
3 – ДА, НЕТ, ОТМЕНА; 4 – ДА, НЕТ;
5 – ПОВТОР, ОТМЕНА.

-Критическое сообщение, код=16

- Вопрос, код=32

- Предупреждение, код=48

- Информация, код=64

Слайд 73

Простая экранная форма – приветствие приведена на рисунке. В этом окне

Простая экранная форма – приветствие приведена на рисунке. В этом окне

имеются три объекта: кнопка OK, надпись “Здравствуй друг!” и рисунок. В VBA экранная форма хранится в отдельном файле, имя которого имеет расширение frm.
Общий вид экранной формы представлен на рисунке.

Программный модуль, относящийся к данной экранной форме, хранится в файле с расширением bas и для нашего примера выглядит так:
Private Sub КоманднаяКнопка_Click()
MsgBox “Здравствуй, друг!”, 64, “Приветствие”
End Sub

Слайд 74

Рассмотрим использование ещё нескольких функций: датчика случайных чисел, счётчика времени и

Рассмотрим использование ещё нескольких функций: датчика случайных чисел, счётчика времени и

IIf.
В процессе решения вычислительных задач часто требуется программировать вероятность появления случайных событий. Для этого используют функцию RND значением, которой является число случайным образом выбираемое из интервала от 0 до 1. На самом деле при использование RND число берётся из очень длинной последовательности псевдослучайных чисел. Поэтому надо случайным образом определить место в этой последовательности с помощью оператора рандомизации Randomize, а для того, чтобы это число при каждом новом запуске программы было разным – используют ещё встроенный счётчик времени – функцию Timer без параметров.
Для программирования условного перехода можно использовать функцию IIF. Её синтаксис таков:
IIF(Условное_выражение, Значение1, Значение2), функция возвращает Значение1, если выражение истинно и Значение2, если оно ложно.
Слайд 75

Private Sub Комманда1 _Click() Randomize Timer Dim Ver As Single: Ver

Private Sub Комманда1 _Click()
Randomize Timer
Dim Ver As Single: Ver = Rnd
Текст1

= IIf(Ver < 0.75, "Яблоки", "Грибы")
Текст2 = IIf(Ver < 0.75, "Яблочный пирог", "Пирог с грибами")
End Sub
Слайд 76

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

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

Слайд 77

Объявление массивов В VBA различают два вида переменных — простые переменные

Объявление массивов
В VBA различают два вида переменных — простые переменные и

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

Home

Слайд 78

Объявление массива имеет следующий вид: Dim / Public / Private Имя_Массива

Объявление массива имеет следующий вид:
Dim / Public / Private Имя_Массива (индексы)_Аs

Тип_Данных
где:
Dim / Public / Private — ключевые слова, декларирующие массив в области его видимости;
Имя_Массива —идентификатор, определяющий имя массива;
Индексы — значение индекса (номера) последнего элемента в массиве, считая с нулевого;
As — ключевое слово, определяющее указание типа элементов массива;
Тип_Данных—любой, действительный для Visual Basic тип данных базовый или созданный пользователем.
Примеры описания статических массивов:
Dim B (5) As Single ' описан одномерный массив из 6 чисел вещественного типа
Dim C (1 To 12) As Integer ' описан одномерный массив из 12 целых чисел.

Home

Слайд 79

Объявление одномерного массива из восьми элементов выглядит следующим образом: Dim МуАrrау

Объявление одномерного массива из восьми элементов выглядит следующим образом:
Dim МуАrrау (7)

As integer 'одномерный целочисленный массив из 8 элементов.
При объявлении многомерного массива в поле индекса указывают несколько индексов в соответствии с размерностью массива. Двумерный массив из шести столбцов и пяти строк объявляется следующим образом:
Dim StrArray (4,5) As String ' двумерный массив из 5строк и 6 столбцов.
Примеры описания статических массивов:
Dim B (5) As Single ' описан одномерный массив из 6 чисел вещественного типа
Dim C (1 To 12) As Integer ' описан одномерный массив из 12 целых чисел.
Пример заполнения массива:
Dim B ( ) As Single, N As Integer, i As Integer
N = Val(InputBox("Ввод количества элементов массива В"))
ReDim B (1 To N)
For i = 1 To N
B(i) =Val (InputBox("Ввод " & i & " элемента массива","Ввод с клавиатуры"))
Next i

Home

Слайд 80

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

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

неизвестно и будет определяться в процессе выполнения программы.
В этом случае первоначально массив объявляется как динамический. Для этого в объявлении не указывается размерность. Например:
Dim strMyArray () As String
Количество элементов в объявленном массиве и его размерность в процессе выполнения программы можно переопределить с помощью ключевого слова ReDim. Синтаксическая конструкция переопределения массива имеет вид:
ReDim [Preserve] ИмяМассива (индексы) [As ТипДанных]
где:
ReDim — ключевое слово, указывающее что переопределяется размеры массива;
Preserve — необязательное ключевое слово, с помощью которого дается указание, чтобы все элементы переопределенного массива сохранили свое значение;
Индексы — размерность массива (до 60).

Home

Слайд 81

Пример: Dim strMyArray () As String 'объявление динамического масива Dim intValarray

Пример:
Dim strMyArray () As String 'объявление динамического масива
Dim intValarray As integer

'объявление переменной для хранения размерности
intValArray = 9 'инициализация значения
ReDim strMyArray (intValArray) 'одномерный массив из 10 элементов (базовый индекс равен 0)
Или другой пример:
Dim array ( ) As Long ' объявление динамического массива
……..
n = Val(InputBox("Ввод количества элементов массива array"))
ReDim array (1 To n) ' одномерный массив из n элементов

Home

Слайд 82

Для того, чтобы организовать повторение операций используют оператор цикла For-Next. Оператор

Для того, чтобы организовать повторение операций используют оператор цикла For-Next. Оператор

используется тогда, когда заранее известно число повторений цикла. Это многострочный оператор, его синтаксис таков:
For Имя=Значение1 To Значение2 [Step Значение3]
исполняемые операторы
Next [Имя]
Имя – это имя переменной, которую называют счётчиком.
Значение1 – начальное значение счётчика.
Значение2 – конечное значение счётчика.
Значение3 – величина шага.
Слайд 83

Задача 1: Вычислить факториал от числа. Число заносится в текстовое поле

Задача 1:
Вычислить факториал от числа. Число заносится в текстовое поле 1,

а результат в текстовое поле 2. Вычисления производятся при нажатие командной кнопки.
Текст программы:
Private Sub Комманда1 _Click()
Dim n,I As Integer, Nf As Long
n = Val(Текст1.Text)
Nf = 1
For I=1 To n
Nf = Nf *I
Next I
Текст2.Text = Str(Nf)
End Sub
Слайд 84

Задача2: Сумма элементов массива Private Sub Комманда1 _Click() Dim MyArray As

Задача2: Сумма элементов массива

Private Sub Комманда1 _Click()
Dim MyArray As Single
Dim intValarray

As Integer
intValarray = Текст1.Text
S = 0
For i = 0 To intValarray
MyArray = InputBox("Введите элемент массива :", " a(i)=")
S = S + MyArray
Next
Текст2.Text = S
End Sub
Слайд 85

Задача 3. Разработать приложение, реализующее табулирование функции y=1,2sin(3x) при изменении аргумента

Задача 3.
Разработать приложение, реализующее табулирование функции y=1,2sin(3x) при изменении аргумента х

в диапазоне [x0,xk] с шагом h с выводом результатов вычисления непосредственно на форму с помощью метода Print.
Программный код для кнопки Расчет можно записать так:
Private Sub Комманда1 _Click() ' Кнопка Расчет
Dim x0 As Single, xk As Single, h As Single, x As Single, y As Single
Cls ' Очистка формы
x0 = Val(InputBox("Ввод x0 - начального значения аргумента"))
xk = Val(InputBox("Ввод xk - конечного значения аргумента"))
h = Val(InputBox("Ввод h - шага изменения аргумента"))
Font.Size = 10 ' Установка размера шрифта
Font.Bold = True ' Установка полужирного начертания
Print Tab(7); "Функция y = 1.2sin(3x)"
Font.Bold = False ' Отмена полужирного начертания
Print: Print "x0="; x0, "xk="; xk, "h="; h: Print
Print Tab(3); "x"; Tab(17); "y"
For x = x0 To xk + h/2 Step h
y = 1.2 * Sin(3 * x)
Print Format(x, "0.00"), Format(y, "0.000")
Next x
Print: Print "Программу разработал Иванов И.И., гр. ДЭм-1-1"
End Sub
Слайд 86

Результат работы программы для x0=0, xk=2, h=0.25 представлен на рисунке.

Результат работы программы для x0=0, xk=2, h=0.25 представлен на рисунке.

Слайд 87

Программирование циклических процессов (продолжение)

Программирование циклических процессов (продолжение)

Слайд 88

Программирование циклических процессов (продолжение)

Программирование циклических процессов (продолжение)

Слайд 89

Электронная форма для задачи поиск максимального элемента в одномерном массиве.

Электронная форма для задачи поиск максимального элемента в одномерном массиве.

Слайд 90

Private Sub Комманда1_Click() Dim MyArray As Single Dim intValarray As Integer

Private Sub Комманда1_Click()
Dim MyArray As Single
Dim intValarray As Integer
intValarray =

Val(Текст1)
ReDim a(intValarray) As Single
Max = -1000: k = 0
For i = 0 To intValarray
MyArray = InputBox("Введите э-т массива :", "Ввод a(i)=")
Список1.AddItem MyArray ‘метод AddItem используется
Список2.AddItem i ‘для добавления элементов в список
a(i) = MyArray
If a(i) > Max Then Max = a(i): k = i
Next
Текст2.Text = Max
Текст3.Text = k
End Sub
Слайд 91

Сортировка методом «пузырька»

Сортировка методом «пузырька»

Слайд 92

Текст модуля: Сортировка Private Sub Комманда1_Click() Dim a(1 To 10) As

Текст модуля: Сортировка
Private Sub Комманда1_Click()
Dim a(1 To 10) As Integer
Randomize Timer
For

k = 1 To 10
a(k) = Int(10 * Rnd)
Список1.AddItem a(k)
Next k
For i = 1 To 9
For j = i + 1 To 10
If a(i) > a(j) Then
b = a(i): a(i) = a(j): a(j) = b
End If
Next j
Next i
For k = 1 To 10
Список2.AddItem a(k)
Next k
End Sub
Слайд 93

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

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

Слайд 94

Private Sub Комманда1_Click() Dim tr, tc As Integer : Dim s


Private Sub Комманда1_Click()
Dim tr, tc As Integer : Dim s As

String
Randomize Timer
Dim a(1 To 3, 1 To 3) As Integer
Dim b(1 To 3, 1 To 3) As Integer
For tr = 1 To 3
s = " "
For tc = 1 To 3
a(tr, tc) = Int(10 * Rnd)
s = s & " " & Str(a(tr, tc))
Next tc
Список1.AddItem s
Next tr
For tr = 1 To 3 ‘транспонирование
For tc = 1 To 3 ‘матрицы
b(tr, tc) = a(tc, tr)
Next tc : Next tr
For tr = 1 To 3
s = " "
For tc = 1 To 3
s = s & " " & Str(b(tr, tc))
Next tc
Список2.AddItem s
Next tr
End Sub
Слайд 95

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

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

Слайд 96

Private Sub Комманда1_Click() Dim tr, tc, i, j As Integer :

Private Sub Комманда1_Click()
Dim tr, tc, i, j As Integer : Dim

s As String
Randomize Timer
Dim a(1 To 3, 1 To 3) As Integer
Dim b(1 To 3) As Integer
For tr = 1 To 3
s = " "
For tc = 1 To 3
a(tr, tc) = Int(10 * Rnd)
s = s & " " & Str(a(tr, tc))
Next tc
Список1.AddItem s
Next tr
For j = 1 To 3
b(j) = 0
For i = 1 To 3
b(j) = b(j) + a(i, j)
Next i
Next j
s = " "
For j = 1 To 3
s = s & " " & Str(b(j))
Next j
Список2.AddItem s
End Sub
Слайд 97

Оператор цикла Do-Loop. Логически управляемый цикл, оператор Do — начало, оператор

Оператор цикла Do-Loop. Логически управляемый цикл, оператор Do — начало, оператор

Loop — конец цикла.
Оператор имеет четыре модификации:
1) Условие имеет значение True в начале цикла.
Структура:
Do While <условие>
<блок операторов>
Exit Do <блок операторов>
Loop
Цикл выполняется пока истинно условие. Оператор Exit Do предназначен для прекращения цикла и передачи управления оператору Loop — конец цикла.
2) Условие имеет значение True в конце цикла.
Структура:
Do
<блок операторов>
Exit Do
<блок операторов>
Loop While <условие>
Цикл выполняется хотя бы один раз, проверка условия в конце цикла.

Home

Слайд 98

3) Условие False в начале цикла. Структура: Do Until Exit Do

3) Условие False в начале цикла.
Структура:
Do Until <условие>
<блок операторов>
Exit Do
<блок

операторов>
Loop
Цикл выполняется до тех пор, пока условие не станет истинным.
4) Условие False в конце цикла.
Структура:
Do
<блок операторов>
Exit Do
<блок операторов>
Loop Until<условие>

Home

Слайд 99

Условие проверяется в конце цикла. Цикл прекращается, когда условие станет истинным.

Условие проверяется в конце цикла. Цикл прекращается, когда условие станет истинным.
Пример:
Do

While True
A=Rnd :Debug.Print a
If a>0.99 Then Exit Do
Loop
Цикл While-Wend аналогичен циклу Do While-Loop, проверка условия выполняется в начале цикла.
Структура:
While <условие>
<блок операторов>
Wend.

Home

Слайд 100

Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.

Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.
Private

Sub Command_Click()
M=100: I=0
Print “Номер “, “Остаток “
Do
I=I+1
If I>99 then Exit Do ‘Оператор Exit Do служит для
прерывания цикла, помещается
внутри цикла и приводит передаче
управления следующему за
циклом оператору
M=M-M/100
Loop Until M<5
Print I, M
End Sub
Слайд 101

Цикл For Each. Оператор относится к категории объектных операторов, т.е. применяется

Цикл For Each. Оператор относится к категории объектных операторов, т.е. применяется

к массивам, наборам объектов, коллекциям. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически.
Структура:
For Each <элемент> In <набор>
<блок операторов>
Exit For
<блок операторов> Next <элемент>
Пример:
For each z In arrx
n=n+1
x(n)=z
Next z

Home

Слайд 102

Формула линейной интерполяции yn=y1+(y2-y1)*(xn-x1)/(x2-x1) x1 xn x2 y1 y2 yn

Формула линейной интерполяции

yn=y1+(y2-y1)*(xn-x1)/(x2-x1)

x1

xn

x2

y1

y2

yn

Слайд 103

Пример программы с оператором For Each. Function intl (arrx; arry; x_new)

Пример программы с оператором For Each.

Function intl (arrx; arry; x_new)
Dim

i As Integer
Dim n As Integer
Dim j As Integer
Dim x (1 to 100) as Double
Dim y (1 to 100) as Double
Dim z
n=0
For each z in arrx
n=n+1
x(n)=z
Next z
n=0
For each z in arry
n=n+1
y(n)=z
Next z
Слайд 104

For i=1 to n-1 If x(i) = x_new Then j= i

For i=1 to n-1
If x(i) <= x_new And x(i+1)>= x_new Then

j= i
Next i
If x_new > x(n) Then j = n – 1
If x_new < x(1) Then j = 1
Intl = y(j) + (y( j+1 ) – y( j ) ) * (x_new – x ( j )) / (x( j + 1) – x(j))
End Function
Цикл For Each…Next похож на цикл For …Next, но он повторяет группу операторов для каждого элемента из набора объектов (коллекции). Он особенно удобен, тогда, когда заранее не известно, сколько элементов содержится в наборе. Для наборов параметром этого цикла может быть только переменная типа Variant, Object или объектом перечисленным в Object Browser. Для массивов параметром этого цикла может быть только переменная типа Variant. Нельзя использовать этот цикл с массивом, имеющим определённый пользователем тип.

Пример программы с оператором For Each (продолжение).

Слайд 105

Использование процедур в VB

Использование процедур в VB

Слайд 106

Программные модули на VB состоят из процедур. Использование процедур упрощает программирование,

Программные модули на VB состоят из процедур. Использование процедур упрощает программирование,

разбивая код модуля на процедуры, можно намного упростить чтение и модификацию текстов программ. В VB используется несколько видов процедур:
Процедуры SUB (не возвращает значения);
Процедуры Function (возвращает значение);
Процедуры Property (могут возвращать и присваивать значение, а также устанавливать ссылки на объекты).
Процедура SUB – это блок кода, который выполняется в ответ на событие. Синтаксис процедуры:
[Private/Public ] [Static ] Sub <имя_процедуры>(аргументы)
Операторы тела процедуры
End Sub
В VB следует понимать различие между двумя типами процедур SUB: общими процедурами и процедурами обработки событий.
Общая процедура указывает приложению, как выполнять конкретную задачу. Однажды определённая, она должна каждый раз специально вызываться приложением.
Слайд 107

В противоположность ей процедура обработки события после вызова остаётся в ожидания

В противоположность ей процедура обработки события после вызова остаётся в ожидания

событий, вызванных пользователем или инициированных системой. Так программа обработки события Click вызывает процедуру Sub с именем CommandButton1, которая выполняет свой код и возвращает управление процедуре обработки события Click. Как только объект в VB распознаёт, что произошло событие, он активизирует процедуру обработки события с именем, соответствующем данному событию. Так как имя процедуры устанавливает связь между объектом и кодом, то говорят, что процедуры обработки событий прикреплены к формам и элементам управления.
Процедуру Sub в отличие от Function нельзя вызывать по имени в выражении. Её вызов осуществляется в отдельном операторе. Процедура Sub не возвращает значения, однако она может изменять значения любых переменных, переданных ей в качестве параметров.
Существуют два способа вызова процедуры Sub. Например для процедуры Prog1 c параметрами а и b:
Call Prog1(a,b) или Prog1 a,b . Как видно из примера при использование оператора Call, параметры заключены в круглые скобки.
Слайд 108

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


Home

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

процедуры не обязательно. Процедура является уникальной, если она определена только в одном месте. Если два или более модулей содержат процедуры с одинаковыми именами, то при вызове таких процедур необходимо уточнять их с помощью имени соответствующего модуля. Например, если процедура с именем CommonName существует и в Module1, и в Module2, то при вызове из Module1 процедуры CommonName процедуры Module2, надо записать: Module2. CommonName(аргумент), в противном случае будет вызвана процедура этого модуля.
В VB кроме стандартных встроенных функций можно писать собственные процедуры Function. Её синтаксис таков:
[Private/Public][Static]Function<имя_процедуры>
(аргументы) [As type]
<Операторы тела процедуры>
End Function.
Вызов процедуры Function чаще всего осуществляется заданием её имени и параметров в тексте выражения.
Процедура Function имеет тип, который определяет тип возвращаемого выражения.
Слайд 109

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

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

выполнения требуется некоторая информация о состоянии программы. Эта информация заключена в значениях переменных, передаваемых процедуре при её вызове (их называют параметрами процедуры). По умолчанию параметры процедуры имеют тип Variant, в явном виде параметрам можно задать любой другой тип. Пример:
Function ForLunch(WeekDay As String, Hour As integer) As String
If WeekDay=“четверг” then
ForLunch=“рыба”
Else
ForLunch= “куры”
End if
If Hour >4 then ForLunch=“ Too late”
End Function
Параметры процедуры могут передаваться по значению и по ссылке. В первом случае процедуре передаётся только копия переменной, выступающей в качестве параметра процедуры. Если процедура изменяет значение параметра, то это затрагивает только копию переменной, а не саму переменную, т.е. во вне новое значение не передаётся.

Home

Слайд 110

Home Ключевое слово ByVal служит признаком того, что параметр передаётся по


Home

Ключевое слово ByVal служит признаком того, что параметр передаётся по значению.

Например:
Sub PostAcc(ByVal AcctNum As Integer)
Передача процедуре параметров по ссылке открывает ей доступ к области памяти, где хранится содержимое переменной. В результате процедура может изменять значение переменной являющейся её параметром. По умолчанию в VB все параметры передаются по ссылке.
Пример: Получить таблицу значений функции по формуле: y=(arcsin(x*x)+arcsin(x))/arctan(x).
Слайд 111

Home Private Sub Комманда1_Click() Dim M, Y As Single Dim a,

Home

Private Sub Комманда1_Click()
Dim M, Y As Single
Dim a, b, c, l

As Single
a = Val(Текст1.Text)
b = Val(Текст2.Text)
c = Val(Текст3.Text)
n = Int((b - a) / c)
l = a - c
For k = 1 To n
s = " "
l = l + c
M = l
s = “№" & Str(k) & "=" & Str(M)
Список1.AddItem s
Y = arcsin(M ^ 2) + arcsin(M) / Atn(M)
s = " "
s = “№" & Str(k) & "=" & Str(Y)
Список2.AddItem s
Next k
End Sub
Слайд 112

Function arcsin(x) arcsin = Atn(x / Sqr(1 - x * x)) End Function Home

Function arcsin(x)
arcsin = Atn(x / Sqr(1 - x * x))
End Function

Home

Слайд 113

Home Использование файлов в Visual Basic

Home

Использование файлов в Visual Basic

Слайд 114

Работа с файлами в языке Visual Basic Информация, которая вводится и

Работа с файлами в языке Visual Basic
Информация, которая вводится и

выводится из программы, организована в файлы. Файлом называется поименованная область памяти на диске, содержащая совокупность связанных между собой записей.
Запись представляет собой набор элементов, рассматриваемых как единое целое с точки зрения устройств ввода-вывода. Именно записями одно устройство компьютера (например, память) обменивается с другим (например принтером или дисководом). В предельном случае запись может состоять из одного символа. При работе с Windows — приложениями, файлы чаще всего хранятся на внешнем магнитном носителе.
При записи данных в файл необходимо выполнить: открытие файла для записи, запись компонентов файла, закрытие файла. При чтении файла необходимо выполнить: открытие файла для чтения, чтение компонентов файла, закрытие файла. При открытии файлу ставится в соответствие канал ввода/вывода с определенным номером – дескриптором. Таким образом, каждый открытый файл имеет собственный канал, с помощью которого записываются или считываются данные.

Home

Слайд 115

Следовательно, для ввода и вывода данных в файл имеет значение не

Следовательно, для ввода и вывода данных в файл имеет значение не

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

Home

Слайд 116

Важнейшим атрибутом файла является его имя. Имя файла состоит из имени

Важнейшим атрибутом файла является его имя. Имя файла состоит из имени

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

Home

Слайд 117

Операторы и функции для работы с файлами последовательного доступа OPEN —

Операторы и функции для работы с файлами последовательного доступа
OPEN —

открыть файл;
CLOSE — закрыть файл;
Input # — прочитать запись из файла;
Print # — записать запись в файл;
Write # — записать запись в файл;
Lof — вернуть длину файла;
Eof — логическая величина, используемая для определения конца файла.
Оператор OPEN выполняет подготовительную работу для последующих операций ввода-вывода. Он заполняет блок управления данными, в которые система помещает файл и номер устройства, с которым будет работать; резервирует области памяти для буферов обмена операций ввода-вывода; определяет организацию данных в файле, режим его обработки и т.д.

Home

Слайд 118

Формат записи оператора: OPEN имя файла[FOR режим]As[ # дескриптор файла] где:

Формат записи оператора:
OPEN имя файла[FOR режим]As[ # дескриптор
файла]
где: имя файла может

включать устройство и путь поиска файла на диске; режим—для текстовых файлов одно из трёх ключевых слов:
Output — используется если файл открывается для записи с первой позиции (вся старая информация при этом уничтожается);
Append — используется, если файл открывается для продолжения записи;
Input — используется, если файл открывается для чтения из него текстовых данных.
Дескриптор файла — это любое целое число от 1 до 511, которое служит идентификатором файла в программе.

Home

Слайд 119

Оператор CLOSE # [список дескрипторов файлов] —закрывает все файлы, идентификаторы которых

Оператор CLOSE # [список дескрипторов файлов] —закрывает все файлы, идентификаторы которых

указаны в списке через запятую. Если список дескрипторов отсутствует, то закрываются все открытые в программе файлы.
Оператор INPUT # дескриптор файла, список переменных.
Оператор lineINPUT # дескриптор файла, список переменных.
Чаще всего чтение из текстового файла производится циклически, с помощью оператора цикла с условием: Do While ... Loop или Do Until... Loop. Условием окончания цикла является попытка прочитать данные после чтения последней строки. Эта попытка приводит к тому, что значение функции EOF будет true.

Home

Слайд 120

Пример: Запишем программу, которая помещает все фамилии, имена и даты рождения

Пример:
Запишем программу, которая помещает все фамилии, имена и даты рождения

из файла ГодРождения1.txt в три окна списка ListBox экранной формы:
Private Sub Command1_Click()
Open “ГодРождения 1.txt” For Input As#1
Do Until EOF(1)
Input # 1, Фамилия$, Имя$, ГодРождения%
ListBox1. Addltem Фамилия$
ListBox2. Addltem Имя$
ListBox3. Addltem ГодРождения%
Loop
Close # 1
End Sub

Home

Слайд 121

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

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

Write и Print. Оба оператора записывают данные в файл текстовыми строками. Текстовая строка — это последовательность символов, заканчивающаяся знаком "конец строки" (код = 26) или знаком возврата каретки (код в таблице символов = 13) и "перевода строки" (код = 10) .
Синтаксис операторов записи в текстовый файл одинаков:
Write # дескриптор файла, [список значений]
Print # дескриптор файла, [список значений].
Список значений — это записанные через разделитель значения. В операторе Write элементы этого списка записываются в одну текстовую строку файла через запятую. Элементы типа String заключаются в кавычки.
В операторе Print, если разделитель точка с запятой, то значения будут записаны подряд, без промежутков между ними, а, если разделитель запятая, то значения будут записываться в 14-символьные зоны вывода.

Home

Слайд 122

Пример результата для оператора Write: “Иванов”,”Иван”, 1986 “Петров”,”Петр”, 1984 “Сидоров”,”Николай”, 1985

Пример результата для оператора Write:
“Иванов”,”Иван”, 1986
“Петров”,”Петр”, 1984
“Сидоров”,”Николай”, 1985
Пример результата для оператора

Print:
Иванов Иван 1986
Петров Петр 1984
Сидоров Николай 1985
Функция Input — это функция двух аргументов, где первый аргумент — это количество символов, которые надо прочесть, а второй дескриптор файла.

Home

Слайд 123

В качестве примера запишем программу, которая помещает в объект Text1 класса

В качестве примера запишем программу, которая помещает в объект Text1 класса

Текстовое поле число, определяющее размер файла ГодРождения1 .txt.
Open “ГодРождения.txt” For Input As # 1
Dim ЧислоСимволов As Integer
ЧислоСимволов = LOF(1)
Text 1.Text = Input(ЧислоСимволов, # 1)
Close # 1

Home

Слайд 124

Разработать приложение, в котором необходимо: создать список группы студентов с указанием

Разработать приложение, в котором необходимо: создать список группы студентов с указанием

их фамилии, имени и оценки по информатике путем заполнения файла последовательного доступа, используя окно ввода, предусмотреть просмотр введенного файла и подсчет среднего балла.
При чтении файла его содержимое будет помещено в текстовое окно, а запись в файл будет осуществляться с помощью оператора Write. После ввода очередной фамилии, имени и оценки будет появляться окно сообщения MsgBox с двумя кнопками Yes, No и вопросом "Продолжить ввод?". При нажатии на кнопку Yes цикл будет продолжен, а при нажатии на кнопку No – прекращен. На форму надо поместить 4 командные кнопки Создание файла, Чтение из файла, Средний балл, Выход, текстовое поле TextBox, 3 метки для поясняющего текста к полю TextBox, вывода подсчитанного среднего балла и вывода фамилии и группы студента. Поскольку текстовое поле предназначено для вывода содержимого файла, содержащего несколько строк, необходимо предварительно изменить некоторые его свойства: Text – удалить имя Text1, MultiText – установить значение True, ScrollBars – установить значение Vertical (см. рис.).

Home

Пример

Слайд 125

Программный код для приложения можно записать так: Private Sub Command1_Click() '

Программный код для приложения можно записать так:
Private Sub Command1_Click() ' Кнопка

Создание файла
Dim fam As String, im As String, ball As Integer
Open "D:\Students\ДЭм11\Группа2.txt" For_ Output As 2
Do
fam = InputBox("Ввод фамилии", "Создание файла")
im = InputBox("Ввод имени", "Создание файла")
ball = Val(InputBox("Ввод оценки по информатике", "Создание файла"))
Write #2, fam, im, ball
ans = MsgBox("Продолжить ввод?",vbQuestion + _ vbYesNo, "Создание файла")
Loop Until ans = vbNo
Close #2
End Sub

Home

Слайд 126

Private Sub Command2_Click() ' Кнопка Чтение из файла Dim kol_sym As

Private Sub Command2_Click() ' Кнопка Чтение из файла
Dim kol_sym As Integer
Open

"D:\Students\ДЭм11\Группа2.txt" For _ Input As 2
kol_sym = LOF(2) ' Количество символов в файле
Text1.Text = Input(kol_sym, #2)
Close #2
End Sub
Private Sub Command3_Click() 'Кнопка Средний балл
Dim fam As String, im As String, ball As Integer, _ kol As Integer, _
sum As Integer, sr As Single
Open "D:\Students\ДЭм11\Группа2.txt" For _ Input As 2
kol = 0: sum =0

Home

Слайд 127

Do Until EOF(2) Input #2, fam, im, ball kol = kol

Do Until EOF(2)
Input #2, fam, im, ball
kol = kol

+ 1 ' Подсчет количества строк в файле
sum = sum + ball ' Подсчет суммы баллов
Loop
sr = Round(sum / kol, 2) ' Подсчет среднего балла и округление его до 2 цифр
' в дробной части
Label1.Caption = "Средний балл=" & sr
Close #2
End Sub
Результат работы приложения представлен на рис. 5.2.

Home

Слайд 128

Home

Home