Решение системы двух линейных уравнений с представлением решения в числовом и графическом виде
Курсовая работа
Решение системы двух линейных уравнений с представлением решения в
числовом и графическом виде
Введение
Цели и задачи программы:
Программа предназначена для решения
системы из двух, трех или четырех уравнений с количеством неизвестных равным
количеству уравнений. Программа показывает результат решения системы в
графическом и числовом виде. Имеется возможность загрузки переменных из файла и
возможность изменения цвета надписей. Программа снабжена справочной
информацией. Управление осуществляется с помощью меню и клавиатуры.
Курсовая работа включает следующие
разделы:
1. постановка задачи -
раздел содержит спецификацию программы с описанием входных и выходных данных,
диапазоном их изменения;
2. проектирование структуры
программы - раздел содержит описание модулей программы;
. проектирование
пользовательского интерфейса - раздел содержит описание элементов
взаимодействия пользователя и программы.
. проектирование модулей
программы - раздел содержит описание алгоритма работы программы;
. тестирование программы -
раздел содержит результаты работы программы на различных тестовых данных;
. разработка справочной
системы - раздел содержит описание справочной системы программы;
. рекомендации по
использованию программы - раздел содержит описание всех функциональных
возможностей программы;
. заключение.
1. Постановка задачи
программа интерфейс
приложение пользовательский
Необходимо разработать программу для
решения системы линейных уравнений с представлением решения в числовом и
графическом виде (графики на плоскости). Входные данные могут быть введены из
файла или в диалоговом режиме. Управление программой должно осуществляться с
помощью меню.
Программа представляет собой две
формы Form1 «Уравнения» и FormVvod «Справка».
На форме
Form1 расположены такие элементы управления, как groupBox, label, listBox,
textBox, pictureBox, menuStrip, toolStrip, openFileDialog, colorDialog. Они
используются для того, чтобы обеспечить ввод, вывод и преобразование данных
данных. Форма используется для ввода, вывода данных, в том числе в графическом
виде.
На форме FormVvod расположены такие
элементы управления, как groupBox, label, button. Форма используется для
отображения справки о программе.
Коэффициенты могут быть введены как
целыми числами, так и рациональными. Ввод коэффициентов может осуществляться с
клавиатуры или из файла, в который предварительно записано число,
представляющее первую неизвестную.
После ввода коэффициентов программа
представит решение системы и нарисует график решения для системы из двух
переменных.
Для решения системы лин. уравнений
использовался матричный способ с нахождением корней по формуле Крамера.
2. Проектирование
структуры программы
Form
Основным компонентом среды
визуального программирования является форма (Form). Форма - это контейнер, в
который помещаются остальные элементы приложения, определяющие впоследствии всю
функциональность приложения. В форме можно разместить различные визуальные
компоненты (элементы управления), такие как кнопка, текстовое поле для ввода
данных, список, поле со списком и т.д. Для работы формами используется дизайнер
форм.
При создании нового проекта типа
Windows Forms Application автоматически создается форма Form1. Вместе с ней
создается специальный программный модуль с именем формы и расширением.h
(Form1.h). В этом модуле находится описание формы, и в нем же будут
располагаться обработчики событий компонентов.
Форма может быть отображена в двух
режимах: модальном или немодальном
(обычном). Разница между ними в
следующем. Модальное окно диалога (modal dialog box) или форма должны быть
закрыты, чтобы можно было продолжать работу с приложением. Например, диалоговые
окна, отображающие важные сообщения, всегда должны быть модальными, то есть
пользователь обязан закрывать их или отвечать на сообщения в них, прежде чем
продолжить работу. Немодальные окна диалога (modeless dialog boxes) или формы
позволяют перемещать фокус между окном диалога и другой формой, не закрывая
окно диалога. Немодальные окна диалога достаточно редки.
Чтобы отобразить форму как модальное
окно диалога, следует использовать метод ShowDialog() формы. Чтобы отобразить
форму в немодальном режиме, следует использовать метод Show(), например:
Form2->Show();
Основные свойства формы. Для формы и
других компонентов характерно наличие свойств и событий. Свойства служат двум
главным целям. Во-первых, они определяют внешний вид формы или компонента.
Во-вторых, свойства определяют поведение формы или компонента. Visual Studio
позволяет изменять свойства компонентов как в режиме проектирования (design
time), так и в режиме выполнения программы (run time).
В курсовой работе на одной форме
расположены все элементы управления и обработчики событий программы, на другой
- справка по программе.
· Свойства формы
AllowDrop - свойство определяет
возможность вывода у себя данных, когда пользователь перемещает их над этим
компонентом.- это свойство задает возможность автоматического масштабирования.
Значение свойства выбирается из выпадающего списка. Если выбрать значение Font,
то автоматическое изменение шрифта будет полезным тогда, когда форма или
компонент должны растягиваться или сокращаться в соответствии с размерами с
размерами шрифта в операционной системе. Если выбрано значение DPI, то размеры
формы или компонента будут изменяться относительно экрана. Если выбрать
значение Inherit, то другой компьютер станет наследовать шрифт и разрешение
базового компьютера.- это свойство задает возможность автоматического появления
полос прокрутки.- ширина полос прокрутки (при необходимости) в пикселах.-
возможность автоматического изменения размеров.- режим автоматического
изменения размеров. Возможные значение: GrowOnly (только растягиваться),
GrowAndShrink (растягивать и уменьшаться).- цвет фона.- фоновое изображение.-
тип размещения фонового изображения:
подгонять под размер компонента,
растягивать и др.еlButton - это свойство позволяет создавать имитацию нажатию
некоторой кнопки с помощью клавиши ESC в момент работы приложения. При нажатии
ESC приложение будет выполнять такое же действие, как будто пользователь щелкнул
по указанной кнопке.- включает / выключает необходимость проверки на
достоверность компонента во время получения им фокуса. Это свойство подавляет
или не подавляет возникновение события Validating.- через это свойство к
компоненту подключается его
контекстное меню. Программирование
на языке высокого уровня.- предоставляет возможность вывода в различном виде
заголовочной полосы формы (с
кнопочками (True) или без (False)).- задает форму курсора мыши для формы или
компонента.- задает возможность доступа к компоненту.- определяет
характеристики шрифта формы или компонента.- цвет переднего плана компонента.-
задает стиль окантовки формы, который выбирается из выпадающего списка. По
умолчанию имеет значение Sizable - форма может изменять свои размеры в режиме выполнения.-
задает возможность вывода кнопки помощи (с вопросительным знаком) в заголовке
компонента. Обработка кнопки помощи определяется в обработчике события
HelpRequested формы или компонента.- определяет пиктограмму приложения.- Input
Method Editor - подключает к компоненту редактор с различными режимами
обработки входных данных.- показывает, является ли форма контейнером для
многодокументного интерфейса.- блокировка компонента. В результате блокировки
компонент теряет возможность перемещаться или изменять размеры. При этом в
левом верхнем углу компонента появляется пиктограмма замка.- через это свойство
к компоненту подключается главное меню.- задает уровень затемнения
(прозрачности) формы. Значение указывается в процентах. Чем ниже процент, тем
более прозрачна форма.- задает отступы внутри компонента и определяет
пространство внутри компонента, которое «держит» на заданной дистанции от
границ компонента содержимое компонента.- размеры компонента.- это свойство
позволяет задать вывод / невывод калибровочной полоски в правом нижнем углу
формы.- задает стартовую позицию формы в режиме исполнения приложения,
например, по центру экрана (CenterScreen).- нечто вроде буферной области,
связанной с компонентом. Это свойство позволяет сохранять какие-нибудь данные,
чтобы потом ими воспользоваться.- заголовок компонента.- определяет, будет ли
данная форма всегда помещена над другой.- цвет, которым будут высвечиваться
прозрачные области формы.- определяет, будет ли использоваться курсор в виде
песочных часов для данного компонента и всех его потомков или нет.- состояние
окна формы.
· События формы
Как известно, событие - действие,
вызывающее реакцию объекта, например, нажатие клавиши на клавиатуре или кнопки
мыши. С помощью свойств, связанных с событиями, можно указать, что при
возникновении события следует выполнить определенную функцию обработки событий.
Рассмотрим некоторые события формы.-
возникает, когда форма активизируется.- возникает при щелчке мышью по форме.-
возникает, когда в форму добавлен новый элемент управления (во время выполнения
приложения).- возникает, когда произведен двойной щелчок мышью по форме.-
возникает после закрытия формы.- возникает перед закрытием формы.- возникает
после щелчка на кнопке HelpButton.- возникает при нажатии на кнопке F1.- возникает
перед первым выводом формы.
· Методы формы
Форма имеет большое количество
методов, которые можно просмотреть, нажав комбинацию клавиш <Ctrl> +
<F1>. При этом откроется окно Dynamic Help, в котором надо выбрать строку
Form Members. В разделе Form Members справочной системы перечислены не только
методы, но и все свойства и события формы. Рассмотрим некоторые методы формы.()
- закрывает форму. Если закрывается главная форма, приложение
закрывается. Ресурсы, занятые
формой, освобождаются.() - форма становится невидимой.() - выводит форму на
экран.() - показывает форму в модальном режиме.() - передает фокус форме или
компоненту (делает форму активной).
Компоненты
Компоненты, размещаемые в форме,
позволяют пользователю программы выполнять различные действия, например,
щелкать на кнопках или вводить данные. Рассмотрим наиболее часто используемые
элементы управления, размещенные на панели Toolbox.
· Button
Button - прямоугольная кнопка с
надписью. Поместив Button на форму, Вы по двойному щелчку можете создать
заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку
кодом.
Свойства элемента
управления Button:
Left-позиция элемента управления
относительно левого края его контейнера.- позиция элемента относительно
верхнего края его контейнера.- высота.- ширина.- определяет, можно ли
пользователю работать с этим элементом управления.- видимость во время
выполнения программы.- подпись.
Все указанные свойства можно менять
как во время разработки программы, так и во время ее работы. Чтобы изменить
свойства кнопки во время работы программы, необходимо в процедуре использовать
команду вида: НазваниеЭлемента->НазваниеСвойства = НовоеЗначение
· Label
Элементы управления Label обычно
предоставляют информацию в пользовательский интерфейс. Вы можете изменить шрифт
и цвет надписи, если щелкнете на кнопке с троеточием в строке Font в окне-
текст надписи является значением свойства Text.
СвойствоTextAlign - определяет
способ выравнивания текста.- возможность автоматического изменения размеров.-
режим автоматического изменения размеров. Возможные
значение: GrowOnly (только
растягиваться), GrowAndShrink (растягивать и
уменьшаться).- цвет фона.- фоновое
изображение.
· TextBox
TextBox - стандартный управляющий
элемент Windows для ввода. Он может
быть использован для отображения
короткого фрагмента текста и позволяет
пользователю вводить текст во время
выполнения программы. Начальное
содержимое области редактирования
определяет строка, являющаяся значением свойства Text.- определяет параметры
шрифта текстового поля.
Установив свойство ReadOnly в
значение True, мы запрещаем пользователюпрограммы вводить данные в текстовое
поле. Свойство MaxLength определяет число символов, которые можно ввести в
текстовое поле. Свойство SelectedText содержит текущий выделенный фрагмент
строки в текстовом поле. Свойства SelectionStart, SelectionLength возвращают
начальную позицию и длину выделенного фрагмента строки в текстовом поле.
Свойство MultiLine позволяет установить возможность вывода текста в несколько
строк. Свойство TextAlign определяет способ выравнивания текста.
Событие TextChanged возникает при
вводе и изменении данных в тектовом
поле. Можно использовать процедуру
обработки этого события, чтобы
обрабатывать данные, вводимые
пользователем. Пример процедуры обработки события TextChanged:
private: System: Void
textBox1_TextChanged (System: Object^, System: EventArgs^ e)
{lblResult->Text =
textBox1->Text;}
Классы
· МenuStrip
Элемент управления MenuStrip
представляет контейнер для структуры меню формы. Можно добавить объекты ToolStripMenuItem
в объект MenuStrip, который представляет отдельные команды в структуре меню.
Каждый объект ToolStripMenuItem может быть командой для приложения или
родительским меню для других элементов вложенного меню.
В курсовой работе класс MenuStrip
используется для управления программой, а точнее для вызова функций задания
параметров уравнений, ввода коэффициентов, нахождения решения уравнений и
построения графика функций.
· ТoolStrip
ToolStrip является базовым классом
для классов MenuStrip, StatusStrip и ContextMenuStrip.
Используйте ToolStrip и связанные с
ним классы в новых приложениях Windows Forms для создания панелей инструментов,
которые могут иметь внешний вид и поведение Windows XP, Office, Internet
Explorer или согласно пользовательской настройке, все это с темами или без них
и с поддержкой переполнения и переупорядочения элементов во время выполнения.
Элементы управления ToolStrip также предлагают богатый опыт разработки, включая
активацию на месте и редактирование, пользовательский макет и совместное
использование горизонтального или вертикального пространства в указанном ToolStripContainer.
Класс ToolStrip class предоставляет
множество элементов, обеспечивающих управление рисованием, вводом с помощью
мыши и клавиатуры, а также функции перетаскивания. Используйте класс
ToolStripRenderer совместно с классом ToolStripManager для получения больших
возможностей настройки и контроля стиля оформления и макета для всех элементов
управления ToolStrip на Windows Form.
В курсовой работе класс ToolStrip
используется для выполнения отдельный функций управления: загрузка данных из
файла, вызов справки, изменение цвета элементов управления label.
Пример
обработчика события:: System: Void
toolStrip1_ItemClicked (System: Object^ sender, System: Windows: Forms:
ToolStripItemClickedEventArgs^ e) { // код обработки события}
· ОpenFileDialog
Этот класс позволяет проверить,
существует ли файл, и открыть его. Свойство ShowReadOnly определяет,
отображается ли в диалоговом окне флажок «доступно только для чтения». Свойство
ReadOnlyChecked показывает, установлен ли флажок «доступно только для чтения».
Значительная часть возможностей
этого класса находится в классе FileDialog.
Если следует предоставить
пользователю возможность выбрать папку, а не файл, используйте объект FolderBrowserDialog.
В курсовой работе класс
openFileDialog используется для открытия и считывания данных из файла с
разрешением *.txt в диалоговом режиме стандартными средствами Windows.
· ColorDialog
Представляет общее диалоговое окно,
в котором отображаются доступные цвета и элементы управления, позволяющие
пользователю определять собственные цвета. Для создания этого общего
диалогового окна необходимо вызвать метод ShowDialog наследуемого члена. Чтобы
реализовать функциональность подключения конкретного диалогового окна, метод
HookProc может быть переопределен. Для извлечения цвета, выбранного
пользователем, используется свойство Color.
При создании экземпляра класса
ColorDialog некоторым свойствам записи и чтения присваиваются начальные
значения.
В курсовой работе диалоговое окно colorDialog используется для
изменения цвета элементов управления label по запросу пользователя.
3. Проектирование
пользовательского интерфейса
Программа состоит из следующих
элементов пользовательского интерфейса:
· меню (класс
menuStrip);
· панель инструментов
(toolStrip);
· элементов
управления программой и отображения решения.
Меню программы имеет следующую
структуру.
Меню «Уравнение» с подменю
«Параметры» и «Выход». Подменю «Параметры» состоит из пунктов «Количество
уравнений и неизвестных», «Очистить».
С помощью пункта «Количество
уравнений и неизвестных» пользователь должен задать одной цифрой количество
уравнений и неизвестных в диапазоне от 2 до 4. С помощью пункта «Очистить»
пользователь может очистить ранее введенные параметры. С помощью подменю
«Выход» программа закрывается.
Рис. 1 Меню «Уравнение»
Результат нажатия кнопки «Количество
уравнений и неизвестных»:
Рис. 2 «Ввод параметров»
Меню «Коэффициенты» предназначено
для ввода коэффициентов и свободных членов уравнений при ранее заданных
параметрах уравнений. Это можно сделать с помощью подменю «Ввести». Подменю
«Очистить» удаляет ранее введенные переменные.
Рис. 3 Меню «Коэффициенты»
Результат нажатия кнопки «Коэффициенты»:
Рис. 4 Ввод коэффициентов
Меню «Рассчитать» предназначено для
расчета неизвестных величин уравнений. У данной кнопки подменю нет.
Результат нажатия кнопки
«Рассчитать»:
Рис. 5 Расчет неизвестных
Меню «График» предназначено для
построения графиков двух уравнений и имеет подменю «Нарисовать» и «Очистить».
Рис. 6 Меню «График»
Результат нажатия кнопки
«Нарисовать»:
Рис. 7 Построение графика
Панель инструментов (toolStrip)
состоит из кнопок:
· Open;
· Help;
· Color.
Кнопка «Open» позволяет открыть *.txt файл с локальных или
сетевых дисков на компьютере. По умолчанию открывается локальный диск С.
Рис. 8 Открытие файла с диска
Кнопка «Help» открывает справочную
информацию по программе:
Рис. 9 Справка программы
Кнопка «Color» открывает палитру
цветов для изменения цвета надписей программы:
Рис. 10 Управление цветом
4. Проектирование
модулей (функций) приложения
Алгоритм ввода параметров уравнений:
Алгоритм ввода коэффициентов
уравнений
Алгоритм расчета неизвестных
Алгоритм построения графика
. Тестирование программы
Таблица 1. Результаты тестирования
Кол. переменных и уравнений
|
Пример2
|
Пример3
|
|
2
|
3
|
4
|
2
|
3
|
4
|
2
|
3
|
4
|
x
|
3
|
4
|
-1
|
5
|
3
|
6
|
6
|
10
|
8
|
x1
|
2
|
10
|
6
|
10
|
4
|
5
|
24
|
12
|
10
|
x2
|
|
4
|
-3
|
|
5
|
9
|
|
5
|
-2
|
x3
|
|
|
10
|
|
|
17
|
|
|
5
|
y
|
2
|
2
|
5
|
10
|
4
|
4
|
4
|
15
|
2
|
y1
|
-1
|
6
|
10
|
-2
|
8
|
15
|
-1
|
6
|
7
|
y2
|
|
1
|
12
|
|
-10
|
-5
|
|
-6
|
3
|
y3
|
|
|
9
|
|
|
-7
|
z
|
|
2
|
2
|
|
-1
|
1
|
|
-9
|
-2
|
z1
|
|
-2
|
-2
|
|
-2
|
3
|
|
3
|
4
|
z2
|
|
-1
|
4
|
|
2
|
4
|
|
4
|
15
|
z3
|
|
|
7
|
|
|
-3
|
|
|
12
|
u
|
|
|
4
|
|
|
1
|
|
|
6
|
u1
|
|
|
5
|
|
|
2
|
|
|
4
|
u2
|
|
|
4
|
|
|
11
|
|
|
6
|
u3
|
|
|
-1
|
|
|
1
|
|
|
6
|
Своб. член
|
5
|
8
|
10
|
2
|
12
|
1
|
14
|
10
|
12
|
Своб. член1
|
8
|
16
|
22
|
8
|
16
|
2
|
-2
|
5
|
15
|
Своб. член2
|
|
6
|
24
|
|
-2
|
-1
|
|
6
|
17
|
|
|
16
|
|
|
4
|
|
|
19
|
РЕШЕНИЕ
|
|
|
|
|
|
|
|
|
|
x
|
3
|
1,6
|
0,6
|
1,68
|
4
|
0,11
|
0,05
|
1,16
|
0,65
|
y
|
-2
|
0,2
|
2,01
|
-0,64
|
11
|
0,14
|
3,41
|
-0,86
|
0,05
|
z
|
|
0,6
|
0,5
|
|
44
|
-0,25
|
|
-1,26
|
0,67
|
u
|
|
|
-0,14
|
|
|
-0,02
|
|
|
1,33
|
Вывод: тестирование проведено три
раза с каждым из параметров, решения полученные при тестировании программы
соответствуют расчетным значениям, следовательно, программа адекватно решает
системы линейных уравнений и может быть применена пользователями для их
решения.
6. Разработка справочной
системы приложения
Для удобства пользования программой
имеется справочная информация, которая разъясняет последовательность шагов по
вводу параметров, заданию коэффициентов, расчету и построению графика. В
справочной информации имеются предупреждения о диапазоне задаваемых параметров
и ограничения по работе с программой, разъясняется назначение дополнительных
сервисов программы таких, как открытие файла и изменение цвета надписей.
Справочная информация сосредоточена
на отдельной форме, которая вызывается из основной формы нажатием кнопки на
панели инструментов или клавиши F1 на клавиатуре.
Закрытие справки происходит по
кнопке «Закрыть» на форме.
Заключение
Программа успешно подходит для
решения системы из двух, трех или четырех уравнений с количеством неизвестных
равным количеству уравнений. Программа наглядно показывает результат решения
системы в графическом и числовом виде. Имеется возможность загрузки переменных
из файла и возможность изменения цвета надписей. Программа снабжена справочной
информацией. Управление осуществляется с помощью меню и клавиатуры. Программа
проста в использовании и имеет удобный интерфейс.
Стоит отметить, что мной выбрана
система уравнений с совпадающим числом переменных и уравнений. Это сделано в
целях исключения ситуаций, когда система имеет множество решений или их не
имеет вовсе.
Список используемой
литературы
1. Шилдт Г. С++: базовый
курс, 3-е издание.: Пер. с англ. - М.: «Издательский дом «Вильямс», 2005. - 624
с.
. Пахомов Б.И. С /С ++ и
MS Visu al C ++ для н ачи наю щих. - С Пб.: БХВ -Петербург, 2008. - 624 с.
. Лукин С.Н. Понятно о
Visual Basic.NET. Самоучитель. - М.: «Диалог-МИФИ», 2005. - 736 с.
. Г. Шилдт. Теория и
практика С++: Пер. с англ. - СПб.: BHV - Санкт-
Петербург, 1999. - 416
с.
Приложение
Код программы
#pragma endregion
D, Dx, Dy, Dz, Du, x, x1, x2, x3, y,
y1, y2, y3, z, z1, z2, z3, u, u1, u2, u3, X, X1, X2, X3, vsx, vsy, vsX, vsx1,
vsy1, vsX1;Q, i;
^Gr;
: System: Void button1_Click
(System: Object^ sender, System: EventArgs^ e)
{^fGraph = gcnew
FormVvod();>Show();
}: System: Void
listBox1_SelectedIndexChanged (System: Object^ sender, System: EventArgs^ e) {
}: System: Void
цветToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^ e) {
}: System: Void
количествоУравненийToolStripMenuItem_Click (System: Object^ sender, System:
EventArgs^ e)
{->Visible = false;->Visible =
false;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Size = System: Drawing: Size (366,90);->Visible =
true;->Visible = false;->Visible = false;->Location = Point (78,100);->Location
= Point (24,32);->Location = Point (80,50);
->Visible = true;->Location =
Point (79,130);->Visible = false;->Visible = false;
{->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible = false;->Visible
= false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;
->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;
->Visible = false;->Visible =
false;->Visible = false;
}: System: Void
количествоНеизвестныхToolStripMenuItem_Click (System: Object^ sender, System:
EventArgs^ e)
{
}: System: Void
ввестиToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^ e)
{->Visible = false;= Convert:
ToInt32 (listBox1->SelectedItem);->Visible = false;->Visible =
true;->Visible = false;->Visible = true;->Location = Point (160,100);
(Q == 2)
{->Focus();->Visible =
true;->Visible = true;->Visible = true;->Visible = true;->Visible =
true;->Visible = true;
->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible = false;
->Visible = true;->Visible =
true;->Visible = true;->Visible = true;->Visible = true;->Visible =
true;->Visible = true;->Visible = true;->Visible = true;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible = false;->Visible
= false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;
->Visible = true;->Visible =
false;
->Location = Point
(44,36);->Location = Point (134,36);->Location = Point
(227,36);->Location = Point (227,91);->Location = Point
(44,91);->Location = Point (134,91);->Location = Point
(79,38);->Location = Point (105,38);->Location = Point
(79,38);->Location = Point (105,38);->Location = Point
(169,38);->Location = Point (169,38);->Location = Point
(198,38);->Location = Point (79,92);->Location = Point
(105,92);->Location = Point (198,92);->Location = Point
(198,92);->Location = Point (169,92);->Size = System: Drawing: Size
(300,150);->Location = Point (120,130);
}
(Q == 4)
{->Focus();->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;
->Location = Point
(168,100);->Location = Point (40,130);->Size = System: Drawing: Size
(466,245);->Location = Point (44,26);->Location = Point
(134,26);->Location = Point (226,26);->Location = Point
(312,26);->Location = Point (397,26);->Location = Point
(44,81);->Location = Point (134,81);->Location = Point (226,81);->Location
= Point (312,81);->Location = Point (397,81);->Location = Point
(44,138);->Location = Point (134,138);->Location = Point
(226,138);->Location = Point (312,138);->Location = Point
(397,138);->Location = Point (44,194);->Location = Point (134,194);->Location
= Point (226,194);->Location = Point (312,194);->Location = Point
(397,194);
label4->Location = Point
(79,28);->Location = Point (105,28);->Location = Point
(169,28);->Location = Point (197,28);->Location = Point
(261,28);->Location = Point (283,28);->Location = Point
(347,28);->Location = Point (370,28);->Location = Point
(79,82);->Location = Point (105,82);->Location = Point
(169,82);->Location = Point (197,82);->Location = Point
(261,82);->Location = Point (283,82);->Location = Point (347,82);->Location
= Point (370,82);->Location = Point (79,140);->Location = Point
(105,140);->Location = Point (169,140);->Location = Point
(197,140);->Location = Point (261,140);->Location = Point
(283,140);->Location = Point (347,140);->Location = Point
(370,140);->Location = Point (79,194);->Location = Point
(105,194);->Location = Point (169,194);->Location = Point
(197,194);->Location = Point (261,194);->Location = Point
(283,194);->Location = Point (347,194);->Location = Point (370,194);
}(Q == 3)
{->Focus();->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;->Visible
= true;->Visible = true;->Visible = true;->Visible = true;
->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;
->Visible = true;->Visible =
true;->Visible = true;->Visible = true;->Visible = true;->Visible =
true;->Visible = true;->Visible = true;->Visible = true;->Visible =
true;->Visible = true;->Visible = true;
textBox4->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Visible =
false;->Visible = false;->Visible = false;
->Visible = true;
->Location = Point
(85,135);->Size = System: Drawing: Size (375,210);->Location = Point
(34,26);->Location = Point (124,26);->Location = Point
(216,26);->Location = Point (315,26);->Location = Point
(34,81);->Location = Point (124,81);->Location = Point (216,81);->Location
= Point (315,81);->Location = Point (34,138);->Location = Point
(124,138);->Location = Point (216,138);->Location = Point
(315,138);->Location = Point (34,194);->Location = Point
(124,194);->Location = Point (216,194);->Location = Point (315,194);->Location
= Point (69,28);->Location = Point (95,28);->Location = Point
(159,28);->Location = Point (187,28);->Location = Point
(251,28);->Location = Point (280,28);->Location = Point
(69,82);->Location = Point (95,82);->Location = Point (159,82);->Location
= Point (187,82);->Location = Point (251,82); ->Location = Point
(280,82);->Location = Point (69,140);->Location = Point
(95,140);->Location = Point (159,140);->Location = Point
(187,140);->Location = Point (251,140); ->Location = Point (280,140);->Location
= Point (69,194);->Location = Point (95,194);->Location = Point
(159,194);->Location = Point (187,194);->Location = Point (251,194); ->Location
= Point (280,194);
}
}: System: Void button2_Click
(System: Object^ sender, System: EventArgs^ e)
{= Convert: ToInt32
(listBox1->SelectedItem); : Show (Convert: ToString(Q));
}: System: Void
очиститьToolStripMenuItem2_Click (System: Object^ sender, System: EventArgs^ e)
{== 0;
}: System: Void
рассчитатьToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^
e)
{(Q == 2)
{= (Convert: ToDouble
(textBox1->Text));= (Convert: ToDouble (textBox2->Text));= (Convert:
ToDouble (textBox18->Text));= (Convert: ToDouble (textBox8->Text));=
(Convert: ToDouble (textBox7->Text));= (Convert: ToDouble (textBox20->Text));
= (x * y1) - (x1 * y); Dx = (X * y1)
- (X1 * y); Dy = (x * X1) - (x1 * X);(D == 0 && (Dx!= 0 || Dy!= 0))
MessageBox: Show («Система уравнений несовместная. Она не имеет ни одного
решения.»);x = Dx / D; y = Dy / D;
: Show («x =» + Convert: ToString(x)
+»; y =» + Convert: ToString(y));
}
(Q == 4)
{= (Convert: ToDouble
(textBox1->Text));= (Convert: ToDouble (textBox2->Text));= (Convert:
ToDouble (textBox3->Text));= (Convert: ToDouble (textBox4->Text));=
(Convert: ToDouble (textBox18->Text));= (Convert: ToDouble
(textBox8->Text));= (Convert: ToDouble (textBox7->Text));= (Convert:
ToDouble (textBox6->Text));= (Convert: ToDouble (textBox5->Text));=
(Convert: ToDouble (textBox20->Text));= (Convert: ToDouble
(textBox12->Text));= (Convert: ToDouble (textBox11->Text));= (Convert:
ToDouble (textBox10->Text));= (Convert: ToDouble (textBox9->Text));=
(Convert: ToDouble (textBox19->Text));= (Convert: ToDouble
(textBox16->Text));= (Convert: ToDouble (textBox15->Text));= (Convert:
ToDouble (textBox14->Text));= (Convert: ToDouble (textBox13->Text));=
(Convert: ToDouble (textBox17->Text));
= (x*y1*z2*u3) -
(x*y1*u2*z3)+(x*z1*u2*y3) - (x*z1*y2*u3)+(x*u1*y2*z3) - (x*u1*z2*y3) -
(y*z1*u2*x3)+(y*z1*x2*u3) - (y*u1*x2*z3)+(y*u1*z2*x3) -
(y*x1*z2*u3)+(y*x1*u2*z3)+(z*u1*x2*y3) - (z*u1*y2*x3)+(z*x1*y2*u3) -
(z*x1*u2*y3)+(z*y1*u2*x3) - (z*y1*x2*u3) - (u*x1*y2*z3)+(u*x1*z2*y3) -
(u*y1*z2*x3)+(u*y1*x2*z3) - (u*z1*x2*y3)+(u*z1*y2*x3);= (X*y1*z2*u3) -
(X*y1*u2*z3)+(X*z1*u2*y3) - (X*z1*y2*u3)+(X*u1*y2*z3) - (X*u1*z2*y3) - (y*z1*u2*X3)+(y*z1*X2*u3)
- (y*u1*X2*z3)+(y*u1*z2*X3) - (y*X1*z2*u3)+(y*X1*u2*z3)+(z*u1*X2*y3) -
(z*u1*y2*X3)+(z*X1*y2*u3) - (z*X1*u2*y3)+(z*y1*u2*X3) - (z*y1*X2*u3) -
(u*X1*y2*z3)+(u*X1*z2*y3) - (u*y1*z2*X3)+(u*y1*X2*z3) -
(u*z1*X2*y3)+(u*z1*y2*X3);= (x*X1*z2*u3) - (x*X1*u2*z3)+(x*z1*u2*X3) -
(x*z1*X2*u3)+(x*u1*X2*z3) - (x*u1*z2*X3) - (X*z1*u2*x3)+(X*z1*x2*u3) -
(X*u1*x2*z3)+(X*u1*z2*x3) - (X*x1*z2*u3)+(X*x1*u2*z3)+(z*u1*x2*X3) -
(z*u1*X2*x3)+(z*x1*X2*u3) - (z*x1*u2*X3)+(z*X1*u2*x3) - (z*X1*x2*u3) - (u*x1*X2*z3)+(u*x1*z2*X3)
- (u*X1*z2*x3)+(u*X1*x2*z3) - (u*z1*x2*X3)+(u*z1*X2*x3);= (x*y1*X2*u3) -
(x*y1*u2*X3)+(x*X1*u2*y3) - (x*X1*y2*u3)+(x*u1*y2*X3) - (x*u1*X2*y3) -
(y*X1*u2*x3)+(y*X1*x2*u3) - (y*u1*x2*X3)+(y*u1*X2*x3) -
(y*x1*X2*u3)+(y*x1*u2*X3)+(X*u1*x2*y3) - (X*u1*y2*x3)+(X*x1*y2*u3) -
(X*x1*u2*y3)+(X*y1*u2*x3) - (X*y1*x2*u3) - (u*x1*y2*X3)+(u*x1*X2*y3) -
(u*y1*X2*x3)+(u*y1*x2*X3) - (u*X1*x2*y3)+(u*X1*y2*x3);= (x*y1*z2*X3) -
(x*y1*X2*z3)+(x*z1*X2*y3) - (x*z1*y2*X3)+(x*X1*y2*z3) - (x*X1*z2*y3) -
(y*z1*X2*x3)+(y*z1*x2*X3) - (y*X1*x2*z3)+(y*X1*z2*x3) -
(y*x1*z2*X3)+(y*x1*X2*z3)+(z*X1*x2*y3) - (z*X1*y2*x3)+(z*x1*y2*X3) -
(z*x1*X2*y3)+(z*y1*X2*x3) - (z*y1*x2*X3) - (X*x1*y2*z3)+(X*x1*z2*y3) -
(X*y1*z2*x3)+(X*y1*x2*z3) - (X*z1*x2*y3)+(X*z1*y2*x3);= Dx/D; y = Dy/D; z =
Dz/D; u = Du/D;: Show («x =» + Convert: ToString(x) +» y =» + Convert:
ToString(y) +» z =» + Convert: ToString(z) +» u =» + Convert: ToString(u));
}(Q == 3)
{= (Convert: ToDouble
(textBox1->Text));= (Convert: ToDouble (textBox2->Text));= (Convert:
ToDouble (textBox3->Text)); = (Convert:
ToDouble (textBox18->Text));= (Convert: ToDouble (textBox8->Text));=
(Convert: ToDouble (textBox7->Text));= (Convert: ToDouble
(textBox6->Text));= (Convert: ToDouble (textBox20->Text));= (Convert:
ToDouble (textBox12->Text));= (Convert: ToDouble (textBox11->Text));=
(Convert: ToDouble (textBox10->Text));= (Convert: ToDouble
(textBox19->Text));
= x*((y1*z2) - (y2*z1)) + y*((x1*z2)
- (x2*z1))* - 1 + z*((x1*y2) - (x2*y1));= X*((y1*z2) - (y2*z1)) + y*((X1*z2) -
(X2*z1))* - 1 + z*((X1*y2) - (X2*y1));= x*((X1*z2) - (X2*z1)) + X*((x1*z2) -
(x2*z1))* - 1 + z*((x1*X2) - (x2*X1));= x*((y1*X2) - (y2*X1)) + y*((x1*X2) -
(x2*X1))* - 1 + X*((x1*y2) - (x2*y1));= Dx/D; y = Dy/D; z = Dz/D;: Show («x =»
+ Convert: ToString(x) +» y =» + Convert: ToString(y) +» z =» + Convert:
ToString(z));
}
}: System: Void
нарисоватьToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^
e)
{
if (Q!= 2) MessageBox: Show («График
возможно построить только для 2-х уравнений с 2-мя неизвестными! \n», «Error»,
MessageBoxButtons:OK, MessageBoxIcon: Error);
{->Visible = false;->Visible =
false;= pictureBox1->CreateGraphics();^col = gcnew Color();^pen1 = gcnew Pen
(col->Blue);^pen2 = gcnew Pen (col->Black);^pen3 = gcnew Pen
(col->Red);^pen4 = gcnew Pen (col->Green);^pen5 = gcnew Pen
(col->DarkGreen);^AquaBrush = gcnew SolidBrush (Color: Aqua);^BlBrush =
gcnew SolidBrush (Color: Black);^RedBrush = gcnew SolidBrush (Color:
Red);^GrBrush = gcnew SolidBrush (Color: Green);
// Ось X>DrawLine (pen1, 20, 185,
450, 185);>DrawLine (pen1, 430, 181, 450, 185);>DrawLine (pen1, 430, 189,
450, 185);
// Ось Y>DrawLine (pen1, 235, 14,
235, 360);>DrawLine (pen1, 235, 14, 231, 35);>DrawLine (pen1, 235, 14,
239, 35);
->Visible = true;->Visible =
true;->Location = Point (179,55);->Location = Point (38,88);->Size =
System: Drawing: Size (470,370);
// Объявляем и создаем шрифты:
Drawing: Font ^Font1 = gcnew System: Drawing: Font («Times», 14, FontStyle:
Italic);: Drawing: Font ^Font2 = gcnew System: Drawing: Font («Times», 8,
FontStyle: Italic);
// Подписываем оси
координат>DrawString («y», Font1, Brushes: Black, 240, 10);>DrawString
(«x», Font1, Brushes: Black, 445, 185);
// Подписываем координаты
// Gr->DrawString («0», Font2,
Brushes: Blue, 210, 169);
// Gr->DrawString («1», Font2,
Brushes: Blue, 225, 170 - 18);
//Gr->DrawString (» - 1», Font2,
Brushes: Blue, 223, 170 + 6);
gx, gy, gx1, gy1;
// Ставим масштабирование черточками
на оси X(gx = 0; gx < 410; gx+=5)>DrawLine (pen2, (gx + 25), 183, (gx +
25), 187);
// Ставим масштабирование черточками
на оси Y(gy = 0; gy <= 320; gy+=5)>DrawLine (pen2, 233, (gy + 35), 237,
(gy + 35));
= (Convert: ToDouble
(textBox1->Text));= (Convert: ToDouble (textBox1->Text));= (Convert:
ToDouble (textBox2->Text));= (Convert: ToDouble (textBox2->Text));=
(Convert: ToDouble (textBox18->Text));= (Convert: ToDouble
(textBox18->Text));= (Convert: ToDouble (textBox8->Text));= (Convert:
ToDouble (textBox8->Text));= (Convert: ToDouble (textBox7->Text));=
(Convert: ToDouble (textBox7->Text));= (Convert: ToDouble
(textBox20->Text));= (Convert: ToDouble (textBox20->Text));= ((x*40) -
X)/y; // значение y при x=40= (((-x*40) - X)/y)* - 1; // значение y при x=-40
//MessageBox: Show («gx =» +
Convert: ToString(gx) + «gy =» + Convert: ToString(gy));>DrawLine (pen3,
235+200, 185+(gx*5), 235-200, 185 - (gy*5));= ((x1*40) - X1)/y1; gy1 =
(((-x1*40) - X1)/y1)* - 1;
//MessageBox: Show («gx1 =» +
Convert: ToString(gx1) +» gy1 =» + Convert: ToString(gy1));>DrawLine (pen4,
235+200, 185+(gx1*5), 235-200, 185 - (gy1*5));
= (x * y1) - (x1 * y); Dx = (X * y1)
- (X1 * y); Dy = (x * X1) - (x1 * X);(D == 0 && (Dx!= 0 || Dy!= 0))
MessageBox: Show («Система уравнений несовместная. Она не имеет ни одного
решения.»);x = Dx / D; y = Dy / D;>FillEllipse (AquaBrush, 233 + (x*5), 183
- (y*5), 5, 5);>DrawString(«(» + Convert: ToString(x) +»;» + Convert:
ToString(y) +»)», this->Font, BlBrush, 242 + (x*5), 180 -
(y*5));>DrawString (Convert: ToString(vsx) + «x» +» + «+ Convert:
ToString(vsy) + «y» +» = «+ Convert: ToString(vsX) +»; «, this->Font,
RedBrush, 380, 10);>DrawString (Convert: ToString(vsx1) + «x» +» + «+
Convert: ToString(vsy1) + «y» +» = «+ Convert: ToString(vsX1) +»; «,
this->Font, GrBrush, 380, 25);
}
}: System: Void pictureBox1_Click
(System: Object^ sender, System: EventArgs^ e) {
}: System: Void
очиститьToolStripMenuItem3_Click (System: Object^ sender, System: EventArgs^ e)
{
>Clear (Color: White);
}: System: Void
очиститьToolStripMenuItem1_Click (System: Object^ sender, System: EventArgs^ e)
{->Text = «»;->Text =
«»;->Text = «»;->Text = «»;->Text = «»;->Text = «»;->Text =
«»;->Text = «»;->Text = «»;->Text = «»;->Text = «»;->Text =
«»;->Text = «»;->Text = «»;->Text = «»;->Text = «»;->Text = «»;->Text
= «»;->Text = «»;->Text = «»;
{^fGraph = gcnew
FormVvod();>Show();
}: System: Void Form1_KeyUp (System:
Object^ sender, System: Windows: Forms: KeyEventArgs^ e)
{(e->KeyCode == Keys:F1)
{^fGraph = gcnew
FormVvod();>Show();
}
}: System: Void
helpToolStripButton_Click (System: Object^ sender, System: EventArgs^ e)
{^fGraph = gcnew
FormVvod();>Show();
}: System: Void
toolStripButton1_Click (System: Object^ sender, System: EventArgs^ e)
{->ShowDialog();->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;->ForeColor =
colorDialog1->Color;->ForeColor = colorDialog1->Color;
}: System: Void newToolStripButton_Click
(System: Object^ sender, System: EventArgs^ e)
{
}: System: Void
openToolStripButton_Click (System: Object^ sender, System: EventArgs^ e)
{^ openFileDialog1 = gcnew
OpenFileDialog;->InitialDirectory = «c:\\»;->Filter = «(*.txt)|*.txt»;->RestoreDirectory
= true;
(openFileDialog1->ShowDialog() ==
System: Windows: Forms: DialogResult:OK)
{((openFileDialog1->OpenFile())!=
nullptr)
{->Text = System:IO: File:
ReadAllText (openFileDialog1->FileName);
}
}
}: System: Void параметрыToolStripMenuItem_Click
(System: Object^ sender, System: EventArgs^ e) {
}: System: Void
цветToolStripMenuItem1_Click (System: Object^ sender, System: EventArgs^ e) {
}: System: Void
выходToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^ e)
{>Close();
}: System: Void
коэффициентыToolStripMenuItem_Click (System: Object^ sender, System: EventArgs^
e) {
}: System: Void
menuStrip1_ItemClicked (System: Object^ sender, System: Windows: Forms:
ToolStripItemClickedEventArgs^ e) {
}: System: Void toolStrip1_ItemClicked
(System: Object^ sender, System: Windows: Forms: ToolStripItemClickedEventArgs^
e) {
}
};