Private Sub CommandButton1_Click() 'расчет и анализ распределения случайных чисел программно
Dim x() As Integer, y() As Double ' описываем массивы чисел Dim n As Integer 'переменная размера выборки массива Range(Cells(6, 1), Cells(100, 2)).Clear 'очистка ячеек таблицы A6:C100 (две столбца по 50 чисел ) summa = 0 'обнуление суммы вероятностей n = [C4] 'получение размера массива If n <= 0 Then 'проверка ввода положительных чисел MsgBox "Введите положительные числа", 48 Exit Sub End If ReDim x(0 To n) As Integer ' переопределение массивов ReDim y(0 To n) As Double ListBox1.Clear 'очистка элемента управления от информации Call sluchprogr(x, n, ListBox1) 'вызов функции генератора случайных чисел Cells(5, 1).Activate 'активация ячейки А5 For i = [A4] To [B4] Step [D4] 'формирование списка диапазона чисел ActiveCell.Offset(1, 0).Activate ActiveCell.Value = i Next For i = [A4] To [B4] Step [D4] 'очистка ячеек результата расчета y(i) = 0 Next For i = [A4] To [B4] Step [D4] 'вычисление вероятности появления случайных чисел For j = 1 To n If x(j) = i Then y(i) = y(i) + 1 Next y(i) = y(i) / n Next Cells(5, 2).Activate ' активация ячейки B5 For i = [A4] To [B4] Step [D4] 'занесение результатов определения вероятности ActiveCell.Offset(1, 0).Activate ActiveCell.Value = y(i) summa = summa + y(i) Next ActiveCell.Offset(1, 0).Activate 'занесение суммы вероятностей (должна быть 1) ActiveCell.Value = summa d = 0 'вычисления критерия хи-квадрат hi = 0 For i = [A4] To [B4] Step [D4] d = (y(i) * n) - n / (([B4] - [A4] + 1) / [D4]) hi = hi + (d * d) / (n / (([B4] - [A4]) / [D4])) [E20] = hi Next End Sub
8. Вставить кнопку CommandButton 2 согласно рисунка 2 Меню→Разработчик→Вставить→Кнопка. Изменить надпись на кнопке Properties → Caption →”Рисование диаграммы”. 9. Дважды щелкнуть по кнопке ”Рисование диаграммы” для открытия среды программирования VBA . Вставить программный код на языке VBA вместо автоматически сгенерированного программой: Private Sub CommandButton2_Click() Call график 'вызов функции рисования графика End Sub Вставить CommandButton 3 согласно рисунка1 меню-Разработчик-Вставить-Кнопка Изменить Properties - Caption -Очистить содержимое ячеек Дважды щелкнуть по кнопке для открытия среды программирования VBA Вставить код вместо автоматически сгенерированного Private Sub CommandButton3_Click() ListBox1.Clear 'очистка элементов управления от информации ListBox2.Clear Rng = "$A$6:$C$" & (10 + [B4]) Range(Rng).Clear End Sub
10. Вставить кнопку CommandButton 4 согласно рисунка1 Меню→Разработчик→Вставить→Кнопка. Изменить надпись на кнопке Properties → Caption →”Аппаратный генератор” Дважды щелкнуть по кнопке ”Аппаратный генератор” для открытия среды программирования VBA . Вставить программный код на языке VBA вместо автоматически сгенерированного программой: Private Sub CommandButton4_Click() 'расчет и анализ распределения случайных чисел аппаратно Dim k As Integer 'определение типа переменных Dim i As Long Dim mas As Integer Dim summa1 As Double Dim x As Integer, y() As Double Dim n As Integer summa1 = 0 'установка начальных значений mas = 0 ListBox2.Clear 'очистка элементов управления Range(Cells(6, 3), Cells(100, 3)).Clear n = [C4] 'установка размера массива If n <= 0 Then 'проверка ввода положительных чисел MsgBox "Введите положительные числа", 48 Exit Sub End If ReDim y(0 To n) As Double ' переопределение массива Cells(5, 1).Activate 'активация ячейки А5 For i = [A4] To [B4] Step [D4] 'определение значений диапазона чисел ActiveCell.Offset(1, 0).Activate ActiveCell.Value = i Next For i = [A4] To [B4] Step [D4] 'обнуление предыдущих результатов y(i) = 0 Next filename = TextBox1.Text 'получение адреса файла звукозаписи If filename <> "d:\proverka.wav" Then MsgBox " Файл не найден !": Exit Sub On Error Resume Next Open filename For Binary As #1 ' открытие файла звукозаписи на чтение k = 0 dat = 0 b = 1 sdf: Get #1, b, dat If dat = & H 61746164 Then GoTo qwert 'поиск начала данных в файле звукозаписи b = b + 1: GoTo sdf Qwert: For i = 0 To FileLen ( filename ) Step 4 'цикл чтения данных из файла звукозаписи через 4 байта Get #1, i + b + 4, a 'Читаем из файла одно значение левого стереоканала (для правого-i+b+6) If i > 100 Then 'убираем первые сэмплы данных пока не стабилизируется микрофонный канал x = a Mod 10 'определяем младший случайный разряд в сэмпле ListBox2.AddItem (Str(x)) 'выводим полученный массив случайных чисел For j = [A4] To [B4] Step [D4] 'вычисление результатов вероятностей If x = j Then mas = mas + 1 y(j) = y(j) + 1 End If Next End If If mas = [C4] Then Exit For 'окончание цикла при получении заданного размера массива Next i Close #1 'закрытие файла звукозаписи после чтения Cells(5, 3).Activate ' активация ячейки C5 For i = [A4] To [B4] Step [D4] ' вывод результатов в ячейки y(i) = y(i) / n ActiveCell.Offset(1, 0).Activate ActiveCell.Value = y(i) summa1 = summa1 + y(i) Next ActiveCell.Offset(1, 0).Activate ' вывод суммирования вероятностей ( должно быть 1) ActiveCell.Value = summa1 d = 0 'расчет критерия хи-квадрат hi = 0 For i = [A4] To [B4] Step [D4] d = (y(i) * n) - n / (([B4] - [A4] + 1) / [D4]) hi = hi + (d * d) / (n / (([B4] - [A4]) / [D4])) [F20] = hi Next End Sub
11. Добавить в программный код в самом начале перед всеми функциями следующее: Dim a As Long: Dim i As Long: Dim summa As Double ' определяем тип переменных Dim dat As Long: Dim b As Long: Dim filename As String Dim d As Double: Dim hi As Double
12. Создать модуль Module 1 в Меню→ Insert → Module 1. Добавить следующий код в модуль Module 1 :
Public Sub sluchprogr ( a () As Integer , kolvo As Variant , obj 1 As Object ) 'функция генерации случайных чисел Dim i As Integer Obj1.Clear 'очистка элемента управления от информации
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |