Розробка програми у середовищі Borland Delphi 7

Характеристика технології візуального проектування і програмування, суть якої полягає в тому, що область розробки бере на себе більшу частину рутинної роботи. Огляд середовища швидкої розробки, в якій як мова програмування використовується мова Delphi.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 27.02.2012
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Зміст

ВСТУП

  • Розділ 1. Алгоритм
    • 1.1 Опис алгоритму
    • 1.2 Алгоритм у вигляді блок-схем
  • Розділ 2. Виконана програма на мові object Pascal в середовищі Borland Delphi 7
    • 2.1 Інтерфейс програми
    • 2.2 Текст програми та модулів
      • 2.2.1 Текст файлу проекту
      • 2.2.2 Текст першого модуля
      • 2.2.3 Текст другого модуля
      • 2.2.4 Текст третього модуля
      • 2.2.5 Текст четвертого модуля
      • 2.2.6 Текст п'ятого модуля
  • Розділ 3. Результати тестування програми та інструкція користувача
    • 3.1 Інструкція користувача
    • 3.2 Довідка
    • 3.3 Тест програми

Висновок

Використана література

Додаток А. Виведення формул

ВСТУП

В сучасному світі чільне місце посідають комп'ютерні технології. Внаслідок швидкого розвитку цієї галузі комп'ютери тепер є доступними практично всім. А якщо людина має справу з комп'ютером, то рано чи пізно виникне бажання програмування. Але декілька років назад більшість мов програмування були досить складними для створення в них програм, якими було б зручно користуватись.

Бурхливий розвиток обчислювальної техніки, необхідність в ефективних засобах розробки програмного забезпечення призвели до появи систем програмування, орієнтованих на так звану «швидку розробку», серед яких можна виділити Borland Delphi. В основі систем швидкої розробки покладена технологія візуального проектування і програмування, суть якої полягає в тому, що область розробки бере на себе більшу частину рутинної роботи, залишаючи програмісту роботу по конструюванню діалогових вікон і функцій обробки подій.

Delphi - це середовище швидкої розробки, в якій як мова програмування використовується мова Delphi. Мова Delphi - об'єктно-орієнтована мова, що строго типізується, в основі якої лежить добре знайомий програмістам Object Pascal.

Delphi - є середовищем розробки програм, яке використовує багато передових ідей і концепцій, закладених в графічному інтерфейсі Windows. Як відомо, середовище великою мірою визначає ефективність роботи програміста. У середовищі програмування Delphi є всі необхідні інструменти для того, щоб створювати повноцінні програми. Писати, компілювати і тестувати програму - все це можна робити, не виходячи з Delphi.

Delphi простий і логічний. Основні конструкції мови чітко виділяються в програмі, що сприяє хорошому сприйняттю написаного коду. Графічний інтерфейс Delphi відмінно продуманий, середовище розробки надає доступ тільки до тих ділянок коду, з якими необхідно працювати, приховуючи основну частину програми, яка створюється автоматично самою розробкою.

Для виконання даного проекту нам потрібно було використовувати мову програмування Delphi. Середовище Borland Delphi 7 має великі можливості в візуальному режимі, також значним плюсом було те, що в цьому семестрі ми вивчали цю мову програмування. До цього я знав лише одну мову програмування Pascal. Мова програмування Delphi основана на мові Pascal тому мені було не дуже складно вивчити цю мову. Також, в мене була література з користування даною програмою.

При виконанні даного проекту перед нами поставало завдання розробити оптимальний варіант програми і написати її зручною для користування - важливий аспект в подальшому її використанні. а також розробити програму, яка відповідала б всім критеріям якості програмного продукту, тобто слідуючим пунктам:

1. Відповідність програми поставленій задачі;

2. Надійність програми;

3. Ефективність;

4. Модифікаційність;

5. Читабельність тексту програми;

6. Документованість;

7. Простота супровіду.

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

Першим важливим кроком у виконанні даного проекту є правильне виконання перехідних процесів, і правильне введення формул до програми, адже неправильно введені формули до програми, або неправильно виконані розрахунки перехідних процесів для даної схеми могли привести до зациклення або навіть зависання моєї програми. Спочатку саме така проблема у нас і була, програма зациклювалась і зависала. Чи то розрахунки перехідних процесів були виконані невірно, чи формули до програми були введені невірно. Але цієї проблеми вдалося позбутися. Нашу програму можна було б модернізувати, але в цьому не має потреби. Наш варіант написання програми для мене здається найоптимальнішим, тому що був ретельно продуманий і розроблений.

Все перший крок у виконанні даного проекту зроблено виконано розрахунки перехідних процесів для заданої схеми. Другим не менш важливим кроком у виконанні даного проекту стало виконання зовнішнього інтерфейсу програми. Так як ми поставили перед собою чітке завдання стосовно інтерфейсу програми, ми відразу уявляли зовнішній вигляд програми. Адже ми мали створити максимально практичну і функціональну програму.

Розділ 1. Алгоритм

1.1 Опис алгоритму

Як ми уже говорили що при початку виконання даного проекту ми мали вибір між двома методами розрахунку електричного кола, тобто двома алгоритмами вирішення даного проекту. Ми вибрали найоптимальніший варіант розрахунку, розрахунок класичним медом. Класичний метод розрахунку полягає в тому, що перехідна величина представляється як сума двох доданків: примушеної і вільної складових. Примушені складові відповідають сталому режиму й можуть бути знайдені звичайними методами розрахунку для кола після комутації. Вид примушених складових струму або напруги залежить як від форми ЕРС діючих у колі джерел, так і від конфігурації самого кола. Вільна складова обумовлюється енергією, що являє собою різницю запасів між усталеними режимами до й після комутації. Запас енергії кола мають тільки реактивні елементи. Вільні величини змінюються з часом за експоненціальними затухаючими функціями.

Отже, перехідний процес ми почали виконувати класичним методом. Першим кроком при виконанні перехідних процесів класичним методом є знаходження характеристичного опору Z(p) даної схеми. Це робиться для того щоб знайти та - корні характеристичного рівняння. Знайшовши характеристичний опір ми дорівняли його до нуля:

Z(p)==0,(1.1)

де Z(p) - характеристичний опір; - змінна яку потрібно знайти; - ємність конденсатора; - величина другого опору; - величина другого опору; - індуктивність котушки;

Потім формулу характеристичного рівняння ми звели до квадратного рівняння:

,(1.2)

де - змінна яку потрібно знайти; - ємність конденсатора; - величина другого опору; - величина другого опору; - індуктивність котушки;

