Реферат по предмету "Математика"


Нахождение всех действительных корней алгебраического многочлена методом деления отрезка пополам (бисекции) и методом хорд и касательных с указанной точностью и учетом возможной кратности корней

Федеральная Авиационная Служба России МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ Кафедра прикладной математики Курсовая работа защищена с оценкой . Руководитель доцент, к.т.н. Лукина О. П. подпись КУРСОВАЯ РАБОТА по теме НАХОЖДЕНИЕ ВСЕХ ДЕЙСТВИТЕЛЬНЫХ КОРНЕЙ


АЛГЕБРАИЧЕСКОГО МНОГОЧЛЕНА МЕТОДОМ ДЕЛЕНИЯ ОТРЕЗКА ПОПОЛАМ БИСЕКЦИИ И МЕТОДОМ ХОРД И КАСАТЕЛЬНЫХ С УКАЗАННОЙ ТОЧНОСТЬЮ И УЧЕТОМ ВОЗМОЖНОЙ КРАТНОСТИ КОРНЕЙ Пояснительная записка к курсовой работе по дисциплине Численные методы Работу выполнили студенты 5-го курса специальности 01.02 А Семенчихин Владимир


Владимирович Семенчихин В.В 28.X1999 года. МОСКВА - 1999 АННОТАЦИЯ В данной курсовой работе рассмотрен принцип нахождения корней алгебраического многочлена следующими численными методами метод бисекции, метод хорд и касательных, метод разложения на множители с учетом определяемой точности и проверки кратности корней, а также в среде Visual Basic for Applications 6.0 была разработана программа, реализующая этот поиск и проверку.


В пояснительной записке приводится описание как самих численных методов, так и программы, включая примеры и экранные копии. 1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Разработать программу для вычисления корней алгебраического многочлена следующими численными методами методом половинного деления, методом хорд и касательных, методом разложения на множители, а также обеспечить вычисление значений корней с указываемой точностью и проверку кратности корней. Среда разработки программы произвольная.


2. ПРЕДМЕТНАЯ ОБЛАСТЬ 1. Описание численных методов Численные методы позволяют найти решения определенных задач, заранее зная, что полученные результаты будут вычислены с определенной погрешностью, поэтому для многих численных методов необходимо заранее знать уровень точности, которому будет соответствовать полученное решение. В этой связи задача нахождения корней многочлена вида 1


Fxa0a1xa2x2anxn 1 представляет особый интерес, т.к. формулы нахождения корней даже кубического уравнения достаточно сложны, а если необходимо отыскать корни многочлена, степень которого равна, например, 5 то без помощи численных методов не обойтись, тем боле, что вероятность наличия у такого многочлена натуральных или целых, или точных корней с с короткой дробной частью довольно мала, а формул для нахождения корней уравнения степени, превышающей 4, не существует.


Этот факт был доказан известными математиками Абелеи и Галуа. Де-факто все дальнейшие операции будут сводиться лишь к уточнению корней, интервалы которых приблизительно известны заранее. Проще всего эти приблизительные корни находить, используя графические методы. Для нахождения корней многочлена существует несколько численных методов, но мы остановимся на тех из них методе итераций, методе хорд и касательных и методе половинного деления.


1. Метод хорд и касательных комбинированный Данный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим сжатием этого интервала при помощи строимых хорд и касательных к графику этой функции. Надо отметить, что существуют также отдельно метод хорд дает значение корня с недостатком и метод касательных с избытком. Однако преимущество комбинированного метода заключается в двустороннем сжатии рассматриваемого


отрезка. Рассмотрим следующий случай - дана функция Fx и построен ее график - определена допустимая погрешность Q - на основании графика определен отрезок a,b, на котром график функции пересекает ось абсцисс, следовательно, на этом отрезке рис.1 - существует корень рассматриваемого многочлена. обозначим его через A Дальнейший алгоритм сводится к следующим действиям 1. строим касательную к графику функции в точке


