Программа для решения квадратных уравнений второго порядка

Содержание



Введение

1. Определение требований

1.1 Постановка задачи

1.2 Требования к интерфейсу

2. Анализ, формальная постановка и выбор метода решения

2.1 Краткая характеристика операционной системы

2.2 Краткая характеристика языка программирования

2.3 Компоненты среды Delphi, использованные в программе

2.4 Методы решения

3. Проектирование

3.1 Требования к аппаратному обеспечению

3.2 Инструкция пользователя

3.3 Инструкция программиста

4. Реализация и тестирование

Заключение

Список использованных источников

Листинг программы




Введение



Нелинейные уравнения – уравнения вида F(x)=0. при построении графиков таких уравнений получается не ровная линия, а какая либо фигура, например, парабола. Здесь значения того или иного экстремума функции возрастают прямо пропорционально ее предыдущего значения.

Данная курсовая работа должна дать наглядное представление решений нелинейных уравнений на примере квадратных уравнений второго порядка.

Пояснительная записка курсовой работы состоит из нескольких разделов.

Первый раздел пояснительной записки включает в себя постановку задачи, требования, предъявляемые к разрабатываемым программам, цели работы.

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

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

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




1. Определение требований



1.1 Постановка задачи



Целью создания курсового проекта является разработка программы для решения нелинейных уравнений различными численными методами.

Данный программный продукт должен реализовывать следующие основные возможности:

- решение уравнения с помощью дискриминанта;

- решение уравнения теоремой Виетта;

- решение квадратного уравнения с помощью таблицы Горнера;

Интерфейс программного продукта должен представлять собой удобную среду для ввода значений.

Получаемые ответы должны быть правильными и корректными.

Для наполнения окон интерфейса элементами управления необходимо чёткое понимание задач пользователя.

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



1.2 Описание требований к программе



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

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

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

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




2. Анализ, формальная постановка и выбор метода решения



2.1 Краткая характеристика операционной системы



Windows 7 — операционная система семейства Windows NT, следующая за Windows Vista. В линейке Windows NT система носит номер версии 6.1 (Windows 2000 — 5.0, Windows XP — 5.1, Windows Server 2003 — 5.2, Windows Vista и Windows Server 2008 — 6.0). Серверной версией является Windows Server 2008 R2, версией для интегрированных систем —Windows Embedded Standard 2011 (Quebec), мобильной —Windows Embedded Compact 2011 (Chelan, Windows CE 7.0).

Операционная система поступила в продажу 25 октября 2009 года, меньше чем через три года после выпуска предыдущей операционной системы, Windows Vista. Хотя изначально операционная система должна была поступить в продажу уже 31 августа 2009 года. Партнёрам и клиентам, обладающим лицензией Volume Licensing, доступ к RTM был предоставлен 24 июля 2009 года. Финальная нелицензионная версия (копия с дисков, которые потом пошли в продажу) была доступна всем с первых чисел августа 2009 года.

В состав Windows 7 вошли как некоторые разработки, исключённые из Windows Vista, так и новшества в интерфейсе и встроенных программах. Из состава Windows 7 были исключены игры Inkball, Ultimate Extras; приложения, имеющие аналоги в Windows Live (Почта Windows, Календарь Windows и пр.), технология Microsoft Agent, Windows Meeting Space; из меню «Пуск» исчезла возможность вернуться к классическому меню и автоматическая пристыковка браузера и клиента электронной почты...

Разработка Windows 7

Кодовое название Blackcomb принадлежало Windows NT 6.0, операционной системе, которая, как планировалось, станет следующей после Windows XP. Blackcomb должна была стать преемником этой ОС как для настольных, так и для серверных рабочих станций. В конце 2001 года выпуск Blackcomb запланировали на 2005 год, а в августе2002 года было объявлено о том, что промежуточной версией станет Windows Longhorn, которая будет обновлением ядра Windows NT 5.x. В течение разработки Windows Longhorn в неё были добавлены некоторые функции Blackcomb и присвоен номер 6.0. Blackcomb была окружена неразберихой, связанной с некоторыми сообщениями о том, что планы по маркетингу были сильно пересмотрены и что она должна быть серверной ОС Windows 6.x, но с улучшениями.

