Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика VBA.pdf
Скачиваний:
891
Добавлен:
27.03.2016
Размер:
1.1 Mб
Скачать

 

 

 

 

 

 

 

 

 

 

 

1,2

 

 

 

 

 

 

 

 

 

 

 

3

 

 

x 1 при

x < −1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

3

+1

при 1 x 0

0,8

 

 

 

 

 

 

 

 

 

 

 

S =

 

 

0,6

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при

x > 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,4

 

 

 

 

 

 

 

 

 

 

 

24x

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

 

 

2

 

x 2

; x = 0,1

 

 

 

 

 

 

 

 

 

 

29)

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-2

-1,6

-1,2

-0,8

-0,4

0

0,4

0,8

1,2

1,6

2

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

1,2

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

+ 2

 

при x < −1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

при 1 x 0

0,8

 

 

 

 

 

 

 

 

 

 

 

V = x

 

 

 

 

 

π x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

x > 0

0,6

 

 

 

 

 

 

 

 

 

 

 

 

 

(

)

при

 

 

 

 

 

 

 

 

 

 

 

 

sin

 

 

 

2

0,4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

 

 

2 x 2

; x = 0,1

 

 

 

 

 

 

 

 

 

 

30)

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-2

-1,6

-1,2

-0,8

-0,4

0

0,4

0,8

1,2

1,6

2

6.3 Лабораторная работа №2

Обработка массивов данных на VBA

В лабораторной работе №2 одно задание. Задание для лабораторной работы №2.

Составить программу для определения среднего арифметического положительных чисел, расположенных в первых пяти строках и первых трех столбцах рабочего листа Excel. Вывести положительные числа в файл с именем «Res2.txt». Записать положительные числа в одномерный массив, отсортировать их по возрастанию и вывести полученный массив данных в файл «Res2.txt» и в первый столбец рабочего листа Excel, начиная с 11ой строки. Сохранить рабочую книгу Excel в файле с названием Lab2, а программу в файле Prog2.

Последовательность действий для выполнения лабораторной работы.

101

1.Запустите Excel. На первом листе рабочей книге наберите тестовые данные для отладки программы (например, так как показано на рисунке 6.4). Сохраните рабочую книгу Excel в своей папке под име-

нем Lab2.

Рисунок 6.4 - Пример тестовых данных для отладки программы

2. Вызвать редактор макроса VBA (комбинация клавиш Alt+Fl1) и набрать текст программы:

Sub Prog2()

Dim Mas() As Variant ' переменная Mas - одномерный массив Dim S As Single ' Объявляем рабочие переменные

Dim Kol As Integer, i As Integer, j As Integer

S = 0 ' переменная для вычисления суммы положительных чисел Kol = 0 'переменная для вычисления количества положительных чисел

For i = 1 To 5 Step 1 ' цикл для перебора первых пяти строк листаExcel For j = 1 To 3 Step 1 ' цикл для перебора первых трех столбцов листа If Cells(i, j) > 0 Then ' если число в ячейке положительное, то

S = S + Cells(i, j) : Kol = Kol + 1 ' добавляем его к сумме

End If ' и увеличиваем количествоположительных чисел на единицу Next j ' заканчиваем цикл по столбцам

Next i ' заканчиваем цикл по строкам ' выводим на лист ответ

102

Cells(1,5)="Сумма положительных чисел": Cells(1, 10) = S Cells(2, 5)="Количество положительных чисел": Cells(2, 10) = Kol

If Kol = 0 Then

' если на листе нет положительных

Cells(3, 5) = "Ошибка в данных" ' чисел - сообщаем об ошибке и

Exit Sub

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

End If ' завершаем

If Kol = 0 Then

'на листе есть положительные числа - продолжаем работу

Cells(3, 5) = "Cреднее арифметическое"

Cells(3, 10) = S / Kol

' выводим значение среднего арифметического

Open "Res.txt" For Output As #1 ' открываем файл для вывода

'Примечание.

'Так как в имени файла путь не указан, то он будет

'сохраняться в папке "Мои документы"

'Чтобы файл сохранился в папке с книгой Excel, необходимо

'перед запуском программы выполнить сохранение

'файла с книгой Excel в свою папку

'вывод поясняющего текста в файл Res.txt

Print #1, "Положительные числа первых пяти строк и первых трех столбцов"

' резервируем место в оперативной памяти для массива Mas ReDim Mas(Kol – 1) ' первый элемент массива в VBA имеет индекс 0 k = -1

For i = 1 To 5 Step 1 ' просматриваем строки и столбцы заново

For j = 1 To 3 Step 1

 

 

If Cells(i, j) > 0 Then

'

если число положительное,

k = k + 1: Mas(k) = Cells(i, j)

'

записываем его в массив

Print #1, Mas(k)

'

и выводим в файл Res.txt

End If

 

 

Next j

 

 

Next i

 

 

103

' Сортировка массива Mas по возрастанию

For i = 0 To k - 1 Step 1

For j = 1 To k - i Step 1

If Mas(j - 1) > Mas(j) Then ' если слева число больше чем справа, r = Mas(j) ' меняем их местами

Mas(j) = Mas(j - 1) Mas(j - 1) = r

End If Next j Next i

' Вывод массива Mas в файл и на текущий рабочий лист

Print #1, "Отсортированный массив положительных чисел" Cells(10, 1) = "Отсортированный массив положительных чисел"

For i = 0 To k Step 1

Print #1, Mas(i) ' вывод элемента массива в файл Cells(i + 11, 1) = Mas(i) ' вывод элемента массива в столбец Excel

Next i

Close ' закрываем файл вывода

End Sub

3.Сохраните рабочую книгу Excel в своей папке под тем же именем - Lab2.

4.Запустите макрос «Prog2» на выполнение. Вид экрана после вы-

полнения программы приведен на рисунке 6.5. Содержание текстового файла «Res.txt» приведено на рисунке 6.6.

Примечание: чтобы файл «Res.txt» был доступен для просмотра, необходимо закрыть книгу Excel с макросом, или в редакторе макросов выполнить команду «Reset» меню «Run» (можно использовать панель инструментов).

104

Рисунок 6.5 - Вид рабочего листа Excel после выполнения программы

Положительные числа первых пяти строк и первых трех столбцов

5

5

5

1,5

8,5

Отсортированный массив положительных чисел

1,5

5

5

5

8,5

Рисунок 6.6 - Текстовый файл «Res.txt», полученный после выполнения программы Prog2

5.В тестовых данных на рабочем листе замените положительные числа нулями и заново запустите макрос на выполнение. Вид экрана после выполнения программы с такими числами приведен на рисунке 6.7.

105