Fb 2. вычисляем координату х пересечения касательной с осью абсцисс по формуле 3 и обозначаем ее через b 3. строим к графику функции хорду, проходящую через точки Fa и Fb. 4. Вычисляем точку пересечения хорды с осью абсцисс по формуле 2 и обозначаем ее через a. a a- Da , где 2 b b- Db , где 3 Таким образом мы получаем новый отрезок a , b , котроый по определениям хорды и касательной по-прежнему содержи решение уравнения


A. 5. Теперь принимаем отрезок a ,b за новый отрезок a,b и повторяем шаги 1-4 до тех пор, пока разность Fb-Fa не станет меньше первоначально заложенной погрешности Q. Отметим также, что после этого рекомендуется в качестве искомого решения взять среднее арифметическое Fa и Fb. Замечание к методу хорд и касательных. В рассмотренном случае производная F x 0, т.е. график выпуклый и b a. При работе с каждым отдельным случаем необходимо находить производные


функции первого и второго порядков и, сообразуясь с ее знаком, определять a и b. Возможны четыре случая y y Fx Fx x x а б y y Fx Fx x x в г а F x 0 F x 0 б F x 0 F x 0 в F x 0 F x 0 г F x 0 F x 0 Способ хордСпособ касательныхF xF x 0С недостаткомС избыткомF xF x 0С ибыткомС недостатком Таким образом, если хорда касательная дает значение корня с избытком, то этот корень берется с качестве


новой правой границы, а если с недостатком то левой. В обоих случаях точный корень лежит между точками пересечения хорды и касательной с осью абсцисс. Замечание 2 к методу хорд и касательных. Так как для решения поставленной задачи требуется отыскание производной функции Fx, метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для понимания


ЭВМ при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде недопустимо. Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро, особенно если совместить метод хорд и касательных с методом бисекции, т.к. середина нового отрезка зачастую дает вполне удовлетворительное решение.


2.2.2. Метод итераций Пятый шаг алгоритма хорд и касательных определял возврат к первому шагу и последующую цикличность хода, т.е. метод хорд и касательных являлся итерационным. Другой метод, также основанный на повторах так и был назван метод итераций. Суть его заключается в следующем - дана функция Fx - определена допустимая погрешность Q - определен некоторый интервал a , b , точно содержащий решение уравнения


Определено некоторое число z, принадлежащее a , b назовем z нулевым приближением Для получения следующего приближения подставим в формулу 1 вместо X Z, получим x1Fz 4 и, продолжая аналогично, x2Fx1 x3Fx2 5 xnFxn-1 Таким образом, получаем некоторую последовательность, и, если ее предел 6 limxnA, n 6 то А является искомым корнем. Данный метод является исключительно аналитическим, что упрощает его машинную


реализацию, однако содержит следующие недостатки - необходимость выбора нулевого приближения ведь то, что интуитивно для человека, для ЭВМ может стать довольно сложной задачей - наконец, полученная последовательность просто может не сходиться, и тогда решение найдено не будет. Эти контраргументы стали основанием для отклонения метода итераций при выборе алгоритмизируемого метода. 2.2.3. Метод половинного деления метод бисекции рис.2


Метод половинного деления известный еще и как метод деления отрезка пополам также является рекурсивным, т.е. предусматривает повторение с учетом полученных результатов. Суть метода половинного деления заключается в следующем - дана функция Fx - определена допустимая погрешность Q - определен некоторый интервал a , b , точно содержащий решение уравнения. 1. Вычисляем значение координаты Е, беря середину отрезка a , b, т.е.


Е a b 2 7 2. Вычисляем значения Fa, Fb, FE, и осуществляем следующую проверку Если FE Q, то корень с указанной точностью найден. Если FE Q, т.е. необходимая точность еще не достигнута, то формируем два интервала a , E и E , b проверяем знаки Fa, Fb, FE. На концах одного из этих интервалов знаки функции будут одинаковы, а на друго различны иначе Е - искомый корень. И именно то интервал, на концах которого знаки различны,


