Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Басков Н.Н., Лебединская А.Р. Visual Basic for Applications. Учебный практикум - файл 1.doc


Басков Н.Н., Лебединская А.Р. Visual Basic for Applications. Учебный практикум
скачать (808.5 kb.)

Доступные файлы (1):

1.doc809kb.16.12.2011 09:21скачать

1.doc

1   2   3   4   5   6   7   8   9
^

3.4. Практическая работа №4. Программирование повторений


Задача


Найдите значения функции у=sin(x) на интервале [a;b].


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

Повторение – это многократное выполнение одного или нескольких предписаний алгоритма.

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

Цикл с использованием конструкции For...Next .

Конструкция For...Next выполняет последовательность команд определенное число раз. Такую конструкцию называют циклом, а выполняемые ею программные коды — телом цикла.

Синтаксис конструкции For.. .Next следующий:

For счетчик = начЗначение То конЗначение [Step шаг]

Конструкции

[Exit For]

[инструкции]

Next [счетчик]

Первый аргумент конструкции — счетчик — определяет имя переменной, которая будет "считать" количество выполнении цикла. Параметр начЗначение указывает числовое значение, которое присваивается переменной-счетчику перед первым проходом цикла. Цикл выполняется до тех пор, пока значение счетчика не превысит конечного значения, указанного после ключевого слова то. После каждого прохода цикла значение счетчика изменяется на величину шаг, указанную за ключевым словом step. Ключевое слово Next обозначает конец тела цикла и является обязательным.

Перед каждым проходом цикла Visual Basic сравнивает значения счетчика и аргумента конЗначение. Если значение счетчика не превышает установленного значения конЗначение, выполняются конструкции тела цикла. В противном случае управление переходит к следующей за Next конструкции.

Циклы Do While

Оператор Do While — еще один тип циклической структуры, представленной в VBA.

В отличие от цикла For-Next, цикл Do while выполняется до тех пор, пока удовлетворяется заданное условие. Цикл Do While может иметь один из двух представленных ниже синтаксисов:


^ Do While условие

инструкции

[Exit Do]

[инструкции]

Loop
или
Do

инструкции

[Exit Do]

[инструкции]

Loop While условие

Цикл с предусловием

Это цикл работает пока значение условия равно Истина

Цикл с постусловием



VBA позволяет проверять условие While в начале или в конце цикла. Разница между этими двумя синтаксисами связана с моментом, когда оценивается условие. В первом синтаксисе содержимое цикла может нообще не выполнятся. Во втором содержимое цикла всегда выполняется (как минимум один раз).
Циклы Do Until


Do Until условие

конструкции

[Exit Do]

[инструкции]

Loop
или
Do

конструкции

[Exit Do]

[инструкции]

Loop Until условие


Цикл с предусловием

Это цикл работает пока значение условия равно Ложь

Цикл с постусловием



Существуют определённые правила выбора типа цикла:

  1. Если вам известно заранее число повторений тела цикла, лучше всего использовать оператор цикла For;

  2. Если вам заранее не известно число повторений тела цикла и если окончание цикла зависит от выполнения некоторого условия, лучше использовать конструкции While …Wend, Do While…Loop или Do Until … Loop.

  3. Если необходимо, чтобы цикл всегда выполнялся хотя бы один раз, то используйте конструкции Do … While Loop или Do … Until Loop.


Составим блок-схему для нашей задачи:



    • Откройте приложение MS Excel.

    • Выполните команду СервисàМакросРедактор Visual Basic или нажмите <Alt+F11>.

    • Добавьте форму (команда Insert UserForm)

    • Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)

    • Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления: Label (Метка), TextBox (Текстовое поле), CommandButton (Командная кнопка), ListBox (Список).

    • В окне Properties (Свойства) для каждого объекта управления установить свойства, приведённые в таблице 3.

Таблица 3

^ Элемент управления

Свойства

Значения

UserForm

Caption

Программирование повторений

Label1

Caption

Табулирование функции

Label2

Caption

а=

Label3

Caption

b=

Label4

Caption

Значение функции

TextBox1

Name

txtA

TextBox2

Name

txtB




TextBox3

Name

txtSin

CommadButton1

Name

cmdSinus

Caption

Пуск

CommadButton2

Name

cmdClear

Caption

Очистка




    • Примерный интерфейс программы может выглядеть так:




    • Код программы:

Private Sub cmdSinus­_Click()

а!=Val(txtA)

b!=Val(txtB)

For i%=a To b

y!=Sin(i)

txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf

Next i

End Sub

Private Sub cmdCleaR_Click()

txtA = ""

txtB = ""

txtSin = ""

End Sub

    • Сделайте расчёты для разных а и b. ^ Внимание a<b!!!

    • Добавьте в код программы строку в которой бы шла проверка на сравнение а и b. И если a>b, то программа завершала бы работу.


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

Свойство

Описание

ListIndex

Возвращает номер выбранного элемента списка. Нумерация элементов списка начинается с нуля

ListCount

Возвращает число элементов списка

TopIndex

Возвращает элемент списка с наибольшим номером

ColumCount

Устанавливает число столбцов в списке

List

Возвращает элемент списка, стоящего на пересечении указанной строки и столбца

Синтаксис:

List(строка, столбец)

Text

Возвращает выбранный в списке элемент


Методы

Метод

Описание

Clear

Удаляет все элементы списка

AddItem

Добавляет элемент в список

RemoveItem

Удаляет заданный элемент




    • Удалите текстовое поле с именем «txtSin»

    • На место удалённого объекта вставьте ListBox (Список) и именем «lstSin» (обратите внимание, впереди стоит латинская буква «L» малая, а не «1 (единица)»)

    • Удалите следующую строку «txtSin = txtSin +”x=” + Str(i)+ “, y=”+Str(y) + vbCrlf»

    • На место удалённой строки в коде программы вставьте следующую запись:

lstSin.AddItem ”x=” + Str(i)+ “, y=”+Str(y)

    • Посмотрите, как работает программа

    • Напишите программу для табуляции функции у = Cos(x)

    • Сохраните файл под именем «Табуляция функции»
^

3.5. Практическая работа №5. Работа с массивами


Задание.


Найдите значение максимального элемента одномерного массива


Массив – это совокупность нескольких переменных одного типа, которые могут принимать одинаковые или различные значения, объединенных одним общим именем (идентификатором) и идентифицируемых (адресуемых) вычисляемым индексом.

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

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

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

    • Блок-схема.






Наша блок-схема разбита на два блока: 1) ввод элементов массива, 2) нахождение максимального элемента.

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

Для заполнения массива можно использовать цикл с предусловием или с постусловием.





    • Откройте приложение MS Excel.

    • Выполните команду СервисàМакросРедактор Visual Basic или нажмите <Alt+F11>.

    • Добавьте форму (команда Insert UserForm)

    • Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)

    • Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления: Label (Метка), TextBox (Текстовое поле), CommandButton (Командная кнопка), ListBox (Список).

    • В окне Properties (Свойства) для каждого объекта управления установить свойства, приведённые в таблице 4.


Таблица 4

^ Элемент управления

Свойства

Значения

UserForm

Caption

Нахождение максимального элемента

Label1

Caption

Число элементов

TextBox1

Name

txtRazmer

Label2

Caption

Массив

ListBox1

Name

lstMassiv

Label3

Caption

Максимальный элемент

TextBox2

Name

txtMax

CommadButton1

Name

cmdVvodMassiva

Caption

Ввод массива

CommadButton2

Name

cmdMaxElement

Caption

Максимальный элемент




    • Примерный интерфейс программы может выглядеть так:





    • Код программы:

Dim Massiv() As Single, Size As Integer

Private Sub cmdVvodMassiva_Click()

Dim i As Integer

Size = Val(txtSize.Text)

ReDim Massiv(Size)

i = 1

Do While i <= Size

Massiv(i) = Val(InputBox("Массив(" + Str(i) + ")=","Ввод массива"))

lstMassiv.AddItem "A(" + Str(i) + ")=" + Str(Massiv(i))

i = i + 1

Loop

End Sub

Private Sub cmdMaxElement_Click()

Dim i As Integer

Max! = Massiv(1)

i = 1

Do Until i > Size

If Massiv(i) > Max Then Max = Massiv(i)

i = i + 1

Loop

txtMax.Text = Str(Max)

End Sub

    • Задайте массив из 15 элементов и посмотрите как работает программа.

    • Измените циклы в программе первый сделайте используя ключевое слово «Until» (с постусловием), а второй с ключевым словом «While» (с предусловием)

    • Измените, код программы так, что бы она искала минимальный элемент в массиве

    • Сохраните файл под именем «Нахождение максимального элемента»



^

3.6. Практическая работа №6. Процедуры и функции


Задача.


Список студентов группы отсортировать по алфавиту


