Смекни!
smekni.com

Программа Умножение многочленов (стр. 2 из 2)

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.

Все этапы разработки программного комплекса описаны в пояснительной записке.


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

1. Грис Д. Наука программирования. М.: Мир, 1984. – 416 с.,ил
2. Немюгин С.А. TURBO PASCAL. Программирование на языке высокого уровня.- СПБ.: Питер, 2003.
3. Котов В.М., Волков И.А., Харитонович А.И. Методы алгоритмизации. Мн.: Нар.асвета, 1996. – 127 с.: ил.
4. Культин Н.б. Delpi в примерах и задачах. – СПб.: БХВ – Петербург, 2006.

5. Поган А.М. Delpi руководство программиста. – М.: Ескмо, 2006.

6. Кандзюба С.П., Громов В.Н. Delphi базы данных и приложения. – М., СПб., К.: Diasoft, 2005.
7. Иртегов Д. В. Введение в операционные системы. – СПб.: БХВ-Петербург, 2002. – 624 с.: ил.
8. Системы отображения информации: Учебн. пособие для ВУЗов / Алиев Т.М., Пигдоров Д.И., Кривошеев В.П. – М.: Высш. школа, 1988. – 223 с.: ил.