мы берем за основу при следующей итерации, т.е. приравниваем к Е либо a, либо b. 3. Переходим к пункту 1. Задачу можно упростить, если определить границы корней граница абсолютных значений корней вычисляется по формуле 8 8, 9, границу положительных корней по формуле 9 а границу отрицательных корней заменив в уравнении 1 х на х. Таким образом, мы получаем метод, хотя и достаточно медленный впрочем, при неудачном выборе нулевого


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


2.2.4. Метод разложения на множители Данный метод является полностью аналитическим, однако полностью зависим от других. Главным его преимуществом является то, что в данном методе не происходит потери кратных корней. Поясним на примере Пусть дан многочлен Fx 2x3-11x220x-12 11 Его можно записать в виде Fx x222x-3 12 У многочлена n-степени, как известно, n корней, а из 12 следует, что корнями Fx являются 2 и 1,5, причем корень 2 является кратным, т.е. фактически это два одинаковых


корня. При отыскании же корней любым из вышеописанных методов второй корень 2 будет потерян, т.к. график функции будет иметь лишь две точки пересечения с осью абсцисс Чтобы избежать этого применяется метод разложения на множители. Суть его заключается в следующем каждый многочлен вида 1 можно представить в виде xh1xh2xhnH 0 13 , или Fx xhbn-1xn-1b1b0 14 где h1hn корни уравнения, а


Н произведение множителей х, вынесенных за скобки Н никак не влияет на уравнение, т.к. от него избавляются, деля на Н обе части 13. При этом не исключено, что некоторые h могут быть взаимно равны, что и свидетельствует о наличии кратного корня. Для вычисления значений новых коэффициентов в 14 используются формулы bnan bn-1bnhan-1 15 bn-2bn-1han-2 Таким образом, алгоритм этого метода выглядит следующим образом 1. Определить границы корней уравнения 2. При помощи любого из вышеописанных методов найти один корень


уравнения 3. Применяя формулы 14 и 15 сформировать новый многочлен степени, на 1 меньшей предыдущего. 4. Вернуться к пункту 2. 5. Повторять до тех пор, пока степень многочлена не обнулится. Этот метод был реализован на программном уровне и включен в курсовую работу. 3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ В рамках задания на курсовую работу в среде программирования Visual Basic for Applications была разработана программа, находящая корни многочлена с указываемой точностью.


3.1. Описание программных модулей Разработка программы велась с учетом концепции объектно-ориентированного программирования, поэтому четко определенной последовательности действий в ней нет. Однако, разбирая программу на составляющие, можно проследить путь алгоритма в коде. Вся программа состоит из форм и модулей. Модулей всего два один содержит стандартную процедуру автозапуска его рассматривать мы не станем, а другой все публичные процедуры и функции.


Public function Fx. Функция, возвращающая значение многочлена для передаваемого х. Public function DetectBorders. Возвращает границы корней, согласно формулам 7 , 8, 9 . Public sub Gra процедура, ответственная за составление графика. 3.2. Описание форм В формах заключена основная часть программы, в том числе и собственно алгоритм метода половинного деления. Решение упаковать эти функции в формы было продиктовано следующими причинами -


сокращение объема занимаемой памяти и, как следствие, ускорение работы за счет сокращения времени жизни переменных - разграничение доступа т.е. необходимая функция или метод могут быть активированы исключительно в допустимой ситуации это значительно снижает вероятность ошибок - каждая форма является вещью в себе и не зависит от остальных кроме корневой 3.2.1. Форма FormMain Является корневой формой программы, содержит


Главное меню, позволяющее в любом порядке выполнять все необходимые действия, а также сохранять и завершать работу программы. 3.2.2. Форма FormKoeff В этой форме задаются коэффициенты многочлена. Замечание. Для задания коэффициента а0 необходимо указать значение степени х равным 0. 3.2.3.Форма FormMnogo Выводит на экран общий вид заданного многочлена, а также производных первого и второго порядков 3.2.4.Форма FormWP Эта форма по существу является панелью управления в режиме графика и позволяет его распечатать