Vienna

В январе 2006 года Microsoft объявила, что новой клиентской ОС будет Vienna, выход которой был запланирован на 2010 год.

Fiji

В марте 2006 года стало известно, что наследницей Windows Vista будет Fiji, выход которой был запланирован на2008 год. 

В 2008 году, в результате жалоб фиджийцев на то, что новая ОС будет носить имя их страны, стали известны новые сведения о Fiji. По словам фиджийцев, Бен Грин сказал, что в Fiji будут добавлены новые телевизионные форматы, поддержка интерактивных служб и улучшения пользовательского интерфейса для Windows Media Center. Вполне вероятно, во включённую в состав Windows 7 программу Windows Media Center уже добавлены изменения, которые должны были быть в Fiji.

Windows 7

24 июля 2007 года корпорация Microsoft официально сменила кодовое название Vienna на Windows 7. НомерWindows 7 в линейке NT, в которой она будет находиться — 6.1 (в своё время системы этого семейства получили номера: Windows 2000 — 5.0, Windows XP — 5.1, Windows Server 2003 — 5.2, Windows Vista — 6.0, Windows Server 2008 — 6.0).

13 октября 2008 года вице-президент Microsoft Майк Нэш сообщил, что кодовое имя Windows 7 и станет официальным названием новой версии.[9]

Начальная редакция (Windows 7 Starter) будет распространяться исключительно с новыми компьютерами, она не будет включать функциональной части для проигрывания H.264, AAC, MPEG-2. Домашняя базовая — предназначена исключительно для выпуска в развивающихся странах, в ней нет интерфейса Windows Aero с функциями Peek, Shake, общего доступа к подключению в интернет и некоторых других функций. Также в ней есть те же ограничения на просмотр, что и в начальной редакции. В профессиональной и максимальной версиях существует поддержка XP Mode (на некоторых процессорах).

Кроме этого, согласно требованиям Еврокомиссии, для продаж в Европе планировалась специальная версия всех редакций с индексом «Е» («Windows 7 Е») — без предустановленного браузера Internet Explorer, однако она снята с продажи. Одной из причин снятия с продаж является недовольство партнёров и OEM-производителей отсутствием браузера в изначальной комплектации. Всем, кто выполнил предзаказ версии с индексом «Е», было предложено заказать обновление или заказать полную версию с 1 сентября 2009 года.

Тем не менее, в течение 5 лет планируется заменить встроенный Internet Explorer опциональным. В настоящее время данная схема согласована с Еврокомиссией.

Все редакции, за исключением Начальной, существуют как в 32-битной, так и в 64-битной версиях.

Максимальный объём оперативной памяти для 32-битных версий ограничен 4 Гб, Начальная редакция поддерживает до 2 Гб. Однако на практике пользователю часто доступен меньший объём, из-за аппаратных ограничений часто невозможно реализовать функцию режима PAE. Поддержка более крупных объёмов памяти доступна только для 64-битных версий. Они поддерживают до 8 Гб («Домашняя базовая»), до 16 Гб («Домашняя расширенная»), все старшие версии могут адресовать до 192 Гб оперативной памяти.

Бесплатная 90-дневная версия Windows 7 Корпоративная доступна для ИТ-специалистов, желающих познакомиться с Windows 7 в рамках организации.

Операционная система обладает поддержкой мультитач-управления. Эта возможность была впервые продемонстрирована Microsoft на ежегодной конференции TechEd’08 в Орландо. В ходе демонстрации использовалась сборка системы 6.1.6856, а также опытная модель ноутбука с мультитач-экраном.

Сетевая технология Branch Cache позволяет кешировать содержимое интернет-трафика. Если пользователю в локальной сети потребуется файл, который уже был загружен кем-то из пользователей его сети, — он сможет получить его из локального кэш-хранилища, а не использовать канал с ограниченной пропускной способностью. Сетевой кеш может работать в двух режимах — Hosted Cache и Distributed Cache. В первом случае — файл хранится на выделенном локальном сервере под управлением Windows Server 2008 R2, во втором случае сервер не требуется, а кеш распределяется для хранения на компьютерах пользователей. Технология рассчитана на крупные сети и предлагается для внедрения на предприятиях в составе Корпоративной и Максимальной версий ОС.