Подальші розрахунки перехідних процесів можуть виконуватися трьома методами в залежності від значення коренів даного рівняння, тобто залежать від дискримінанту. Якщо дискримінант дорівнює нулю то корні дійсні однакові, якщо менший нуля то корні комплексні, якщо більший нуля то корні дійсні різні. Для того щоб програма виконувала розрахунки в залежності від значення дискримінанту ми ввели в програму формулу для визначення дискримінанту:

,(1.3)

де - дискримінант квадратного рівняння; - змінна яку потрібно знайти; - ємність конденсатора; - величина другого опору; - величина другого опору; - індуктивність котушки;

Потім ми використали оператор умовного переходу if, для того щоб по значенню дискримінанту програма вибирала подальші формули для розрахунку і побудови графіків. Якщо дискримінант дорівнює нулю то програма вибирає розрахунки для цього значення дискримінанту. Оскільки дискримінант дорівнює нулю то корні мають однакове значення і розраховуються за формулою:

,(1.4)

де - корні характеристичного рівняння; - ємність конденсатора; - величина другого опору; - величина другого опору; - індуктивність котушки;

Далі ми повинні знайти значення постійних інтегрування та . Туму що значення вільної складової напруги на конденсаторі ми представляємо у вигляді:

,(1.5)

візуальний програмування проектування рутинний

де- вільна складова напруги на конденсаторі;, - постійні інтегрування; - корні характеристичного рівняння;- час проходження перехідного процесу;

Для визначення цих значень ми складаємо систему рівнянь для початкових умов до комутації. І знаходимо значення цих невідомих постійних інтегрування. Докладніше про визначення постійних інтегрування див. додаток А.

Потім ми виводимо формулу для напруги на конденсаторі, записуємо її як суму вільної і примушеної складових:

,(1.6)

де- напруга на конденсаторі;- значення джерела ЕРС; - величина першого опору; - величина другого опору;, - постійні інтегрування;- час проходження перехідного процесу; - корінь характеристичного рівняння;

Після виведення формули напруги на конденсаторі ми можемо знайти струм третьої гілки для цього ми беремо похідну від напруги і множимо її на ємність конденсатора, отримуємо формулу:

,(1.7)

де- струм третьої гілки; - ємність конденсатора;- похідна напруги на конденсаторі;- час проходження перехідного процесу;

Струм другої гілки знаходиться як відношення напруги конденсатора до опору другої вітки, тому що напруга на паралельних вітках однакова, а струм дорівнює відношенню напруги до опору на якому шукається струм:

,(1.8)

де- струм другої гілки;- напруга на конденсаторі; - величина другого опору;

Напруга на буде дорівнювати напрузі , тому що як ми говорили напруга на паралельних вітках однакова. Струм першої гілки буде дорівнювати сумі струмів третьої і другої гілок а напруга на буде дорівнювати добутку цього опору на струм першої гілки:

,(1.9)

де- струм першої гілки;- струм другої гілки;- струм третьої гілки;

,(1.10)

де- напруга на першому опорі;- величина першого опору;- струм першої гілки; Напругу на котушці ми можемо знайти як добуток похідної струму першої гілки на індуктивність котушки L:

,(1.11)

де- напруга на котушці;- індуктивність котушки;- похідна струму першої гілки;

Якщо, ж дискримінант більше нуля то програма вибирає розрахунки перехідних процесів для дискримінанта більше нуля. Розрахунки майже не відрізняються від попередніх розрахунків. Розрахунки відрізняються тільки розрахунками корнів характеристичного рівняння та . Тому що дискримінант більше нуля то ми матимемо два різних значення:

,(1.12)

де - корінь характеристичного рівняння; - індуктивність котушки; - ємність конденсатора; - величина другого опору; - величина другого опору; - дискримінант квадратного рівняння;

,(1.13)

де - корінь характеристичного рівняння; - індуктивність котушки; - ємність конденсатора; - величина другого опору; - величина другого опору; - дискримінант квадратного рівняння;

Якщо ж ввести значення елементів так що дискримінант менше нуля то ми матимемо два комплексні корні:

,(1.14)

де - корінь характеристичного рівняння; - індуктивність котушки; - ємність конденсатора; - величина другого опору; - величина другого опору; - дискримінант квадратного рівняння;

,(1.15)

де - корінь характеристичного рівняння; - індуктивність котушки; - ємність конденсатора; - величина другого опору; - величина другого опору; - дискримінант квадратного рівняння;

J у формулах комплексних корнів показує уявну частину комплексного числа. Там де не має J це дійсна частина комплексного числа. Після знаходження корнів характеристичного рівняння ми нарешті можемо вивести формулу напруги на конденсаторі:

,(1.16)

де- напруга на конденсаторі;- значення джерела ЕРС; - величина першого опору; - величина другого опору; - постійна інтегрування;-дійсна частина комплексного числа;- уявна частина комплексного числа;- час проходження перехідного процесу;- постійна інтегрування;

Струм третьої гілки знаходимо так само як і для дискримінанту дорівнює нулю, похідна напруги на конденсаторі помножена на ємність конденсатора:

,(1.17)

де- струм третьої гілки; - ємність конденсатора;- похідна напруги на конденсаторі;- час проходження перехідного процесу;

Всі подальші розрахунки виконуються аналогічно до розрахунків при дискримінанту меншому нуля. Напруга на буде дорівнювати напрузі , тому що напруга на паралельних вітках однакова. Струм першої гілки буде дорівнювати сумі струмів третьої і другої гілок а напруга на буде дорівнювати добутку цього опору на струм першої гілки:

,(1.18)

де- струм першої гілки;- струм другої гілки;- струм третьої гілки;

,(1.19)

де- напруга на першому опорі;- величина першого опору;- струм першої гілки;

Напругу на котушці ми можемо знайти як добуток похідної струму першої гілки на індуктивність котушки L:

,(1.20)

де- напруга на котушці;- індуктивність котушки;- похідна струму першої гілки;

Після виведення формул і виконання розрахунків точок для графіків програма починає будувати графіки. Для розрахунку точок для графіка, та побудови самих графіків ми використали цикл for.

1.2 Алгоритм у вигляді блок-схем

Рисунок (1.1) - Блок-схема процедури vis;

Рисунок (1.2) - Блок-схема процедури invis;

Рисунок (1.3) - Блок-схема процедури відкриття даних про програму;

Рисунок (1.4) - Блок-схема виведення значення елемента R1 на схемі;

Рисунок (1.5) - Блок-схема виведення значення елемента R2 на схемі;

Рисунок (1.6) - Блок-схема виведення значення елемента C на схемі;

Рисунок (1.7) - Блок-схема виведення значення елемента L на схемі;