или закрыть. 3.2.5. Форма FormKorni Основная форма именно в ней заключен сам алгоритм поиска корней Sub FindKor методами бисекции и хордкасательных. В качестве свойств в объекте форма присутствуют три ключевые процедуры, реализующие собственно алгоритмы нахождения корней и нахождения производной. Public sub FF процедура, ответственная за нахождение производной. Public sub HordaKasatelnye процедура, реализующая поиск корней по алгоритму хорд и касательных.


Public sub FindKor процедура, реализующая поиск корней по алгоритму половинного деления отрезка. Замечание. Алгоритмы нахождения крней описаны в главе 2. Суть же алгоритма нахождения производной сводится к простому перемножению коэффициента и степени и уменьшению значения степени на единицу. Это позволяет корректно определить производную, при этом корректно избавиться от конечной константы. 4. АНАЛИЗ РЕЗУЛЬТАТОВ В результате выполнения задания на курсовую работу была


создана программа VI Function 2.0 , находящая корни алгебраического многочлена вида 1 с указываемой точностью посредством следующих методов метод деления отрезка пополам метод хорд и касательных комбинированный Также при составлении программы была учтена возможность наличия у многочлена кратных корней, и средства их обнаружения также вошли в состав программы. Фактические результаты совпали с формальными. 5. СПИСОК ЛИТЕРАТУРЫ 1. Гутер Р.С Овчинский Б.В. Элементы численного анализа и математический обработки


результатов опыта. Москва, Наука, 1979 2. Калиткин Н.Н. Численные методы. Москва, Наука, 1978 3. Крылов В.И БабковВ.В Монастырский П.И. Вычислительные методы. Москва, Наука, 1976 4. П. Санна. Visual Basic for Applications 6.0 в подлиннике, Киев, BHV 6. ПРИЛОЖЕНИЯ 6.1.


Пример алгебраического многочлена и нахождения его корней Многочлен Fx 3x25x-8 График представлен на рис. 6.1 Точность Q 0,0001 Найденные корни x -2,69921875 метод x 0,99991015625 бисекции Найденные корни x -2,66667654214111 метод x 0,99981915025 хорд и касательных рис. 6.1 6.2. Блок-схема алгоритма половинного деления


A левая граница В правая граница C середина Fx - функция 6.3. Блок-схема алгоритма поиска корней методом хорд и касательных A левая граница В правая граница Fx - функция 6.4 Руководство пользователя. После запуска программы перед Вами появится Главное меню, включающее в себя следующие пиктограммы СОХРАНИТЬСохраняет файл со всеми сделанными изменениямиПРОСМОТР


ФУНКЦИИВыводит на экран окно, в котором отображается вид многочлена, а также вид производных первого и второго порядков Выбор осужествляется нажатием кнопок F X, FX, FXВВОД КОЭФФИЦИЕНТОВВыводит на экран окно ввода коэффициентовГРАФИКВыводит график функцииПОИСК КОРНЕЙОтображает окно, управляющее поиском корнейО ПРОГРАММЕВыводит окно О программеВЫХОДЗавершает работу програмы, предварительнозадавая вопрос о сохранении


изменений Ввод коэффициентов осуществляется следующим образом в появившемся окне имеются 2 поля одно для указания степени, другое для ввода собственно коэффициента. Если Вы уже вводили некоторую функцию, то для ее удаления нажмите кнопку очистить, для запоминания коэффициента нажмите Ок, для завершеня ввода завершить. Поиск корней упрощен до предела. Вам достаточно указать неоюходимую точность и выбрать метод поиска


бисекционый или комбинированный. 6.5. Исходный текст программы UNIT1 Dim curcell As Range Dim ma As Double Dim Ao As Double Public Function Fx As Variant F x 20 Rangea20.Value x 19 Rangea19.Value x 18 Rangea18.Value x 17 Rangea17.Value x 16 Rangea16.Value x 15 Rangea15.Value x 14 Rangea14.Value x 13


Rangea13.Value x 12 Rangea12.Value x 11 Rangea11.Value x 10 Rangea10.Value x 9 Rangea9.Value x 8 Rangea8.Value x 7 Rangea7.Value x 6 Rangea6.Value x 5 Rangea5.Value x 4 Rangea4.Value x 3 Rangea3.Value x 2 Rangea2.Value x Rangea1.Value Rangea21.Value End Function Public Function