В ОС также встроено около 120 фоновых рисунков, уникальных для каждой страны и языковой версии. Так, русская версия включает тему «Россия» с шестью уникальными обоями высокого разрешения. Все версии включают 50 новых шрифтов. Существующие шрифты доработаны для корректного отображения всех символов. Windows 7 — первая версия Windows, которая включает больше шрифтов для отображения нелатинских символов, чем для отображения латинских. Панель управления шрифтами также подверглась улучшению — по умолчанию, в ней будут отображаться только те шрифты, раскладка для которых установлена в системе. Реализована поддержкаUnicode 5.1.[ Панель поиска Instant Search теперь распознаёт больше языков.

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

Windows 7 поддерживает псевдонимы для папок на внутреннем уровне. К примеру, папка Program Files в некоторых локализованных версиях Windows была переведена и отображалась с переведённым именем, однако на уровне файловой системы оставалась англоязычной.

Мультимедиа

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

Проигрыватель Windows Media Player 12 получил новый интерфейс и стал поистине «всеядным», в отличие от предшественника, которому требовалось большое количество кодеков для воспроизведения. Однако, он не может воспроизводить лицензионные Blu-Ray диски с видео, но имеет возможность считывать и записывать на них данные.

Мобильность

Несмотря на то, что Центр мобильности Windows не претерпел значительных изменений со времён Windows Vista, Windows 7 работает дольше предшественницы на ноутбуках и потребляет меньше энергии, особенно при воспроизведении DVD. На представленной в конце августа 2009 года системе с двумя идентичными ноутбуками с предустановленной Windows 7 и Windows Vista выигрыш составлял до 20 %. Также была показана рекордная скорость загрузки системы — 11 секунд. Система включала SSD и прочие высокопроизводительные компоненты. Подобный тест вдохновил энтузиастов протестировать влияние браузера на время жизни батареи. Включённый в состав Windows 7 браузер Internet Explorer 8 показал наилучшие результаты на платформе Intel.

Тем не менее, по результатам независимых тестов выяснено, что Windows 7 заметно быстрее, чем Windows XP, сажает батарею ноутбука. Начиная с августа эксперты журнала Laptop (laptopmag.com) проводили тестирование финальной версии Windows 7, в том числе замеряя время автономной работы портативных ПК под её управлением. Общий итог оказался неутешительным: средний нетбук под управлением «семёрки» в целом работает от аккумулятора на 47 минут меньше, по сравнению с XP. В случае модели ASUS 1008HA «недостача» составила 57 минут или 16,7 %. Другие издания также проводили подобные исследования и также пришли к этим выводам. Проигрыш составляет от 10 до 30 процентов по времени работы.

Возможная причина заключается в оптимизации Windows 7 под графические акселераторы, в то время как многие нетбуки работают на встроенных видеокартах Intel и VIA, которые не поддерживают порой функции Aero. Также многие нетбуки работают под управлением Windows 7 Starter Edition, которая не поддерживает Aero в полной мере. Другой возможной причиной является отсутствие поддержки ОС со стороны производителей нетбуков. Так, с новыми драйверами и BIOS, датированными ноябрём 2009 года, Asus Eee 1000HA работает под Windows 7 столь же долго, сколь и под управлением Windows XP.



2.2 Описание языка программирования



По условию выполнения курсовой работы программу следует выполнить в среде Delphi.

Delphi обладает широким набором возможностей, начиная от проектировщика форм и кончая поддержкой всех форматов популярных баз данных. Среда устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели. Также здесь имеются предварительно определенные визуальные и не визуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию.

Создаваемое в среде Delphi приложение состоит из нескольких элементов, объединенных в проект. В состав проекта входят следующие элементы (в скобках указаны расширения имен файлов):

– код проекта (DPR);

– описание форм (DFM);

– модули форм (PAS);

– модули (PAS);

– параметры проекта (DOF);

– описание ресурсов (RES).

Главное окно Delphi 7 в соответствии с рисунком 2.2





Рисунок 2.2- Главное окно Delphi



Главные составные части среды программирования:

– дизайнер Форм (Form Designer);

– окно Редактора Исходного Текста (Editor Window);

– палитра Компонент (Component Palette);

– инспектор Объектов (Object Inspector);

– справочник (On-line help).

Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент.

Палитра Компонент позволяет выбрать нужные объекты для размещения их на Дизайнере Форм. Выбранный объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий.

Delphi – это комбинация нескольких важнейших технологий:

– высокопроизводительный компилятор в машинный код;

– объектно-ориентированная модель компонент;

– визуальное построение приложений из программных прототипов;

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре «клиент–сервер». Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту.

Основной упор в объектно-ориентированной модели программных компонентов в Delphi делается на максимальном использовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Среда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений, поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL – библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows.

Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL.

Delphi полностью поддерживает передовые программные концепции, включая инкапсуляцию, наследование, полиморфизм и управление событиям.



2.3 Компоненты среды Delphi, использованные в программе



Рассмотрим все требования к разрабатываемой программе. Программа должна обладать удобным интуитивно понятным интерфейсом. Быть простой в использовании, надежной и быстрой в работе. Не требовать особых знаний ПК. Поддерживать стабильную работу и быть защищенной от повреждений информации при сбое компьютера или ошибок пользователя.

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

Компоненты, которые используются в данном программном продукте, представлены в соответствии с таблицей 3.1



Таблица 2.1 – Компоненты программы

Объект

Название компонента

Вкладка

Свойства

1 Кнопка «Решить с помощью дискриминанта»

Button1

Standard

-

2 Кнопка «Решить с помощью теоремы Виетта»

Button2

Standard

-

3 Кнопка «Решить с помощью схемы Горнара»

Button3

Standard

-

4 Надпись «Уравнение вида»

Label1

Standard

Size – 14

5 Надпись «Введите коэффициенты»

Label5

Standard

Size – 12

6 Надпись «а=»

Label2

Standard



Size – 10

7 Надпись «b=»

Label3

Standard



8 Надпись «c=»

Label4

Standard



9 Ввод a

Edit1

Standard

-

10 Ввод b

Edit2

Standard

-

11 Ввод c

Edit3

Standard

-

10 Вывод результата

Memo1

Standard

-



2.4 Методы решения



Квадратное уравнение — уравнение вида ax2 + bx + c= 0, где а не равно нулю.

Получение формулы для решения

Формулу можно получить следующим образом:

аx2 + bx + c = 0

аx2 + bx = − c

Умножаем каждую часть на 4a и прибавляем b2:

4a2x2 + 4abx + b2 = − 4ac + b2

(2ax + b)2 = − 4ac + b2



Уравнение с вещественными коэффициентами

Квадратное уравнение с вещественными коэффициентами  может иметь от 0 до 2 вещественных корней в зависимости от значения дискриминанта D = b2 − 4ac:

при D > 0 корней два, и они вычисляются по формуле



 (2.1)



при D = 0 корень один (в некоторых контекстах говорят также о двух равных или совпадающих корнях), кратности 2:



 (2.2)



при D <0 вещественных корней нет. Существуют два комплексных корня, выражающиеся той же формулой (1) (без использования извлечения корня из отрицательного числа)

Другие записи решений

Вместо формулы (2.1) для нахождения корней можно использовать эквивалентное выражение



 (2.3)



где k = b / 2

Это выражение является более удобным для практических вычислений при чётном b, то есть для уравнений вида ax2 + 2kx + c = 0.

Приведённое квадратное уравнение

Квадратное уравнение вида x2 + px + q = 0, в котором старший коэффициент a равен единице, называют приведённым. В этом случае формула для корней (2.1) упрощается до



 (2.4)



Уравнение с комплексными коэффициентами

В комплексном случае квадратное уравнение решается по той же формуле (2.1) и указанным выше ее вариантам, но различимыми являются только два случая: нулевого дискриминанта (один двукратный корень) и ненулевого (два простых корня).

Теорема Виета

Сумма корней приведённого квадратного уравнения x2 + px + q = 0 равна коэффициенту p, взятому с обратным знаком, а произведение корней равно свободному члену q, то есть



 (2.5)



В общем случае (для неприведённого квадратного уравнения ax2 + bx + c = 0):



 (2.6)



Разложение квадратного уравнения на множители

Если известны оба корня квадратного уравнения, его можно разложить по формуле



 (2.7)


В случае нулевого дискриминанта это соотношение становится одним из вариантов формулы квадрата суммы или разности.

Уравнения, сводящиеся к квадратным

Уравнение вида



 (2.8)



является уравнением, сводящимся к квадратному. В общем случае оно решается заменой  c последующим решением квадратного уравнения.

Также при решении можно обойтись без замены, решив совокупность двух уравнений



 (2.9)

 (2.10)



Если f(x) = x2, то уравнение принимает вид:

ax4 + bx2 + c = 0

Такое уравнение называется биквадратным

Схе́ма Го́рнера (или правило Горнера, метод Горнера) — алгоритм вычисления значения многочлена, записанного в виде суммы мономов, при заданном значении переменной. Метод Горнера позволяет найти корни многочлена, а также вычислить производные полинома в заданной точке. Схема Горнера также является простым алгоритмом для деления многочлена на бином вида x − c. Метод назван в честь Уильяма Джорджа Горнера (англ.).

Описание алгоритма

Задан многочлен P(x):


.



Пусть требуется вычислить значение данного многочлена при фиксированном значении x = x0. Представим многочлен P(x) в следующем виде:



.



Определим следующую последовательность:













Искомое значение P(x0) = b0. Покажем, что это так.

В полученную форму записи P(x) подставим x = x0 и будем вычислять значение выражения, начиная со внутренних скобок. Для этого будем заменять подвыражения через bi:







Использование схемы Горнера для деления многочлена на бином

При делении многочлена  на x − c получается многочлен  с остатком bn.


3. Проектирование

программа интерфейс нелинейное уравнение

3.1 Требования к аппаратному обеспечению



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

Экран желательно иметь плоский, антибликовый, с антистатическим покрытием (типа AS- Anti Static), с низким уровнем излучения (тип- LR- Low Radiation). При выборе принтера нужно учесть: цветность, тип принтера (матричный, струйный, лазерный), количество игл или сопел, ширину печати, разрешающую способность, скорость печати, русификацию, емкость памяти, интерфейс, расходные материалы.

Для работы программы необходимо следующее минимальное аппаратное и программное обеспечение:

- Процессор Pentium III 400 Мгц или аналогичный:

- 128 Мб оперативной памяти;

- 24 Мб свободного места на диске ;

- клавиатура;

- ручной манипулятор «мышь»;

- видео карта 32 Мб;

- 48-скоростной дисковод CD-ROM;

- операционная система MS Windows версий от Windows 98;

- пакет программ Microsoft Office.

- среда программирования Borland Delphi 6

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

Cостав ПК, на котором тестировалась программа

- Процессор AMD Athlon 1300, 1.30 Ггц

- 512 Мб оперативной памяти;

- 100 Гб свободного места на диске ;

- клавиатура;

- ручной манипулятор «мышь»;

- видео карта GeForce 4, 64 Мб;

- 52-скоростной дисковод CD-ROM;

- операционная система MS Windows XP;

- среда программирования Borland Delphi 7



3.2 Инструкция пользователя



Данный программный продукт должен реализовывать следующие основные возможности:

- решение уравнения с помощью дискриминанта;

- решение уравнения теоремой Виетта;

- решение квадратного уравнения с помощью таблицы Горнера;

В результате разработки данного программного средства получилась выходная документация: инструкция пользователя и инструкция программиста.

Выполнение программы.

Для начала работы с программой следует загрузить на диск С: файлы программы в одну папку с CD, содержащим программу.

Для запуска программы следует запустить файл Project1.exe.

Появится главное окно программы в соответствии с рисунком 3.1




Рисунок 3.1 – Главное окно программы



В правой части окна расположено поле вывода данных. В левой же части вводятся данные и находятся кнопки управления программой.

Кнопки управления следующие:

- «Решить с помощью дискриминанта» - решение квадратного уравнения стандартным методом (с помощью нахождения дискриминанта);

- «Решить с помощью теоремы Виетта» - нахождение решения с применением теоремы Виетта;

- «Решить с помощью схемы Горнера» - решение квадратного уравнения только с корнями 2, 8 и 6;

- «Выход» - завершение работы программы.

Распишем командные кнопки более подробно

После ввода значений a, b и c следует выбрать метод решения.

При выборе кнопки «Решение с помощью дискриминанта» программа сначала найдет дискриминант по формуле



 (3.1)



Далее программа проверяет, чему равен дискриминант. Если он больше нуля, то он выводит ответ в соответствии с рисунком 3.2




Рисунок 3.2 – Корни, найденные по дискриминанту



Если же дискриминант меньше нуля, то программа покажет следующее окно в соответствии с рисунком 3.3





Рисунок 3.3 – Дискриминант меньше нуля

При дискриминанте равном нулю, программа найдет только один корень и покажет его в соответствии с рисунком 3.4





Рисунок 3.4 – Дискриминант равен нулю


При решении уравнения методом теоремы Виетта программа должна показать сумму и произведение корней уравнения. Результат решения в соответствии с рисунком 3.5





Рисунок 3.5 – Уравнение, решенное теоремой Виета



Корни для данного метода решения следует искать методом подбора. Данная программа их найти не может

Решение с помощью схемы Горнера подходит только если а=2, b=8, a c=6, так как программирование нахождения делителей с очень трудоемкий и сложный процесс, требующий много времени. Результат работы схемы Горнера в соответствии с рисунком 3.6





Рисунок 3.6 – Решение уравнения схемой Горнера




3.3 Инструкция программиста



Установка программы.

Программа не требует инсталляции и запускается с любого носителя, так как выполнена в виде одного исполняемого файла – Project1.exe.

Для того чтобы открыть и просмотреть код программы необходимо установить у себя среду объектно-ориентированного программирования Delphi 2007. окно Delphi в соответствии с рисунком 3.6





Рисунок 3.6 – Окно среды программирования Delphi



Далее в окне проекта нужно выбрать пункт «File» (Файл) , затем пункт «Open Project» в открывшемся окне в соответствии с рисунком 4.6 найти файл проекта приложения Project1.dpr и нажать кнопку «Открыть». Далее можно менять текст и внешний вид программы в соответствии со своими вкусовыми качествами.

После внесения изменений в код программы нужно ее откомпилировать, нажав комбинацию клавиш Ctrl+F9.




4. Реализация и тестирование



Рассмотрим контрольный пример выполнения программы. Запустим программу и зададим а=7, b=3 и с=4ю появится окно, повествующее о том, что корней в данном примере нет. Окно выполнения в соответствии с рисунком 4.1





Рисунок 4.1 – Окно отрицательного дискриминанта



Чтобы задать положительный дискриминант можно задать следующие параметры: а=2, b=10, c=8. Результат выполнения в соответствии с рисунком 4.2





Рисунок 4.2 – Положительный дискриминант



Зададим те же параметры для теоремы Виетта. Окно результата данного примера в соответствии с рисунком 4.3




Рисунок 4.3 – Уравнение, решенное теоремой Виета



При простом подборе корней, видно, что они действительно одинаковы как и с теми, которые получились в методе с дискриминантом.

Нажимаем «Выход» и завершаем работу с программой.




Заключение



Результатом проведения всей работы является создание программы, решающей квадратное уравнение несколькими методами, а именно:

- метод с применением дискриминанта;

- решение уравнения с помощью теоремы Виетта;

- нахождение корней с помощью создания схемы Горнера;

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

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

Более того, программный интерфейс максимально облегчает работу по обращению с уравнением, предоставляя несколько методов решения.

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

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

Было создано удобное простое в понимании приложение, позволяющее эффективно найти корни квадратного нелинейного уравнения




Список использованных источников



Ананий В. Левитин Глава 6. Метод преобразования: Схема Горнера и возведение в степень

Волков Е. А. § 2. Вычисление значений многочлена. Схема Горнера // Численные методы. — Учебное пособие для вузов. — 2-е изд., испр. — М.: Наука, 1987. — 248 с.

Винберг Э. Б. Алгебра многочленов. — М.: Просвещение, 1980. — 176 с.

Акулич И.Л. Математическое программирование в примерах и задачах: Учебное пособие для студентов эконом. спец. вузов. — М.: Высшая школа, 1986.

Карманов В.Г. Математическое программирование = Математическое программирование. — Изд-во физ.-мат. литературы, 2004

Максимов Ю.А. Алгоритмы линейного и дискретного программирования. — М.: МИФИ, 1980.




Листинг программы



program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, jpeg, ExtCtrls, XPMan;

type

TForm1 = class(TForm)

Image1: TImage;

Label1: TLabel;

Button1: TButton;

Button2: TButton;

Memo1: TMemo;

Button3: TButton;

Button4: TButton;

XPManifest1: TXPManifest;

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c,d,x1,x2:real;

begin

memo1.Lines.Clear;

a:=strtoint(edit1.text);

b:=strtoint(edit2.text);

c:=strtoint(edit3.text);

d:=sqr(b)-(4*a*c);

if d>0 then begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

memo1.Lines.Add('Входные данные:');

memo1.Lines.Add('a= '+floattostr(a));

memo1.Lines.Add('b= '+floattostr(b));

memo1.Lines.Add('c= '+floattostr(c));

memo1.Lines.Add('');

memo1.Lines.Add('D(Дискриминант)= '+floattostr(d));

memo1.Lines.Add('');

memo1.Lines.Add('Корни уравнения');

memo1.Lines.Add('X1= '+floattostr(x1));

memo1.Lines.Add('X2= '+floattostr(x2));

end;

if d<0 then begin

memo1.Lines.Add('Дискриминант меньше 0, корней нет');

end;

if d=0 then begin

x1:=-b/(2*a);

memo1.Lines.Add('Входные данные:');

memo1.Lines.Add('a= '+floattostr(a));

memo1.Lines.Add('b= '+floattostr(b));

memo1.Lines.Add('c= '+floattostr(c));

memo1.Lines.Add('');

memo1.Lines.Add('D(Дискриминант)= 0');

memo1.Lines.Add('');

memo1.Lines.Add('Корень уравнения');

memo1.Lines.Add('X= '+floattostr(x1));

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var s,p,a,b,c,d,x1,x2:real;

begin

memo1.Lines.Clear;

a:=strtoint(edit1.text);

b:=strtoint(edit2.text);

c:=strtoint(edit3.text);

s:=-b/a;

p:=c/a;

memo1.Lines.Add('Входные данные:');

memo1.Lines.Add('a= '+floattostr(a));

memo1.Lines.Add('b= '+floattostr(b));

memo1.Lines.Add('c= '+floattostr(c));

memo1.Lines.Add('');

memo1.Lines.Add('Сумма и произведение корней');

memo1.Lines.Add('X1+X2= '+floattostr(s));

memo1.Lines.Add('X2*X2= '+floattostr(p));

memo1.Lines.Add('');

memo1.Lines.Add('Корни следует искать подбором');

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

application.Terminate;

end;

procedure TForm1.Button4Click(Sender: TObject);

var sum,del,j:array [1..8] of integer;

i:integer;

a,b,c,k:integer;

begin

memo1.Lines.Clear;

a:=2;

b:=8;

c:=6;

// Выводим делители С

del[1]:=1;

del[2]:=-1;

del[3]:=2;

del[4]:=-2;

del[5]:=3;

del[6]:=-3;

del[7]:=6;

del[8]:=-6;

//Составляем таблицу

memo1.Lines.Add('Таблица Горнера:');

for i:=1 to 8 do begin

sum[i]:=del[i]*((del[i]*a)+b)+c;

// Выводим значения

memo1.lines.add(inttostr(del[i])+' '+inttostr(a)+' '+inttostr((del[i]*a)+b)+' '+inttostr(sum[i]));

end;

k:=0;

for i:=1 to 8 do begin

if sum[i]=0 then begin

k:=k+1;

j[k]:=del[i];

end;

end;

memo1.Lines.Add('Делители, у которых сумма равна 0:');

for i:=1 to k do

memo1.Lines.Add('x'+inttostr(i)+'='+inttostr(j[i]));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

edit1.Text:='2';

edit2.Text:='8';

edit3.Text:='6';

end;

end.