Програма Множення многочленів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст
Введення
1. Аналіз предметної області
2. Постановка завдання
3. Технічна частина
3.1 Розробка схеми алгоритму
3.2 Реалізація програми на мові програмування
Висновок
Список використаних джерел

Введення
Курсова робота, виконана на тему «Множення многочленів», розроблена з метою зробити програму, здатну виконувати множення двох многочленів між собою.
Розробка такої програми є актуальною, так як існуючі програми дороги і мають надлишкову набір функцій.
Дана програма дозволяє проводити операцію множення двох многочленів між собою і отримувати результат у вигляді нового многочлена.
Дана програма може бути використана як один із засобів в областях, пов'язаних з математичними обчисленнями й розрахунками.
Пояснювальна записка складається з трьох розділів: аналізу предметної частини, постановки задачі та технічної частини.
У розділі «Аналіз предметної частини розглянуті теоретичні основи математичної моделі, наведено обгрунтування і словесний опис розроблюваного алгоритму.
У розділі «Постановка завдання» розглядається питання призначення програми, пред'явлені вимоги до програми, виконаний вибір середовища розробки та мови програмування.
У розділі «Технічна частина» розглядається призначення кожного блоку, характеристика обчислювального процесу і його організація, наведено текст вихідного програмного модуля на вибраній мові програмування

1 Аналіз предметної області
Однією з основних областей застосування ПК є математичні і науково-технічні розрахунки. Складні обчислювальні задачі, що виникають при моделюванні технічних пристроїв і процесів, можна розбити на ряд елементарних: обчислення інтегралів, розв'язання рівнянь, розв'язання диференціальних рівнянь і т.д. Для таких задач вже розроблені методи рішення, створені математичні системи.
Математична модель множення многочленів представлена ​​в формулах (1) і (2).
(1)
(2)
Зокрема,

Алгоритм множення многочленів:
1) перемножування i-го і (ki)-го елементів многочленів між собою, де k - номер елемента в многочлене-результаті, а i - порядковий номер першого многочлена, (ki) - порядковий номер другого многочлена;
2) складання отриманого результату з попереднім твором елементів многочленів;
3) перехід до наступних елементів многочленів;
4) повторення пунктів 1-3 k раз для i-го елемента многочленів, де k - номер елемента в многочлене-результаті, а i - порядковий номер для перемножуються многочленів;
5) перехід до наступного запису многочлена-результату;
6) повторення пунктів 1-5 за кількістю елементів у многочлене-результаті.

2. Постановка завдання
Мета курсової роботи - навчити користуватися найпростішими методами обчислень з використанням сучасних інформаційних технологій.
Метою курсової роботи, виконаної на тему «Множення многочленів», є розробка програми, що дозволяє отримувати результат множення двох многочленів.
Отримана в результаті виконання курсової роботи програма дозволить підвищити швидкість розрахунків порівняно з ручними розрахунками, а також підвищити точність і надійність обчислень.
Програма призначена для наступних основних функцій:
- Введення розмірів многочленів;
- Введення елементів многочленів;
- Висновок результату множення многочленів.
Вхідний інформацією буде:
- Розмір першого многочлена;
- Розмір другого многочлена;
- Масив елементів першого многочлена;
- Масив елементів другого многочлена.
Вхідна інформація візуально представлена ​​у вигляді двох однорядкових таблиці, де кожен їх стовпець є елементом многочлена. Для введення розмірів многочленів використовується спеціальні поля, із зазначенням їх розмірності.
Всі внесені зміни зразу ж візуально відображаються на екрані.
Вхідна інформація вводиться ручним способом, за допомогою клавіатури або за допомогою випадаючих списків і допоміжних форм. Контроль, за коректністю введення даних, здійснюється за допомогою встановлених обмежень, а також візуально: за допомогою сполучень і з допомогою підказок.
Вхідна інформація представлена ​​у вигляді:
- Масиву елементів результуючого многочлена.
Вихідна інформація візуально представлена ​​у вигляді таблиці в один рядок, де кожен стовпчик таблиці є елементом результуючого многочлена.
Для виведення вихідної інформації використовується монітор.
Для вирішення виберемо наступні ідентифікатори:
- N - розмір першого многочлена;
- M - розмір другого многочлена;
- A [0 .. 10] - масив елементів першого многочлена;
- B [0 .. 10] - масив елементів другого многочлена;
- D [0 .. 20] - масив елементів результуючого многочлена.
Автоматизована система повинна бути розроблена для користувача, що не має професійних навичок у програмуванні. Отже, програмний продукт, повинен працювати в діалоговому режимі і взаємодіяти з користувачем через екран і клавіатуру ПЕОМ. До такої системи пред'являється ряд вимог, які дозволяють полегшити діалог користувача з машиною:
- Комфорт і дружність;
- Розвинена система підказок;
- Цілісність і надійність даних.
При розробці системи повинні враховуватися деякі принципи, яким повинна відповідати система:
- Система повинна забезпечувати машинне формування вхідної інформації і її перевірку,
- Видачу інформації на екран монітора.
Програма повинна забезпечувати виведення на друк результату множення многочленів.
Розробляється система повинна працювати в будь-якої версії операційних систем сімейства Windows.
Для цього розглянемо найбільш поширені засоби реалізації.
Необхідно сказати, що революційним кроком стала поява візуального програмування заснованого на принципі WYSIWYG (What you see is what you get), які виникли в Visual Basic і знайшов блискуче втілення в системах Delphi і C + + Builder фірми Borland.
Візуальне програмування дозволило звести проектування користувальницького інтерфейсу до простих і наочним процедур, які дають можливість значно скоротити терміни проектування інтерфейсу.
Завдяки візуальному об'єктно-орієнтованого програмування була створена технологія, що отримала назву швидка розробка додатків, по-англійськи - RAD-Rapid Application Development.
Системи Delphi і C + + Builder це наступний крок у розвитку середовища швидкої розробки додатків.
Для реалізації була вибрана системи Delphi і мова програмування Object Pascal, так як хоча C + + Builder і Delphi схожі, але краще використовувати Delphi, як більш простий і зручний для розробки невеликих додатків і баз даних.