F1x As Variant F1 x 20 Rangej20.Value x 19 Rangej19.Value x 18 Rangej18.Value x 17 Rangej17.Value x 16 Rangej16.Value x 15 Rangej15.Value x 14 Rangej14.Value x 13 Rangej13.Value x 12 Rangej12.Value x 11 Rangej11.Value x 10 Rangej10.Value x 9 Rangej9.Value x 8 Rangej8.Value x 7 Rangej7.Value x 6


Rangej6.Value x 5 Rangej5.Value x 4 Rangej4.Value x 3 Rangej3.Value x 2 Rangej2.Value x Rangej1.Value Rangej21.Value End Function Public Function F2x As Variant F2 x 20 Rangem20.Value x 19 Rangem19.Value x 18 Rangem18.Value x 17 Rangem17.Value x 16 Rangem16.Value x 15 Rangem15.Value x 14


Rangem14.Value x 13 Rangem13.Value x 12 Rangem12.Value x 11 Rangem11.Value x 10 Rangem10.Value x 9 Rangem9.Value x 8 Rangem8.Value x 7 Rangem7.Value x 6 Rangem6.Value x 5 Rangem5.Value x 4 Rangem4.Value x 3 Rangem3.Value x 2 Rangem2.Value x Rangem1.Value Rangem21.Value End Function


Public Sub Gra SheetsЛист1.Select Rangee1.Select For i -10 To 10 ActiveCell.Value Fi ActiveCell.Cells2.Select Next i End Sub Public Function DetectBorders Функция определения границ действительных корней ma 0 For Each curcell In RangeKoeffs If curcell.Value ma Then ma curcell.Value If curcell.Value 0 Then Ao curcell.


Value Next curcell DetectBorders 1 ma Ao End Function UNIT2 Sub autoopen SheetsЛист1.Select FormMain.Show End Sub FORMABOUT Private Sub CommandButton1Click FormAbout.Hide End Sub FORMKOEFF Private Sub CommandButton1Click ko TextBox1.Value st TextBox2.Value Select Case st Case 0


RangeA21.Value ko Case 1 RangeA1 ko Case 2 RangeA2 ko Case 3 RangeA3 ko Case 4 RangeA4 ko Case 5 RangeA5 ko Case 6 RangeA6 ko Case 7 RangeA7 ko Case 8 RangeA8 ko Case 9 RangeA9 ko Case 10 RangeA10 ko Case 11 RangeA11 ko Case 12 RangeA12 ko Case 13 RangeA13 ko Case 14 RangeA14 ko


Case 15 RangeA15 ko Case 16 RangeA16 ko Case 17 RangeA17 ko Case 18 RangeA18 ko Case 19 RangeA19 ko Case 20 RangeA20 ko Case Else MsgBox Выход за пределы допустимых значений st st - 1 End Select TextBox1.Value 0 TextBox2.Value st 1 End Sub Private Sub CommandButton2Click FormKoeff.Hide


End Sub Private Sub CommandButton3Click Rangea1.Value 0 Rangea2.Value 0 Rangea3.Value 0 Rangea4.Value 0 Rangea5.Value 0 Rangea6.Value 0 Rangea7.Value 0 Rangea8.Value 0 Rangea9.Value 0 Rangea10.Value 0 Rangea11.Value 0 Rangea12.Value 0 Rangea13.Value 0 Rangea14.Value 0 Rangea15.Value 0


Rangea16.Value 0 Rangea17.Value 0 Rangea18.Value 0 Rangea19.Value 0 Rangea20.Value 0 Rangea21.Value 0 End Sub Private Sub UserForminitialize st 0 ko 0 TextBox1.Value ko TextBox2.Value st End Sub FORMKORNI Private Sub CommandButton1Click ListBox1.Clear TextBox1.Value 0 FormKorni.Hide End


