Материал: posobie_po_informatike_Chast1_Word

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Нарушение хотя бы одного из указанных выше условий входа в цикл обращает составное условие в ложь и приводит к выходу из цикла. А если в самом начале пробная точка окажется в точке корня, то входа в цикл не будет.

Последняя ситуация (нет входа в цикл) приводит к неопределенности динамического массива с именем “mas”, содержащего приближения к корню (координаты центральных точек интервала поиска) и наращиваемого по длине по мере надобности (количество элементов определяется счётчиком N). Если не было входа в цикл (N=0), то искусственно массив формируется из одного элемента, которому передается значение координаты первой пробной точки, являющейся точкой корня.

Динамический массив “mas” определяется в два этапа: сначала в инструкции “Dim” с помощью двух подряд круглых скобок (открывающей и закрывающей), помещаемых после имени массива, принципиально объявляется массив; далее в цикле с помощью инструкции “ReDim” (Return Dimension – возврат к определению размерности) задаются границы нумерации элементов массива. Служебное слово “Preserve” является обязательным, без этого слова значения элементов массива не сохраняются в памяти.

В подпрограмме “Расчет” (в самом её начале) проверяется условие локализации. В условном операторе, выполняющем эту проверку, фигурирует обратное условие. Если оно истинно, то выводится соответствующее сообщение и выполняется выход (Exit) из подпрограммы. А перед этим величине “x” (переменной универсального типа Variant, соответствующей фактическому параметру “корень”), присваивается значение некоторой символьной константы (символы помещаются в кавычки, например, “???”; возможна пустая строка – двое кавычек (открывающих и закрывающих) подряд; тогда на форме проекта поле значения корня будет пустым). Если бы определить формальную переменную “x” и соответствующую ей в главной подпрограмме фактическую переменную “корень” как числовую, а при отсутствии корня в интервале поиска не присвоить этой переменной никакого значения, то в поле вывода автоматически был бы вывод значения “0” (ноль), что не соответствует истине.

Дополнительно в данный проект включена возможность наблюдать за процессом последовательных приближений к корню. Для этого в подпрограмме расчёта накапливается упомянутый выше массив “mas”. В конце данной подпрограммы этот массив передается на форму в списковое поле с именем “List1” (стандартное имя ListBox). В программу ещё включена возможность отображать на форме значения функции при отдельных значениях приближений к корню. Это реализуется в подпрограмме с именем “List1”. Она выполняется при щелчке ЛКМ на выбранной строке в поле “List1”. Значение, отображённое символами в строке, считывается и в преобразованном числовом виде передаётся как аргумент функции с именем “F”, определяющей выражение уравнения, а вычисленное значение функции выводится на форму в поле с именем “Text5”.

В качестве примера в данном проекте взято уравнение, выражающееся функцией f(x)=(x-1)^2-1 и имеющее два корня: x1=0 и x2=2.

Оборудование, инструменты и приборы

ПЭВМ, программное обеспечение Microsoft Office (Excel 2007).

Таблица 3.5

Варианты заданий

Для всех вариантов допустимая погрешность вычисления корня нелинейного уравнения =0,01.

№ варианта

F(x)

[a;b]

№ варианта

F(x)

[a;b]

1

sin(x)

[2;5]

16

(x-2)^2-1

[0;1]

2

sin(x)

[7;10]

17

(x-2)^2-1

[2;4]

3

-sin(x)

[-1;2]

18

(x-2)^2-2

[0;2]

4

-sin(x)

[5;8]

19

(x-2)^2-2

[3;5]

5

cos(x)

[-1;3]

20

-(x-2)^2+3

[0;2]

6

cos(x)

[3;5]

21

-(x-2)^2+3

[3;5]

7

-cos(x)

[-2;1]

22

(x-3)^2-1

[0;3]

8

-cos(x)

[2;5]

23

(x-3)^2-1

[3;5]

9

ln(x)

[0,5;3]

24

sin(x)-x^2

[0,5;1]

10

ln(x-1)

[1,5;4]

2

cos(x)-ln(x)

[0,5;2]

11

ln(x-2)

[2,5;4]

26

-2*(x-)+sin(x-1)

[0;3]

12

ln(x-3)

[3,5;5]

27

x-cos(x)

[0;3]

13

e^x-2

[0;1]

28

x+cos(x)

[-1;1]

14

e^x-10*x

[0;1]

29

x-2-ln(x)

[0;1]

15

e^x-x^2

[0;1]

30

2*x-sin(x)

[-1;2]

Порядок выполнения работы

1. В начале работы следует выполнить 4 варианта поиска корня по программе примера из файла “Бисекция”:

1) на интервале [1,6];

2) на интервале [1,3];

3) на интервале [3,6];

4) на интервале [-1,6].

Первые два варианта дают решение x=2. В варианте 3 нет решения, так как на заданном интервале корня нет. В варианте 4 также нет решения, но в данном случае так как на заданном интервале имеется два корня.

  1. Создать в личной папке копию файла “Бисекция” с именем “Бисекция вар № …” (в имя файла вставить номер своего задания).

  2. Заменить в подпрограмме-функции “F” выражение функции на выражение для своего варианта.

  3. Выполнить программу поиска корня при своих данных (границах интервала поиска).

  4. Завершить работу щелчком ЛКМ на пункте «Завершение сеанса <имя группы>».

Содержание отчета

Отчет должен содержать:

  • номер, название и цель работы;

  • краткую теоретическую часть, включающую словесное описание и блок-схему алгоритма метода бисекции поиска корня нелинейного уравнения;

  • результаты выполнения работы согласно заданию, выданному преподавателем, а именно: форму с результаты выполнения программы и текст программы;

  • заключение по работе.

Контрольные вопросы

  1. Каково условие начальной локализации корня?

  2. Каково условие выделения отрезка, содержащего корень?

  3. Каково основное условие окончания процесса поиска корня?

ЛАБОРАТОРНАЯ РАБОТА №19

Редактор vba. Оператор цикла со счетчиком

Цель работы:

  • познакомиться с оператором цикла со счетчиком For… Next;

  • получить навыки создания программного модуля с использованием оператора цикла со счетчиком For… Next;

Теоретическая часть

Рамочные служебные слова:

For – «для».

Next – «следующий».

Это инструкция для выполнения наборов инструкций определённое (фиксированное) число раз, сколько раз интервал шага помещается между начальным и конечным значениями счётчика плюс единица.

Часто в качестве счётчика выступает номер (индекс) элемента массива.

Общий формат оператора (рис. 59)

Рис. 59. Общий формат оператора

Переменная «Счётчик» имеет числовой тип целый ( Integer или Long). Ключевое слово Step необязательное, по умолчанию шаг равен 1.

Циклы For … Next могут вкладываться друг в друга, при этом они должны иметь уникальные переменные – имена счётчиков.

Массив – это группа, как правило, фиксированного числа переменных одного типа, объединяемая одним групповым именем. Доступ к отдельным элементам массива осуществляется указанием этого группового имени, а за ним при программировании на языке Basic в круглых скобках указанием порядкового номера (индекса) необходимого элемента.

Примеры объявления массивов

  1. Объявление одномерных массивов

m1

m10

m11

m12

Dim m1(2) As Single

номер конечного элемента

Номер начального элемента по умолчанию равен нолю.

X

x1

x2

x3

Dim x (1 To 3) As Integer

Явное указание номера начального элемента

  1. Объявление двумерных массивов

a11

a12

a13

A

a21

a22

a23

Dim a (1 To 3, 1 To 3) As Single

a31

a32

a33

Источник: https://files.student-it.ru/previewfile/281619