Створення програми-органайзера
Створення програми-органайзера
МІНІСТЕРСТВО
ОСВІТИ І НАУКИ УКРАЇНИ
ПВНЗ
ЄВРОПЕЙСЬКИЙ УНІВЕРСИТЕТ
ЧЕРКАСЬКА
ФІЛІЯ
Кафедра
математичних і комп’ютерних дисциплін
КУРСОВА
РОБОТА
з
дисципліни: “Прикладне програмне забезпечення”
на тему:
“Створення
програми-органайзера”
Перевірив: Кулагін С.В.
Виконала: студентка ІІІ
курсу
Халіман Наталія
Черкаси-
2009
Зміст
Вступ
Розділ 1. Аналіз
предметної області
1.1 Середовище розробки
програми
Розділ 2. Опис
предметної області
2.1 Постановка задачі
2.2 Програмна модель
Розділ 3. Розробка
інтерфейсу і тестування програми
3.1 Інтерфейс
3.2 Створення
інсталяції
3.3 Тестування програми
Висновки
Список використаної
літератури
Додаток
Вступ
Органайзер
являється засобом керування часом. Попереднє планування справ допомагає
підвищити ефективність будь-якої діяльності, як особистої, так і професійної.
Комп’ютерна
програма-органайзер — це комп’ютерна програма, що відноситься до прикладного
програмного забезпечення і призначена для накопичення інформації користувача, а
потім оперативного пошуку по ній, організації справ і контролю за їх
виконанням, відслідковування визначених користувачем подій. Являється однією із
форм персонального органайзера.
Написання
даних програм можливе різноманітними мовами програмування і в різних
середовищах розробки.
Функції
типової комп’ютерної програми-органайзера пов’язані із забезпеченням роботи
наступних підрозділів:
календар;
записна
книжка;
менеджер
контактів(адресно-телефонна книга);
події,
прив’язані до певної дати(свята, зустрічі);
годинник;
калькулятор.
Сфери
застосування і вимоги до органайзерів досить різноманітні, тому існують різні
версії, які можуть не містити деяких функцій, вказаних вище, проте мати певні
специфічні додатки, необхідні конкретній категорії користувачів.
Розділ
1. Аналіз предметної області
1.1
Середовище розробки програми
У
курсовій роботі для розробки програми я використовувала середовище
програмування Borland Delphi 7.
Delphi
— це інтегроване середовище швидкої розробки програмного забезпечення для
роботи під Microsoft Windows. Воно підтримує розробку Windows-додатків на мові
програмування Delphi, яка є наступницею мови Object Pascal.
Delphi
в основному використовується для розробки настільних прикладних програм та
корпоративних СУБД, проте цей інструмент можна використовувати для розробки
будь-якого загального програмного забезпечення. Не залишена осторонь і
можливість побудови Веб-додатків, так потрібних у сучасному інформаційному
світі.
Delphi
поширюється у кількох редакціях з різними можливостями і цінами: Personal (на
даний час недоступний), Professional, Enterprise (раніше Client/Server) та
Architect.
Delphi
спочатку було таємним дослідницьким проектом компанії Borland, який розвинувся
у продукт, що мав називатися AppBuilder.
Проте
відразу після першого релізу AppBuilder компанії Borland був випущений Novell
AppBuilder, тож Borland була змушена придумати нову назву для свого продукту.
Після великої дискусії назва Delphi перемогла.
Delphi
була першою так званою системою швидкої розробки, випущеною у 1995-ому році для
16-бітної Windows 3.1.
Delphi
2, представлена роком пізніше, підтримувала 32-бітне Windows-середовище, a
версія, що використовувала мову C++, під назвою C++ Builder побачила світ іще
кількома роками пізніше.
Головним
архітектором Delphi на той час був Андерс Гейлсберг, який розробив Turbo
Pascal. Він перейшов у Microsoft у 1996 для розробки мови C#.
У
2001-ому році була представлена версія для операційної системи Linux під назвою
Kylix. Проте дуже швидко вона була розкритикована за низьку якість і велику
кількість помилок. Через це, враховуючи низький рівень продажу, вона була
занедбана після третьої версії.
Була
зроблена спроба зробити підтримку і Linux, і Windows для багатоплатформної
розробки, внаслідок чого у Delphi 6 була включена бібліотека CLX,
багатоплатформна версія бібліотеки VCL. Технологія CLX теж зазнала поразки і
після падіння Kylix теж була закинута.
Ще
починаючи з першої версії 1.0 розробка програм для баз даних стала однією з
сильних сторін Delphi. Бібліотека візуальних компонент (англ. Visual Component
Library, VCL) містила велику бібліотеку компонент для доступу та маніпулювання
з базами даних. Borland Database Engine була оригінальною технологією зв'язку з
базами даних, і була єдиним рішенням у ранніх версіях Delphi. Навіть зараз,
коли вона рідко використовується, остання версія IDE все ще поставляється з BDE,
необов'язковим для встановлення.
Delphi
7, випущена у серпні 2002, стала стандартом де-факто для багатьох
Delphi-розробників, і навіть зараз вона активно використовується. В Delphi 7
додано підтримку для тем Windows XP і покращено можливості для побудови
Web-додатків. Також це була остання версія Delphi, яка могла використовуватися
без активації. Вона мала лише необов'язкову реєстрацію, яку можна було просто
проігнорувати. Delphi 7 є найбільш оціненою IDE, створеною Borland завдяки
своїй стабільності, швидкості і низькими вимогами до апаратного забезпечення.
Незважаючи на це у цій версії Delphi, як і у всіх інших, була велика кількість
відомих помилок, так ніколи і не виправлених Borland.
Delphi
8, представлений у грудні 2003-ого, був лише.NET-релізом, що дозволяв
розробникам компілювати вихідні коди Object Pascal у.NET CIL. Також він дуже
відрізнявся від попередників зовнішнім виглядом IDE, в якому вперше застосовано
багатовіконний стиль, багато в чому схожий на середовище Microsoft's Visual
Studio.NET. Хоча можливість перемикання у класичне (англ. Classic Undocked)
розміщення вікон все ще залишилася.
Наступна
версія Delphi 2005 (Delphi 9) включала в собі можливість розробки як для
платформи Microsoft.NET, так і під «рідну» Win32. Також ця версія дозволяла маніпулювати
даними з баз даних ще у режимі дизайнера. Відзначалося і вдосконалене IDE, а з
мовних можливостей був новий вираз for … in (аналог foreach у C#'і). Проте,
середовище було знову розкритиковане за виявлені помилки — обидві версії Delphi
8 і Delphi 2005 мали проблеми із стабільністю, які були лише частково
виправлені у сервісних пакетах.
Наприкінці
2005-ого було випущено Borland Developer Studio 2006, яка включала C#,
Delphi.NET, Delphi Win32 та C++ у єдиному IDE. Ця версія була набагато
стабільніша за Delphi 8 чи Delphi 2005, і ще більше поліпшена з випуском
сервісних пакетів та оновлень.
Delphi
2007 — перша версія випущена CodeGear 16-ого березня 2007. Win32-версія була
представлена першою, пізніше була випущена.NET-версія Delphi 2007 як частина продукту
CodeGear RAD Studio 2007. Нові можливості включали підтримку MS Build та
вдосконалення Visual Component Library для Windows Vista. CodeGear також
представила DBX4 як нову версію dbExpress. Вперше Delphi можна було завантажити
з інтернету і активувати ліцензійним ключем. Локалізовані версії Delphi 2007
були одночасно представлені на англійській, французькій, німецькій та японській
мовах. RAD Studio 2007, яка включала розробку на Delphi.NET та C++, була
випущена 5-ого вересня 2007-ого.
У
Delphi 2009 (кодова назва Tiburón) додано багато нових можливостей,
зокрема узагальнення (англ. generics), анонімні методи (для Win32 та.NET),
повністю перероблено VCL та RTL для повної підтримки Юнікоду.
Borland
продала CodeGear компанії Embarcadero Technologies в 2008. Embarcadero зберегла
відділ CodeGear, створений Borland, для ідентифікації куплених продуктів, свої
ж розробки Embarcadero вирішила розповсюджувати під іменем DatabaseGear.
25
серпня 2009 року було випущено вже тринадцяту по рахунку версію Delphi 2010.
Розділ
2. Опис предметної області
2.1
Постановка задачі
Прикладне
програмне забезпечення призначене для користувачів, що звичайно не створюють
своїх програм, а лише використовують програмні засоби для вирішення певних
задач. На відміну від програмістів, таких користувачів називають “кінцевими“.
Вважається, що саме вони і є справжніми споживачами тієї інформації, що
зосереджена в пам’яті комп’ютера або може генеруватися в процесі роботи
прикладних програм.
При
спілкуванні з прикладною системою користувачу іноді доводиться
виконувати
деякі прості операції - вводити числа і тексти, переглядати дані, виводити
графіки і малюнки на екран дисплея і на зовнішні пристрої та інше. Прикладні
програмні засоби будуються таким чином, щоб створити користувачу максимальний
комфорт при виконанні дій і при цьому не вимагати від нього надмірно великих
навиків і спеціальних знань, що не відносяться безпосередньо до його фахових
інтересів.
Можна
виділити два класи прикладного програмного забезпечення, що використовуються на
персональних комп’ютерах:
прикладні
пакети і програми загального призначення;
проблемно-орієнтовані
пакети і програми.
Серед
стандартного прикладного програмного забезпечення загального застосування для
управлінської діяльності слід виділити:
Системи
підготовки текстових документів (текстові редактори, текстові процесори,
настільні видавничі системи).
Системи
обробки фінансово-економічної інформації (універсальні табличні процесори,
спеціалізовані бухгалтерські програми, спеціалізовані банківські програми внутрішніх
та міжбанківських розрахунків, спеціалізовані програми фінансово-економічного
аналізу і планування).
Системи
керування базами даних призначені для створення, зберігання та маніпулювання
масивами даних великих обсягів. Різні системи цього класу розрізняються
способами організації зберігання даних і обробки запитів на пошук інформації, а
також характером інформації, яка зберігається в базі даних.
Особисті
інформаційні системи (програма-секретар). Вони дозволяють проводити планування
особистого часу, своєчасно нагадують про початок запланованих заходів, ведуть
персональні та інші карточки з можливістю автоматичної вибірки інформації, ведуть
персональні інформаційні записники для збереження різноманітної особистої
інформації.
Саме
до останнього типу належить органайзер – програма, призначена для накопичення інформації
користувача, а потім оперативного пошуку по ній, організації справ і контролю
за їх виконанням, відслідковування визначених користувачем подій.
2.2
Програмна модель.
Завданням
роботи є створення програми – органайзера для планування робочого часу, ведення
записної і телефонної книжки. До складу додатка повинні входити: калькулятор,
записна і телефонна книжка, годинник, календар. Захистити додаток від
копіювання шляхом прив’язки до параметра в системному реєстрі. Створити
інсталяцію, оптимізовану для розповсюдження на дискетах.
Програма
створена в середовищі Borland Delphi 7 і складається з кількох модулів. Крім
того, в ній застосовуються XML таблиці.
Основними
операціями, виконуваними програмою, є: робота з базами,
обчислення(калькулятор), вивод поточної дати і часу.
Загальний
алгоритм роботи програми нескладний: при роботі з базами записника і телефонної
книги користувач вводить дані, які, за умови коректного вводу, записуються в
базу. Після цього обирається певна опція з переліку доступних з виділенням
запису, якщо це операція над окремим елементом або опція маніпуляції всією
базою. Якщо всі дії виконано, обирається опція виходу.
Графічне
відображення алгоритму має такий вигляд(схема1):
Схема
1. Загальний алгоритм роботи програми.
Решта
функцій, визначених у програмі, має схожий, стандартний алгоритм, тому нема
потреби ще раз повторювати схему.
Розділ
3. Розробка інтерфейсу і тестування програми
3.1
Інтерфейс
Для створення
програми були використані XML-таблиці і елементи ClientDataSet та DataSourse,
що застосовуються для розробки баз даних і розташовані на вкладці Data Access.
Крім того, необхідними є компоненти DBGrid і DBNavigator, розташовані на
вкладці DataControls.
В
ході розробки програми було визначено, що програма складатиметься з кількох
модулів: головного і підлеглих. Підлеглі модулі викликликаються і
використовуються головним модулем. Головний модуль міститиме в собі записник,
годинник, календар і інформаційне повідомлення.
Один
з підлеглих модулів вміщує телефонну книгу, подібну за структурою до записника.
Другий модуль вміщує в собі калькулятор.
Для
розробки інтерфейсу було використано 3 форми, відповідно до числа модулів: 1
головна(рис.1) і 2 модальні.
Рис.
1 Головна форма.
Основою
форми є вже вищезгадані ClientDataSet та DataSourse, DBGrid і DBNavigator.
DBGrid
– це поле, в яке вносяться записи, а DBNavigator – сукупність командних кнопок,
що здійснюють переміщення по рядках запису, їх редагування та додавання.
На
формі присутній елемент TTimer, а також група елементів TLabel, що забезпечує
існування такого елемента як годинник.
Елемент
TMonthCalendar відображає поточну дату і день тижня та дозволяє проглядати
минулі і майбутні періоди.
Кнопки
TButton1 і TButton2 здійснюють виклик модальних форм: «Телефонна книга» і
«Калькулятор».
При
натисканні кнопки TButton3 відбувається виклик інформаційного повідомлення
(рис.2).
Рис.
2 Інформаційне повідомлення.
Модальна
форма TForm2 (рис. 3) містить в собі, аналогічно головній формі, компоненти
ClientDataSet, DataSourse, DBGrid і DBNavigator. Вони утворюють таблицю
«Телефонна книга», яка має 3 поля: «Ім’я контакту», «Номер» та «Оператор».
Рис.
3 Модальна форма TForm2.
Модальна
форма TForm3 (рис. 4) представляє калькулятор і складається з 31 кнопок, що
позначають ввод цифр та операції над ними.
Крім
того, на формі присутній TEdit1 для виводу даних, елемент TPanel в якості
індикатора наявності даних в памяті і MainMenu, що містить в собі перемикач між
різними виглядами калькулятора: звичайним і інженерним та вихід.
Рис.
4 Модальна форма TForm3.
3.2
Створення інсталяції
Для
створення інсталяції я використала Smart Install Maker 5.02 – програму-
створювач пакетів установки. Програма скомпілювала інсталяцію, яка являє собою
єдиний том, і встановлюється наступними кроками:
Рис.
5 Старт установки
Рис.
6 Процес установки
Рис.
7 Успішне завершення установки.
Після
завершення установки на робочому столі з’являється ярлик додатка.
3.3
Тестування програми.
Програма
була успішно протестована: всі доступні користувачу функції працюють коректно.
Демонстрація
роботи програми наведена на рис.8-10:
Рис.
8 Телефонна книга.
Рис.
9 Калькулятор.
Рис.
10 Головне вікно органайзера.
Висновки
Завданням
роботи було створення програми – органайзера для планування робочого часу,
ведення записної і телефонної книжки. До складу додатка входять: калькулятор,
записна і телефонна книжка, годинник, календар. Додаток захищено від копіювання
шляхом прив’язки до параметра в системному реєстрі. Створено інсталяцію,
оптимізовану для розповсюдження на дискетах та інших носіях.
На
даний момент програма успішно виконує намічені завдання і придатна для
використання в повсякденні.
Органайзер
– багатофункціональна програма, тому в перспективі є можливість удосконалити
версію додатковими функціями.
Список
використаної літератури
1. М. Фленов «Библия Delphi», С-Петербург, - «БХВ-Петербург», 2004.
2. Попов В.Б. «Паскаль и Дельфи. Самоучитель», - СПб.: Питер, 2004.
3. Шпак Ю. А. «Delphi 7 на примерах», - «Юниор», 2003.
4. http://delphiexpert.ru/book.php
5. http://programmersclub.ru
Додаток
Лістинг
програми
unit
main;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
DB, DBClient, StdCtrls, DBCtrls, Mask, Grids, DBGrids, Calendar,
ExtCtrls,DateUtils,ShellAPI,
ComCtrls, inifiles;
type
TForm1
= class(TForm)
DataSource1:
TDataSource;
ClientDataSet1:
TClientDataSet;
ClientDataSet1Key1:
TAutoIncField;
ClientDataSet1EventName:
TStringField;
ClientDataSet1DateTime:
TDateTimeField;
ClientDataSet1EventText:
TMemoField;
DBGrid1:
TDBGrid;
Timer1:
TTimer;
Shape1:
TShape;
Label4:
TLabel;
Label5:
TLabel;
Label6:
TLabel;
MonthCalendar1:
TMonthCalendar;
DBNavigator1:
TDBNavigator;
Button1:
TButton;
Button2:
TButton;
Button3:
TButton;
procedure
FormCreate(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
procedure
FormShow(Sender: TObject);
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure
Button3Click(Sender: TObject);
private
{
Private declarations }
public
{
Public declarations }
end;
var
MainForm:
TForm1;
implementation
uses
Unit2, calkulator;
{$R
*.dfm}
procedure
TForm1.FormCreate(Sender: TObject);
var
Hour, Min: word;
win:
TIniFile;
pres:
string;
begin
Win:=
TIniFile.Create('win.ini');
Win.ReadString
('windows', 'run', pres);
IF
pres<> application.ExeName then win.WriteString('windows', 'run',
application.ExeName);
Win.Free;
ClientDataSet1.LoadFromFile('zapysnyk.xml');
ClientDataSet1.LogChanges:=False;
Hour:=
HourOf(Now);
Min:=
MinuteOf(Now);
Label4.Caption:=
IntToStr(Hour);
if
Min < 10
then
Label6.Caption:= '0'+IntToStr(Min)
else
Label6.Caption:= IntToStr(Min);
end;
procedure
TForm1.FormShow(Sender: TObject);
begin
ClientDataSet1.LoadFromFile('zapysnyk.xml');
IF
ClientDataSet1.Eof= false then timer1.Enabled:= true;
end;
procedure
TForm1.Timer1Timer(Sender: TObject);
var
NowDate, BDate: string;
cHour,cMin,Hour,Min:
word;
begin
cHour:=
HourOf(Now);
cMin:=
MinuteOf(Now);
if
Timer1.Tag = 0
then
begin
if
cHour <> Hour then
begin
Hour:=
cHour;
Label4.Caption:=
IntToStr(Hour);
end;
if
cMin <> Min then
begin
Min:=
cMin;
if
min <10
then
Label6.Caption:= '0' + IntToStr(Min)
else
Label6.Caption:= IntToStr(Min);
end;
if
Label5.Visible
then
Label5.Visible:= False
else
label5.Visible:= True;
end;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure
TForm1.Button2Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
ShowMessage('Дана
програма - курсова робота з дисципліни "Прикладне програмне
забезпечення" студентки групи КН-71 Халіман Наталії');
end;
end.
unit
Unit2;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, DB, ExtCtrls, DBCtrls, Grids, DBGrids, DBClient;
type
TForm2
= class(TForm)
DataSource1:
TDataSource;
ClientDataSet1:
TClientDataSet;
DBGrid1:
TDBGrid;
DBNavigator1:
TDBNavigator;
ClientDataSet1Key1:
TAutoIncField;
ClientDataSet1Name:
TStringField;
ClientDataSet1Nomer:
TIntegerField;
ClientDataSet1Operator:
TStringField;
private
{
Private declarations }
public
{
Public declarations }
end;
var
Form2:
TForm2;
implementation
{$R
*.dfm}
end.
unit
calkulator;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls, Menus, XPMan;
type
TForm3
= class(TForm)
Edit1:
TEdit;
Panel1:
TPanel;
Butt_back:
TButton;
Butt_C:
TButton;
Butt_MC:
TButton;
Butt_MR:
TButton;
Butt_MS:
TButton;
Butt_M_plus:
TButton;
Butt_7:
TButton;
Butt_4:
TButton;
Butt_1:
TButton;
Butt_0:
TButton;
Butt_8:
TButton;
Butt_5:
TButton;
Butt_2:
TButton;
Butt_plus_minus:
TButton;
Butt_9:
TButton;
Butt_6:
TButton;
Butt_3:
TButton;
Butt_coma:
TButton;
Butt_div:
TButton;
Butt_mnoj:
TButton;
Butt_minus:
TButton;
Butt_plus:
TButton;
Butt_sqrt_corin:
TButton;
Butt_step:
TButton;
Butt_na_x:
TButton;
Butt_doriv:
TButton;
Butt_pi:
TButton;
Butt_sin:
TButton;
Butt_cos:
TButton;
Butt_ln:
TButton;
Butt_x:
TButton;
MainMenu1:
TMainMenu;
N1:
TMenuItem;
N2:
TMenuItem;
N3:
TMenuItem;
N4:
TMenuItem;
XPManifest1:
TXPManifest;
procedure
Butt_0Click(Sender: TObject);
procedure
Butt_1Click(Sender: TObject);
procedure
Butt_2Click(Sender: TObject);
procedure
Butt_3Click(Sender: TObject);
procedure
Butt_4Click(Sender: TObject);
procedure
Butt_5Click(Sender: TObject);
procedure
Butt_6Click(Sender: TObject);
procedure
Butt_7Click(Sender: TObject);
procedure
Butt_8Click(Sender: TObject);
procedure
Butt_9Click(Sender: TObject);
procedure
Butt_MCClick(Sender: TObject);
procedure
Butt_MRClick(Sender: TObject);
procedure
Butt_MSClick(Sender: TObject);
procedure
Butt_M_plusClick(Sender: TObject);
procedure
Butt_backClick(Sender: TObject);
procedure
Butt_CClick(Sender: TObject);
procedure
Butt_plus_minusClick(Sender: TObject);
procedure
Butt_comaClick(Sender: TObject);
procedure
Butt_divClick(Sender: TObject);
procedure
Butt_mnojClick(Sender: TObject);
procedure
Butt_minusClick(Sender: TObject);
procedure
Butt_plusClick(Sender: TObject);
procedure
Butt_sqrt_corinClick(Sender: TObject);
procedure
Butt_stepClick(Sender: TObject);
procedure
Butt_na_xClick(Sender: TObject);
procedure
Butt_dorivClick(Sender: TObject);
procedure
Butt_piClick(Sender: TObject);
procedure
Butt_sinClick(Sender: TObject);
procedure
Butt_lnClick(Sender: TObject);
procedure
Butt_cosClick(Sender: TObject);
procedure
Butt_xClick(Sender: TObject);
procedure
N2Click(Sender: TObject);
procedure
N3Click(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
Edit1Change(Sender: TObject; var Key: Char);
procedure
N4Click(Sender: TObject);
private
{
Private declarations }
public
{
Public declarations }
end;
var
Form3:
TForm3;
implementation
uses
main;
{$R
*.dfm}
var
x,y,numb,cyf,m:real;
oper,f:integer;
procedure
TForm3.Butt_0Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'0';
f:=
1;
end
else
if
Edit1.Text <> '0'
then
Edit1.Text:= Edit1.Text + '0';
end;
procedure
TForm3.Butt_1Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'1';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '1';
end;
procedure
TForm3.Butt_2Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'2';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '2';
end;
procedure
TForm3.Butt_3Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'3';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '3';
end;
procedure
TForm3.Butt_4Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'4';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '4';
end;
procedure
TForm3.Butt_5Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'5';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '5';
end;
procedure
TForm3.Butt_6Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'6';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '6';
end;
procedure
TForm3.Butt_7Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'7';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '7';
end;
procedure
TForm3.Butt_8Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'8';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '8';
end;
procedure
TForm3.Butt_9Click(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=
'9';
f:=
1;
end
else
Edit1.Text:= Edit1.Text + '9';
end;
procedure
DoOper;
begin
numb:=
StrToFloat(Form3.Edit1.Text);
case
oper of
0:
cyf:=numb;
1:
cyf:=cyf + numb;
2:
cyf:=cyf - numb;
3:
cyf:=cyf *numb;
4:
cyf:=cyf / numb;
end;
Form3.Edit1.Text:=
FloatToStr(cyf);
end;
procedure
TForm3.Butt_MCClick(Sender: TObject);
begin
m:=0;
panel1.Caption:='';
end;
procedure
TForm3.Butt_MRClick(Sender: TObject);
begin
edit1.Text:=floattostr(M);
end;
procedure
TForm3.Butt_MSClick(Sender: TObject);
begin
M:=strtofloat(edit1.Text);
panel1.Caption:='M';
end;
procedure
TForm3.Butt_M_plusClick(Sender: TObject);
begin
panel1.Caption:='M';
M:=M+strtofloat(edit1.Text);
end;
procedure
TForm3.Butt_backClick(Sender: TObject);
var
back:string;
begin
back:=edit1.Text;
delete(back,length(back),1);
edit1.Text:=back;
if
edit1.Text='' then
begin
edit1.Text:='0';
end;
end;
procedure
TForm3.Butt_CClick(Sender: TObject);
begin
Edit1.Text:=
'0';
cyf:=
0;
oper:=
0;
f:=
0;
end;
procedure
TForm3.Butt_plus_minusClick(Sender: TObject);
begin
edit1.Text:=floattostr(-strtofloat(edit1.Text));
end;
procedure
TForm3.Butt_comaClick(Sender: TObject);
begin
if
Edit1.Text = '0' then
begin
Edit1.Text:=
'0,';
f:=
1;
end;
if
Pos(',',Edit1.Text) = 0 then
Edit1.Text:=
Edit1.Text + ',';
end;
procedure
TForm3.Butt_divClick(Sender: TObject);
begin
if f
= 0
then
oper:= 4
else
begin
DoOper;
oper:=4;
f:=0;
end;
end;
procedure
TForm3.Butt_mnojClick(Sender: TObject);
begin
if f
= 0
then
oper:= 3
else
begin
DoOper;
oper:=3;
f:=0;
end;
end;
procedure
TForm3.Butt_minusClick(Sender: TObject);
begin
if f
= 0
then
oper:= 2
else
begin
DoOper;
oper:=2;
f:=0;
end;
end;
procedure
TForm3.Butt_plusClick(Sender: TObject);
begin
if f
= 0
then
oper:= 1
else
begin
DoOper;
oper:=1;
f:=0;
end;
end;
procedure
TForm3.Butt_sqrt_corinClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
if
(x<0) then
begin
messagedlg('Квадратного
кореня з від*ємного числа неіснує!',mtError,[mbOk],0); exit;
end;
y:=sqrt(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_stepClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
y:=sqr(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_na_xClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
y:=1/x;
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_dorivClick(Sender: TObject);
begin
if f
= 0
then
oper:= 0
else
begin
DoOper;
oper:=0;
f:=0;
end;
end;
procedure
TForm3.Butt_piClick(Sender: TObject);
begin
if f
= 0
then
begin
Edit1.Text:=floattostr(pi);
f:=
1;
end
else
if
Edit1.Text <> '1'
then
Edit1.Text:= Edit1.Text + '';
end;
procedure
TForm3.Butt_sinClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
y:=sin(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_lnClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
if
(x<1) then
begin
messagedlg('Логарифм
від"ємного числа не існує!',mtError,[mbOk],0); exit;
end;
y:=ln(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_cosClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
y:=cos(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.Butt_xClick(Sender: TObject);
begin
x:=StrToFloat(form3.Edit1.Text);
y:=exp(x);
Form3.Edit1.Text:=FloatToStr(y);
end;
procedure
TForm3.N2Click(Sender: TObject);
begin
Form3.Edit1.Width:=249;
Form3.Width:=266;
end;
procedure
TForm3.N3Click(Sender: TObject);
begin
Form3.Edit1.Width:=320;
Form3.Width:=339;
end;
procedure
TForm3.FormCreate(Sender: TObject);
begin
oper:=
0;
end;
proсedure
TForm3.Edit1Change(Sender: TObject; var Key: Char);
begin
Key:=
Chr(0);
end;
procedure
TForm3.N4Click(Sender: TObject);
begin
Form3.Close;
end;
end.
|