Sub Private Sub CommandButton2Click RangeToc.Value TextBox1.Value Call FindKor Call Perenos End Sub Sub FindKor RangeCurright RangeRight.Value RangeCurleft -RangeRight.Value - 0.333 Rangeright.Value DetectBorders RangeStepleft.Value Rangeright.Value -1 - 0.333 Do nashli


False Call MoveLe If SgnFRangecurleft.Value SgnFRangecurright.Value Then End If If SgnFRangecurleft.Value SgnFRangecurright.Value Then Do nashli True RangeCurcenter.Value Rangecurleft.Value Rangecurright.Value 2 If AbsFRangeCurcenter.Value Rangetoc.Value Then If SgnFRangecurleft.Value SgnFRangecurcenter.


Value Then Rangecurright.Value Rangecurcenter.Value Else Rangecurleft.Value Rangecurcenter.Value If AbsFRangeCurcenter.Value Rangetoc.Value Then ListBox1.AddItem RangeCurcenter.Value RangeKoren.Value RangeCurcenter.Value Loop Until AbsFRangeCurcenter.Value Rangetoc.Value End If Loop


Until RangeStepleft.Value Rangeright.Value Or nashli True End Sub Sub HordaKas Sub FindKor RangeCurright RangeRight.Value RangeCurleft -RangeRight.Value - 0.333 Rangeright.Value DetectBorders RangeStepleft.Value Rangeright.Value -1 - 0.333 Do MoveLe If SgnFRangecurleft.


Value SgnFRangecurright.Value Then Do nashli True If F1Rangecurleft.Value F2Rangecurleft.Value 0 Then Rangecurleft.Value Rangecurleft.Value - Rangecurright.Value - Rangecurleft.Value FRangeCurleft.Value FRangeCurright.Value - FRangeCurleft.Value RangeCurright.Value Rangecurright.Value - FRangecurright.


Value F1Rangecurright.Value End If If F1Rangecurleft.Value F2Rangecurleft.Value 0 Then Rangecurright.Value Rangecurleft.Value - Rangecurright.Value - Rangecurleft.Value FRangeCurleft.Value FRangeCurright.Value - FRangeCurleft.Value RangeCurleft.Value Rangecurright.Value - FRangecurright.


Value F1Rangecurright.Value End If If AbsAbsFRangeCurright.Value - AbsFRangeCurleft.Value Rangetoc.Value Then MsgBox Rangecurleft.Value ListBox1.AddItem RangeCurright.Value If RangeCurleft.Value RangeCurright.Value 0 Then ListBox1.AddItem RangeCurleft.Value RangeCurright.Value 2


If RangeCurleft.Value RangeCurright.Value 0 Then ListBox1.AddItem RangeCurleft.Value RangeCurright.Value 2 RangeKoren.Value RangeCurleft.Value End If Loop Until AbsFRangeCurright.Value - AbsFRangeCurleft.Value Rangetoc.Value End If Loop Until RangeStepleft.Value Rangeright.Value Or nashli


True End Sub Sub MoveLe Rangestepleft.Value Rangestepleft.Value 0.333 RangecurLeft.Value Rangestepleft.Value RangeCurright.Value RangeCurleft.Value 0.333 RangeCurcenter.Value Rangecurleft.Value Rangecurright.Value 2 End Sub Private Sub CommandButton3Click HordaKas End Sub


Private Sub UserFormDeactivate ListBox1.Clear TextBox1.Value 0 End Sub Sub Perenos Rangea1.Value RangeL1.Value Rangea2.Value RangeL2.Value Rangea3.Value RangeL3.Value Rangea4.Value RangeL4.Value Rangea5.Value RangeL5.Value Rangea6.Value RangeL6.Value Rangea7.Value RangeL7.Value Rangea8.Value


RangeL8.Value Rangea9.Value RangeL9.Value Rangea10.Value RangeL10.Value Rangea11.Value RangeL11.Value Rangea12.Value RangeL12.Value Rangea13.Value RangeL13.Value Rangea14.Value RangeL14.Value Rangea15.Value RangeL15.Value Rangea16.Value RangeL16.Value Rangea17.Value RangeL17.Value Rangea18.Value


