Задание №4.
1)
Вычислить табличным способом по интерполяционной формуле Ньютона с 8 значащими цифрами (результат представить в табличной форме).
Интерполяционная формула Ньютона:
, где
Пример вычисления
При n = 7 и x = 4412,345 имеем:
Приближённое значение
б)
А |
РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ СО ЗНАЧЕНИЕМ а |
a0 |
3,5 |
a1 |
3,3428966 |
a2 |
3,3170230 |
a3 |
3,3164016 |
a4 |
3,3164010 |
a5 |
3,3164010 |
Аналогично вычислим приближенное значение корня для остальных значений X.
Вычисления приведены в табличной форме Excel.
Задание №5.
Сформируем вектор B(N), где N = 20. То есть создадим массив В(20), где его элементы предложим заполнить либо в ручную (InputBox), либо случайным образом (Rnd). И создадим возможность выводить на экран все отрицательные числа массива В(20). Для удобства представим к выводу количество всех элементов, всех отрицательных и их процентное соотношение.
Решение задачи представлено в приложении VBasic.exe, первоначальная структура этой программы представлена в проекте VBasic.
Задание №6.
№ 11
Обработка результатов соревнований.
Следуя из условий задачи, мы составим
№ 69
Программа вычисления суммы , где Р равно произведению .
Следуя из условий задачи, мы должны составить программу, которая будет отображать результат выражения P каждого j-ого числа от 1 до 20 на числовой оси P, а также в таблице P(j), полное произведение всех этих чисел и сумму P(n) в таблице S(P(n)).
Расположение объектов на форме выглядит так:
Свойства каждого из объектов представлены в таблице:
-
Элемент управления
Свойства
Значения
Form1
Caption
Название
Данные лейблы служат заголовками
Label1
Caption
Формулировка задания
Label2
Caption
«Всего чисел»
Label3
Caption
«Отрицательных»
Label4
Caption
«В процентах»
Данные лейблы служат для вывода результатов
Label5
Name
K1
Label6
Name
K2
Label7
Name
K3
Данные листбоксы служат для вывода элементов массива
ListBox2
Name
Otrizat Massiv
Appearance
0 - Flat
ListBox2
Name
Otrizat
Appearance
0 - Flat
Следующие командные кнопки создают и сортируют массив
CommadButton1
Name
Command1
Caption
«Создать»
CommadButton2
Name
Command2
Caption
«Найти все отрицательные числа»
Схема алгоритма решения данной задачи:
Подробный алгоритм решения данной задачи:
Код программы с комментариями:
Dim n, i, x, j As Integer ' переменные, которые используются в цикле
Dim Sn As Single 'переменная для хранения суммы произведений Pn
Dim S As Single 'перменная для хранения полной суммы
Dim S1 As Single 'переменная для хранения суммы произведений Pn до определённого n
Dim P1 As Single 'переменная для хранения произведений Pj до определённого n
Dim Sj1 As Single 'переменная для хранения суммы Pj до определённого n
Dim Sj As Single 'переменная для хранения суммы Pj
Dim Pj1 As Single 'переменная для хранения Pj определённого n
Dim Pj As Single 'переменная для хранения результата основного выражения
Dim Pn As Single 'переменная для хранения произведений Pj
Dim P As Single 'переменная для хранения полного произведения Pj
Sub Command1_Click() 'кнопка с командой "Пуск"
List1.Clear 'очистить лист1
List2.Clear 'очистить лист2
'обнуляем переменные
Pn = 1
Sn = 0
Sj = 0
n = Val(txtN.Text) 'присваиваем определённому n введённое значение
For j = 1 To 20 'считаем Pj от 1 до 20
Pj = ((j + 1.5) ^ 3) / ((10000) ^ 1 / j) 'основное выражение
Sj = Sj + Pj 'сумма Pj
Pn = Pn * Pj 'произведение Pj
Sn = Sn + Pn 'сумма Pn
List1.AddItem "P(" + Str(j) + ") = " + Str(Pj) 'вывод Pj
List2.AddItem "S(P(" + Str(j) + ")) = " + Str(Sn) 'вывод Sn
If j = n Then 'находим нужное нам число n и сохраняем его параметры:Pj1, P1, S1, Sj1
Pj1 = Pj
P1 = Pn
S1 = Sn
Sj1 = Sj
End If
Next 'конец цикла
S = Sn 'сохраняем полную сумму и произведение
P = Pn
lblSp.Caption = Str(S) 'выводим их на экран
lblPp.Caption = Str(P)
End Sub
Private Sub Command2_Click() 'кнопка с командой "Показать на числовой оси P(j)"
n = Val(txtN.Text) 'присваиваем определённому n введённое значение
Picture1.Cls 'очищаем картинку
Picture1.Line (0, 350)-(10100, 350) ' строим ось
Picture1.Line (10100, 350)-(10050, 400) 'строим стрелку
Picture1.Line (10100, 350)-(10050, 300)
For x = 1 To 20 'строим шкалу, где одно деление в 500 твипов соответствует 1
Picture1.Line (500 * x, 0)-(500 * x, 150)
Next x
For j = 1 To 20 'показываем точки на оси, соответствующие значению Pj
Pj = ((j + 1.5) ^ 3) / ((10000) ^ 1 / j)
Picture1.Circle (Pj * 500, 350), 20
If j = n Then 'добавляем точку жёлтого цвета, соответствующую значению Pj при j = n
Picture1.Circle (Pj * 500, 350), 50, &HFFFF&
End If
Next
End Sub
Private Sub Command3_Click() 'кнопка с командой "Показать"
Call Command1_Click 'включаем кнопку "Пуск", там заложен нужный нам цикл
lblSj1.Caption = Str(Sj1) 'выводим все параметры числа n
lblS1.Caption = Str(S1)
lblP1.Caption = Str(P1)
lblPj1.Caption = Str(Pj1)
End Sub
Private Sub nmk_Click()
Kod.Show 'показываем программный код
End Sub
Private Sub nmw_Click() 'выходим из программы
Unload Me
End Sub
Private Sub nmz_Click() 'показываем задание
Zadan.Show
End Sub