В практике программирования часто бывает необходимо выполнять одни и те же вычисления, но при различных исходных данных. Чтобы исключить посторенние одинаковых записей и сделать программу проще и понятнее, можно выделить эти повторяющиеся вычисления в самостоятельную часть программы, которая может быть использована многократна. Такая автономная часть программы, реализующая определённый алгоритм и допускающая обращение к ней из различных частей общей программы называется процедурой. Любая процедура содержит заголовок и раздел операторов. Синтаксис объявления процедуры:
frame1

ОбластьВидимости – это одно из двух ключевых слов: Public или Private. Они устанавливают к какому классу принадлежит процедура – к классу глобальных или к классу локальных процедур. По умолчанию процедура относится к классу Public.

Для вызова процедуры используется следующий оператор:

Call ИмяПроцедуры (СписокПараметровВызова)

Функция — эта процедура, возвращающая результат. Поэтому её надо применять, когда вызывающая программа должна вернуть только один результат.

Также можно использовать бесскобочную запись оператора:

frame2

Для определения функции используется следующих синтаксис:

frame3
Сортировка

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


    • Откройте приложение MS Excel.

    • Выполните команду СервисàМакросРедактор Visual Basic или нажмите <Alt+F11>.

    • Добавьте форму (команда Insert UserForm)

    • Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)

    • Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления: Label (Метка), TextBox (Текстовое поле), CommandButton (Командная кнопка), ListBox (Список).

    • В окне Properties (Свойства) для каждого объекта управления установить свойства, приведённые в таблице 5.

Таблица 5

^ Элемент управления

Свойства

Значения

UserForm

Caption

Сортировка

Label1

Caption

В группе

Label2

Name

lblKolichestvo

Caption




BackColor

&H00FFFFFF&

BolderStyle

1-fmBolderStyleSingle

Label3

Caption

Не сортированный список группы

ListBox1

Name

lstNeSortSpisok

Label4

Caption

Сортированный список

ListBox2

Name

lstSortSpisok

CommandButton1

Name

cmdStart

Caption

Пуск


^ Обменная сортировка

Простая обменная сортировка (в просторечии называемая "методом пузырька") для массива a[1], a[2], ..., a[n] работает следующим образом. Начиная с конца массива, сравниваются два соседних элемента (a[n] и a[n-1]). Если выполняется условие a[n-1] > a[n], то значения элементов меняются местами. Процесс продолжается для a[n-1] и a[n-2] и т.д., пока не будет произведено сравнение a[2] и a[1]. Понятно, что после этого на месте a[1] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются a[3] и a[2]. И так далее. На последнем шаге будут сравниваться только текущие значения a[n] и a[n-1]. Понятна аналогия с пузырьком, поскольку наименьшие элементы (самые "легкие") постепенно "всплывают" к верхней границе массива.


    • Блок-схема







Составим блок-схему процедуры сортировки списка группы

    • Примерный интерфейс программы может выглядеть так:




    • Код программы:

Dim Spisok() As String

Dim Kolichestvo As Integer

Private Sub cmdStart_Click()

Dim i As Integer

Call VvodSpiskaGruppy

Call SortirovkaSpiskaGruppy

For i = 1 To Kolichestvo

lstSortSpisok.AddItem Spisok(i)

Next

End Sub
Sub VvodSpiskaGruppy()

Dim i As Integer

Kolichestvo = InputBox("Введите количество студентов в группе",”Ввод числа”)

lblKolichestvo.Caption = Str(Kolichestvo)+” человек(а)”

ReDim Spisok(Kolichestvo)

For i = 1 To Kolichestvo

Spisok(i)=InputBox("Введите фамилию и инициалы "+Str(i)+" студента группы","Ввод ФИО")

lstNeSortSpisok.AddItem Spisok(i)

Next

End Sub
Sub SortirovkaSpiskaGruppy()

Dim i As Integer

Dim j As Integer

Dim Temp As String

For i = 1 To Kolichestvo–1

For j = i+1 To Kolichestvo

If Spisok(i) > Spisok(j) Then

Temp = Spisok(i) : Spisok(i) = Spisok(j) : Spisok(j) = Temp

End If

Next

Next

End Sub


    • Введите 10 фамилий студентов вашей группы и посмотрите как работает программа.

    • Сохраните файл под именем «Сортировка списка методом «пузырька»»
^

3.7. Практическое занятие №7. Файлы. Последовательный доступ


Задача.


Создайте программу для записи в файл списка студентов вашей группы.
1   2   3   4   5   6   7   8   9



Скачать файл (808.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации