Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коробов Р.И. ЭМА-81 11 вариант.doc
Скачиваний:
3
Добавлен:
05.09.2019
Размер:
266.24 Кб
Скачать

Задание №4.

1)

Вычислить табличным способом по интерполяционной формуле Ньютона с 8 значащими цифрами (результат представить в табличной форме).

Интерполяционная формула Ньютона:

, где

Пример вычисления

  1. При n = 7 и x = 4412,345 имеем:

  1. Приближённое значение

б)

А

РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ СО ЗНАЧЕНИЕМ а

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