Рисунок (1.8) - Блок-схема виведення значення елемента E на схемі;

Рисунок (1.9) - Блок-схема процедури збереження даних;

Рисунок (1.10) - Блок-схема процедури розрахунків і побудови графіків;

Рисунок (1.11) - Блок-схема процедури закриття програми;

Рисунок (1.12) - Блок-схема процедури відкриття даних;

Рисунок (1.13) - Блок-схема процедури видалення даних;

Рисунок (1.14) - Блок-схема процедури створення нового файлу;

Рисунок (1.15) - Блок-схема процедури яка робить графіки в 3D;

Рисунок (1.16) - Блок-схема процедури збереження графіків;

Рисунок (1.17) - Блок-схема процедури виведення довідки;

Рисунок (1.18) - Блок-схема процедур виведення графіків (схожих процедур в програмі сім);

Розділ 2. Виконана програма на мові object Pascal в середовищі Borland Delphi 7

2.1 Інтерфейс програми

При запуску програми ми можемо спостерігати головне вікно програми як на рисунку 2.1.

Рисунок 1.19 - Вікно при запуску програми;

У вікні що з'явилося є так звані поля для введення даних, керування графіками та ін. Також в головному вікні ми можемо спостерігати схему з назвами елементів, головне меню та ще деякі кнопки.

На рисунку 2.2 ми можемо спостерігати інтерфейс виконаного мною проекту в конструкторі.

Рисунок 1.20 - Інтерфейс програми в конструкторі;

У конструкторі на формі ми бачимо більше об'єктів ніж при запуску програми. Тому що деякі об'єкти при запуску програми залишаються невидимими. Але в самій програмі вони використовуються.

Memo1- використовується для збереження даних;

Xp - призначений для зміни звичного вигляду вікон;

OpenDalog1 - Призначений і використовується для відкриття даних, збережених до цього. Для цього елемента я встановив фільтри;

SaveDialog1 - Призначений для збереження даних. Використовується для збереження даних (введених номіналів елементів). Для цього елемента я також встановив фільтри;

SaveDialog2 - Призначений для збереження даних. Використовується для збереження графіків перехідних процесів. Для цього елемента також встановлені фільтри.

Також у моєму проекті присутні інші вікна. Наприклад вікна збереження даних, в яких при закритті програми та створенні нового файлу користувач може вибрати збереження даних, якщо потрібно, якщо ні то натиснути відміну. Вікна збереження даних ви можете спостерігати на рисунку 2.3, та на рисунку 2.4 в конструкторі, та на рисунку 2.5 в запущеному вигляді.

Рисунок 1.21 - Вікно збереження при закритті програми;

Рисунок 1.22 - Вікно збереження при створенні нового файлу;

Рисунок 1.23 - Вікно збереження в запущеній програмі;

Оформлення цих двох вікон однакове, але функції вони виконують різні. Наприклад вікно збереження даних при закритті програми, якщо користувач закриває програму то з'являється це вікно. Користувач повинен зробити вибір між «Так» і «Ні». Якщо користувач вибирає «Так» то програма збереже введені дані і закриється, якщо «Ні» то просто закриється не зберігаючи дані. Вікно збереження при створенні нового файлу так само надає користувачеві вибір між «Так» і «Ні». Якщо «Так» то програма зберігає дані і створює новий файл, якщо ні то всі введені дані будуть видалені, і буде створений новий файл.

На цих двох формах присутній один елемент якого не видно під час запуску це - Xp.

Також до свого проекту я додав вікно «Справка» в якому я описав всю необхідну інформацію для користувача. Як правильно користуватися програмою. Вікно «Справка» в конструкторі ми можемо спостерігати на рисунку 2.6, а вікно «Справка» при запуску програми буде виглядати як на рисунку 2.7.

Рисунок 1.24 - Вікно «Справка» в конструкторі;

Рисунок 1.25 - Вікно «Справка» при запуску програми;

Як ми бачимо на рисунку 2.6 що у вікні довідки також присутній Xp.

Також в нашому курсовому проекті присутнє вікно про програму. В якому зазначено ім'я автора проекту та деяка інформація про програму. Воно має вигляд як на рисунку 2.8.

Рисунок 1.26 - Вікно про програму;

2.2 Текст програми та модулів

2.2.1 Текст файлу проекту

Нижче наведений код проекту:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4},

Unit5 in 'Unit5.pas' {Help};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(THelp, Help);

Application.Run;

2.2.2 Текст першого модуля

Нижче наведений код першого модуля:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, OleCtnrs, ExtCtrls, jpeg, TeEngine, Series,

TeeProcs, Chart, XPMan;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

GroupBox1: TGroupBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit4: TEdit;

Label8: TLabel;

Edit5: TEdit;

Label9: TLabel;

Label10: TLabel;

Button1: TButton;

memo1: TMemo;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Button2: TButton;

N10: TMenuItem;

N12: TMenuItem;

GroupBox2: TGroupBox;

chart1: TChart;

Button9: TButton;

N11: TMenuItem;

Label16: TLabel;

Series1: TLineSeries;

Series2: TLineSeries;

GroupBox3: TGroupBox;

CheckBox1: TCheckBox;

Edit6: TEdit;

XPManifest1: TXPManifest;

SaveDialog2: TSaveDialog;

Image1: TImage;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Series3: TLineSeries;

Series4: TLineSeries;

Series5: TLineSeries;

Series6: TLineSeries;

Series8: TLineSeries;

Edit9: TEdit;

Edit10: TEdit;

Label21: TLabel;

Label22: TLabel;

Label17: TLabel;

Label18: TLabel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

RadioButton5: TRadioButton;

RadioButton6: TRadioButton;

RadioButton7: TRadioButton;

Button3: TButton;

Label19: TLabel;

Label20: TLabel;

procedure N9Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Edit6Change(Sender: TObject);

procedure Edit4Change(Sender: TObject);

