Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика экзамен.doc
Скачиваний:
69
Добавлен:
17.03.2016
Размер:
498.18 Кб
Скачать

4.1 Метод прямоугольников

находится методом прямоугольников. Отрезок [a, b] разбивается на n частей x=a, x=a+h, ..., x=b с шагом h=(b-a)/n. На каждом отрезке [x, xi+1 ] вычисляется значения интеграла по формуле прямоугольников, таким образом:

Затем количество точек разбиения удваивается и производится оценка точности вычислений:

R = |S2-S|

Если R> 3*e, то количество точек разбиения удваивается.

ПрограPrivate Sub Command62_Click()

Form2.Show

Form6.Hide

End Sub

Private Sub Command63_Click()

Picture66.Cls

End Sub

Private Sub Command64_Click()

a = Text2

B = Text3

L = Text6

h = ((B - a) / L)

Picture66.Scale (-0.04, 5)-((B + 0.3), -B)

Picture66.Line (-1, 0)-((B + 5), 0)

Picture66.Line (0, -10)-(0, 20)

For i = 0 To 20 Step 0.5

Picture66.PSet (0, i)

Picture66.Print i

Next

For i = 0.25 To (B + 2) Step 0.25

Picture66.PSet (i, 0)

Picture66.Print i

Next

For i = a To B Step 0.001

Picture66.PSet (i, i / (i ^ 4 + 3 * i ^ 2 + 2)), RGB(255, 0, 0)

Next

'a = 1

'B = 2

'L = 10

'h = ((B - a) / L)

'h = 0.001

For i = a To B + h Step h

Picture66.Line (i, i / (i ^ 4 + 3 * i ^ 2 + 2))-(i, 0), , B

'Picture66.Line (i + h, (i + h / 2) / ((i + h / 2) ^ 4 + 3 * (i + h / 2) ^ 2) + 2)-(i, 0), , B

'Picture66.Line (i + h, (((i + h) / 2) / ((i + h) / 2) ^ 4 + 3 * ((i + h) / 2) ^ 2 + 2))-(i, 0), , B

NextEndSub

4.2 Метод Симпсона (метод парабол)

ПустьY=, где- интегрируемаяфункция, непрерывная на отрезке. Для наглядностибудемпредполагать, чтоположительна на отрезке. В этомслучаеYпредставляетсобойплощадькриволинейнойтрапеции, ограниченнойлиниями: ,,,. Выберемпроизвольноенатуральноечётное числои разобьёмотрезокнаравныхотрезков при помощиточек:,,,, … ,. Прямыеразбивают нашу трапецию наполосок. Каждая полоса имеетграничные вертикали:и. Отметим точки, в которыхэти вертикали пересекаютинтегрируемуюфункцию. В результатеполучились точки:,,, … ,. На всёмотрезкеинтегрирования через точкиипроведёмграфикиквадратичныхфункций. В результатеполучилось, чтоплощадьдвухсоседнихполосок, ограниченныхпрямымииприближённоравнаплощадиподпараболой, проведённой через точкии(см. рис. №2).

Вычислимплощадьподпараболой, проходящей через точки и. Уравнениепараболыимеетобщий вид. Площадьподпараболой:(). Парабола проходит через три точки,и, где. Решая систему изтрёхуравнений,

получаем: .

Подставляем в формулу. Отсюдаследует, что, где. Распространяем на весь отрезок:

. Запишем с применениемматематическихоперандов:(форм.). Данная формула называетсяформулойСимпсона. Еёточностьзависит от. Чембольшеколичестворазбиенийотрезкаинтегрирования, тем вышеточностьвычислении.

33.Одновимірні масиви. Приклади використання.

Масиви дозволяють оперувати множиною данних, використовуючи одне ім’я й індекс доступу до конкретного елемента.

