
- •Содержание
- •17.2.2. Свойства 130
- •17.6.2. Свойства 133
- •17.7.2. Свойства 134
- •18. Меню 139
- •Основные понятия ооп
- •Объекты
- •Классы объектов
- •Свойства
- •События
- •Три основных принципа ооп
- •Инкапсуляция
- •Наследование
- •Полиморфизм (имеющий много форм)
- •Визуальное проектирование интерфейса
- •Событийно-управляемое программирование
- •Процесс создания приложений
- •Интегрированная среда разработки (иср) visual basic
- •Общая организация программы в vb
- •Структура проекта vb
- •Структура событийной процедуры
- •Общее описание среды vb
- •Краткая характеристика элементов управления, используемых при создании простых приложений
- •Основные свойства, методы и события объектов vb
- •Основные элементы языка Vb
- •Типы данных
- •Переменные
- •Объявление переменных
- •Explicit-объявление
- •Константы
- •Выражения и операции
- •Стандартные подпрограммы
- •Математические функции vb
- •Функции преобразования данных vb
- •Операторы
- •Простые операторы
- •Оператор присваивания
- •Операторы вызова процедур
- •Оператор безусловного перехода
- •Системные диалоговые окна
- •Диалоговое окно ввода информации InputBox
- •InputBox(Приглашение,Заголовок,НачЗначение),
- •Окно сообщения MsgBox
- •Ввод и вывод данных в vb
- •Ввод данных
- •Вывод результатов
- •Функция Format
- •Структурные операторы
- •Условные операторы
- •Оператор выбора Select … Case
- •Операторы повтора
- •Циклы с параметром
- •Элемент управления Slider
- •Циклы с условием
- •Использование рекуррентной формулы для вычисления суммы ряда
- •Использование функции Timer
- •Подпрограммы пользователя
- •Пользовательские процедуры
- •Способ передачи аргументов
- •Функции пользователя
- •Массивы
- •Оператор Option Base
- •Динамические массивы
- •Функции lBound и uBound
- •Функция Rnd
- •Оператор Erase
- •Типовые задачи на обработку одномерных массивов
- •Формирование массива с помощью функции Split
- •Линейная сортировка массива
- •Уплотнение массива
- •Вставка элемента в массив
- •Изменение положения элементов на некотором отрезке
- •Кольцевой сдвиг элементов массива
- •Двумерные массивы
- •Ввод и вывод двумерных массивов
- •Формирование двумерного массива с помощью диалогового окна InputBox и функции Split
- •Вывод двумерного массива с помощью элемента управления msFlexGrid
- •Типовые задачи на обработку двумерных массивов
- •Преобразование двумерных массивов
- •Типовые задачи с квадратными матрицами
- •Массивы в качестве формальных параметров в процедурах и функциях пользователя
- •Данные строкового типа
- •Операции над строками
- •Функции, предназначенные для работы со строками
- •Функция Split
- •Функция Join
- •Оператор Mid
- •Типовые задачи на обработку строк
- •Анализ символьных строк
- •Изменение строк (замена, удаление, вставка символов)
- •Функции и операторы для работы с файлами
- •Открытие файлов
- •Закрытие файлов
- •Работа с файлами последовательного доступа
- •Чтение данных
- •Запись данных
- •Элемент управления CommonDialog
- •Графика в vb
- •Методы графики в vb
- •Задание цвета
- •Свойства объектов, влияющих на графические методы:
- •Применение метода Scale
- •Построение графика функции
- •Некоторые дополнительные элементы управления, которые часто используются в проектах.
- •Объект управления Shape (Фигура)
- •Свойства
- •Объект управления Timer
- •События
- •Свойства
- •Окна общего диалога
- •Создание меню
- •Свойства
- •Работа с несколькими формами
-
Использование рекуррентной формулы для вычисления суммы ряда
Рекуррентной называется всякая формула, выражающая каждый член последовательности через предыдущие члены этой последовательности. Используется чаще всего в целях избавления от больших чисел при вычислении суммы членов последовательности.
Как
правило, в этом случае рекуррентная
формула имеет вид:
,
откуда, зная общий член последовательности,
можно будет найти коэффициент c,
на который нужно умножать каждый
предыдущий член последовательности,
чтобы найти следующий:
Пример. Вычислить
.
Найдем коэффициент
c, разделив
:
Таким образом, очередной член ряда можно вычислить по рекуррентной формуле:
.
Пример 3. Найти количество членов
бесконечного ряда
, сумма которых дает приближенное
значение sin(x)
с точностью ε=10-4.
Private Sub Command1_Click() Const Pi = 3.14159265358979 Eps = Val(Text4.Text) 'Точность x = Val(Text1.Text) 'Аргумент x x = x / 180 * Pi 'Перевод в радианную меру f = Sin(x) 'Вычисление точного значения функции s = 0 'Инициализация переменной s a = x 'Первый член ряда k = 1 'Вывод значения Sin(x) по формату Text2.Text = Format(f, "0.000E+")
|
|
Do
While
Abs(f
- s)
> e
'Цикл
выполняется пока условие
a = -a * x ^ 2 / (2 * k) / (2 * k + 1) s = s + a: k = k + 1 Loop Text3.Text = Format(s, "0.000E+") Text5.Text = Str(k) End Sub |
Замечание. Иногда возникает необходимость переделать цикл типа For…Next на цикл Do…Loop (наоборот не всегда получается).
For…Next |
Do…Loop с предусловием |
Do…Loop с постусловием |
For i = 1 to n Тело цикла Next i |
i = 1 Do While i <= n Tело цикла i=i+1 Loop |
i=1 Do Тело цикла i=i+1 Loop Until i > n |
-
Использование функции Timer
Условие продолжения или завершения цикла не всегда связано только с внутренними причинами, - изменяющимися от шага к шагу значениями каких-либо переменных. Часто, например, цикл завершается после того, как исчерпывается отпущенное на его выполнение время. Чтобы реализовать такое условие, следует воспользоваться системной функцией Timer. Она возвращает текущее время с точностью до 0,01 сек.
Пример 4. Вычислить сумму бесконечного ряда с использованием функции Timer
Private Sub Command1_Click() Dim x,y,a As Single Eps = Val(Text1.Text) T=Timer 'Зафиксировали время начала работы программы s = 0: n = 1 Do a = n/(n^2+1) s=s+a: n=n+1 If Timer-T>10 Then Exit Do 'Если разница между текущим 'временем и временем начала работы больше 10 сек, то выход из цикла Loop Until a<0.0001 End Sub |