ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.09.2024

Просмотров: 32

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

5 Приклади тестування та результати роботи програми

Меню

Додавання дробів:

.

Віднімання дробів:

Множення дробів:

Ділення дробів:

Піднесення до степеня:

Порівняння дробів на рівність (дорвнює / не дорівнює):

Порівняння дробів на рівність(більше / менше):

Сума масивів дробів:

Сортування масиву дробів:

Висновки

Під час розробки курсового проекту я закріпила, поглибила та узагальнила знання, якими оволоділа під час вивчення курсу, в набутті навичок використання основ алгоритмізації та програмування на алгоритмічних мовах високого рівня з використанням принципів об’єктно-орієнтованого проектування та програмування в середовищі «Borland C++ Builder». Я застосовувала навички, набуті протягом навчання для створення програми для виконання основних математичних операцій над дробами: додавання, віднімання, множення, ділення, піднесення до степеню та порівняння дробів. Ця програма дозволяю реалізовую функції для знаходження суми масиву дробів та для сортування масиву дробів.. Дані завдання я реалізував з використанням класів.


Підвівши підсумки я зрозуміла, що «Borland C++ Builder» є гнучкою та алгоритмічною мовою програмування, і добре підходить як для початківця так і для досвідченого програміста. Широкий набір функцій та модульність дозволяє швидко та якісно створювати програмний продукт. Знання основ алгоритмізації та програмування з використанням принципів об’єктно-орієнтованого проектування ПЗ різних задач на ЕОМ необхідно для подальшого використання у розробці програмного забезпечення сучасних складних технічних систем та комп’ютерних систем управління.

Література

  1. Архангельский А.Я. Программирование в C++ Builder, 7 изд., Бином, 2010. — 1304 с.

  2. Бобровский С. Самоучитель программирования на C++ в системе C++ Builder. ДЕСС, 2003. — 810 с.

  3. Культин Н.Б. Самоучитель C++ Builder., Высшая школа, 2006. — 380 с.

  4. Архангельский А.Я. C++ Builder 6 справочное пособие, 2005. — 635 с.

  5. Алексанкин Т.А. Borland C++, 2003 — 540 с.

  6. Ермолаев В., Сорока Т. C++ Builder Книга рецептов, 2003. — 560 с.

  7. Культин Н.Б. C++ Builder в задачах и примерах, 2000. — 400 с.

  8. Бобровский С. Технологии C++ Builder., 2005. — 490 с.

  9. Парта С. Язык программирования C++ Лекции и упражениния, 1999. – 630 с.

Додаток а Лістинг модуля FracUnit

#include "FracUnit.h"

#include "AddUnit.h"

#include "CalculateFrac.h"

#include "SubUnit.h"

#include "MultUnit.h"

#include "DivUnit.h"

#include "PowUnit.h"

#include "RivnUnit.h"

#include "CheckUnit.h"

#include "SumMasivUnit.h"

#include "SortUnit.h"

//---------------------------------------------------------------------------

void __fastcall TMainForm::Button1Click(TObject *Sender)

