Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Spin;
Type // описываемые типы
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
Label3: TLabel;
SpinEdit1: TSpinEdit;
StringGrid1: TStringGrid;
GroupBox2: TGroupBox;
Label1: TLabel;
Label5: TLabel;
SpinEdit2: TSpinEdit;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label2: TLabel;
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var // объявление глобальных переменных
Form1: TForm1;
implementation // область описания реализации
{$R *.dfm}
// обработчик изменения значения в счетчике
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
StringGrid1.ColCount:=SpinEdit1.Value; // установить количество столбцов в таблице
StringGrid1.Cells[SpinEdit1.Value-1,0] := 'a' + IntToStr(SpinEdit1.Value-1); // установить надпись для столбца
end;
// обработчик изменения значения в счетчике
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
StringGrid2.ColCount:=SpinEdit2.Value;
StringGrid2.Cells[SpinEdit2.Value-1,0] := 'b' + IntToStr(SpinEdit2.Value-1);
end;
// обработчик нажатия кнопки
procedure TForm1.Button1Click(Sender: TObject);
var //объявление локальных переменных
a,b:array[0..10] of integer; // массивы элементов перемножаемых многочленов
d:array[0..20] of integer; // массив элементов результирующего многочлена
k,i:integer;
n,m:integer; // размеры многочленов
begin //начало процедуры
n:=SpinEdit1.Value; // размер 1-го многочлена
m:=SpinEdit2.Value; // размер 2-го многочлена
// инициализация многочленов нулями
for i:=0 to 10 do
begin
a[i] := 0;
b[i] := 0;
end;
for i:=0 to 20 do d[i] := 0;
// инициализация 1-го многочлена введенными значениями из таблицы формы
for i:=0 to n-1 do
begin
try
a[i]:=StrToInt(StringGrid1.Cells[i,1]); // инициализация элемента массива введенным значением
except // исключение
Application.MessageBox('Вы ввели ошибочное число в элементы первого многочлена. Повторите ввод.', 'Умножение многочленов ', MB_OK + MB_ICONSTOP); // вывод сообщения на экран
Exit; // выход из процедуры
end;
end;
// инициализация 2-го многочлена введенными значениями из таблицы формы
for i:=0 to m-1 do
begin
try
b[i]:=StrToInt(StringGrid2.Cells[i,1]); // инициализация элемента массива введенным значением
except
Application.MessageBox('Вы ввели ошибочное число в элементы второго многочлена. Повторите ввод.', 'Умножение многочленов ', MB_OK + MB_ICONSTOP); // вывод сообщения на экран
Exit; // выход из процедуры
end;
end;
StringGrid3.ColCount := n+m-1; // задать размер таблицы для многочлена-результата
// перемножение многочленов
for k:=0 to n+m-2 do
begin
for i:=0 to k do
begin
d[i] := d[k]; // нахождение произведения элементов многочленов
d[k] := d[i] + a[i] * b[k-i]; // нахождение элемента многочлена-результата
end;
StringGrid3.Cells[k,0] := 'd' + IntToStr(k); // вывод подписи для столбца таблицы со значениями элементов многочлена-результата
StringGrid3.Cells[k,1] := IntToStr(d[k]); // вывод значения элемента многочлена-результата в таблицу на офрму
end;
end; // конец процедуры обработчика нажатия кнопки
// события создания формы
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.SpinEdit1Change(Sender); // вызов обработчика счетчика
Form1.SpinEdit2Change(Sender); // вызов обработчика счетчика
end;
end. // конец всех инструкций
Заключение
В результате выполнения курсовой работы, разработанной на тему «Умножение многочленов», были выполнены все поставленные задачи.
При проведении анализа предметной области были подробно описаны теоретические основы математической модели, приведены обоснование и словесное описание разрабатываемого алгоритма.
При описании постановки задачи приведена цель курсовой работы, формульные выражения задания, характеристика исходных данных и окончательных результатов вычислений, произведен выбор идентификаторов и указаны их соответствие переменным задания, приведены основные особенности решаемой задачи. Сформулированы требования к программе, выполнен выбор среды разработки и языка программирования.
При описании технической части даны пояснения назначения каждого блока, характеристика вычислительного процесса и его организация, приведен текст исходного программного модуля на выбранном языке программирования.
Внедрение данной программы позволит автоматически перемножать многочлены с помощью компьютера.
В ходе выполнения курсовой работы был разработана программа «Project1.exe», выполненный при помощи языка программирования Object Pascal в интегрированной среде разработки Delphi.
Все этапы разработки программного комплекса описаны в пояснительной записке.
Список использованных источников
5. Поган А.М. Delpi руководство программиста. – М.: Ескмо, 2006.