Автор работы: Пользователь скрыл имя, 20 Декабря 2010 в 14:38, курсовая работа
Основная задача выполняется с помощью средств вычислительной математики. В основе решения задачи лежит выполнение операций сложения векторов, умножения вектора на число, скалярное и векторное произведение при помощи формул.
Основные направления выполнения программы:
1.создать модули, предлагающие поэтапное выполнение поставленной задачи;
2.создать модули, выполняющие вычисление правильно, быстро и корректно;
3.разработать интерфейс программы, совместимый с Windows-интерфейсом.
ВВЕДЕНИЕ…………………………………………………………… 3
1 РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ ПРОГРАММЫ…………………………………………………………
4
1.1 Задание……………………………………………………………………….. 4
1.2 Назначение и область применения…………………………………………. 4
1.3 Технические характеристики……………………………………………... 4
2 РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА…………………………… 9
2.1 Разработка программы……………………………………………………… 9
2.2 Спецификация программы…………………………………………………. 22
2.3 Текст программы…………………………………………………………….. 24
3 ВНЕДРЕНИЕ……………………………………………………….. 33
ЗАКЛЮЧЕНИЕ………………………………………………………. 37
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ………………… 38
Свойства:
Font
– черный, размер 8.
7 – компоненты TEdit1, TEdit2
Свойства:
Text – 0.
События:
нет.
8 – компоненты TLabel12, TLabel13, TLabel14, TLabel15
Свойства:
Font
– черный, размер 8.
9 – компоненты TEdit12, TEdit13, TEdit14
Свойства:
Text – 5;-5;4(соотвественно).
События:
нет.
10 – компонент TComboBox4
Свойства:
Text - max.
События:нет.
11 – Компонент TLabel3, TLabel5, TLabel7
Свойства:
Font
–clFuchsia, clLime, clBlue, размер 8.
12 – компоненты TEdit5, TEdit8, TEdit11
Свойства:
Text – -2; 2; 5.
События:
нет.
13 – компонент TImage1
Свойства:
События
– Отображение графического решения системы
линейных неравенств.
2.2
Спецификация программы
Исполняемый файл программы «Система линейных неравенств» имеет название Project2.exe и расположен на компакт-диске в каталоге Система линейных неравенств. Состав проекта представлен в таблице 1.
Таблица 1. Состав проекта
Наименование | Обозначение | Примечание |
Project2.dof | Файл параметров проекта | Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы |
Project2.dpr | Файл проекта | Связывает все файлы, из которых состоит приложение |
Project2.dsk | Файл, содержащий настройки проекта | Содержит информацию о том, какие окна открыты и в каких позициях они расположены |
Project2.res | Файл ресурсов | Содержит пиктограммы, графические изображения |
Unit1.pas | Файл программного модуля для формы №1 | Определяет функциональность формы №1 |
Unit1.dfm | Файл формы №1 | Содержит список свойств всех компонентов, включенных в форму №1 |
Unit1.dcu | Объектный файл для Unit1.pas | Откомпилированная версия Unit1.pas |
2.3
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Edit3: TEdit;
Label2: TLabel;
Edit4: TEdit;
Label3: TLabel;
Edit5: TEdit;
ComboBox1: TComboBox;
Edit6: TEdit;
Label4: TLabel;
Edit7: TEdit;
Label5: TLabel;
Edit8: TEdit;
ComboBox2: TComboBox;
Edit9: TEdit;
Label6: TLabel;
Edit10: TEdit;
Label7: TLabel;
Edit11: TEdit;
ComboBox3: TComboBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Image1: TImage;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Label18: TLabel;
Label19: TLabel;
ComboBox4: TComboBox;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
// procedure FormCreate(Sender: TObject);
// procedure DrawLines;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender:
TObject);
var
x1,x2,x11,x12,x13,x21,x22,x23,
a11,a12,a21,a22,a31,a32,b1,b2,
i:integer;
per12_x1,per12_x2,per13_x1,
per12,per13,per23:integer;
fx1,fx2,fc:integer;
bf12,bf13,bf23:Boolean;
f12,f13,f23,fx1x2:extended;
begin
//заливаем Image белым цветом
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Rect(0,
0, Image1.Width, Image1.Height));
//Рисуем координатную сетку:
//горизонтальная сетка
for i:=1 to trunc(Image1.Width/10) do
begin
Image1.Canvas.MoveTo(0,i*10);
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
end;
//вертикальная сетка
for i:=1 to trunc(Image1.Height/10) do
begin
Image1.Canvas.MoveTo(i*10,0);
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(i*10,
end;
//рисуем стрелочки и подписи осей
//стрелочка ось X1
Image1.Canvas.MoveTo(Image1.
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
Image1.Canvas.MoveTo(Image1.
Image1.Canvas.LineTo(Image1.
//стрелочка ось X2
Image1.Canvas.MoveTo(Image1.
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
Image1.Canvas.MoveTo(Image1.
Image1.Canvas.LineTo(Image1.
//надпись осей и точки (0;0)
Image1.Canvas.TextOut (Image1.Width div 2 + 10, 0, 'X1');
Image1.Canvas.TextOut (Image1.Width - 15, Image1.Height div 2 + 7, 'X2');
Image1.Canvas.TextOut (Image1.Width div 2 - 8, Image1.Height div 2, '0');
//присваемаем значения Edit переменным
a11:= StrToInt(Edit3.Text);
a12:=StrToInt(Edit4.Text);
a21:=StrToInt(Edit6.Text);
a22:=StrToInt(Edit7.Text);
a31:=StrToInt(Edit9.Text);
a32:=StrToInt(Edit10.Text);
b1:=StrToInt(Edit5.Text);
b2:=StrToInt(Edit8.Text);
b3:=StrToInt(Edit11.Text);
//рисуем оси абцисс и ординат
Image1.Canvas.MoveTo(Image1.
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
Image1.Canvas.MoveTo(0, Image1.Height div 2);
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
//рисуем первое уравнение
x11:=trunc((b1+a12*(Image1.
x12:=trunc((b1-a12*(Image1.
x13:=trunc(Image1.Height div 2);
Image1.Canvas.MoveTo(0,x13-
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
//рисуем второе уравнение
x21:=trunc((b2+a22*(Image1.
x22:=trunc((b2-a22*(Image1.
x23:=trunc(Image1.Height div 2);
Image1.Canvas.MoveTo(0,x23-
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
//рисуем третье уравнение
x31:=trunc((b3+a32*(Image1.
x32:=trunc((b3-a32*(Image1.
x33:=trunc(Image1.Height div 2);
Image1.Canvas.MoveTo(0,x33-
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
//рисуем ограничения
x1:= StrToInt(Edit1.Text);
x2:=StrToInt(Edit2.Text);
Image1.Canvas.MoveTo(Image1.
image1.Canvas.Pen.Color:=
Image1.Canvas.LineTo(Image1.
Image1.Canvas.MoveTo(Image1.
Image1.Canvas.LineTo(Image1.
//нахождение пересечений уравнения 1 и 2
if a22*a11-a12*a21=0
then
Label16.Caption:='Неравенства 1 и 2 не пересекаются!'
else
begin
per12_x2:=(b2*a11-b1*a21)/(
per12_x1:=(b1-a12*per12_x2)/
Label16.Caption:='Точка
пересечения неравенств 1 и 2 - ('+FloatToStr(per12_x1)+';'+
end;
//нахождение пересечений уравнения 1 и 3
if a32*a11-a12*a31=0
then
Label17.Caption:='Неравенства 1 и 3 не пересекаются!'
else
begin
per13_x2:=(b3*a11-b1*a31)/(
per13_x1:=(b1-a12*per13_x2)/
Label17.Caption:='Точка
пересечения неравенств 1 и 3 - ('+FloatToStr(per13_x1)+';'+
end;
//нахождение пересечений уравнения 2 и 3
if a32*a21-a22*a31=0
then
Label18.Caption:='Неравенства 2 и 3 не пересекаются!'
else
begin
per23_x2:=(b3*a21-b2*a31)/(
per23_x1:=(b2-a22*per23_x2)/
Label18.Caption:='Точка
пересечения неравенств 2 и 3 - ('+FloatToStr(per23_x1)+';'+
end;
//присваеваем
значения коэффициентов
fx1:=StrToInt(Edit12.Text);
Информация о работе Программный продукт "Системы линейных неравенств"