Розробка програми для розв’язування систем лінійних алгебраїчних рівнянь точними методами
Мова програмування як набір лексичних, синтаксичних і семантичних правил, що задають зовнішній вигляд програми і дії, які виконує комп’ютер під її управлінням. Методика розрахунку системи лінійних алгебраїчних рівнянь за допомогою метода Крамера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 04.02.2016 |
Размер файла | 195,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Вступ
Мова програмування - це система позначень для опису алгоритмів та структур даних, певна штучна формальна система, засобами якої можна виражати алгоритми. Мову програмування визначає набір лексичних, синтаксичних і семантичних правил, що задають зовнішній вигляд програми і дії, які виконує виконавець (комп'ютер) під її управлінням.
Існують мови програмування низького та високого рівня.
Мови низького рівня були створені у 40-х рр. ХХ ст. вони базуються на командних кодах для роботи з адресами оперативної пам'яті та регістрами процесора. Їх використовують для розробки швидкодіючих програм. Прикладом такої мови є Асемблер. Для того, щоб писати програми на мовах низького рівня, потрібно бути фахівцем не тільки з програмування, але й апаратної частини персонального комп'ютера (ПК). Програми написані на мовах низького рівня «прив'язані» до конкретної конфігурації ПК.
Мови високого рівня були створені в 50-х рр. ХХ ст. з метою наблизити користувача до комп'ютера. Ці мови близькі до розмовних мов, оскільки дають змогу записувати команди у вигляді речень. Прикладами таких мов є: Фортран, Pascal, Delphi, C, C++.
На даний момент комп'ютерні технології стрімко розвиваються. і відповідно розробляються та вдосконалюються нові мови програмування:
· Java.
· C++.
· Objective-C.
· C#.
Delphi -- мова програмування, що ґрунтується на мові Pascal від компанії Borland. До версії 7.0 мала назву Object Pascal.
Технологія роботи у середовищі Delphi базується на ідеях об'єктно-орієнтованого та візуального програмування. Ідея об'єктно-орієнтованого програмування полягає в об'єднанні даних і засобів їх опрацювання (методів) у тип, який називають класом. Конкретною змінною певного класу є об'єкт. Прикладами об'єктів можуть бути елементи керування у вікні: кнопки, списки, текстові поля тощо.
Процес написання програми розділяється на дві частини:
· перша частина - програміст розташовує на вікна своєї програми, необхідні елементи, позиціонує їх, встановлює потрібні розміри, зінює властивості;
· друга частина - написання програмного коду, опис властивостей елементів, доступних тільки під час роботи додатка, опис реакцій на подію вікна.
До переваг мови Delphi відносять :
· простий код порівняно з іншими мовами;
· легка робота з формами і об'єктами;
· створення систем клієнт-сервер (для баз-даних);
· простіше шукати помилки так як менші можливості мови.
До недоліків мови Delphi відносять:
· великий код;
· менші можливості для роботи з пам'яттю на низькому рівні;
· швидкодія менша від С++.
Java -- це один із самих значних кроків вперед в області розробки середовищ програмування за останні 20 років. Мова Java потрібна була для якісного стрибка в створенні інтерактивних продуктів для мережі Internet.
Три ключових елементи об'єдналися в технології мови Java і виділили її з всіх існуючих мов програмування, що існують на сьогоднішній день.
Java надає для широкого використання свої апплети (applets) -- невеликі, надійні, динамічні програми, що не залежать від платформи ЕОМ, активні мережні додатки, що вбудовуються в сторінки Web. Апплети Java можуть набудовуватися і поширюватися з такою же легкістю, як будь-які документи HTML.Java надає програмісту багатий набір класів об'єктів для чіткого абстрагування багатьох системних функцій, використовуваних при роботі з вікнами, мережею і для введення-виведення. Ключова риса цих класів полягає в тім, що вони забезпечують створення незалежних від платформ абстракцій для широкого спектра системних інтерфейсів
До переваг мови Java відносять :
· Java є типобезпечною мовою;
· Java-код компілюються спочатку не в машинний код, а в певний проміжний код, який надалі інтерпретується або компілюється;
· У мові Java є чіткі певні стандарти на введення-виведення, графіку, геометрію, діалог, доступ до баз даних і інших типових застосувань;
· У мові Java реалізована повноцінна збірка сміття;
· Мова Java є чисто об'єктно-орієнтованою.
До недоліків мови Java відносять:
· Ціною переносимості є вимога наявності на комп'ютері віртуальної Java-машини, що приводить до уповільнення обчислень і практичної неможливості використання нових можливостей апаратної архітектури;
· Збірка сміття призводить до втрати ефективності;
· Стандарти на графіку, доступ до баз даних тощо є недоліком, якщо програміст хоче визначити свій власний стандарт.
Отже, оскільки я лиш початківець в проектуванні програм, то я буду використовувати мову Object Pascal і середовище візуального програмування Delphi.
1. Аналіз розв'язку задачі
Метою курсового проекту було створити програму, яка б знаходила розв'язок системи алгебраїчних рівнянь з трьома змінними та забезпечити простий користувацький інтерфейс. Програма буде розв'язувати системи лінійних рівнянь двома способами:
· Метод Гауса,
· Формулами Крамера.
Система лінійних алгебраїчних рівнянь в загальному вигляді задається так:
(1.1)
Із коефіцієнті ai складаємо розширену матрицю, а з коефіцієнтів bj - стовпець вільних членів.
Інтерфейс програми буде реалізовано просто і зручно, тому що перша оцінка програми від простого користувача - це є зручність. Користувачу потрібно буде задати розширену матрицю - А і матрицю вільних членів - В. Також потрібно ввести розмірність 3 х 3. Відповідно до того введення даних буде реалізовуватись через клавіатуру, це один з простіших і ефективніших способів введення. Матриця реалізована за допомогою компоненту StringGrid.
Виведення результату на екран або точніше на форму програм відбувається за допомогою компоненту ListBox.
Нижче я наведу приклади формул з методів і наведу коротку характеристику кожному з них.
Метод Гауса: Нехай дано таку систему рівнянь:
, ??0 (1.2)
Метод Гауса ще називають методом послідовного виключення невідомих. Суть методу Гауса полягає в перетворені системи (1) до системи з трикутною матрицею, з якою послідовно (зворотнім ходом) виходить значення всіх невідомих. Ця схема називається схемою єдиного ділення. Тоді, (ведучий елемент) розділимо на перше рівняння.
Отримаємо:
(1.3)
Користуючись рівнянням (2), легко виключити невідомі з решти рівняння системи (для цього достатньо з кожного рівняння відняти рівняння (2) попередньо помножене на відповідний коефіцієнт при , тоді на першому кроці отримаємо:
(1.4)
Іншими словами на першому кроці кожен елемент наступних рядків, починаючи з другого, дорівнює різниці між вихідним елементом і твором його проекції на перший стовпець і перший перетворений рядок. Слідом за цим залишивши перше рівняння, над іншими рівняннями системи, отриманої на першому кроці, зробимо аналогічне перетворення: виберемо з числа рівняння з провідним елементом і виключимо з його допомогою з інших рівнянь (крок 2). Після n кроків замість (1) отримаємо рівносильну систему:
(1.5)
програмування алгоритм алгебраїчний
Таким чином, на першому етапі ми отримаємо трикутну систему (3). Цей етап називається прямим ходом.
Зворотній хід.
З останнього ненульового рівняння виражаємо кожну з базисних змінних через небазисні і підставляємо в попередні рівняння. Повторюючи цю процедуру для всіх базисних змінних, отримуємо фундаментальний розв'язок.
Реалізація прямого ходу буде відбуватись за допомогою такого коду програми:
for i:=1 to n-1 do
for j:=i+1 to n do
begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i]
end;
x[n]:=b[n]/a[n,n];
А зворотній хід за допомогою такого коду:
for i:=n-1 downto 1 do
begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]
end;
Опис алгоритму розв'язку системи лінійних рівнянь методом Гауса наведено в другому розділі.
Формули Крамера:
Метод або формули Камера призначений для розв'язання системи лінійних алгебраїчних рівнянь n-змінних, із ненульовим визначником головної матриці. Розв'язок для таких рівнянь є тільки один. Формули були виведені швейцарським математиком, одним із творців лінійної алгебри Габріелем Крамером у 1750 році.
На мою думку цей метод є найпростішим для розв'язання рівнянь з багатьма змінними. Щоб навчитись ним користуватись необов'язково знати вищу математику. Для того щоб оперувати цим методом необхідно вміти знаходити визначник матриці, ну і звичайно знати елементарну математику. Нижче я детально наведу алгоритм розв'язку для цього методу.
Запис формули Крамера запам'ятати легко, всього лиш три формули.
Отже, формули дозволяють розрахувати ті змінні, які Вам потрібно знайти в системі рівнянь. У кожній системі може бути різна кількість змінних, починаючи з двох. Я навів лише три змінні тому що найчастіше використовують рівняння з трьома змінними але і бувають рівняння з більшою кількістю тоді позначатиметься, наприклад, так Але рівняння можуть позначатись будь-якими буквами латинського алфавіту.
Обчислення визначника буде реалізоване за допомогою такого коду:
for i:=0 to strngrd1.ColCount-1 do
begin
mas1[i]:=StrToFloat(strngrd1.Сells[i,0]);
mas2[i]:=StrToFloat(strngrd1.Cells[i,1]);
mas3[i]:=StrToFloat(strngrd1.Cells[i,2]);
end;
ще буде використовуватись для обчислення така функція:
function podstanov (mas1,mas2,mas3:TMArray):real;
begin
Result:= mas1[0]*mas2[1]*mas3[2]+mas2[0]*mas3[1]*mas1[2]+mas1[1]*mas2[2]*mas3[0]-
mas3[0]*mas2[1]*mas1[2]-mas2[0]*mas1[1]*mas3[2]-mas3[1]*mas2[2]*mas1[0];
end;
2: Опис алгоритму розв'язку задачі
В даному розділі я наведу опис алгоритмів реалізації двох методів словесно та графічно (блок-схема).
Рис.2.1. Блок-схема методу Гауса
Покрокове виконання блок-схеми:
1. На першому кроці вводжу коефіцієнти рівняння.
2. Після того формую розширену матрицю.
3. Виконуємо прямий хід: тобто зводимо матрицю до трикутного вигляду.
4. Спочатку обнулимо коефіцієнти при Х в другому та третьому рядку.
5. Після того обнулимо коефіцієнт при Y в третьому рядку.
Тепер ми звели нашу матрицю до трикутного вигляду.
6. Отже можна приступати до оберненого ходу.
7. Тепер нам потрібно обчисляти рівняння і рухатись знизу до гори підставляючи змінні. Таким чином ми обчислимо значення x, y, z.
Метод Крамера:
Блок-схема:
Рис.2.2. Блок-схема методу Крамера
Покрокове виконання блок-схеми:
1. На першому кроці формуємо матрицю А з коефіцієнтів при змінних рівняння.
2. Обчисляємо головний визначник з матриці А, а також формуємо матрицю В з вільних членів.
3. Якщо визначник дорівнює 0, то система коренів немає, а якщо не дорівнює то ідемо далі.
4. Визначаємо допоміжні визначники заміняючи по черзі кожен зі стовпців головного визначника вільними членами матриці В.
5. Підставляємо визначники в формули та обраховуємо значення x,y,z.
3. Лістинг розробленої програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Grids;
const MaxDimension = 10;
type
TMArray =array [0..3] of real;
Vector = array[1..MaxDimension] of Double;
Matrix = array[1..MaxDimension] of Vector;
TForm1 = class(TForm)
grp1: TGroupBox;
grp2: TGroupBox;
lbl2: TLabel;
lbl6: TLabel;
lbl7: TLabel;
lbl8: TLabel;
lbl9: TLabel;
lbl10: TLabel;
lbl11: TLabel;
lbl12: TLabel;
strngrd3: TStringGrid;
strngrd4: TStringGrid;
btn3: TButton;
edt1: TEdit;
edt2: TEdit;
edt3: TEdit;
edt4: TEdit;
mm1: TMainMenu;
mniN1: TMenuItem;
mniN2: TMenuItem;
mniN3: TMenuItem;
mniN4: TMenuItem;
mniN5: TMenuItem;
mniN6: TMenuItem;
lbl1: TLabel;
lbl16: TLabel;
edt9: TEdit;
lbl3: TLabel;
lbl18: TLabel;
edt10: TEdit;
edt11: TEdit;
lbl4: TLabel;
edt12: TEdit;
edt13: TEdit;
lbl5: TLabel;
lst1: TListBox;
btn1: TButton;
btn2: TButton;
lbl19: TLabel;
strngrd5: TStringGrid;
strngrd6: TStringGrid;
btn4: TButton;
mniN7: TMenuItem;
mniN8: TMenuItem;
procedure mniN6Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure mniN2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure strngrd5KeyPress(Sender: TObject; var Key: Char);
procedure strngrd6KeyPress(Sender: TObject; var Key: Char);
procedure strngrd7KeyPress(Sender: TObject; var Key: Char);
procedure strngrd5KeyPress(Sender: TObject; var Key: Char);
procedure strngrd6KeyPress(Sender: TObject; var Key: Char);
procedure strngrd7KeyPress(Sender: TObject; var Key: Char);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.mniN6Click(Sender: TObject);
begin
AboutBox.Show;
end;
function pidstanovka (mas1,mas2,mas3:TMArray):real;
begin
Result:= mas1[0]*mas2[1]*mas3[2]+mas2[0]*mas3[1]*mas1[2]+mas1[1]*mas2[2]*mas3[0]-
mas3[0]*mas2[1]*mas1[2]-mas2[0]*mas1[1]*mas3[2]-mas3[1]*mas2[2]*mas1[0];
end;
for j:=0 to strngrd3.RowCount do
procedure TForm1.btn3Click(Sender: TObject);
var mas1,mas2,mas3:TMArray;
i,j:integer; x1,x2,x3,X,Y,Z:real;
Delta,Delta1,Delta2,Delta3:real;
begin
for i:=0 to strngrd7.ColCount-1 do
begin
mas1[i]:=StrToFloat(strngrd7.cells[i,0]);
mas2[i]:=StrToFloat(strngrd7.Cells[i,1]);
mas3[i]:=StrToFloat(strngrd7.Cells[i,2]);
end;
Delta:=pidstanovka(mas1,mas2,mas3);
for j:=0 to strngrd7.RowCount do
begin
strngrd8.Cells[0,j]:=strngrd7.Cells[3,j];
strngrd8.Cells[1,j]:=strngrd7.Cells[1,j];
strngrd8.Cells[2,j]:=strngrd7.Cells[2,j];
strngrd8.Cells[3,j]:='0';
end;
for i:=0 to strngrd8.ColCount-1 do
Delta1:=pidstanovka(mas1,mas2,mas3);
for j:=0 to strngrd3.RowCount do
begin
strngrd3.Cells[0,j]:=strngrd7.Cells[0,j];
strngrd3.Cells[1,j]:=strngrd7.Cells[3,j];
strngrd3.Cells[2,j]:=strngrd7.Cells[2,j];
strngrd3.Cells[3,j]:='0';
end;
Delta1:=pidstanovka(mas1,mas2,mas3);
begin
strngrd3.Cells[0,j]:=strngrd7.Cells[0,j];
strngrd3.Cells[1,j]:=strngrd7.Cells[3,j];
strngrd3.Cells[2,j]:=strngrd7.Cells[2,j];
strngrd3.Cells[3,j]:='0';
end;
for i:=0 to strngrd3.ColCount-1 do
begin
mas1[i]:=StrToFloat(strngrd3.cells[i,0]);
mas2[i]:=StrToFloat(strngrd3.Cells[i,1]);
mas3[i]:=StrToFloat(strngrd3.Cells[i,2]);
end;
Delta2:=pidstanovka(mas1,mas2,mas3);
for j:=0 to strngrd4.RowCount do
begin
strngrd4.Cells[0,j]:=strngrd7.Cells[0,j];
strngrd4.Cells[1,j]:=strngrd7.Cells[1,j];
strngrd4.Cells[2,j]:=strngrd7.Cells[3,j];
strngrd4.Cells[3,j]:='0';
end;
for i:=0 to strngrd3.ColCount-1 do
begin
mas1[i]:=StrToFloat(strngrd4.cells[i,0]);
mas2[i]:=StrToFloat(strngrd4.Cells[i,1]);
mas3[i]:=StrToFloat(strngrd4.Cells[i,2]);
end;
Delta3:=pidstanovka(mas1,mas2,mas3);
edt8.Text:= FloatToStr(Delta1);
edt9.text:= FloatToStr(Delta);
edt10.Text:= FloatToStr(Delta2);
edt11.text:= FloatToStr(Delta);
edt12.Text:= FloatToStr(Delta3);
edt13.text:= FloatToStr(Delta);
X:=Delta1/Delta;
Y:=Delta2/Delta;
Z:=Delta3/Delta;
edt1.text:= FloatToStr(X);
edt2.text:= FloatToStr(Y);
edt3.text:= FloatToStr(Z);
edt4.text:= FloatToStr(Delta);
edt5.text:= FloatToStr(Delta1);
edt6.text:= FloatToStr(Delta2);
edt7.text:= FloatToStr(Delta3);
end;
procedure TForm1.mniN2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.btn1Click(Sender: TObject);
var a: Matrix;
b,x: Vector;
h: Double;
i,j,k,n:integer;
begin
n := StrToIntDef(Text, strngrd5.ColCount);
for j := 0 to n - 1 do
for i := 0 to n - 1 do
a[i + 1, j + 1] := StrToFloatDef(strngrd5.Cells[j, i], 0);
for I := 0 to n - 1 do b[i + 1] := StrToFloatDef(strngrd6.Cells[0, i], 0);
for i:=1 to n-1 do
for j:=i+1 to n do
begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i]
end;
x[n]:=b[n]/a[n,n];
for i:=n-1 downto 1 do
begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]
end;
for i:=1 to n do lst1.Items.Append('x(' + IntToStr(i) + ')=' + FloatToStr(x[i]));
end;
procedure TForm1.btn4Click(Sender: TObject);
var i, k: integer;
begin
with strngrd7 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
with strngrd8 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
with strngrd3 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
with strngrd4 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
edt1.clear;
edt2.clear;
edt3.clear;
edt4.clear;
edt5.clear;
edt6.clear;
edt7.clear;
edt8.clear;
edt9.clear;
edt10.clear;
edt11.clear;
edt12.clear;
edt13.clear;
end;
procedure TForm1.strngrd5KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9','-', #8:;
else
key:=#0;
end;
end;
procedure TForm1.strngrd6KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9','-', #8:;
else
key:=#0;
end;
end;
procedure TForm1.strngrd7KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9','-', #8:;
else
key:=#0;
end;
end;
procedure TForm1.btn2Click(Sender: TObject);
var i,k: Integer;
begin
with strngrd5 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
with strngrd6 do
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Cells[i, k] := '';
lst1.Clear;
end;
end.
end.
unit Unit2;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TAboutBox = class(TForm)
OKButton: TButton;
lbl1: TLabel;
procedure OKButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
{$R *.dfm}
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
Close;
end;
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
lbl1: TLabel;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.btn1Click(Sender: TObject);
begin
Close;
end;
end.
Висновок
Метою створення програми є реалізація розв'язання рівнянь методом Гауса і Крамера. Під час виконання курсовою роботи я згадав обидва методи, які вивчались раніше. Також згадав основні складові технології ООП, і навики в мові програмування Object Pascal, які дали змогу виконати проектування програми.
Програмі створено простий інтерфейс для простої експлуатації програми. Простий користувач який немає навиків в програмуванні і не розуміє як виконується обчислення в даній програмі, може ознайомитись в меню Допомоги.
Размещено на Allbest.ru
Подобные документы
Програма чисельного розв'язку систем лінійних алгебраїчних рівнянь (СЛАР) з розрідженою матрицею, економне витрачання оперативної пам'яті дозволяє розв’язувати багато систем високих ступенів за допомогою персональних комп'ютерів. Методи розв’язку СЛАР.
дипломная работа [1,1 M], добавлен 01.08.2009Принципи технології створення програмних продуктів. Набір файлів, необхідних для створення програми в Delphi, варіанти роботи з ними. Програмування графічного інтерфейсу користувача. Зовнішній вигляд і лістинг програми, використані команди і компоненти.
курсовая работа [550,5 K], добавлен 03.01.2014Головні особливості середовища Turbo Pascal. Властивості та вигляд системи лінійних алгебраїчних рівнянь. Опис схеми єдиного ділення (метод Гауса). Структура вхідної та вихідної інформації, текст програми, блок-схеми всіх процедур і головної програми.
курсовая работа [276,1 K], добавлен 07.02.2011Розробка програми для визначення динамічної навантажності заднього підшипника вториного валу коробки передач. Програма для розв'язання систем лінійних алгебраїчних рівнянь. Алгоритм обрахунку і графічного відображення швидкісної характеристики автомобіля.
курсовая работа [900,6 K], добавлен 07.06.2010Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Крамера, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [47,7 K], добавлен 23.04.2010Розв’язання нелінійних алгебраїчних рівнянь методом хорд. Опис структури програмного проекту та алгоритмів розв’язання задачі. Розробка та виконання тестового прикладу. Інші математичні способи знаходження коренів рівнянь, та опис виконаної програми.
курсовая работа [4,1 M], добавлен 28.09.2010Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.
курсовая работа [2,0 M], добавлен 24.09.2010Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Гаусса, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [40,3 K], добавлен 23.04.2010Основні означення системи лінійних рівнянь. Елементарні перетворення системи лінійних рівнянь. Алгоритм метода Жордана-Гаусса. Метод повного виключення невідомих. Приклад використовування методу Жордана-Гаусса. Складання програму мовою Borland C++ 4.5.
курсовая работа [139,6 K], добавлен 20.12.2013Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.
курсовая работа [222,7 K], добавлен 20.05.2015