procedure Edit5Change(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton4Click(Sender: TObject);

procedure RadioButton6Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure RadioButton5Click(Sender: TObject);

procedure RadioButton3Click(Sender: TObject);

procedure RadioButton7Click(Sender: TObject);

procedure Edit9Change(Sender: TObject);

procedure Edit10Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5;

{$R *.dfm}

procedure vis; //робить кнопки для збереження даних активними

begin //також кнопки виведення графіків гобить активними

form1.N3.Enabled:=true;

form1.N4.Enabled:=true;

form1.N5.Enabled:=true;

form1.RadioButton1.Enabled:=true;

form1.RadioButton2.Enabled:=true;

form1.RadioButton3.Enabled:=true;

form1.RadioButton4.Enabled:=true;

form1.RadioButton5.Enabled:=true;

form1.RadioButton6.Enabled:=true;

form1.RadioButton7.Enabled:=true;

end;

procedure invis;//процедура яка робить кнопки збереження даних

begin //неактивними та видаляє побудовані графіки

form1.N3.Enabled:=false;

form1.N4.Enabled:=false;

form1.N5.Enabled:=false;

form1.Series1.Clear;

form1.Series2.Clear;

form1.Series3.Clear; //видаляє побудовані графіки

form1.Series4.Clear;

form1.Series5.Clear;

form1.Series6.Clear;

form1.Series8.Clear;

form1.RadioButton1.Enabled:=false; //кнопки виведення графіків гобить активними

form1.RadioButton2.Enabled:=false;

form1.RadioButton3.Enabled:=false;

form1.RadioButton4.Enabled:=false;

form1.RadioButton5.Enabled:=false;

form1.RadioButton6.Enabled:=false;

form1.RadioButton7.Enabled:=false;

end;

procedure TForm1.N9Click(Sender: TObject);//виведення даних про програму

begin

form2.show;//відкриває другу форму

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

invis;

label11.Caption:='R1='+''+edit1.Text+ ' Oм';//для виведення значення першого опору на схемі

end;

procedure TForm1.Edit2Change(Sender: TObject);

begin invis;

label12.Caption:='R2='+''+edit2.Text+ ' Oм';//для виведення значення другого опору на схемі

end;

procedure TForm1.Edit6Change(Sender: TObject);

begin invis;

label13.Caption:='C='+''+edit6.Text+ ' ф';//для виведення ємності конденсатора на схемі

end;

procedure TForm1.Edit4Change(Sender: TObject);

begin invis;

label14.Caption:='L='+''+edit4.Text+ ' Гн';//для виведення індуктивності котушки на схемі

end;

procedure TForm1.Edit5Change(Sender: TObject);

begin invis;

label15.Caption:='E='+''+edit5.Text+ ' B';//для виведення величини ЕРС на схемі

end;

procedure TForm1.N4Click(Sender: TObject);//процедура для збереження даних з іншою назвою

begin

savedialog1.InitialDir:='d:\курсовий проект\файл'; //початкова папка для збереження

form1.saveDialog1.FileName:='file.txt'; //стандартна назва файлу

with saveDialog1 do // Відкривається вікно для збереження даних

if Execute then

begin

memo1.clear; //збереження з допомогою memo

memo1.Lines.append(Edit1.Text);

memo1.Lines.append(Edit2.Text);

memo1.Lines.append(Edit6.Text);

memo1.Lines.append(Edit4.Text);

memo1.Lines.append(Edit5.Text);

memo1.Lines.SaveToFile(filename);

caption := 'Перехідні процеси -' + ExtractFilename(filename);//присвоєння назви форми назві файлу

OpenDialog1.FileName := fileName;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);//процедура виконання розрахунку

var r1,r2,l,c,e,p1,p2,d,a1,a2,i0,i3,uc,i2,ur2,i1,ur1,ul,Q:real; //опис змінних

x1,x2,a:real;

t,t1,t2:integer;

begin

vis;//виконання процедури vis

try //перевірка введених даних на помилку

strtofloat(form1.Edit1.Text);

strtofloat(form1.Edit2.Text);

strtofloat(form1.Edit6.Text);

strtofloat(form1.Edit4.Text);

strtofloat(form1.Edit5.Text);

StrToint(form1.Edit9.text);

StrToint(form1.Edit10.text);

begin

if( strtofloat(form1.Edit1.Text)<=0) or

( strtofloat(form1.Edit2.Text)<=0) or

( strtofloat(form1.Edit6.Text)<=0)or

( strtofloat(form1.Edit4.Text)<=0) or

( strtofloat(form1.Edit5.Text)<=0) or

( StrToint(form1.Edit9.text)<0) or

( StrToint(form1.Edit10.text)<0)then

showMessage('Помилка при вводі даних')//виведення повідомлення про помилку

else begin

r1:=strtofloat(form1.Edit1.Text);//опір першого резистора

r2:=strtofloat(form1.Edit2.Text);//опір другого резистора

c:=strtofloat(form1.Edit6.Text);//ємність конденсатора

l:=strtofloat(form1.Edit4.Text);//індуктивність котушки

e:=strtofloat(form1.Edit5.Text);//величина ЕРС

t1:=strtoint(form1.Edit9.text);//перша точка графіка перехідного процесу

t2:=strtoint(form1.Edit10.text);//остання точка графіка перехідного процесу

end;

end;

d:=sqr(l+c*r1*r2)-4*c*l*r2*(r1+r2);//обчислюємо дискримінант

if d=0 then //перевірка дискримінанту і початок розрахунку

begin

p1:=(-(l+c*r1*r2))/2*c*l*r2;//корні характеристичного рівняння при d=0

p2:=p1;//корні однакові

i0:=e/(r1+r2)-(-e/r2);//вільна складова струму при початкових умовах

a1:=-e-e/(r1+r2)*r2;//постійна інтегрування необхідні для розрахунку струмів і напруг

a2:=i0/c-p1*a1;//постійна інтегрування необхідні для розрахунку струмів і напруг

for t:=t1 to t2 do begin //початок розрахунку точок для графіка та побудова графіків

uc:=e*R2/(r1+r2)+a1*exp(p1*t)+a2*exp(p2*t);//напруга на конденсаторі

i3:=c*p1*a1*exp(p1*t)+c*p1*a2*t*exp(p1*t)+c*a2*exp(p1*t);//струм третьої гілки

i2:=e/(r1+r2)+a1/r2*exp(p1*t)+a2/r2*exp(p2*t);//струм другої гілки

ur2:=e*2*R2/(r1+r2)+a1*r2*exp(p1*t)+a2*r2*exp(p2*t);//напруга на другому опорі

i1:=i2+i3;//струм першої гілки

ur1:=i1*r1;//напруга на першому опорі

ul:=l*i1;//напруга на котушці

form1.Series1.AddXY(t,i3,'',clred);//побудова графіка струму третьої гілки

