Программа расчета случайных чисел и построения диаграммы



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

Рис. 1.5. Расчет случайных чисел в заданном диапазоне

 

Текст главной программы написан для события листа Change, расчет случайных чисел – процедура с именем Расчет, построение диаграммы – процедура с именем График:

Private Sub Worksheet_Change(ByVal Target As Range) Adr = Target.Address

If Adr = "$A$4" Or Adr = "$B$4" Or Adr = "$C$4" Then

' если изменялись данные в ячейках A4 или B4

ActiveSheet.Unprotect

Call Расчет

Call График [A4].Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True End If

End Sub

 

'------- далее общая процедура в секции General -----

Sub Расчет()

n = [C4]

' количество чисел

adr2 = "A6:A" & (5 + n)

' определяем диапазон для чисел, количество которых=C4

Randomize

Range("A6:A105").ClearContents

' очищаем старые значения

Range("A6:A105").NumberFormat = "0.0000"

' задаем формат For I = 1 To n

' цикл вычисления случайных чисел

Adr = "A" & I + 5

Range(Adr).Value = [B4] - ([B4] - [A4]) * Rnd

' случайное число в диапазоне от A4 до B4

Next

xmin = [A6] xmax = [A6]

For I = 1 To n

' цикл поиска минимума и максимума

Adr = "A" & I + 5

xt = Range(Adr).Value

If xt < xmin Then xmin = xt If xt > xmax Then xmax = xt

Next

[D4] = xmin [E4] = xmax

For I = 1 To n ' цикл расчета Y Adr1 = "A" & I + 5

Adr2 = "B" & I + 5

Range(Adr2).Value = (Range(Adr1).Value) / xmax Next

End Sub

Sub График() ActiveSheet.Unprotect

If ActiveSheet.Shapes.Count > 0 Then

' удаляем старый график

ActiveSheet.ChartObjects("Grafik").Activate ActiveChart.Parent.Delete

End If

Rng = "A6:A" & (5 + [C4])

' диапазон исходных данных

ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select ActiveChart.SetSourceData Source:=Range(Rng) ActiveChart.ChartTitle.Select

ActiveChart.ChartTitle.Text = "Случайные числа" ActiveChart.Parent.Name = "Grafik" ActiveChart.Axes(xlValue).Select Selection.TickLabels.NumberFormat = "0" ActiveSheet.Shapes("Grafik").Left = 120 ActiveSheet.Shapes("Grafik").Top = 80 ActiveSheet.Shapes("Grafik").Width = 300 ActiveChart.Axes(xlValue).HasTitle = True ActiveChart.Axes(xlValue, xlPrimary). _

AxisTitle.Text = "Y" ActiveChart.SetElement _

(msoElementPrimaryValueAxisTitleHorizontal) ActiveChart.Axes(xlCategory).HasTitle = True ActiveChart.Axes(xlCategory, xlPrimary). _

AxisTitle.Text = "X" ActiveChart.Legend.Select Selection.Delete

End Sub

 

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

 

Учебное задание

1) Создать новый файл Excel с поддержкой макросов. Запустить запись макроса для данного документа, в ячейку A1 занести число 1,11; в ячейку B1 занести число 2,22; в ячейке C1 записать формулу =A1*B1. Остановить запись макроса. Изучить его текст в окне Microsoft Visual Basic For Applications, скопировать его текст на лист Excel. Модифицировать макрос для работы с любой начальной ячейкой.

2) Двумя способами (с использованием Проверки данных и с написанием VBA-программы) выполнить проверку правильности ввода (выполнить вариант в таблице, соответствующий номеру компьютера):

 

Вариант № Расчетная формула Условия проверки
1
2
3
4
5
6
7
8
9
10

 

3) Для заданного количества n случайных чисел, написать программу на языке VBA для вычисления по заданной формуле (выполнить вариант, соответствующий номеру компьютера):

 

1
2
3 - максимальные и минимальные значения
4
5
6
7
8
9
10

 


Лабораторная работа № 7

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VBA В MICROSOFT OFFICE ACCESS

 

I. Цель работы: освоение работы с языком VBA и библиотекой ADO при работе с базами данных в системе Access.

 


Дата добавления: 2018-02-18; просмотров: 1408; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!