4. Практичне завдання

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

Приклад файлу форми Delphi6 для табулювання функції:

unit Func_tab;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, Menus;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

StringGrid1: TStringGrid;

BitBtn1: TBitBtn;

Label4: TLabel;

ListBox1: TListBox;

Memo1: TMemo;

BitBtn2: TBitBtn;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N3: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

BitBtn3: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit1Exit(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure Edit3Exit(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

X,Xn,Xk,H:real;//Параметри табулювання

fname:String[25];//

f:textfile;

implementation

{$R *.dfm}

// Повідомлення про помилку у завданні інтервалів табулювання

procedure P1;

begin

MessageDlg ('"Xп" не може бути більшим ніж "Хк".' +#13

+'Введіть значення правильно.', mtWarning, [mbCancel], 0);

Form1.Edit1.Text:='';

Form1.Edit2.Text:='';

end;

//Повідомлення про помилку у значенні кроку табулювання по відношенню до

// меж табулювання

procedure P2;

begin

MessageDlg ('Крок табулювання "H" не може приймати таких значень.' +#13

+'Введіть значення правильно.', mtWarning, [mbCancel], 0);

Form1.Edit3.Text:='';

end;

//Повідомлення про помилку перевищення допустимої розмірності даних

procedure P3;

begin

MessageDlg ('Введене значення знаходться за межами допустимого.' +#13

+'Введіть значення правильно.', mtWarning, [mbCancel], 0);

end;

procedure P4;

begin

MessageDlg ('Треба ввести всі дані.', mtWarning, [mbCancel], 0);

end;

//Процедура очищення даних у формі

procedure P5;

begin

Form1.Edit1.Text:='';

Form1.Edit2.Text:='';

Form1.Edit3.Text:='';

Form1.Edit1.SetFocus;

Form1.Height:=167;

Form1.Position:=poScreenCenter;

Form1.Label4.Visible:=False;

Form1.Label5.Visible:=False;

Form1.Label6.Visible:=False;

Form1.Label7.Visible:=False;

Form1.StringGrid1.Visible:=False;

Form1.ListBox1.Items.Clear;

Form1.Memo1.Lines.Clear;

Form1.ListBox1.Visible:=False;

Form1.Memo1.Visible:=False;

end;

//Контроль введення даних у поля фории

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9',Chr(8):;

'-': if (pos('-',Edit1.Text)= 0) and (length(Edit1.Text) = 0)

Then Key := '-'

else Key := Chr(0);

',': if pos(',',Edit1.Text)<>0

THen Key := Chr(0);

else Key := Chr(0);

end;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9',Chr(8):;

'-': if (pos('-',Edit2.Text)= 0) and (length(Edit2.Text) = 0)

Then Key := '-'

else Key := Chr(0);

',': if pos(',',Edit2.Text)<>0

THen Key := Chr(0);

else Key := Chr(0);

end;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9',Chr(8):;

',': if pos(',',Edit3.Text)<>0

THen Key := Chr(0);

else Key := Chr(0);

end;

end;

procedure TForm1.Edit1Exit(Sender: TObject);

begin

If Edit1.Text='' Then Exit;

If (Abs(StrToFloat(Edit1.Text))>100000)Then

begin

P3;

Edit1.Text:='';

Edit1.SetFocus;

end;

end;

procedure TForm1.Edit2Exit(Sender: TObject);

begin

If Edit2.Text='' Then Exit;

If (Abs(StrToFloat(Edit2.Text))>100000)Then

begin

P3;

Edit2.Text:='';

Edit2.SetFocus;

end;

end;

procedure TForm1.Edit3Exit(Sender: TObject);

begin

If Edit3.Text='' Then Exit;

If (StrToFloat(Edit3.Text)>10000)Then

begin

P3;

Edit3.Text:='';

Edit3.SetFocus;

end;

end;

//Основна процедура програми

Procedure TForm1.BitBtn1Click(Sender: TObject);

var

I,K:integer;

Y :array[0..1000] of Real;

label L1;

begin

//Перевірка наявності правильних значень в полях введення і їх взаємної

//коректності, з виведенням відповдних повідомлень і формуванням переходів

IF (Edit1.Text = '') or (Edit2.Text = '') or(Edit3.Text = '') then

begin

P4;

Exit;

end;

IF Edit3.Text = '0' then

begin

MessageDlg ('Треба задати крок табулювання,'

+ #13 +' який має ненульове значення', mtWarning, [mbCancel], 0);

Edit3.Text := '';

Edit3.SetFocus;

goto l1;

end;

Xn:=StrToFloat(Edit1.Text);

Xk:=StrToFloat(Edit2.Text);

H:=StrToFloat(Edit3.Text);

If Xk<Xn Then

begin

P1;

goto L1;

end;

If (H<=0) Or (H>=Abs(Xk-Xn)) Then

begin

P2;

goto L1;

end;

X:=Xn-H;

K:= Round((Abs((Xk-Xn))/H));

If K>1000 Then

begin

MessageDlg ('Переповнення масиву даних.'

+#13 +'Треба зменшити інтервал або'

+#13 +' збільшити крок табулювання', mtWarning, [mbCancel], 0);

Edit1.Text := '';

Edit2.Text := '';

Edit3.Text := '';

goto l1;

end;

//Фомування компонентів для виведення результатів

StringGrid1.RowCount:= K+2;

Form1.Height:=430;

Form1.Position:=poScreenCenter;

Label4.Visible:=True;

Label5.Visible:=True;

Label6.Visible:=True;

Label7.Visible:=True;

StringGrid1.Visible:=True;

Label7.Caption:='у полі memo';

ListBox1.Items.Clear;

Memo1.Lines.Clear;

ListBox1.Visible:=True;

Memo1.Visible:=True;

StringGrid1.Cells[0,0]:='X';

StringGrid1.Cells[1,0]:='Y';

//Розрахунок і виведення результатів

For I:=0 to K do

begin

Y[I]:=(1+ln(2-Xn+H*I))/(1-Xn+H*I+0.1);

//Наступний рядок забезпечує виведення результату

// з точністю до тисячних

Y[I]:= Round(Y[I]*1000)/1000;

StringGrid1.Cells[0,I+1]:=FloatToStr(Xn+H*I);//Виведення у таблицю

StringGrid1.Cells[1,I+1]:=FloatToStr(Y[I]);

ListBox1.Items.Add(FloatToStr(Xn+H*I)+' '+FloatToStr(Y[i])); //Виведення у список

Memo1.Lines.Add(FloatToStr(Xn+H*I)+' '+FloatToStr(Y[i])); //Виведення у поле Мемо

end;

l1:;

end;

//Запис результатів у файл

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

ListBox1.Items.SaveToFile('result.txt');

end;

//Збереження у файлі

procedure TForm1.N4Click(Sender: TObject);

begin

ListBox1.Items.SaveToFile(fname);

end;

//Зчитати з файла і вивести у поле Мемо із скриттям зайвих компонентів

procedure TForm1.N3Click(Sender: TObject);

begin

If FileExists('result.txt')= False Then

Begin

MessageDlg('Файла не існує', mtWarning, [mbCancel], 0);

Exit;

end;

Label7.Visible:=True;

Label7.Caption := 'Результати зчитування з файлу';

Memo1.Lines.LoadFromFile('result.txt');

Memo1.Visible:=True;

Label4.Visible:=False;

Label5.Visible:=False;

Label6.Visible:=False;

ListBox1.Visible:=False;

StringGrid1.Visible:=False;

Form1.Height:=430;

Memo1.SetFocus;

Form1.Position:=poScreenCenter;

end;

//Створення файлу з перевіркою його існування

procedure TForm1.FormActivate(Sender: TObject);

begin

fname:='result.txt';

AssignFile (f, fname);

If FileExists('result.txt')= False Then

begin

rewrite(f);

CloseFile(f);

end;

end;

//Очищення полів введення

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

P5;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

P5;

end;

//Вихід з програми

procedure TForm1.N7Click(Sender: TObject);

begin

Close;

end;

//Виведення довідки

procedure TForm1.N8Click(Sender: TObject);

begin

ShowMessage(Горпинич О.О. + #13 + ' студент групи пзс-504');

end;

procedure TForm1.N9Click(Sender: TObject);

begin

ShowMessage('Навчальна програма табулювання функції.' + #13 +

' Версія 1.0');

end;

end.

 


Список використаної літератури

1.  В. Турский. «Методология программирования».

2.  Б.Іванов “Дискретная математика. Алгоритмы и программы”.

3.  Конспект лекцій з предмету.

4.  Інтернет мережа..


Информация о работе «Характеристика якості програмних засобів»
Раздел: Информатика, программирование
Количество знаков с пробелами: 21247
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
25682
0
0

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

Скачать
28968
0
0

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

Скачать
160069
32
6

...  (1.11.) Проект з більшим значенням середнього квадратичного відхилення вважається більш ризиковим. Одже, варто співвідносити прибутковість інвестицій з величиною ризику по цьому проетку. Розділ 2. Управління реальними інвестиціями підприємства з переробки металобрухту ТОВ СП “Укрроссталь”   2.1. Аналіз вибору пріоритетних напрямків реального інвестування ...

Скачать
48502
2
0

... программного обеспечения: критерии, оценки, метод выбора // НТУУ КПІ, 2005, VII МНПК “Системний аналіз та інформаційні технології”, Київ, 2005. С.189. АНОТАЦІЯ Дідковська М. В. Методи оцінки та засоби підвищення надійності програмного забезпечення. – Рукопис. Дисертація на здобуття наукового ступеня кандидата технічних наук за спеціальністю 05.13.06 – “Автоматизовані системи управління та ...

0 комментариев


Наверх