Масив може бути одновимірним (вектором), та багатовимірним (наприклад, двовимірною таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких збігається з розмірністю масиву. Тобто одновимірний масив має фіксовану к-сть елементів одного і того ж типу, що визначаються при оголошені масиву. Одновимірний масив оголошується з використанням наступного синтаксису:

Dim ArrayName(n) as type

ArrayName - це ім’я масиву, яке підпорядковується тим же правилам, що й імена звичайних змінних.N – задає найбільший індекс у масиві, к-сть елементів. Type – будь-який тип данних.

Dim myArray(100) as integer – цей оператор створює масив із цілих чисел. Оскільки за замовчуванням нумерація індексів розпочинається з 0, то цей масив буде містити 101 елемент від 0 до 100. Після створення масиву, доступ до його елементів здійснюється за допомогою будь-якого виразу, що обчислює індекс.Розглянемо приклад:

myArray(100)=15

х=1

myArray(х)=20 еквівалентно myArray(15)=5

Наступний фрагмент заповнює масив, оголошений раніше, значеннями 0, 2, 4 і тощо:

Fori=0 to 100

myArray(i)=1*2

next i

Якщо ви не хочете, щоб індекси в масиві починалися з нуля, цілком можливі два підходи. Можна на початку модуля помістити оператор OptionBase 1, до оголошення всіх масивів, при цьому індекси в них будуть починатися з одиниці.

Приклад використання одновимірного масиву:

OptionBase 1

Sub num8()

Dim Vals(3) as integer

Vals(1)=int(100*Rnd())

Vals(2)=int(100*Rnd())

Vals(3)=int(100*Rnd())

MsgBox “lottery numbers: “&Vals(1)&”, “&_

vals(2)&”, “&vals(3)”

end sub

  1. Двовимірні масиви. Приклади використання.

Перед створенням двовимірний масив також оголошують, при цьому залежно від місця оголошення масив може бути як локальним, так і глобальним. Якщо кількість елементів масиву відомо, то це масив з фіксованими межами. У випадку змінної кількості елементів створюють динамічний масив. Для оголошення масиву використовують оператор

^ Dim<ім’я масиву> (<число1>,<число2>)[<As тип даних>]? де імя масиву – імя змінної типу «масив», число1 – розмір масиву (число рядків), число2 – розмір масиву (число стовпців), тип даних – тип даних масиву, за замовчуванням – тип Variant.Кожен елемент масиву має свій індекс (місце розташування в масиві), що складається з номера рядка та номера стовпця. По замовчуванню значення нижньої ежі масиву дорівнюється нулю.

Але, якщо в розділі General модуля програми помістити оператор OptionBase 1, то елементи масиву будуть нумеруватись з одиниці. При необхідності базовий індекс при оголошенні масиву можна змінювати шляхом використання ключового слова То: Dim StrMyArray(1 To 3, 1 To 4) As String.Під час роботи з масивами використовують оператори циклу For…Next, при цьому лічильник повторень циклів пов’язується з індексами елементів.В якості індексів можна використовувати не тільки константи, але і змінні, що дає можливість задавати дії над будь-якими елементами масиву. В пам’яті елементи двовимірного масиву розташовуються по рядках.В мові VB 6.0 не визначені операції із матрицями, тому будь-яка обробка матриць здійснюється поелементно.Наведемо приклади типових алгоритмів обробки матриць.

Приклад. ^ Введення двовимірного масиву В розміром 4х5 можна здійснити за допомогою опереторів:

Dim B(4,5)

For i=1 To 4

For j=1 To 5

B(i,j)=Inputbox(“Введіть B(“& i &”,”& j &”)” & “елемент масиву”, “Вікно вводу матриці”)Next jNext i

Приклад. ^ Сумування елементів масиву. Для двовимірного масиву В розміром NxM необхідно обчислити S=0 For i=1 To N For j=1 To M S=S+B(i,j)Next jNext i Приклад. ^ Підсумовування матриць. Для двовимірних масивів А та В розміром NxM. For i=1 To N For j=1 To M C(i,j)=A(i,j)+B(i,j) Next j Next i

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]