Методические указания по выполнению курсовой работы (1018767), страница 3
Текст из файла (страница 3)
Палитра цветов имеет до 16 кбит значений. Некоторые цвета обозначены через встроенные постоянные (константы) языка VB:ЦветЧерныйКрасныйЗеленыйЖелтыйСинийСиреневыйГолубойБелыйКонстантаvbBlackvbRedvbGreenvbYellowvbBluevbMagenyavbGyanvbWhiteЧисловое значение02556528065535167116801671193516777696016772215Этот метод следует применять совместно с установкой свойства DrawWidth (размер точки, целое число 1,2...) объекта Picture:Picture1.DrawWidth=3М е т о д Line[ИмяОбъекта.]Line(X1,Y1)-(X2,Y2)[,Цвет[,Флаг]]По умолчанию Цвет совпадает со значением свойства объекта ForeColor.Флаг= символ B, тогда рисуется незаполненный прямоугольник,если значение свойства FilleStile=1 (Transparent), или заполненный цветом ForeColor прямоугольник, если указанное свойствоимеет другое значение; BF, тогда прямоугольник будет закрашенуказанным цветом.
Толщина отрезка или контура определяетсясвойством DrawWidth.-18Пример:'Просто линии и прямоугольники:Private Sub Command1_Click()'Изображение тонкого красного горизонтального отрезка:Line(200,200) -(2200,200), 255'Изображение толстого голубого вертикального отрезка:DrawWidth=4Line(200,400) -(200,1400), vbCyan'Изображение красного наклонного отрезка средней толщины:DrawWidth=2Line(200,1800) -(2000,1100), vbRed'Изображение незакрашенного прямоугольника цвета, установленного по _умолчанию:Line(1400,1000) -(400,500), , B'Изображение красного закрашенного прямоугольника:Line(1600,500) -(2400,1000), 255, BFEnd SubМ е т о д Circle[ИмяОбъекта.]Circle(X,Y),Радиус[,Цвет[,Угол1_,Угол2[,КоэффициентСжатия]]]Здесь (X,Y) – координаты центра.
Цвет – выражение, определяемое также как для методов, описанных выше. Угол1 иУгол2 – начальный и конечный углы дуги или сектора. Углы задают в радианах в интервале от 0 до 2π. Нулевой угол соответствует горизонтальной оси, направленной вправо. Если перед ненулевым значением угла стоит знак "–" (минус), то это означает, чтодолжна быть нарисована дуга, а не сектор. При рисовании движение «пера» происходит всегда от Угла1 к Углу2, причем независимо от соотношения между ними и против часовой стрелки.Если угли не заданы, то рисуется полный круг или эллипс.КоэффициентСжатия – это положительное число, большее илименьшее единицы.
Сжатие происходит вертикали.УПРАЖНЕНИЕ 3. ПРОГРАММИРОВАНИЕ ГРАФИКИЗ а д а н и е 3 . 1 . Напишите программу-анимацию, изображающую на экране подъем флага.Указания: Для рисования флага воспользуйтесь методом Line:-19Picture1.Line (1600,2500)-(4400,3000),vbWhite, BFPicture1.Line (1600,3000)-(4400,3500), vbBlue, BFPicture1.Line (1600,3500)-(4400,4000), 255, BF Для анимации используйте перерисовку линии в цикле. Длятого, чтобы перерисовка нижней линии соответствовала фону,следует установить в свойствах Picture1 значение FilleStile<>1 и проследить, что BackColor=ForeColor.
Чтобы перерисовка шла в удобном для восприятия темпе, используйте циклс пустыми операторами внутри.Задание 3.2.3.2.1. Разработайте и протестируйте программу, выполняющуюпостроение графика заданной функции Y = X ^ 2 - 2 * X - 3, координатных осей и подписей на осях в заданном интервале изменения значений аргумента [-3;5].3.2.2. Дополните программу подпрограммой определения максимального и минимального значения функции и измените программу так, чтобы ею можно пользоваться как процедурой при произвольных значениях пределов изменения аргумента и функции.У к а з а н и е : Программный код простой программы построенияграфика и примерный вид соответствующей экранной формы:Private Sub Command1_Click()Picture1.BackColor = 0Picture1.Scale (-3, 5)-(5, -5)'Построение графикаFor X = -2 To 4 Step 0.01Y = X ^ 2 - 2 * X - 3Picture1.PSet (X, Y), vbGreenNext X'Axe XPicture1.Line (-3, 0)-(5, 0), vbCyanFor i = -3 To 4Picture1.PSet (i, 0), vbCyanPicture1.Print iNext i'Axe YPicture1.Line (0, -5)-(0, 5), vbCyanFor i = -4 To 5Picture1.PSet (0, i), vbCyanPicture1.Print iNext iEnd Sub-20-Рис.
3. Пример экранной формы с графиком функции.ЗАДАНИЕ ПО КУРСОВОЙ РАБОТЕПРОГРАММА ИССЛЕДОВАНИЯ ФУНКЦИЙ1.1. Разработайте и протестируйте программу, выполняющую построение графика заданной функции, координатных осей и подписей на осях в заданном интервале изменения значений аргумента.1.2.
Дополните программу п.1.1. так, чтобы на экранной формевыводились точки пересечения заданной функции с осьюабсцисс. Решение соответствующего уравнения выполните сточностью до 0,0001 одним из численных методов: дихотомия, метод хорд, касательных и т.п.1.3. Дополните программу п.1.2., запрограммировав вывод на экранизображения интеграла и производной функции (вариант: изображения графика производной и интеграла выполните на отдельных формах). Численное интегрирование проведите методом трапеций (методом Монте-Карло), задав не менее 100 точек для вычисления интеграла в интервале задания функции.1.4. С точностью до 0,001 методом трапеций вычислите площадьфигуры, образованной заданной функцией между 2 и 3-имкорнем и осью абсцисс.Варианты заданий по курсовому проекту приведены в табл.
3.Таблица 3. Варианты заданий по курсовой работе.№1.АргументФункция (N=1,2…5)y( x )10 , 9.9 .. 10xN((218 .N .x )N .( x ) 412.x3 , 2.99 .. 1x5 , 4.99 .. 2y( x)12y( x)28 . ( x)5232 4N .x4. N . x432. x 1. x44. N . xN.x4(14.N . x)(152-21-3.N42 . ( x)16 .( ( N .x ) 2) )N . x)52x1 , 0.99 .. 4y( x)( ( ( 2. N . x5.x4 , 3.99 .. 2y( x)2. N1) .
( 2. x50.5 . x38. x2) ) . ( x3) )28. x100 . ( x 1 )2 3NN . x 10436.7.x30 , 0.01 .. 21.9 , 1.89.. 3xsin N . xy( x )y( x)e2 x 1.0.2 , 0.21 .. 105x3. Ny( x )24. x1) )( 3 x)3y( x)0 , 0.01 .. 1010.xy ( x)0 , 0.01.. 2x4 , 3.99 .. 412.x3 , 2.99 .. 3y( x)y( x)20.25 . x20.25 . x1)210244 . sin( 3 . x)331x0.41N.( x )11.8 . ( x)N xN .
sin( x)2 2.ln 8 cos 4 x2-22-x0.2 . ( x 2 )22.(x9.42. xN . ( sin( 4 . x8.x430.8 . N0.1 . x5( sin( 2 . x0.8 . N41) )4N . ( cos ( x) )N . ( sin( ( 2 . x) ) )44N . ( cos ( x) )4( 2 . N . sin ( x) )13.x2 , 2.01 .. 183y( x)x14.x2 , 1.99 .. 53y( x)22N . ( x)xcos2x134x 12x 1N.102015.1x201x0 , 0.01 .. 3610 . ( N . ( e ) )16.5x6.x22xx 1( x)22x 4xx0 , 0.01 .. 6y( x)8N . ( e)17.N.x4 .
sinxxx4 , 3.99 .. 52 , 1.99 .. 16y( x)y( x)5xN . ( e)N . ( x)482x34. x4 . sin( N . x)2xx4246. N . x2-23-y( x)18.x. N6x2N .x( x)10 . e119.y( x)10 , 9.99 .. 1x0.2 . ( x1)N . sin( x)2 . sin( 3 . x1)320.x4 , 3.99 .. 4y( x)( 2 . x)224N . ( sin( ( 2 . x) ) )24.
xcos21.x23.x0 , 0.01 .. 10x4 , 3.99 .. 4y( x)24( 2 . x) . N . sin( ( 2 . x) )0.2 . ( xy( x)y( x)30.25 . x24.2)0.8 . Nsin( x)24. N . xcos0 , 0.01 .. 6y( x)e8N.xx444 . N . sin( 3 . x)( sin( 2 . x 1 ) )34x 4xx4-24-22.4 , 3.99 .. 4x44 . sin N .x424N . ( cos ( x) )22x-25УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫПример выполнения задания приведен на рис.4Рис.4. Результат работы программы исследования функции.Определение корней уравненияДихотомия - метод последовательного деления отрезка пополам. Пусть задано уравнение F(x)=0, причем функция F(x) непрерывна на некотором отрезке [a,b] и F(a)·F(b) < 0. Если функцияменяет знак на отрезке [a,b], то на этом отрезке она пересекает осьабсцисс нечетное число раз. Пусть корень только один.
Разделимотрезок [a,b] пополам: x=(a+b)/2. Далее возможны три случая:− если F(x)=0, то x есть искомый корень уравнения;− если F(a)·F(x)>0, то перемена знака функции имеет место вправой половине отрезка и следует положить, что a=x и продолжить процесс деления пополам;− если F(a)·F(x)<0, то перемена знака функции имеет место влевой половине отрезка и, задав b=x опять продолжить процессделения отрезка пополам;Процесс деления пополам можно завершить, когда выполнится одно из условий: либо F(x)<ε , либо b-a<ε, где ε - заданнаяпогрешность вычислений.-26Отыскание корня уравнения удобно оформить отдельнойфункцией.Для определения интервалов изоляции корней необходимопросмотреть последовательно пары соседних значений функциипри заданном шаге разбиения области задания функции. При выполнении условия отрицательности произведения соседних значений функции следует обратиться к функции отыскания корня.Пример: построение графика функции Y(x)=x2-2x-3 и определение точек пересечения с осью абсцисс.'Определение типов переменных:Public mx, mn, a, b, d, x, ff As DoublePublic num As IntegerPublic i As IntegerPublic xmin As IntegerPublic xmax As IntegerPublic ymin As IntegerPublic yman As IntegerPublic epsilon As DoublePublic X1 As DoublePublic X2 As DoublePublic Maxstr, Minstr, Tmpstr As String'Динамическое определение массиваDim f() As Double'Вывод таблицы значений функции и экстремальных значений:Private Sub Command_TABL_Click()a = Val(AText.Text)b = Val(BText.Text)d = Val(StepText.Text)num = Int((b - a) / d)ReDim f(num + 1)mx = a ^ 2 - 2 * a - 3mn = a ^ 2 - 2 * a - 3TablList.ClearFor i = 0 To numx = a + i * dTmpstr = Str(x) & ""f(i) = x ^ 2 - 2 * x - 3If mx < f(i) Then mx = f(i)If mn > f(i) Then mn = f(i)Tmpstr = Tmpstr + Str(f(i))-27TablList.AddItem (Tmpstr)Next iTmpstr = Str(B) & ""f(num + 1) = b ^ 2 - 2 * b - 3If mx < f(num + 1) Then mx = f(num + 1)If mn > f(num + 1) Then mn = f(num + 1)Tmpstr = Tmpstr + Str(f(num + 1))TablList.AddItem (Tmpstr)MAXText.Text = Str(mx)MINText.Text = Str(mn)End Sub'Построение графика:Private Sub Command_GRAPH_Click()Dim yymax As IntegerDim yymin As IntegerDim xxmin As IntegerDim xxmax As Integeryymax = Int(Abs(mx)) + 1yymin = Int(Abs(mn)) + 1xxmax = Int(Abs(B)) + 1xxmin = Int(Abs(A)) + 1'Процедура построения графикаCall Figureee(xxmin, xxmax, yymin, yymax)End Sub'Определение корней:Private Sub RootCom_Click()Dim FA, FB, x1, x2 As DoubleDim xroot, xroot1 As DoubleDim j As IntegerDim Xstr As StringDim K As IntegerK = 0RootList1.ClearFor j = 0 To numx = A + j * dFA = xfunc(x)FB = xfunc(x + d)If FA = 0 Thenxroot = xx1 = xx2 = x-28j = j + 1K = K + 1Xstr=Str(x1)+""+Str(x2)+_"" + Str(xroot) + " " + Str(K)RootList1.AddItem (Xstr)ElseIf FA * FB < 0 Thenx1 = xx2 = x + dxroot = rootfunc(x1, x2)K = K + 1Xstr = Str(x1) + "" + Str(x2) + _"" + Str(xroot) + " " + Str(K)RootList1.AddItem (Xstr)End IfNext jEnd Sub'Функция вычисления значения функции в заданной точкеPublic Function xfunc(ByVal u As Double) As Doublexfunc = u ^ 2 - 2 * u - 3End Function'Функция определения корня методом дихотомии:Public Function rootfunc(ByVal xleft, xright As Double) As Doubleepsilon = 0.00000001Dim AA As DoubleDim BB As DoubleDim FA As DoubleDim Fx As DoubleDim xx As DoubleAA = xleftBB = xrightFA = xfunc(AA)Doxx = (AA + BB) / 2Fx = xfunc(xx)If FA * Fx > 0 ThenAA = xxElseBB = xxEnd If-29LoopUntilBB - AA < epsilonrootfunc = xxEnd FunctionAbs(Fx)<epsilonOr_Построение графика производнойДля построения графика производной достаточно вычислитьзначения производной функции в точках, соответствующих центрам интервалов сетки (т.е.
между точками разбиения области задания функции). В большинстве случаев при этом можно использовать приближенное соотношение, вытекающее из определенияпроизводной. Для построения графика производной в том жеграфическом окне следует изменить масштаб оси ординат (практически удобнее рядом со старой осью 0Y дорисовать новую осьпроизводной 0Y' в измененном масштабе).Интегрирование функцийМетод средних прямоугольников.
Отрезок интегрирования делится на n равных частей длины h=(b-a)/h. Обозначимx0=a, x1=x0+h, ... xi=x0+i·h, ... xn=b, yi=f(xi). Заменяя на каждом отрезке длиной h подинтегральную функцию f(x) постоянной величиной, равной значению функции в середине интервала разбиения f(xi+h/2) , получаем:b⎛ n⎞⎜⎜ ∑ yi −1 / 2 ⎟⎟()f(x)dxhyy...y...yh≈++++=1/ 23/ 2i −1 / 2n −1 / 2∫⎝ i =1⎠aМетод трапеций.