{ MainForm->Close();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N2Click(TObject *Sender)

{ SumForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N3Click(TObject *Sender)

{ SubForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N4Click(TObject *Sender)

{ MultForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N5Click(TObject *Sender)

{ DivForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N6Click(TObject *Sender)

{ PowForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N8Click(TObject *Sender)

{ RivnForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N9Click(TObject *Sender)

{ CheckForm->Show();


MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N11Click(TObject *Sender)

{ SumMassivForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N12Click(TObject *Sender)

{ SortForm->Show();

MainForm->Hide();}

//---------------------------------------------------------------------------


Додаток б Лістинг модуля CalculateFrac

#include "Math.h"

class CalculateFrac{

public:

void AddFrac(int a, int b, int c, int d)

{

int zero=0;

int e=b*d;

int g=a*d+c*b;

if (g==0)

{

zero=1;

this->a=0;

}

else

{

if(abs(g)>=e)

{

this->a=g/e;

g=abs(g-=this->a*e);

if (g==0)

zero=1;

}

else

this->a=0;

}

if(zero==0)

{

this->p=(g/this->nod(abs(g),abs(e)));

this->q=(e/this->nod(abs(g),abs(e)));

}

else

{

this->p=0;

this->q=1;

}

}

void SubFrac(int a, int b, int c, int d)

{

int zero=0;

int e=b*d;

int g=a*d-c*b;

if (g==0)

{

zero=1;

this->a=0;

}

else

{

if(abs(g)>=e)

{

this->a=g/e;

g=abs(g-=this->a*e);

if (g==0)

zero=1;

}

else

this->a=0;

}

if(zero==0)

{

this->p=(g/this->nod(abs(g),abs(e)));

this->q=(e/this->nod(abs(g),abs(e)));

}

else

{this->p=0; this->q=1; }

}

void MultFrac(int a, int b, int c, int d)

{

int zero=0;

int g=a*c;

int e=b*d;

if (g==0)

{

zero=1;

this->a=0;

}

else

{

if(abs(g)>=e)

{this->a=g/e;g=abs(g-=this->a*e);if (g==0) zero=1;}

Else this->a=0;

}

if(zero==0)

{this->p=(g/this->nod(abs(g),abs(e)));

this->q=(e/this->nod(abs(g),abs(e)));}

else

{this->p=0; this->q=1;}

}

void DivFrac(int a, int b, int c, int d)

{

int zero=0;

int g=a*d;

int e=b*c;

if (g==0)

{

zero=1;

this->a=0;

}

else

{

if(abs(g)>=e)

{this->a=g/e; g=abs(g-=this->a*e);

if (g==0) zero=1; }

else this->a=0;

}

if(zero==0)

{this->p=(g/this->nod(abs(g),abs(e)));this->q=(e/this- >nod(abs(g),abs(e))); }

else

{this->p=0; this->q=1; }

}

void PowFrac(int a, int b, int n)

{

MultFrac(a,b,a,b);

for(int i=1;i<n-1;i++)

MultFrac(this->p,this->q,a,b);

}

int RivnFrac(int a, int b, int c, int d)

{

int g=b*d;

int e=a*d;

int f=c*b;

if (e==f)

return 1;

else

return 0;

}

int CheckFrac(int a, int b, int c, int d)

{

int g=b*d;

int e=a*d;

int f=c*b;

if (e==f)

return 1;

else

if(e>f)

return 2;


else

return 3;

}

int GetP()

{

return this->p;

}

int GetQ()

{

return this->q;

}

int GetA()

{

return this->a;

}

private:

int p,q,a;

int nod(int x,int y)

{

while(x!=y)

{

if(x<y)

y-=x;

else

x-=y;

}

return x;

}

};

Додаток в Лістинг модуля AddUnit

#include <vcl.h>

#pragma hdrstop

#include "AddUnit.h"

#include "FracUnit.h"

#include "CalculateFrac.h"

#include "Math.h"

//---------------------------------------------------------------------------

void __fastcall TSumForm::Button2Click(TObject *Sender)

{Label3->Hide(); Label6->Hide();

Edit5->Hide(); Edit6->Hide(); Edit7->Hide();

Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();

Edit6->Clear(); Edit7->Clear();

Button1->Enabled=true;

//---------------------------------------------------------------------------

void __fastcall TSumForm::Button3Click(TObject *Sender)

{ SumForm->Close();

MainForm->Show();}

//---------------------------------------------------------------------------

void __fastcall TSumForm::Button1Click(TObject *Sender)

{ int a,b,c,d;

if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||

((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))

{

ShowMessage("Заповніть всі поля!");

return;

}

a=StrToInt(Edit1->Text);

b=StrToInt(Edit2->Text);

c=StrToInt(Edit3->Text);

d=StrToInt(Edit4->Text);

if((d==0)||(b==0))

{

ShowMessage("Ділення на нуль!!");

return;

}

Button1->Enabled=false; Label3->Show();

CalculateFrac *Calculate=new CalculateFrac;

Calculate->AddFrac(a,b,c,d);

if(Calculate->GetA()!=0)

{

Edit5->Show();

Edit5->Text=IntToStr(Calculate->GetA());

}

if(Calculate->GetP()!=0)

{

Edit6->Show(); Edit7->Show(); Label6->Show();

Edit6->Text=IntToStr(Calculate->GetP());

Edit7->Text=IntToStr(Calculate->GetQ());

}

if((Calculate->GetA()==0)&&(Calculate->GetP()==0))

{

Edit5->Show();

Edit5->Text="0";

}

}