form1.Series2.AddXY(t,uc,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series3.AddXY(t,i2,'',clred);//побудова графіка струму другої гілки

form1.Series4.AddXY(t,ur2,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series5.AddXY(t,i1,'',clred);//побудова графіка струму першої гілки

form1.Series6.AddXY(t,ur1,'',clgreen);//побудова графіка напруги на першому опорі

form1.Series8.AddXY(t,ul,'',clgreen);// обудова графіка напруги на котушці

end;

form1.Series1.Active:=false;

form1.Series2.Active:=false; //графіки побудовані але вони неактивні

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end else if d>0 then //перевірка дискримінанту і початок розрахунку

begin

p1:=(-(l+c*r1*r2)-sqrt(d))/2*c*l*r2;//перший корінь характеристичного рівняння

p2:=(-(l+c*r1*r2)+sqrt(d))/2*c*l*r2;//другий корінь характеристичного рівняння

i0:=e/(r1+r2)-(-e/r2);//вільна чкладова струму при початкових умовах

a2:=((i0/c)-p1*(-e)+p1*(e/(r1+r2)*r2))/(p2-p1);//перша постійна інтегрування

a1:=i0/c-a2-(e*(r1+r2)*r2);//друга постійна інтегрування

for t:=t1 to t2 do begin //початок розрахунку точок і побудови графіків

uc:=e*R2/(r1+r2)+a1*exp(p1*t)+a2*exp(p2*t);//напруга на конденсаторі

i3:=c*p1*a1*exp(p1*t)+c*p2*a2*exp(p1*t);//струм третьої гілки

i2:=e/(r1+r2)+a1/r2*exp(p1*t)+a2/r2*exp(p2*t);//струм другої гілки

ur2:=e*2*R2/(r1+r2)+a1*r2*exp(p1*t)+a2*r2*exp(p2*t);//напруга на першому опорі

i1:=i2+i3;//струм першої гілки

ur1:=i1*r1;//напруга на другому опорі

ul:=l*i1;//напруга на котушці

form1.Series1.AddXY(t,i3,'',clred);//побудова графіка струму третьої гілки

form1.Series2.AddXY(t,uc,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series3.AddXY(t,i2,'',clred);//побудова графіка струму другої гілки

form1.Series4.AddXY(t,ur2,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series5.AddXY(t,i1,'',clred);//побудова графіка струму першої гілки

form1.Series6.AddXY(t,ur1,'',clgreen);//побудова графіка напруги на першому опорі

form1.Series8.AddXY(t,ul,'',clgreen);// обудова графіка напруги на котушці

end;

form1.Series1.Active:=false;

form1.Series2.Active:=false; //графіки побудовані але вони неактивні

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

if d<0 then //перевірка дискримінанту і початок розрахунку

begin

x1:=-(l+c*r1*r2)/2*c*l*r2;//дійсна частина комплексного числа

x2:=sqrt(abs(d))/2*c*l*r2;//уявна частина комплексного числа

q:=1/(cos(x1/x2)/sin(x1/x2));//перша постійна інтегрування

a:=(-e)/(x1*cos(q)+x2*sin(q));//друга постійна інтегрування

for t:=t1 to t2 do begin //початок розрахунку точок і побудови графіків

uc:=e*r2/(r1+r2)+a*exp(x1*t)*sin(x2*t+q);//напруга на конденсаторі

i3:=c*a*exp(x1*t)*x2*cos(x2*t+q)+c*x1*a*exp(x1*t)*sin(x2*t+q);//струм третьої гілки

i2:=e/(r1+r2)+a/r2*exp(x1*t)*sin(x2*t+q);//струм другої гілки

ur2:=i2*r2;//напруга на другому опорі

i1:=i2+i3;//струм першої гілки

ur1:=i1*r1;//напруга на першому опорі

ul:=l*i1;//напруга на котушці

form1.Series1.AddXY(t,i3,'',clred);//побудова графіка струму третьої гілки

form1.Series2.AddXY(t,uc,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series3.AddXY(t,i2,'',clred);//побудова графіка струму другої гілки

form1.Series4.AddXY(t,ur2,'',clgreen);//побудова графіка напруги на конденсаторі

form1.Series5.AddXY(t,i1,'',clred);//побудова графіка струму першої гілки

form1.Series6.AddXY(t,ur1,'',clgreen);//побудова графіка напруги на першому опорі

form1.Series8.AddXY(t,ul,'',clgreen);// побудова графіка напруги на котушці

end;

form1.Series1.Active:=false;

form1.Series2.Active:=false; //графіки побудовані але не активні

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

except

showMessage('Помилка при вводі даних');//виведення повідомлення про помилку

invis; //виконання процедури invis

end;

end;

procedure TForm1.N8Click(Sender: TObject);//процедура закриття програми

begin

form1.Enabled:=false;//робить першу форму неактивною

form3.show;//відкриває 3 форму

end;

procedure TForm1.N6Click(Sender: TObject);//процедура відкриття даних

begin

opendialog1.InitialDir:='d:\курсовий проект\файл';

With OpenDialog1 do

if Execute then

begin

memo1.lines.LoadFromFile(filename);

Caption:='Перехідні процеси -' + extractFilename(filename);//присваєння назві форми назву файлу

Edit1.text:=memo1.Lines.Strings[0]; //кожному значенню присвоюються свої значення

Edit2.text:=memo1.Lines.strings[1];

Edit6.text:=memo1.Lines.strings[2];

Edit4.text:=memo1.Lines.strings[3];

Edit5.text:=memo1.Lines.strings[4];

end;

invis; //виконання процедури invis

end;

procedure TForm1.Button2Click(Sender: TObject);//процедура видалення даних

begin

Edit1.Text:=''; //присвоюємо величинам елементів початкове значення

Edit2.Text:='';

Edit6.Text:='';

Edit4.Text:='';

Edit5.Text:='';

form1.Series1.Clear;

form1.Series2.Clear; //видаляємо графіки

form1.Series3.Clear;

form1.Series4.Clear;

form1.Series5.Clear;

form1.Series6.Clear;

form1.Series8.Clear;

form1.N5.Enabled:=false;//кнопка збереження графіків стає неактивною

end;

procedure TForm1.N3Click(Sender: TObject);//процедура збереження даних

begin

if opendialog1.FileName <> '' then// якщо файл уже був збережений то перезберегти його

begin

memo1.clear;

memo1.Lines.append(Edit1.Text);

memo1.Lines.append(Edit2.Text); //збереження даних з допомогою memo1

memo1.Lines.append(Edit6.Text);

memo1.Lines.append(Edit4.Text);

memo1.Lines.append(Edit5.Text);

memo1.Lines.SaveToFile(OpenDialog1.filename);//власне збереження

end

else

N4Click(sender); //якщо не був збережений то виконати функцію для збереження даних N4Click

end;

procedure TForm1.N2Click(Sender: TObject);//процедура створення нового файлу

begin

form1.Series1.Clear;

form1.Series2.Clear; //видаляємо побудовані графіки

form1.Series3.Clear;

form1.Series4.Clear;

form1.Series5.Clear;

form1.Series6.Clear;

form1.Series8.Clear;

form1.Enabled:=false;//перша форма неактивна

form4.show;//відкриває 4 форму

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

form1.Enabled:=false;//перша форма неактивна

Form3.Show;//відкриває 3 форму

end;

procedure TForm1.CheckBox1Click(Sender: TObject);//3D графіки

begin

if form1.CheckBox1.Checked then

chart1.View3D:=true

else

chart1.View3D:=false;

end;

procedure TForm1.N5Click(Sender: TObject);//збереження графіків

begin

savedialog2.InitialDir:='d:\курсовий проект\файл';//папка для збереження графіків

form1.saveDialog2.FileName:='Graph.bmp';//перша назва файлу

if saveDialog2.Execute then

Chart1.SaveToBitmapFile(saveDialog2.FileName);//власне збереження графіків

end;

procedure TForm1.N11Click(Sender: TObject);//процедура виведення справки

begin

Help.show;//виведення графіків

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

form2.show;//виведення вікна про програму

end;

procedure TForm1.RadioButton1Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton1.Checked then

form1.Series5.Active:=true;

form1.Label19.Visible:=true; //виведення графіків на екран

form1.Label19.Caption:='I,A';

form1.Series2.Active:=false;

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series1.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.RadioButton4Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton4.Checked then

Series6.Active:=true;

form1.Series1.Active:=false;

form1.Label19.Visible:=true;

form1.Label19.Caption:='U,B'; //виведення графіків на екран

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series2.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.RadioButton6Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton6.Checked then

form1.Series8.Active:=true;

form1.Series1.Active:=false;

form1.Label19.Visible:=true;

form1.Label19.Caption:='U,B';

form1.Series2.Active:=false; //виведення графіків на екран

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series3.Active:=false;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton2.Checked then

form1.Series3.Active:=true;

form1.Series1.Active:=false;

form1.Label19.Visible:=true;

form1.Label19.Caption:='I,A'; //виведення графіків на екран

form1.Series2.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.RadioButton5Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton5.Checked then

form1.Series4.Active:=true;

form1.Series1.Active:=false;

form1.Label19.Visible:=true;

form1.Label19.Caption:='U,B';

form1.Series2.Active:=false;

form1.Series3.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.RadioButton3Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton3.Checked then

form1.Series1.Active:=true;

form1.Label19.Visible:=true;

form1.Label19.Caption:='I,A';

form1.Series2.Active:=false;

form1.Series3.Active:=false;

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.RadioButton7Click(Sender: TObject);//процедура виведення графіку в Chart1

begin

if form1.RadioButton7.Checked then

form1.Series2.Active:=true;

form1.Label19.Visible:=true;

form1.Label19.Caption:='U,B';

form1.Series1.Active:=false;

form1.Series3.Active:=false; //виведення графіків на екран

form1.Series4.Active:=false;

form1.Series5.Active:=false;

form1.Series6.Active:=false;

form1.Series8.Active:=false;

end;

procedure TForm1.Edit9Change(Sender: TObject);

begin

invis;

end;

procedure TForm1.Edit10Change(Sender: TObject);

begin

invis;

end;

2.2.3 Текст другого модуля

Нижче наведений код другого модуля:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan;

type

TForm2 = class(TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

XPManifest1: TXPManifest;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

form1.visible:=true;

form2.Close;

end;

end.

2.2.4 Текст третього модуля

Нижче наведений код третього модуля:

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan;

type

TForm3 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

memo1: TMemo;

XPManifest1: TXPManifest;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1, Unit2, Unit4;

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);//процедура відміни збереження

begin

form1.close; //закриваємо всі формули

form2.close;

form3.Close;

form4.close;

end;

procedure perevirka; //процедура перевірки на помилку

begin

try

begin

if(StrToFloat(form1.Edit1.text)<=0)then begin //перевірка даних на помилку

showMessage('Помилка в даних збереження неможливе'); //виведення повідомлення про помилку введення

form1.close;form2.close;form3.Close;end else

if (StrToFloat(form1.Edit2.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

form1.close;form2.close;form3.Close;end else

if (StrToFloat(form1.Edit6.text)<=0)then begin

showMessage('Помилка в даних збереження неможливе');

form1.close;form2.close;form3.Close;end else

if(StrToFloat(form1.Edit4.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

form1.close;form2.close;form3.Close;end else

if(StrToFloat(form1.Edit5.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

form1.close;form2.close;form3.Close; end;

end;

except

showMessage('Помилка в даних збереження неможливе');

form1.close;form2.close;form3.Close;

end;

end;

procedure TForm3.Button1Click(Sender: TObject); //процедура збереження даних

begin

form1.saveDialog1.FileName:='file.txt'; //початкова назва файлу

form1.savedialog1.InitialDir:='d:\курсовий проект\файл';//стандартна папка для збереження

perevirka;//виконання процедури перевірки правильності введених даних

with form1.saveDialog1 do

if Execute then

begin //збереження даних

memo1.clear;

memo1.Lines.append(form1.Edit1.Text);

memo1.Lines.append(form1.Edit2.Text);

memo1.Lines.append(form1.Edit6.Text);

memo1.Lines.append(form1.Edit4.Text);

memo1.Lines.append(form1.Edit5.Text);

memo1.Lines.SaveToFile(filename);

caption := 'Editor - ' + ExtractFilename(filename);

form1.OpenDialog1.FileName := fileName;

end;

form1.Close; //закриваємо форми

form2.close;

form3.close;

end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);

begin

form1.Enabled:=true;//перша форма стає активною

end;

end.

2.2.5 Текст четвертого модуля

Нижче наведений код четвертого модуля:

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan;

type

TForm4 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

XPManifest1: TXPManifest;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1, Unit2, Unit3;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);//збереження даних і створення нового файлу

label 1;

var canclose:boolean;

begin

form1.saveDialog1.FileName:='file.txt';

form1.savedialog1.InitialDir:='d:\курсовий проект\файл';

try

begin

StrToFloat(form1.Edit1.text); //перевірка даних на помилку

StrToFloat(form1.Edit2.text);

StrToFloat(form1.Edit6.text);

StrToFloat(form1.Edit4.text);

StrToFloat(form1.Edit5.text);

end;

except

showMessage('Помилка в даних збереження неможливе');

begin

CanClose := True; //створення нового файлу

form1.Memo1.Clear;

form1.OpenDialog1.Filename := '';

form1.Caption := 'Перехідні процеси';

form1.Edit1.Text:='';

form1.Edit2.Text:='';

form1.Edit6.Text:='';

form1.Edit4.Text:='';

form1.Edit5.Text:='';

end;

form4.close;

Exit;

end;

if(StrToFloat(form1.Edit1.text)<=0)then begin //перевірка даних на помилку

showMessage('Помилка в даних збереження неможливе');

goto 1; end else

if (StrToFloat(form1.Edit2.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

goto 1; end else

if (StrToFloat(form1.Edit6.text)<=0)then begin

showMessage('Помилка в даних збереження неможливе');

goto 1; end else

if(StrToFloat(form1.Edit4.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

goto 1; end else

if(StrToFloat(form1.Edit5.text)<=0) then begin

showMessage('Помилка в даних збереження неможливе');

goto 1;

end;

with form1.saveDialog1 do //збереження даних

if Execute then

begin

form1.memo1.clear;

form1.memo1.Lines.append(form1.Edit1.Text);

form1.memo1.Lines.append(form1.Edit2.Text);

form1.memo1.Lines.append(form1.Edit6.Text);

form1.memo1.Lines.append(form1.Edit4.Text);

form1.memo1.Lines.append(form1.Edit5.Text);

form1.memo1.Lines.SaveToFile(filename);

caption := 'Editor - ' + ExtractFilename(filename);

form1.OpenDialog1.FileName := fileName;

form4.Close;

end;

1:;

form4.Close;

CanClose := True;

if not CanClose then Exit;

form1.Memo1.Clear; //створення нового файлу

form1.OpenDialog1.Filename := '';

form1.Caption := 'Перехідні процеси';

form1.Edit1.Text:='';

form1.Edit2.Text:='';

form1.Edit6.Text:='';

form1.Edit4.Text:='';

form1.Edit5.Text:='';

end;

procedure TForm4.Button2Click(Sender: TObject);//відміна збереження даних і створення нового файлу

var canclose:boolean;

begin

form4.Close; //закриваємо чеверту форму

CanClose := True;

if not CanClose then Exit;

form1.Memo1.Clear;

form1.OpenDialog1.Filename := ''; //створення нового файлу

form1.Caption := 'Перехідні процеси'; //назва фарми

form1.Edit1.Text:='';

form1.Edit2.Text:='';

form1.Edit6.Text:=''; //початкове значення величие елементів

form1.Edit4.Text:='';

form1.Edit5.Text:='';

end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

begin

form1.Enabled:=true;

end;

end.

2.2.6 Текст п'ятого модуля

Нижче наведений код п'ятого модуля:

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan, ComCtrls, DBCtrls;

type

THelp = class(TForm)

XPManifest1: TXPManifest;

RichEdit1: TRichEdit;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Help: THelp;

implementation

{$R *.dfm}

procedure THelp.FormCreate(Sender: TObject);

begin

Help.RichEdit1.Lines.LoadFromFile('spravka.rtf');//відкриття тексту справки

end;

procedure THelp.Button1Click(Sender: TObject);

begin

Help.Close;

end;

end.

РОЗДІЛ 3. Результати тестування програми та інструкція користувача

3.1 Інструкція користувача

Дана програма призначена для розрахунку перехідних процесів, та побудови графіків перехідних процесів, на елементах заданої схеми.

Як ми вже говорили що головне вікно моєї програми поділено на окремі поля, кожне з яких відповідає за певні функції. Зараз ми поговоримо про кожне з них.

Поле введення даних призначене для введення величин номіналів елементів. Та введення початкової та кінцевої точок графіку. Поле введення даних зображено на рисунку 3.1.

Рисунок 1.27 - Поле введення даних;

Поле керування графіками призначене для виведення графіків на екран. Користувач може вибрати сам, за своїм бажанням елемент на якому потрібно вивести графік, чи то напруги чи струмую. Поле стає активним тільки після правильного введення даних та початку розрахунків. Його можна спостерігати на рисунку 3.2.

Рисунок 1.28 - Поле керування графіками;

Поле під назвою схема це-поле в якому ми можемо спостерігати схему за якою ведуться розрахунки та величини елементів. Зображено на рисунку 3.3.

Рисунок 1.29 - Поле схеми;

Поле графіки перехідного процесу призначений для графічного виведення графіків на екран. Зображено на рисунку 3.4.

Рисунок 1.30 - Поле графіки перехідного процесу;

Також у головному вікні присутні кнопки: почати розрахунок, стерти дані, закрити програму. Почати розрахунок - призначена для початку розрахунку перехідного процесу. Стерти дані - призначена для видалення всіх введених даних, та всіх побудованих графіків. Закрити програму - для закриття програми. Кнопки зображені на рисунку 3.5.

Рисунок 1.31 - Кнопки: почати розрахунок, стерти дані, закрити програму;

Якщо відкрити папку з моєю програмою, то там ми можемо побачити багато різних файлів, вони перераховані в таблиці (3.1).

Таблиця 1.2 - Файли;

Назва файлу

Розширення файлу

Розмір Файлу (Байт)

Призначення файлу

Project1

cfg

446

файл конфігурації містить параметри проекту

Unit1

dcu

22 201

Delphi Compiled Unit - містять відкомпільований код юнита, з допомогою них пришвидшується компіляція.

Unit2

dcu

4 042

Unit3

dcu

6 448

Unit4

dcu

7 125

Unit5

dcu

4 094

Unit1

ddp

51

Delphi Diagram Portfolio - містять схеми діаграм, які можна створювати у вікні редактора

Unit2

ddp

51

Unit3

ddp

51

Unit4

ddp

51

Unit5

ddp

51

Unit1

dfm

120 376

Delphi form file - файли які містять у двійковому коді опис форм і компонентів, які містить форма.

Unit2

dfm

2 635

Unit3

dfm

1 341

Unit4

dfm

123

Unit5

dfm

1 061

Project1

dof

2 015

Delphi Options file - це файли які містять в текстовому вигляді поточні параметри проекту.

Project1

exe

841 728

Файл містить скомпільовану програму.

Схема

jpeg

9 768

Схема для розрахунку перехідного процесу

Unit1

pas

16 710

PAScal. Вихідні файли модуля (юнита).

Unit2

pas

654

Unit3

pas

2 645

Unit4

pas

3 553

Unit5

pas

707

Project1

dpr

485

Delphi Project. Файл з вихідним текстом проекту, програми.

Project1

res

876

Файли з розширення res це двійкові файли ресурсів програми (картинки, іконки, форми і тому подібне).

Також в папці з моєю програмою є папка файл призначена для збереження в ній файлів програми. В папці містяться файли з розширенням txt та bmp. У файлах з розширенням txt зберігаються текстові дані програми, а у файлах з розширенням bmp графіки перехідних процесів.

3.2 Довідка

Нижче наведений текст який містить «справка»:

1)Введення даних: При старті програми в основному вікні програми ми можемо спостерігати спеціально відведене поле для введення даних. В цьому полі ми повинні ввести значення елементів R1,R2,L,C,E. Якщо значення одного або декількох елементів не введено або введено менше, або рівне 0 то програма при початку розрахунку виведе повідомлення про помилку введення даних. Тож дані необхідно вводити вірно від початку.

2) Початок розрахунку: Після того як ми ввели правильно номінали елементів то ми можемо розрахувати перехідні процеси для даної схеми. Для цього нам необхідно у вікні програми натиснути на кнопку "почати розрахунок". Якщо все вірно то програма виконає необхідні розрахунки і побудує графіки перехідних процесів.

3) Виведення графіків на екран: Після виконання розрахунку програма вже побудувала необхідні графіки нам залишилось тільки вивести їх на екран. Для цього у вікні програми ми повинні у полі " керування графіками " поставити галочку біля назви необхідного елемента, на якому потрібно вивести графіки перехідного процесу. Якщо вибрати одночасно два елементи то на екран буде виведено графіки для двох вибраних елементів.

4) Створення нового файлу: Для того щоб створити новий файл необхідно в головному меню вибрати "Створити", після цього програма виведе на екран запит про збереження даних. Якщо дані були введені то ви якщо бажаєте то можете зберегти введені дані але якщо дані були заздалегіть не введені і ви намагаєтесь їх зберегти то програма виведе повідомлення про помилку введення даних. Якщо все гаразд то програма створює новий файл, видаляє всі дані які були введені до створення файлу, якщо ви їх не зберегли.

5) Збереження даних: Збереження даних можливе тільки після виконання розрахунків для того щоб дані було неможливо зберегти з помилкою. Для збереження ми повинні вибрати в головному меню Файл "Зберегти дані" або "Зберегти дані як". Якщо ми вибираємо "Зберегти дані як" то відкривається вікно в якому ми повинні вказати ім'я під яким необхідно зберегти файл та папку в якій його зберегти стандартно програма зберігає дані в папку "файл". Якщо ми вибираємо "Зберегти дані" і якщо до цього ми вже зберігали дані то програма збереже файл без запиту на введення імені файлу і такого іншого, якщо ж ми до цього не зберігали файл то так само як і в попередньому випадку потрібно буде ввести ім'я файлу і таке інше.

6) Збереження графіків: Збереження графіків можливе тільки після того як ви виконали розрахунок перехідних процесів для даної схеми. Щоб зберегти графіки нам необхідно в головному меню "Файл" вибрати "Зберегти графіки" після чого на екрані з'явиться вікно в якому неохідно вказати папку, в яку ви бажаєте зберегти файл, та назву файлу. Після чого в цьому вікні натискаєте зберегти і програма зберігає файл з графіками під заданною назвою.

7) Відкриття збережених даних: Для того щоб відкрити уже збережені дані нам необхідно в головному меню Файл вибрати "Відкрити". Після цього на екрані з'являється вікно в якому можна вибрати файл який необхідно відкрити. Програма стандартно відкриває папку "Файл" в якій вона зберігає файли тож потрібно відкривати файли з цієї папки або з іншої в яку ви зберігали файли програми. Після того як ви вибрали необхідний файл для відкриття всього лише потрібно натиснути на кнопку "Відкрити".

8) Завершення роботи з програмою: При натисненні кнопки у вікні програми "Закрити програму", або в головному меню "Файл" то робота програми буде закінчена. Програма виведе повідомлення про збереження даних і якщо ви бажаєте зберегти дані то натискаєте "ТАК" якщо ні то "НІ". Якщо номінали елементів схеми було введено невірно, і ви закінчуючи роботу з програмою натискаєте зберегти дані то програма виведе повідомлення про помилку збереження даних, дані не будуть збережені, робота програми буде закінчена. Якщо дані введено вірно, то ви зможете зберегти дані.

9) Стерти дані: Кнопка «стерти дані» розміщена в головному вікні програми. Вона призначена для швидкого очищення всіх раніше введених даних. При натисненні цієї кнопки програма без запиту на збереження, видаляє всі дані що були введені та всі графіки що були побудовані.

3.3 Тест програми


Подобные документы

  • Загальні відомості середовища програмування Delphi, умови та особливості ефективного застосування його можливостей. Методологія розробки прикладного програмного забезпечення, його характеристика та структура, елементи, головні вимоги до функціональності.

    курсовая работа [6,7 M], добавлен 11.09.2014

  • Засоби організації збереження і обробки даних для інтерфейсних програм. Borland C++ Builder - засіб швидкої розробки програм, що дозволяє створювати їх мовою C++, використовуючи середовище розробки і бібліотеку компонентів Delphi. Прийоми проектування.

    курсовая работа [110,5 K], добавлен 28.03.2009

  • Концепції об'єктно-орієнтованого програмування. Спеціалізовані засоби розробки програмного забезпечення мовою Delphi. Загальні питання побудови та використання сучасних систем об’єктно-орієнтованного та візуального проектування програмних засобів.

    курсовая работа [201,4 K], добавлен 01.04.2016

  • Середовище розробки програм Borland Delphi, робота компонентів. Створення нових компонентів та використання компонентів Delphi для роботи з базами даних. Системи керування базами даних InterBase та Firebird. Компоненти Delphi для роботи з СКБД FireBird.

    реферат [71,4 K], добавлен 12.04.2010

  • Теоретичні основи мови програмування C++ та середовища розробки Microsoft Visual C++, яка дозволяє створювати як маленькі программи і утиліти для персонального використання, так і корпоративні системи, що працюють з базами даних на різних плтаформах.

    реферат [26,5 K], добавлен 01.04.2010

  • Розробка програми у середовищі візуального програмування Borland Delphi, що демонструє роботу із двовимірним масивом різних символів. Побудова інформаційно-математичної моделі та опрацювання кожного з функціональних блоків на етапі алгоритмізації.

    курсовая работа [1,7 M], добавлен 07.05.2009

  • Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.

    курсовая работа [398,1 K], добавлен 14.10.2012

  • Borland C++ Builder як система объєктно-орієнтованого програмування для швидкої розробки сучасного математичного забезпечення персональних комп'ютерів. Швидкість візуальної розробки. Продуктивність компонентів. Масштабовані з'єднання з базами даних.

    курсовая работа [740,1 K], добавлен 24.03.2009

  • Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.

    курсовая работа [831,2 K], добавлен 01.03.2014

  • Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.

    курсовая работа [502,5 K], добавлен 01.04.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.