3 Технічна частина
3.1 Розробка схеми алгоритму
Алгоритм відображає послідовність виконання завдань системи, режими роботи системи та можливості переходу з одного режиму роботи в іншій. Укрупнений алгоритм функціонування системи представлений на малюнку 1.
Блок «початок» відповідає завантаженні системи і видачі головної форми.
SHAPE \ * MERGEFORMAT
початок
до стор 10
Введення n
Введення m
for i: = 0 to 10 do
a [i]: = 0
b [i]: = 0
for k: = 0 to 20 do
d [k]: = 0
1
2
3
4
5
6
7
8

SHAPE \ * MERGEFORMAT
зі стор 9
до стор 11
for i: = 0 to n-1 do
Якщо
a [i] число
Exit
Ви ввели помилкове число в елементи 1-го многочлена. Повторіть введення.
a [i]: = StrToInt (StringGrid1.Cells [i, 1]);
for i: = 0 to m-1 do
Якщо
b [i] число
Exit
Ви ввели помилкове число в елементи 2-го многочлена. Повторіть введення.
b [i]: = StrToInt (StringGrid2.Cells [i, 1]);
StringGrid3.ColCount: = n + m-1;
9
10
11
12
13
14
15
17
16
18
19

SHAPE \ * MERGEFORMAT
зі стор 10
кінець
for k: = 0 to n + m-2 do
for i: = 0 to k do
d [i]: = d [k];
d [k]: = d [i] + a [i] * b [ki];
StringGrid3.Cells [k, 0]: =
'D' + IntToStr (k);
StringGrid3.Cells [k, 1]: = IntToStr (d [k]);
20
21
22
23
24
25
26

Рисунок 1 - Алгоритм функціонування системи
Блок 1 - Початок програми.
Блок 2 - Введення кількості елементів у 1-го многочлена.
Блок 3 - Введення кількості елементів в 2-го многочлена.
Блок 4 - Цикл по всіх елементах масивів a і b.
Блок 5 - Ініціалізація нулями масиву a.
Блок 6 - Ініціалізація нулями масиву b.
Блок 7 - Цикл по всіх елементах масиву d.
Блок 8 - Ініціалізація нулями масиву d.
Блок 9 - Цикл за кількістю введених елементів масиву a.
Блок 10 - Перевірка умови чи є введене значення елемента 1-го масиву числом.
Блок 11 - Присвоєння введеного значення в i-ий елемент масиву.
Блок 12 - Виведення повідомлення про помилку на екран.
Блок 13 - Припинення виконаних наступних далі інструкцій.
Блок 14 - Цикл за кількістю введених елементів масиву b.
Блок 15 - Перевірка умови чи є введене значення елемента 2-го масиву числом.
Блок 16 - Присвоєння введеного значення в i-ий елемент масиву.
Блок 17 - Виведення повідомлення про помилку на екран.
Блок 18 - Припинення виконаних наступних далі інструкцій.
Блок 19 - Поставити кількість елементів таблиці елементів многочлена-результату.
Блок 20 - Цикл для всіх елементів многочлена-результату.
Блок 21 - Цикл для підсумовування творів a [i] * b [ki], з яких складається значення елемента многочлена-результату.
Блок 22 - Обчислення значення частини суми, з якої складається значення елемента многочлена-результату.
Блок 23 - Обчислення значення елемента многочлена-результату.
Блок 24 - Висновок підписи для клітинки таблиці многочлена-результату ..
Блок 25 - Висновок в задану клітинку таблиці значення елемента многочлена-результату.
Блок 26 - Вихід з програми.
3.2 Реалізація програми на мові програмування
Програмний продукт, виконаний за допомогою мови програмування Object Pascal в інтегрованому середовищі розробки Delphi.
Код програми на мові програмування Object Pascal, розробленої у системі розробки Delphi.
unit Unit1; / / назва модуля

interface / / область описує інтерфейс
uses / / модулі, що підключаються
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 [ki]; / / знаходження елемента многочлена-результату
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 с.: Іл.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
39.3кб. | скачати


Схожі роботи:
Види многочленів
Рішення математичних многочленів
Мінімальні форми булевих многочленів
Мінімальні форми булевих многочленів 2
Коріння многочленів від однієї змінної
Програма Txtprintcom - резидентна програма для швидкого і зручного друкування виборчого тексту
Множення трикутником
Деякі властивості многочленів та їх використання в задачах зв`язку
ОС Windows XP програма Провідник програма Total Commander
© Усі права захищені
написати до нас