Створення програми-органайзера

Створення програми-органайзера

Створення програми-органайзера

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ПВНЗ ЄВРОПЕЙСЬКИЙ УНІВЕРСИТЕТ
ЧЕРКАСЬКА ФІЛІЯ
Кафедра математичних і комп’ютерних дисциплін
КУРСОВА РОБОТА
з дисципліни “Прикладне програмне забезпечення”
на тему
“Створення програми-органайзера”
Перевірив Кулагін С.В.
Виконала студентка ІІІ курсу
Халіман Наталія
Черкаси- 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.

«