RangeL18.Value Rangea19.Value RangeL19.Value End Sub FORMMAIN Private Sub CommandButton1Click FormKoeff.Show End Sub Private Sub CommandButton2Click FormMnogo.Show End Sub Private Sub CommandButton3Click Gra FormMain.Height 84 SheetsD1.Select FormWP.Show FormMain.Height 360


SheetsЛист1.Select End Sub Private Sub CommandButton4Click FormKorni.Show End Sub Private Sub CommandButton5Click Application.Quit End Sub Private Sub CommandButton7Click FormAbout.Show End Sub Private Sub CommandButton8Click ActiveWorkbook.Save End Sub Private Sub UserForminitialize


SheetsЛист1.Select FormMain.Height 360 End Sub FORMMNOGO Dim mn As String Private Sub CommandButton1Click FormMnogo.Hide End Sub Private Sub UserFormactivate mn Fx If Rangea20 0 Then mn mn Rangea20.Text X20 If Rangea20 0 Then mn mn Rangea20.Text X20 If Rangea19 0 Then mn mn


Rangea19.Text X19 If Rangea19 0 Then mn mn Rangea19.Text X19 If Rangea18 0 Then mn mn Rangea18.Text X18 If Rangea18 0 Then mn mn Rangea18.Text X18 If Rangea17 0 Then mn mn Rangea17.Text X17 If Rangea17 0 Then mn mn Rangea17.Text X17 If Rangea16 0 Then mn mn Rangea16.Text X16 If Rangea16 0


Then mn mn Rangea16.Text X16 If Rangea15 0 Then mn mn Rangea15.Text X15 If Rangea15 0 Then mn mn Rangea15.Text X15 If Rangea14 0 Then mn mn Rangea14.Text X14 If Rangea14 0 Then mn mn Rangea14.Text X14 If Rangea13 0 Then mn mn Rangea13.Text X13 If Rangea13 0 Then mn mn Rangea13.Text


X13 If Rangea12 0 Then mn mn Rangea12.Text X12 If Rangea12 0 Then mn mn Rangea12.Text X12 If Rangea11 0 Then mn mn Rangea11.Text X11 If Rangea11 0 Then mn mn Rangea11.Text X11 If Rangea10 0 Then mn mn Rangea10.Text X10 If Rangea10 0 Then mn mn Rangea10.Text X10 If Rangea9 0 Then mn mn


Rangea9.Text X9 If Rangea9 0 Then mn mn Rangea9.Text X9 If Rangea8 0 Then mn mn Rangea8.Text X8 If Rangea8 0 Then mn mn Rangea8.Text X8 If Rangea7 0 Then mn mn Rangea7.Text X7 If Rangea7 0 Then mn mn Rangea7.Text X7 If Rangea6 0 Then mn mn Rangea6.Text X6 If Rangea6 0


Then mn mn Rangea6.Text X6 If Rangea5 0 Then mn mn Rangea5.Text X5 If Rangea5 0 Then mn mn Rangea5.Text X5 If Rangea4 0 Then mn mn Rangea4.Text X4 If Rangea4 0 Then mn mn Rangea4.Text X4 If Rangea3 0 Then mn mn Rangea3.Text X3 If Rangea3 0 Then mn mn Rangea3.Text


X3 If Rangea2 0 Then mn mn Rangea2.Text X2 If Rangea2 0 Then mn mn Rangea2.Text X2 If Rangea1 0 Then mn mn Rangea1.Text X If Rangea1 0 Then mn mn Rangea8.Text X If Rangea21 0 Then mn mn Rangea21.Text If Rangea21 0 Then mn mn Rangea21.Text TextBox1.Value mn End Sub


FORMWP Private Sub Label1Click Call Gra End Sub Private Sub CommandButton1Click SheetsD1.Print End Sub Private Sub CommandButton2Click FormWP.Hide Call Gra End Sub Private Sub UserFormClick FormWP.Hide End Sub VoID InVaSiON HG VI Function 2.0 beta



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.